La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

© 2004-2006 Manuel ColladoMake-1 Utilidad Make. © 2004-2006 Manuel ColladoMake-2 Contenido n Objetivo y funciones n Proceso de compilación y montaje n.

Presentaciones similares


Presentación del tema: "© 2004-2006 Manuel ColladoMake-1 Utilidad Make. © 2004-2006 Manuel ColladoMake-2 Contenido n Objetivo y funciones n Proceso de compilación y montaje n."— Transcripción de la presentación:

1 © 2004-2006 Manuel ColladoMake-1 Utilidad Make

2 © 2004-2006 Manuel ColladoMake-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

3 © 2004-2006 Manuel ColladoMake-3 Objetivo y funciones n Objetivo: l Generar o actualizar automáticamente ficheros dependientes de otros, de forma selectiva n Modo de operación: l 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: l Compilación y montaje de programas

4 © 2004-2006 Manuel ColladoMake-4 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 Compilación y montaje

5 © 2004-2006 Manuel ColladoMake-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 * **

6 © 2004-2006 Manuel ColladoMake-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 * *

7 © 2004-2006 Manuel ColladoMake-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 12.3012.01 12.0011.15 12.02 12.31 12.32

8 © 2004-2006 Manuel ColladoMake-8 Dependencias múltiples ajustar parrafo palabra linea

9 © 2004-2006 Manuel ColladoMake-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

10 © 2004-2006 Manuel ColladoMake-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 (*)

11 © 2004-2006 Manuel ColladoMake-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 (*)

12 © 2004-2006 Manuel ColladoMake-12 Makefile n Dependencias y acciones objetivo: dependencia dependencia... accion... objetivo: dependencia... accion... Nota: el símbolo es el carácter de tabulación

13 © 2004-2006 Manuel ColladoMake-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...

14 © 2004-2006 Manuel ColladoMake-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...

15 © 2004-2006 Manuel ColladoMake-15 Otras aplicaciones n Cualquier situación en que unos ficheros se actualizan a partir de otros que cambian l Hacer copias de backup l Generar formatos finales de documentos l Actualizar contenido de sitios web l Ejecutar pruebas de programas l … etc. …

16 © 2004-2006 Manuel ColladoMake-16 Ejemplo n Backup/Mirror incremental directoriocopia fichero1 fichero1 fichero2 fichero2 fichero3 fichero3 Situación inicial

17 © 2004-2006 Manuel ColladoMake-17 Ejemplo n Backup/Mirror incremental directoriocopia fichero1 fichero1 fichero2 fichero2 fichero3 fichero3... ficheroN Modificado fichero2, nuevo ficheroN

18 © 2004-2006 Manuel ColladoMake-18 Ejemplo n Backup/Mirror incremental directoriocopia fichero1 fichero1 fichero2 fichero2 fichero3 fichero3...... ficheroN fichero N Sólo hay que copiar lo que cambia

19 © 2004-2006 Manuel ColladoMake-19 Ejemplo n Backup incremental (1) BAK/fichero1: fichero1 copy fichero1 BAK BAK/fichero2: fichero2 copy fichero2 BAK...

20 © 2004-2006 Manuel ColladoMake-20 Ejemplo n Backup incremental (2) copia: *.c *.h copy $? BAK touch copia

21 © 2004-2006 Manuel ColladoMake-21 Dependencias automáticas makedepend / gcc -MM Analizar sentencias #include "fichero.h" n 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...


Descargar ppt "© 2004-2006 Manuel ColladoMake-1 Utilidad Make. © 2004-2006 Manuel ColladoMake-2 Contenido n Objetivo y funciones n Proceso de compilación y montaje n."

Presentaciones similares


Anuncios Google