Lo normal way
per Linux consiste nell'usare un file make.
Si è evoluto da tutti gli errori commessi dalle persone compilando applicazioni sempre più complesse a mano o con script fatti in casa. Non è banale rappresentare le dipendenze di compilazione per un progetto complesso. Make simply offre un modo standardizzato per specificare tali dipendenze e uno strumento per analizzare le dipendenze ed eseguire azioni di compilazione associate.
Anche le interfacce utente che semplificano/automatizzano il processo di compilazione utilizzano un make file o qualcosa di simile dietro le quinte.
AGGIORNA
Per coloro che si interrogano sul commento di automake, ecco due diversi punti di vista sull'argomento
http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool
http://www.scurrilous.com/blog/archives/2005/08/23/i-hate-automake/
I makefile fanno così tanto lavoro per te e sono spesso più potenti di quanto le persone credano. Prendi il seguente semplice makefile
all: helloworld
questa è una riga e (almeno gnu make) saprebbe eseguire cc -o helloworld helloworld.c
Quindi, man mano che il progetto cresce, aggiungi un'altra regola:
helloworld: ui.o xml.o mailcomponent.o
$(CC) $(CFLAGS) -o [email protected] [email protected] $^
e fai in modo di correre
cc -c ui.c
cc -c xml.c
cc -c mailcomponent.c
cc -o helloworld helloworld.c ui.o xml.o mailcomponent.o
Quindi dì che vuoi ottimizzare tutto.
CFLAGS=-O2
all'inizio del file si prende cura di te.
Quando il progetto diventa più grande, make tiene traccia dei file che sono stati modificati e non, prevenendo ricompilazioni estranee e dispendiose in termini di tempo.
I makefile sono meravigliosi risparmi di tempo e non ho nemmeno accennato a ricette più avanzate.