El normal way
para Linux es usar un archivo make.
Evolucionó a partir de todos los errores que cometió la gente al compilar aplicaciones cada vez más complejas a mano o con scripts caseros. No es trivial representar dependencias de compilación para un proyecto complejo. Make simplemente ofrece una forma estandarizada de especificar dichas dependencias y una herramienta para analizar las dependencias y ejecutar acciones de compilación asociadas.
Incluso las interfaces de usuario que simplifican/automatizan el proceso de compilación utilizan un archivo de creación o algo similar entre bastidores.
ACTUALIZAR
Para aquellos que se preguntan sobre el comentario de automake, aquí hay dos puntos de vista diferentes sobre el tema
http://www.freesoftwaremagazine.com/books/autotools_a_guide_to_autoconf_automake_libtool
http://www.scurrilous.com/blog/archives/2005/08/23/i-hate-automake/
Los Makefiles hacen mucho trabajo por usted y, con frecuencia, son más poderosos de lo que la gente cree. Tome el siguiente archivo make simple
all: helloworld
esa es una línea, y (gnu make, al menos) sabría ejecutar cc -o helloworld helloworld.c
Luego, a medida que crece el proyecto, agrega una regla más:
helloworld: ui.o xml.o mailcomponent.o
$(CC) $(CFLAGS) -o [email protected] [email protected] $^
y hacer saber correr
cc -c ui.c
cc -c xml.c
cc -c mailcomponent.c
cc -o helloworld helloworld.c ui.o xml.o mailcomponent.o
Luego diga que desea optimizar todo.
CFLAGS=-O2
al principio del archivo se ocupa de ti.
Cuando el proyecto crece, make realiza un seguimiento de los archivos que han cambiado y los que no, evitando recompilaciones extrañas y que consumen mucho tiempo.
Los archivos MAKE ahorran tiempo maravillosamente, y ni siquiera he mencionado recetas más avanzadas.