MAKE-1 Utilidad ‘Make’
Utilidad ‘make’ MAKE-2 Contenido n Objetivo y funciones n Proceso de compilación y montaje n Dependencias y regeneración selectiva n Makefile n Aplicaciones n Generación automática de dependencias
Utilidad ‘make’ MAKE-3 Objetivo y funciones n Objetivo: Generar o actualizar automáticamente ficheros dependientes de otros, de forma selectiva n Modo de operación: Compara la fecha de actualización de cada fichero con la de los que depende, y si está anticuado lo regenera n Aplicación típica: Compilación y montaje de programas
Utilidad ‘make’ MAKE-4 Compilación y montaje gcc -c alfa.c -o alfa.o alfa.calfa.o beta.cbeta.o gcc -c beta.c -o beta.o gcc -o prog alfa.o beta.o prog
Utilidad ‘make’ MAKE-5 Recompilación selectiva gcc -c alfa.c -o alfa.o alfa.calfa.o beta.cbeta.o gcc -o prog alfa.o beta.o prog * = modificado * **
Utilidad ‘make’ MAKE-6 Recompilación selectiva alfa.calfa.o beta.cbeta.o gcc -c beta.c -o beta.o gcc -o prog alfa.o beta.o prog * * = modificado * *
Utilidad ‘make’ MAKE-7 Comparación de fechas alfa.calfa.o beta.c beta.o gcc -c beta.c -o beta.o gcc -o prog alfa.o beta.o prog
Utilidad ‘make’ MAKE-8 Dependencias múltiples ajustar parrafo palabra linea
Utilidad ‘make’ MAKE-9 Dependencias múltiples ajustar.cpp parrafo.h parrafo.cpp linea.h linea.cpp palabra.h palabra.cpp ajustar.o parrafo.o linea.o palabra.o ajustar
Utilidad ‘make’ MAKE-10 Dependencias múltiples ajustar.cpp parrafo.h parrafo.cpp linea.h linea.cpp (*) palabra.h palabra.cpp ajustar.o parrafo.o linea.o (*) palabra.o ajustar (*)
Utilidad ‘make’ MAKE-11 Dependencias múltiples ajustar.cpp parrafo.h parrafo.cpp linea.h (*) linea.cpp palabra.h palabra.cpp ajustar.o (*) parrafo.o (*) linea.o (*) palabra.o ajustar (*)
Utilidad ‘make’ MAKE-12 ‘Makefile’ n Dependencias y acciones objetivo: dependencia dependencia... accion ... objetivo: dependencia... accion ...
Utilidad ‘make’ MAKE-13 Ejemplo de ‘Makefile’ ajustar: ajustar.o parrafo.o linea.o palabra.o gcc -o ajustar ajustar.o parrafo.o linea.o \ palabra.o palabra.o: palabra.cpp palabra.h gcc -c palabra.cpp -o palabra.o linea.o: linea.cpp linea.h palabra.h gcc -c linea.cpp -o linea.o...
Utilidad ‘make’ MAKE-14 Variables y reglas implícitas OBJS = ajustar.o parrafo.o linea.o palabra.o ajustar: $(OBJS) gcc -o ajustar $(OBJS) %.o : %.cpp gcc -c $< -o palabra.o: palabra.cpp palabra.h linea.o: linea.cpp linea.h palabra.h...
Utilidad ‘make’ MAKE-15 Otras aplicaciones n ‘Backup’/’Mirror’ incremental directoriocopia fichero1 fichero1 fichero2 fichero2 fichero3 fichero3
Utilidad ‘make’ MAKE-16 Otras aplicaciones n ‘Backup’/’Mirror’ incremental directoriocopia fichero1 fichero1 fichero2 fichero2 fichero3 fichero3 ... ficheroN
Utilidad ‘make’ MAKE-17 Otras aplicaciones n ‘Backup’/’Mirror’ incremental directoriocopia fichero1 fichero1 fichero2 fichero2 fichero3 fichero3 ... ... ficheroN fichero N
Utilidad ‘make’ MAKE-18 Otras aplicaciones n ‘Backup’ incremental (1) BAK/fichero1: fichero1 copy fichero1 BAK BAK/fichero2: fichero2 copy fichero2 BAK...
Utilidad ‘make’ MAKE-19 Otras aplicaciones n ‘Backup’ incremental (2) copia: *.c *.h copy $? BAK touch copia
Utilidad ‘make’ MAKE-20 Dependencias automáticas n makedepend / gcc -MM Analizar sentencias #include "fichero.h" Ejemplo: usando gcc gcc -MM *.cpp >ajustar.o: ajustar.cpp palabra.h... >linea.o: linea.cpp linea.h palabra.h > palabra.o: palabra.cpp palabra.h > parrafo.o: parrafo.cpp parrafo.h linea.h...