Título: Duda Makefile Publicado por: ace99 en 25 Marzo 2020, 11:52 am Buenas tardes/días a todos.
Tengo un programa en c y para ello me he creado un makefile de los más sencillito posible para no andar ejecutando los comandos de ejecución, hasta ahí sin ningún problema, todo funciona bien. El problema (ciertamente no lo es) es que quiero añadir una funcionalidad al makefile. Quiero que cuando ejecute make info en vez de make me muestre el nombre del/los ejecutables que genere/construya. Código
Título: Re: Duda Makefile Publicado por: K-YreX en 26 Marzo 2020, 21:01 pm Lo suyo sería que crearas unas variables para guardar los nombres de los ficheros fuente, objeto y ejecutables y así podrías mostrar luego la variable que guarda los ejecutables cuando ejecutes: make info
Título: Re: Duda Makefile Publicado por: ace99 en 26 Marzo 2020, 21:26 pm ¿Te refieres a unas variables globales?
¿Y como identificarías que se ha escrito make info en vez de make?,¿al ser un makefile tiene la propiedad de identificarlo? La verdad, es mi primer makefile y no tengo mucha idea de como funciona, estuve buscando por internet sobre make info pero no encontre nada. Estoy un poco perdido... Título: Re: Duda Makefile Publicado por: K-YreX en 26 Marzo 2020, 21:42 pm Los makefiles tienen la siguiente característica. Cuando tú ejecutas: make, sin nada más, el makefile busca la etiqueta "all:" y crea los archivos que se indican ahí siguiendo las dependencias necesarias para ello (crear primero los códigos objeto *.o y enlazar las librerías).
En cambio si escribes otra palabra después de "make" buscará y realizará las instrucciones que se indiquen en esa etiqueta. Si escribes: make clean, irá a la etiqueta "clean" y lo que hará en tu caso es eliminar todos los códigos objeto: rm -f *.o Entonces lo que tienes que hacer es otra etiqueta, por ejemplo: Código: # El resto del makefile Una opción sería utilizar variables (como lo son CC, CFLAGS, LIBS, EJ1, EJ2,...) para guardar los nombres de los ficheros y así podrías tener por ejemplo las variables: SRCS, OBJS, BINS,... Y solo tendrías que cambiar el nombre en BINS para que el makefile esté completamente actualizado. PD: Te recomendaría usar subdirectorios para los ficheros. Por convención se suelen crear dentro de tu directorio con el proyecto, los subdirectorios: src (contendrá los .cpp o .c), include (contendrá los .hpp o .h), obj (contendrá los .o), bin (contendrá los ejecutables) y doc (contendrá la documentación de tu proyecto en caso de que la quieras generar). Así en el propio makefile puedes hacer que cada fichero se cree en su lugar correspondiente. Título: Re: Duda Makefile Publicado por: ace99 en 26 Marzo 2020, 22:32 pm Me habían explicado muy por encima lo que pasaba cuando hacías make y todo lo relacionado con el all.
Tu respuesta me ha venido muy pero que muy bien, de verdad. Muchisimas gracias. ;D |