Provided by: manpages-es_4.26.0-1_all bug

NOMBRE

       make - utilidad `make' de GNU para mantener grupos de programas

SINOPSIS

       make [OPCIÓN]... [OBJETIVO]...

DESCRIPCIÓN

       El propósito de la utilidad make es determinar automáticamente qué partes de un programa grande necesitan
       ser  recompiladas,  y  ejecutar  las  órdenes  pertinentes  para  recompilarlas.  Este manual describe la
       implementación de make del proyecto GNU, que ha sido escrita  por  Richard  Stallman  y  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

       es  suficiente  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, ejecuta las órdenes
       indicadas en el makefile.

       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 solo se reconocen por compatibilidad con otras versiones de make.

       -B, --always-make
            Ejecuta incondicionalmente todos los objetivos.

       -C dir, --directory=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.

       --debug[=FLAGS]
            Muestra  información  de  depuración  además  del  procesamiento  normal.  Si  se  omite  FLAGS,  el
            comportamiento es el mismo que si se especificara -d. FLAGS puede ser a para todas  las  salidas  de
            depuración (el mismo que usando -d), b para una depuración básica, v para una depuración de algo más
            detallada, i para mostrar reglas implícitas, j para los detalles sobre la invocación de órdenes, y m
            para  la  depuración durante la reconstrucción de archivos makefile. Utilice n para desactivar todas
            las opciones de depuración.

       -e, --environment-overrides
            Da a las variables que vienen del entorno precedencia a las que vienen de los makefiles.

       -f fichero, --file=fichero, --makefile=FICHERO
            Emplea fichero como un makefile.

       -i, --ignore-errors
            No tiene en cuenta ningún error en las órdenes ejecutadas para reconstruir ficheros.

       -I dir, --include-dir=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], --jobs[=trabajos]
            Define  el  número  de tareas (órdenes) a ejecutar simultáneamente.  Si hay más de una opción -j, la
            última será la efectiva. Si se da la opción -j sin un argumento,  make  no  limitará  el  número  de
            tareas  que  pueden ejecutarse simultáneamente. Cuando make invoca un sub-make, todas las instancias
            de make se coordinarán para ejecutar el número especificado de tareas a la vez; consulte la  sección
            MAKE EN PARALELO Y EL SERVIDOR DE TAREAS para más detalles.

       --jobserver-fds [R,W]
            Internal  option  make  uses  to  pass  the jobserver pipe read and write file descriptor numbers to
            sub-makes; see the section PARALLEL MAKE AND THE JOBSERVER for details

       -k, --keep-going
            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 [carga], --load-average[=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.

       -L, --check-symlink-times
            Emplea el tiempo de la última modificación entre los enlaces simbólicos y el objetivo.

       -n, --just-print, --dry-run, --recon
            Muestra las órdenes que se ejecutarían, pero no se ejecutan salvo en alguna circunstancia concreta.

       -o fichero, --old-file=fichero, --assume-old=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.

       -O[tipo], --output-sync[=tipo]
            Al  ejecutar múltiples tareas en paralelo con -j, asegúrese de que la salida de cada tarea se recoje
            por separado en lugar de mezclarse con el resultado de otras tareas. Si no está definido type  o  es
            target  se  agrupará el resultado de toda la receta para cada objetivo. Si type es line el resultado
            de cada línea de órdenes dentro de una receta se agrupa. Si type es recurse se agrupa la  salida  de
            un make recursivo entero. Si type es none la sincronización de salida estárá desactivada.

       -p, --print-data-base
            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, --question
            “Modo de interrogación (Query)”.  No ejecuta ninguna orden ni muestra nada; solo devuelve un  status
            de salida cero si los objetivos especificados ya están actualizados, o no cero si no lo están.

       -r, --no-builtin-rules
            Elimina  el  empleo de las reglas implícitas incorporadas.  También borra la lista predeterminada de
            sufijos para las reglas de sufijo.

       -R, --no-builtin-variables
            No define ninguna variable interna.

       -s, --silent, --quiet
            Modo de operación silencioso; no muestra las órdenes que se están ejecutando.

       -S, --no-keep-going, --stop
            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
            entorno MAKEFLAGS.

       -t, --touch
            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.

       --trace
            Se muestra información sobre la disposición de cada objetivo (el motivo por el cual el objetivo está
            siendo reconstruido y las órdenes para hacerlo).

       -v, --version
            Muestra  la  versión  de  make  más  un  copyright,  una  lista de autores y un aviso de ausencia de
            garantía.

       -w, --print-directory
            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.

       --no-print-directory
            Desactiva -w aunque haya sido indicada expresamente.

       -W fichero, --what-if=fichero, --new-file=fichero, --assume-new=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.

       --warn-undefined-variables
            Avisa en caso de referenciar alguna variable sin definir.

ESTADO DE SALIDA

       GNU  make finaliza con un estado de salida cero si se analizaron sin problema todos los archivos makefile
       y ningún objetivo construido dió error.  Se devolverá un estado de salida uno si se utilizó la opción  -q
       y  make  determina  que  se  necesita  reconstruir  algún  objetivo.  Se devolverá un estado de dos si se
       encontraron errores.

VÉASE TAMBIÉN

       La documentación completa de make se mantiene como manual Texinfo.  Si los programas info  y  make  están
       adecuadamente instalados en su sistema, la orden

              info make

       debe   darle   acceso   al   manual   completo.   Además,   el   manual   también   está   disponible  en
       https://www.gnu.org/software/make/manual/html_node/index.html

EJECUCIÓN PARALELA Y SERVIDOR DE TAREAS

       Mediante la opción -j, el usuario indica a make  que  ejecute  tareas  en  paralelo.  Al  especificar  un
       argumento  numérico  para  -j,  el  usuario  puede  especificar  la cantidad máxima de tareas paralelas a
       ejecutar.

       When the build environment is such that a top level make invokes sub-makes  (for  instance,  a  style  in
       which  each sub-directory contains its own Makefile), no individual instance of make knows how many tasks
       are running in parallel, so keeping the number of tasks under the upper limit would be impossible without
       communication between all the make instances running. While solutions like  having  the  top  level  make
       serve  as a central controller are feasible, or using other synchronization mechanisms like shared memory
       or sockets can be created, the current implementation uses a simple shared pipe.

       This pipe is created by the top-level make process, and passed on to all the sub-makes.   The  top  level
       make process writes N-1 one-byte tokens into the pipe (The top level make is assumed to reserve one token
       for  itself). Whenever any of the make processes (including the top-level make)  needs to run a new task,
       it reads a byte from the shared pipe. If there are no tokens left, it must wait for a token to be written
       back to the pipe. Once the task is completed, the make process writes a token back to the pipe (and thus,
       if the tokens had been exhausted, unblocking the first make process that was waiting to  read  a  token).
       Since only N-1 tokens were written into the pipe, no more than N tasks can be running at any given time.

       If  the  job  to be run is not a sub-make then make will close the jobserver pipe file descriptors before
       invoking the commands, so that the command can not interfere with the jobserver, and the command does not
       find any unusual file descriptors.

ERRORES

       Consulte el capítulo “Problems and Bugs” en The GNU Make Manual.

AUTOR

       Dennis Morse, de la Stanford University, escribió originalmente esta página del Manual.  Mike Frysinger y
       Roland McGrath trabajaron posteriormente en ella.Actualmente la mantiene Paul Smith.

COPYRIGHT

       Copyright © 1992-1993, 1996-2016 Free Software Foundation, Inc.  Este archivo forma parte de GNU make.

       GNU Make es software libre; usted puede redistribuirlo y/o modificarlo bajo los términos de  la  Licencia
       Pública  General  de  GNU publicada por la Free Software Foundation; la versión 3 de la licencia, o (a su
       elección) cualquier versión posterior.

       GNU Make se distribuye con la esperanza de que sea útil, pero  sin  ninguna  garantía;  sin  la  garantía
       implícita de MERCANTABILIDAD o APTIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia Pública General
       de GNU para más detalles.

       Debería  haber recibido una copia de la Licencia Pública General de GNU junto con este programa. Si no es
       asi, consulte http://www.gnu.org/licenses/.

TRADUCCIÓN

       La  traducción  al  español  de  esta  página  del  manual  fue  creada  por  Gerardo  Aburruzaga  García
       <gerardo.aburruzaga@uca.es> y Marcos Fouces <marcos@debian.org>

       Esta  traducción  es  documentación  libre;  lea  la GNU General Public License Version 3 o posterior con
       respecto a las condiciones de copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si encuentra algún error en la traducción de esta página  del  manual,  envíe  un  correo  electrónico  a
       debian-l10n-spanish@lists.debian.org.

GNU                                           28 de febrero de 2016                                      MAKE(1)