Provided by:
manpages-es-extra_0.8a-16_all 
NOMBRE
make - utilidad ‘make’ de GNU para mantener grupos de programas
SINOPSIS
make [ -f makefile ] [ opción ] ... [ variable=valor ] ... [ objetivo ]
...
AVISO
Esta página del Manual es un extracto de la documentación de GNU make.
Se actualiza sólo ocasionalmente, porque el proyecto GNU no emplea
nroff (ni incluso groff ;-) para su documentación. Para la
documentación completa y al dÃa, remÃtase al fichero make en formato
Info, o al fichero make.dvi en formato DVI, que se construyen a partir
del fichero fuente escrito en TeXInfo make.texinfo.
DESCRIPCIÓN
El propósito de la utilidad make es determinar automáticamente qué
piezas de un programa necesitan ser recompiladas, y lanzar las órdenes
para recompilarlas. Este manual describe la implementación de make del
proyecto GNU, que ha sido escrita por el gran Richard Stallman y por
Roland McGrath. Nuestros ejemplos muestran programas en C, que es lo
más común, pero se puede emplear make con cualquier lenguaje de
programación cuyo compilador pueda ejecutarse con una orden del shell.
De hecho, make no está limitado a compilar programas. Se puede usar
para describir cualquier tarea donde algunos ficheros deban ser
actualizados automáticamente a partir de otros en cualquier momento en
que éstos cambien.
Para prepararnos a utilizar make, debemos escribir antes un fichero
llamado el makefile que describe las relaciones entre los ficheros de
nuestro programa, y las órdenes necesarias para actualizar cada
fichero. En un programa, normalmente el fichero ejecutable se
actualiza a partir de los ficheros o módulos objeto, los cuales a su
vez se construyen mediante la compilación de los ficheros con el código
fuente.
Una vez que exista un makefile apropiado, cada vez que cambiemos algún
fichero fuente, esta simple orden:
make
basta y sobra para que se realicen todas las recompilaciones
necesarias. El programa make emplea los datos del makefile (y otros
internos) y los tiempos de última modificación de los ficheros para
decidir cuáles de ellos necesitan ser actualizados. Para cada uno de
esos ficheros, lanza las órdenes que tiene grabadas en su base de
datos.
make ejecuta órdenes en el makefile para actualizar uno o más nombres
de objetivo, donde nombre es tÃpicamente un programa. Si no se ha dado
la opción -f, make buscará los makefiles llamados GNUmakefile,
makefile, y Makefile, en este orden, parando en el primero que
encuentre y dando un error si no encuentra ninguno.
Normalmente deberÃamos llamar a nuestro makefile o bien makefile o bien
Makefile. (Recomendamos Makefile porque normalmente aparece cerca del
principio del listado de un directorio, al lado de otros ficheros
importantes como LÉAME.) El primer nombre que se busca, GNUmakefile,
no se recomienda para la mayorÃa de los makefiles. Solamente
deberÃamos emplear este nombre si tenemos un makefile que sea
especÃfico del make de GNU y no pueda ser leÃdo y comprendido por otras
versiones de make. Si makefile es ‘-’, se lee de la entrada estándar.
make actualiza un objetivo si éste depende de ficheros de prerrequisito
(o dependencias) que hayan sido modificados desde la última
modificación del objetivo, o si éste no existe.
OPCIONES
-b
-m Estas opciones no hacen nada, y sólo se reconocen por
compatibilidad con otras versiones de make.
-C dir
Cambia el directorio de trabajo a dir antes de leer los makefiles
o hacer otra cosa. Si se especifican varias opciones -C, cada una
se interpreta en relación a la anterior: -C / -C etc es
equivalente a -C /etc. Esto se usa tÃpicamente en llamadas
recursivas a make.
-d Muestra información de depuración además del procesamiento normal.
Esta información dice qué ficheros están siendo considerados para
ser rehechos, qué tiempos de ficheros están siendo comparados y
con qué resultados, qué ficheros necesitan realmente ser rehechos,
qué reglas implÃcitas están siendo tenidas en cuenta y cuáles se
están aplicando: o sea, todo lo interesante sobre cómo make decide
las cosas que tiene que hacer.
-e Da a las variables que vienen del entorno precedencia a las que
vienen de los makefiles.
-f makefile
Emplea makefile como un makefile.
-i No tiene en cuenta ningún error en las órdenes ejecutadas para
reconstruir ficheros.
-I dir
Especifica un directorio dir en donde buscar makefiles incluidos.
Si se usan varias opciones -I para especificar varios directorios,
éstos se buscan en el orden dado. De forma distinta a como se
deben dar los argumentos de otras opciones de make, los
directorios dados en las opciones -I pueden ir inmediatamente tras
la I: o sea, se permite tanto -Idir como -I dir. Esta sintaxis se
permite por compatibilidad con la misma opción -I del
preprocesador de C.
-j trabajos
Especifica el número de trabajos (órdenes) que se deban ejecutar
simultáneamente. Si hay más de una opción -j, sólo la última
vale. Si se da la opción -j sin ningún argumento, make no pondrá
lÃmites al número de trabajos que puedan ejecutarse
simultáneamente.
-k Continúa tanto como sea posible tras un error. Mientras que el
objetivo que ha fallado, y los que dependen de él, no pueden ser
reconstruidos, las otras dependencias de estos objetivos sà que
pueden procesarse, asà que con esta opción se procesan.
-l
-l carga
Dice que no deberá empezarse ningún nuevo trabajo (mandato) si hay
otros trabajos en ejecución y la carga media es como poco carga
(un número real, en coma flotante). Sin el argumento, anula un
lÃmite anterior de carga, si lo hubiera.
-n Muestra las órdenes que se ejecutarÃan, pero no se hace nada más.
Muy útil.
-o fichero
No reconstruye el fichero especificado, incluso siendo más antiguo
que sus dependencias, y tampoco reconstruye nada que dependa de
cambios en fichero. Esencialmente el fichero se trata como muy
viejo, y sus reglas no son tenidas en cuenta.
-p Muestra la base de datos (reglas y valores de variables) que
resultan de leer los makefiles; luego todo se procesa de la forma
usual o de la que se haya especificado. También se muestra la
información de versión dada por la opción -v (vea más abajo).
Para ver la base de datos sin hacer ninguna otra cosa, dé la orden
make -p -f/dev/null.
-q ‘‘Modo de interrogación (Query)’’. No ejecuta ninguna orden ni
muestra nada; sólo devuelve un status de salida cero si los
objetivos especificados ya están actualizados, o no cero si no lo
están.
-r Elimina el empleo de las reglas implÃcitas incorporadas. También
borra la lista predeterminada de sufijos para las reglas de
sufijo.
-s Modo de operación silencioso; no muestra las órdenes que se están
ejecutando.
-S Cancela el efecto de la opción -k. Esto nunca es necesario salvo
en un make recursivo, en el que -k puede venir heredado del make
superior a través de MAKEFLAGS o si activamos -k en la variable de
ambiente MAKEFLAGS.
-t Toca los ficheros (los marca como actualizados sin cambiarlos
realmente) en vez de ejecutar las órdenes pertientes. Esto se
emplea para pretender que las órdenes han sido ejecutadas, con el
fin de engañar a futuras ejecuciones de make.
-v Muestra la versión del programa make más la lista de autores, una
nota sobre los derechos de copia y otra sobre la falta de garantÃa
y a dónde enviar informes de fallos. Después de imprimirse esta
información, el procesamiento continúa normalmente. Para obtener
esta información sin ningún otro efecto, dé la orden make -v
-f/dev/null.
-w Muestra un mensaje conteniendo el directorio de trabajo antes y
después de otro procesamiento. Esto puede ser útil para seguir la
pista a errores que vienen de anidamientos complicados de órdenes
make recursivas.
-W fichero
Pretende que el objetivo fichero acaba de ser modificado. Cuando
se emplea con la opción -n, esto nos enseña lo que pasarÃa si
fuéramos a modificar ese fichero. Sin -n, es casi lo mismo que
ejecutar la orden touch en el fichero dado antes de dar la orden
make, salvo en que el tiempo de modificación se cambia solamente
en la imaginación de make.
OTROS ARGUMENTOS
variable=valor
Le da a la variable de make el valor especificado. Esta definición
tiene precedencia sobre la que pudiera haber en el makefile.
objetivo
Cualquier argumento que no empiece por - o que no contenga un
signo = se considera un objetivo que make tiene que construir. Si
no se menciona ninguno en la lÃnea de órdenes, make construirá el
primer objetivo que encuentre en el makefile.
VÉASE TAMBIÉN
/usr/info/make.info*
The GNU Make Manual
FALLOS
Consulte el capÃtulo ‘Problems and Bugs’ en The GNU Make Manual.
AUTORES
Dennis Morse, de la Stanford University, escribió originalmente esta
página del Manual. Roland McGrath trabajó posteriormente en ella. Fue
traducida al español por Gerardo Aburruzaga GarcÃa (gerardo@cica.es),
quien añadió además algunas lÃneas (además de ésta ;-).