Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Something changed; programs don't stop working unless something changed. The difficulty is going to be working out what changed. You can always just type:</p> <pre><code> rm file-that-changed.o make </code></pre> <p>to rebuild just the one file that changed, but that's a nuisance.</p> <p>Is there a multi-step compilation and you have an intermediate file lying around that is confusing <code>make</code>?</p> <blockquote> <p>I just had a mix up in a multi-step compilation.</p> </blockquote> <hr> <p>If you have a non-standard file suffix that you compile into C code, and then from C into object code (or any other similar multi-step compilation), then the key to getting reliable recompilation with <a href="http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html" rel="nofollow"><code>make</code></a> is to organize the suffix list so that your extensions come at the start. Unfortunately, there isn't a standard easy way to know what the built-in suffix list is, so you end up having to do something like this:</p> <pre><code>SUFFIXES = .y .l .c .o # Yacc, Lex, C, Object files EXTRA_SUFFIX = .xc # Extreme C, or Extended C, or ... .SUFFIXES: # Eliminate all built-in suffixes .SUFFIXES: ${EXTRA_SUFFIX} ${SUFFIXES} </code></pre> <p>The second <code>.SUFFIXES</code> line puts your extension at the front of the list. Now you can write your rules to compile your <code>.xc</code> file into a <code>.c</code> or <code>.o</code> file, and then when you modify the <code>.xc</code> file, even if there's an intermediate <code>.c</code> file left around, the fact that the <code>.xc</code> is newer than the <code>.c</code> or <code>.o</code> file will ensure that the recompilation is done.</p> <p>Once upon a long time ago, the Sun version of <code>make</code> provided a macro called SUFFIXES which contained the default suffixes in the correct order. Sadly, that was not adopted and standardized, so you have to build the suffix list yourself. But the choice of macro name wasn't entirely accidental.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload