Documentation for a newer release is available. View Latest

Herramientas de desarrollo

GNU make 4.3

GNU make 4.3 incluye soluciones de muchos defectos, características nuevas y mejoras de rendimiento.

Retro-incompatibilidad

Compatibilidad de parches para hacer la versión 3.8 es retirado en este lanzamiento, haciendo que Fedora hace lo mismo que otras distribuciones.

Los propietarios del paquete que dependen de las características específicas de los archivos Makefile de versiones anteriores de GNU Make (incluidos los parches de compatibilidad para la versión 3.8 que estamos lanzando) podrían tener problemas de compatibilidad y necesitar ajustar sus archivos Makefile. Los paquetes compilados antes de esta actualización no se verán afectados.

Retroincompatibilidad específica:

* AVISO: Incompatibilidad hacia atrás
  Número de signos (#) aparentemente internos a una referencia de macro o
  invocación de función no introduce más comentarios y no sería escapado
  con barras torcidas traseras por tanto una invocación tal como:
    foo := $(shell echo '#')
  es legal.  Anteriormente el signo numérico necesita ser escapado, p.e.:
    foo := $(shell echo '\#')
  Ahora esto más tarde resolverá a "\#".  Si quieres escribir makefiles
  portables a ambas versiones, asigna el signo numérico a una variable:
    H := \#
    foo := $(shell echo '$H')
  Esto fue invocado para ser reparado en 3.81, pero no era, por alguna razón.
  Para detectar este cambio busca 'nocomment' en la variable .FEATURES

* ADVERTENCIA: Incompatibilidad hacia atrás.
Anteriormente, añadir '+=' a una variable vacía resultaba en un valor que
comenzaba con un espacio. Ahora, el espacio inicial solo se añade si la variable
ya contiene algún valor. De igual forma, añadir una cadena vacía no añade un
espacio final.

Características nuevas

  • Grouped explicit targets Pattern rules have always had the ability to generate multiple targets with a single invocation of the recipe. It’s now possible to declare that an explicit rule generates multiple targets with a single invocation. To use this, replace the : token with &: in the rule. To detect this feature search for grouped-target in the .FEATURES special variable.

  • .EXTRA_PREREQS variable Words in this variable are considered prerequisites of targets but they are not added to any of the automatic variable values when expanding the recipe. This variable can either be global (applies to all targets) or a target-specific variable. To detect this feature search for extra-prereqs in the .FEATURES special variable.

  • Makefiles can now specify the -j option in their MAKEFLAGS variable and this will cause make to enable that parallelism mode.

  • GNU make will now use posix_spawn() on systems where it is available. If you prefer to use fork/exec even on systems where posix_spawn() is present, you can use the --disable-posix-spawn option to configure.

  • Error messages printed when invoking non-existent commands have been cleaned up and made consistent.

  • A new option --no-silent has been added, that cancels the effect of the -s/--silent/--quiet flag.

  • A new option -E has been added as a short alias for --eval.

  • Interoperate with newer GNU libc and musl C runtime libraries.

See the upstream release announcement for more detailed information about this release.

Bugs fixed

A complete list of bugs fixed in this version is available here make - Bugs