El propósito de la utilidad make es determinar automáticamente qué partes de un programa grande necesitan recompilarse y emitir los comandos para recompilarlos. El manual describe la implementación GNU de make, que fue escrita por Richard Stallman y Roland McGrath. Estos ejemplos muestran programas en C, ya que son los más comunes, pero puede usar make con cualquier lenguaje de programación cuyo compilador se pueda ejecutar con un comando de shell. De hecho, make no se limita a los programas. Puede usarlo para describir cualquier tarea en la que algunos archivos deben actualizarse automáticamente de otros cada vez que los otros cambian.
Nota: Esta página es un extracto de la documentación de GNU make. . Se actualiza solo ocasionalmente porque el proyecto GNU no usa nroff. Para obtener la documentación actual y completa, consulte el archivo de información make.info que se crea a partir del archivo fuente de Texinfo make.texinfo.
Sintaxis y preparación de make utility.
hacer -F makefile opción … objetivo …
Para prepararse para usar make, debe escribir un archivo llamado makefile que describa las relaciones entre los archivos en su programa y establezca los comandos para actualizar cada archivo. Normalmente, un archivo ejecutable se actualiza desde archivos de objeto, que a su vez se crean compilando los archivos de origen.
Una vez que exista un makefile adecuado, cada vez que cambie algunos archivos de origen, este simple comando de shell hacer Basta con realizar todas las recompilaciones necesarias. El programa make utiliza la base de datos makefile y los tiempos de última modificación de los archivos para decidir cuál de los archivos necesita actualizarse. Para cada uno de esos archivos, emite los comandos grabados en la base de datos.
La utilidad make ejecuta comandos en el makefile para actualizar uno o más nombres de destino, donde nombre Es típicamente un programa. Si no-F La opción está presente, make buscará los makefiles.GNUmakefile, makefileyMakefile, en ese orden.
Normalmente, debe llamar a su makefile ya sea makefile o Makefile. (Se recomienda usar Makefile porque aparece prominentemente cerca del comienzo de una lista de directorios, cerca de otros archivos importantes, comoLeer.) El primer nombre verificado, GNUmakefile, no se recomienda para la mayoría de los makefiles. Debe usar este nombre si tiene un makefile que sea específico para make de GNU y que no sea comprendido por otras versiones de make. Si makefile es -, se lee la entrada estándar.
los hacer la utilidad actualiza un destino si depende de los archivos de requisitos previos que se han modificado desde la última modificación del destino, o si el destino no existe.
Opciones
los -segundo y -metro Las opciones se ignoran por compatibilidad con otras versiones de make.
-C dir cambiará al directorio dir antes de leer los makefiles o hacer cualquier otra cosa. Si es múltiple-DO Se especifican las opciones, cada una se interpreta en relación con la anterior:-DO/ -C etc. es equivalente a-C / etc. Esto se usa típicamente con invocaciones recursivas de make.
los -re La opción imprimirá información de depuración además del procesamiento normal. La información de depuración indica qué archivos se están considerando para rehacer, qué tiempos de archivos se están comparando y con qué resultados, qué archivos realmente se deben rehacer, qué reglas implícitas se consideran y cuáles se aplican, todo es interesante sobre cómo make decide qué hacer .
los -mi La opción da las variables tomadas del entorno precedencia sobre las variables de makefiles.
los -F expediente usos de opción expediente como un makefile
los -yo La opción ignora todos los errores en los comandos ejecutados para rehacer archivos.
los -YO dir opción especifica un directorio dir para buscar makefiles incluidos. Si varios-YO Las opciones se utilizan para especificar varios directorios, los directorios se buscan en el orden especificado. A diferencia de los argumentos a otras banderas de make, los directorios dados con-YO Las banderas pueden venir directamente después de la bandera:-Idir está permitido, así como-I dir . Esta sintaxis está permitida para la compatibilidad con el preprocesador C-YO bandera.
los -j empleos La opción especifica el número de trabajos (comandos) para ejecutar simultáneamente. Si hay más de uno-j Opción, la última es efectiva. Si el-j La opción se da sin un argumento, make no limitará la cantidad de trabajos que pueden ejecutarse simultáneamente.
los -k la opción continúa tanto como sea posible después de un error; Si bien el destino que falló, y los que dependen de él, no se pueden rehacer, las otras dependencias de estos objetivos se pueden procesar de la misma manera.
los -l y -l carga las opciones especifican que no se deben iniciar nuevos trabajos (comandos) si hay otros trabajos en ejecución, y el promedio de carga es al menoscarga (un número de punto flotante). Sin argumento, elimina un límite de carga anterior.
los -norte La opción imprime los comandos que se ejecutarían, pero no los ejecuta.
los -o expediente La opción no rehace el expediente incluso si es más antiguo que sus dependencias, y no rehace nada debido a cambios en expediente . Esencialmente, el archivo se trata como muy antiguo y sus reglas se ignoran.
los -pag La opción imprime la base de datos (reglas y valores variables) que resulta de leer los archivos make. Luego se ejecuta como de costumbre o como se especifica de otra manera.Esto también imprime la información de la versión dada por el-v interruptor (ver abajo). Para imprimir la base de datos sin intentar rehacer ningún archivo, usehacer -pag -f / dev / null .
los -q La opción establece el modo de pregunta. No ejecute ningún comando ni imprima nada, solo devuelva un estado de salida que sea cero si los objetivos especificados ya están actualizados; de lo contrario, no será cero.
los -r opción elimina el uso de las reglas implícitas incorporadas. También borra la lista predeterminada de sufijos para las reglas de sufijo.
los -s Opción silencia la operación. No imprime los comandos a medida que se ejecutan.
los -S Opción cancela el efecto de la-k opción. Esto nunca es necesario, excepto en una marca recursiva. dónde-k puede heredarse de la marca de nivel superior a través de MAKEFLAGS o si establece-k en MAKEFLAGS en tu entorno.
los -t La opción toca archivos (los marca como actualizados sin realmente cambiarlos) en lugar de ejecutar sus comandos. Esto se utiliza para pretender que los comandos se ejecutaron, para engañar a futuras invocaciones de make.
los -v La opción imprime la versión del programa make más un copyright, una lista de autores y un aviso de que no hay garantía.
los -w La opción imprime un mensaje que contiene el directorio de trabajo antes y después de otro procesamiento. Esto puede ser útil para rastrear errores de nidos complicados de marca recursiva comandos
los -W expediente La opción pretende que el objetivo. expediente acaba de ser modificado. Cuando se usa con el-norte marca, esto le muestra lo que sucedería si modificara ese archivo. Sin-norte, es casi lo mismo que correr untoque comando en el archivo dado antes de ejecutar make, excepto que la hora de modificación se cambia solo en la imaginación de make.