Provided by:
manpages-es-extra_0.8a-17_all 
NOMBRE
make - utilidad `make' de GNU para mantener grupos de programas
SINOPSIS
make [ -f makefile ] [ opcion ] ... [ variable=valor ] ... [ objetivo ]
...
AVISO
Esta pagina del Manual es un extracto de la documentacion de GNU make.
Se actualiza solo ocasionalmente, porque el proyecto GNU no emplea
nroff (ni incluso groff ;-) para su documentacion. Para la
documentacion completa y al dia, remitase 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'ON
El proposito de la utilidad make es determinar automaticamente que
piezas de un programa necesitan ser recompiladas, y lanzar las ordenes
para recompilarlas. Este manual describe la implementacion 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
mas comun, pero se puede emplear make con cualquier lenguaje de
programacion cuyo compilador pueda ejecutarse con una orden del shell.
De hecho, make no esta limitado a compilar programas. Se puede usar
para describir cualquier tarea donde algunos ficheros deban ser
actualizados automaticamente a partir de otros en cualquier momento en
que estos 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 ordenes necesarias para actualizar cada
fichero. En un programa, normalmente el fichero ejecutable se
actualiza a partir de los ficheros o modulos objeto, los cuales a su
vez se construyen mediante la compilacion de los ficheros con el codigo
fuente.
Una vez que exista un makefile apropiado, cada vez que cambiemos algun
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 ultima modificacion de los ficheros para
decidir cuales de ellos necesitan ser actualizados. Para cada uno de
esos ficheros, lanza las ordenes que tiene grabadas en su base de
datos.
make ejecuta ordenes en el makefile para actualizar uno o mas nombres
de objetivo, donde nombre es tipicamente un programa. Si no se ha dado
la opcion -f, make buscara 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 deberiamos 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'EAME.) El primer nombre que se busca, GNUmakefile,
no se recomienda para la mayoria de los makefiles. Solamente
deberiamos emplear este nombre si tenemos un makefile que sea
especifico del make de GNU y no pueda ser leido y comprendido por otras
versiones de make. Si makefile es `-', se lee de la entrada estandar.
make actualiza un objetivo si este depende de ficheros de prerrequisito
(o dependencias) que hayan sido modificados desde la ultima
modificacion del objetivo, o si este no existe.
OPCIONES
-b
-m Estas opciones no hacen nada, y solo 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 relacion a la anterior: -C / -C etc es
equivalente a -C /etc. Esto se usa tipicamente en llamadas
recursivas a make.
-d Muestra informacion de depuracion ademas del procesamiento normal.
Esta informacion dice que ficheros estan siendo considerados para
ser rehechos, que tiempos de ficheros estan siendo comparados y
con que resultados, que ficheros necesitan realmente ser rehechos,
que reglas implicitas estan siendo tenidas en cuenta y cuales se
estan aplicando: o sea, todo lo interesante sobre como 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 ningun error en las ordenes 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,
estos 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 opcion -I del
preprocesador de C.
-j trabajos
Especifica el numero de trabajos (ordenes) que se deban ejecutar
simultaneamente. Si hay mas de una opcion -j, solo la ultima
vale. Si se da la opcion -j sin ningun argumento, make no pondra
limites al numero de trabajos que puedan ejecutarse
simultaneamente.
-k Continua tanto como sea posible tras un error. Mientras que el
objetivo que ha fallado, y los que dependen de el, no pueden ser
reconstruidos, las otras dependencias de estos objetivos si que
pueden procesarse, asi que con esta opcion se procesan.
-l
-l carga
Dice que no debera empezarse ningun nuevo trabajo (mandato) si hay
otros trabajos en ejecucion y la carga media es como poco carga
(un numero real, en coma flotante). Sin el argumento, anula un
limite anterior de carga, si lo hubiera.
-n Muestra las ordenes que se ejecutarian, pero no se hace nada mas.
Muy util.
-o fichero
No reconstruye el fichero especificado, incluso siendo mas 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. Tambien se muestra la
informacion de version dada por la opcion -v (vea mas abajo).
Para ver la base de datos sin hacer ninguna otra cosa, de la orden
make -p -f/dev/null.
-q ``Modo de interrogacion (Query)''. No ejecuta ninguna orden ni
muestra nada; solo devuelve un status de salida cero si los
objetivos especificados ya estan actualizados, o no cero si no lo
estan.
-r Elimina el empleo de las reglas implicitas incorporadas. Tambien
borra la lista predeterminada de sufijos para las reglas de
sufijo.
-s Modo de operacion silencioso; no muestra las ordenes que se estan
ejecutando.
-S Cancela el efecto de la opcion -k. Esto nunca es necesario salvo
en un make recursivo, en el que -k puede venir heredado del make
superior a traves 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 ordenes pertientes. Esto se
emplea para pretender que las ordenes han sido ejecutadas, con el
fin de enganar a futuras ejecuciones de make.
-v Muestra la version del programa make mas la lista de autores, una
nota sobre los derechos de copia y otra sobre la falta de garantia
y a donde enviar informes de fallos. Despues de imprimirse esta
informacion, el procesamiento continua normalmente. Para obtener
esta informacion sin ningun otro efecto, de la orden make -v
-f/dev/null.
-w Muestra un mensaje conteniendo el directorio de trabajo antes y
despues de otro procesamiento. Esto puede ser util para seguir la
pista a errores que vienen de anidamientos complicados de ordenes
make recursivas.
-W fichero
Pretende que el objetivo fichero acaba de ser modificado. Cuando
se emplea con la opcion -n, esto nos ensena lo que pasaria si
fueramos 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 modificacion se cambia solamente
en la imaginacion de make.
OTROS ARGUMENTOS
variable=valor
Le da a la variable de make el valor especificado. Esta definicion
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 linea de ordenes, make construira el
primer objetivo que encuentre en el makefile.
V'EASE TAMBI'EN
/usr/info/make.info*
The GNU Make Manual
FALLOS
Consulte el capitulo `Problems and Bugs' en The GNU Make Manual.
AUTORES
Dennis Morse, de la Stanford University, escribio originalmente esta
pagina del Manual. Roland McGrath trabajo posteriormente en ella. Fue
traducida al espanol por Gerardo Aburruzaga Garcia (gerardo@cica.es),
quien anadio ademas algunas lineas (ademas de esta ;-).