Il linguaggio standard è di avere il file oggetto (non il file sorgente!) Dipenderà da un bersaglio che non esiste e non ha regole o dipendenze (questo obiettivo viene convenzionalmente chiamato FORCE), simili
always-recompile.o: FORCE
FORCE:
Questo si interrompe se in qualche modo viene creato un file denominato "FORCE". Con GNU Make è possibile invece utilizzare lo speciale .PHONY bersaglio, che non ha questa limitazione, ma che richiede di avere una regola esplicita per ricostruire quel file:
always-recompile.o:
$(CC) $(CFLAGS) -c -o always-recompile.o always-recompile.c
.PHONY: always-recompile.o
Vedere http://www.gnu.org/software/make/manual/html_node/Phony-Targets.html per maggiori dettagli.
Questa potrebbe essere la soluzione sbagliata al tuo problema. Alcuni strumenti di controllo delle versioni possono scaricare dettagli della versione della fonte. Un po 'di hackery di script nel processo di compilazione e questi dettagli vengono integrati nel codice. Non importa se devi controllare l'origine e ricostruire tra dieci anni: le informazioni sulla tua versione rifletteranno ancora i dettagli di quel tag. – Steve314
@ Steve314: più probabilmente vuole un box che menzioni il numero di build e la data di costruzione. –
@Ken: in tal caso, il trucco dello strumento di versione è il modo giusto. Non vi è alcun motivo per cui l'hackeraggio della sceneggiatura non possa inserire i dettagli della versione nel codice (o nel file di risorse) per un riquadro di informazioni, e ottenere un numero di build in un riquadro di informazioni probabilmente richiede un intervento manuale facilmente dimenticato. Nemmeno make, il compilatore o il filesystem conoscono il tuo numero di build. – Steve314