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

NOMBRE

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

SINOPSIS

       make [OPTION]... [TARGET]...

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]
            Print debugging information in addition to  normal  processing.   If  the  FLAGS  are
            omitted,  then  the  behavior is the same as if -d was specified.  FLAGS may be a for
            all debugging output (same as using -d), b for basic debugging, v  for  more  verbose
            basic  debugging,  i  for  showing  implicit  rules,  j  for details on invocation of
            commands, and m for debugging  while  remaking  makefiles.   Use  n  to  disable  all
            previous debugging flags.

       -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]
            Specifies the number of jobs (commands) to run simultaneously.  If there is more than
            one -j option, the last one is effective.  If the  -j  option  is  given  without  an
            argument,  make  will  not limit the number of jobs that can run simultaneously. When
            make invokes a sub-make, all instances of make will coordinate to run  the  specified
            number  of  jobs  at  a  time;  see  the  section PARALLEL MAKE AND THE JOBSERVER for
            details.

       --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]
            When  running  multiple  jobs  in  parallel with -j, ensure the output of each job is
            collected together rather than interspersed with output from other jobs.  If type  is
            not  specified  or  is  target  the  output from the entire recipe for each target is
            grouped together.  If type is line the output from each command line within a  recipe
            is  grouped  together.   If  type  is recurse output from an entire recursive make is
            grouped together.  If type is none output synchronization is disabled.

       -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
            Information  about the disposition of each target is printed (why the target is being
            rebuilt and what commands are run to rebuild it).

       -v, --version
            Print the version of the make program plus a copyright,  a  list  of  authors  and  a
            notice that there is no warranty.

       -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  exits  with  a  status of zero if all makefiles were successfully parsed and no
       targets that were built failed.  A status of one will be returned if the -q flag was  used
       and  make  determines that a target needs to be rebuilt.  A status of two will be returned
       if any errors were encountered.

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

       should  give you access to the complete manual. Additionally, the manual is also available
       online at https://www.gnu.org/software/make/manual/html_node/index.html

EJECUCIÓN PARALELA Y SERVIDOR DE TAREAS

       Using the -j option, the  user  can  instruct  make  to  execute  tasks  in  parallel.  By
       specifying  a  numeric argument to -j the user may specify an upper limit of the number of
       parallel tasks to be run.

       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 makeprocesswrites 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 is free software; you can redistribute it and/or modify it under the terms of the
       GNU General Public License as published by the Free Software Foundation; either version  3
       of the License, or (at your option) any later version.

       GNU  Make  is  distributed  in  the hope that it will be useful, but WITHOUT ANY WARRANTY;
       without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR  PURPOSE.
       See the GNU General Public License for more details.

       You should have received a copy of the GNU General Public License along with this program.
       If not, see 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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.