| |
Tipus | sistema de construcció i paquet GNU |
---|---|
Versió inicial | 19 setembre 1994 |
Versió estable | |
Llicència | GNU GPL 2.0 o posterior |
Part de | Projecte GNU i GNU build system |
Característiques tècniques | |
Sistema operatiu | GNU/Linux, BSD, macOS i Unix-like |
Escrit en | Perl |
Equip | |
Creador/s | David MacKenzie (en) |
Desenvolupador(s) | Projecte GNU |
Més informació | |
Lloc web | gnu.org… (anglès) |
Seguiment d'errors | Seguiment d'errors |
Free Software Directory | Automake |
Guia d'usuari | Guia d'usuari |
| |
GNU Automake, també conegut com a Automake, és una eina de programació per automatitzar parts del procés de compilació. La Free Software Foundation manté Automake com un dels programes del Projecte GNU. Forma part del GNU build system. Està escrit en Perl i ha de ser utilitzat amb GNU Autoconf.
El programari genera automàticament fitxers Makefile.in a partir dels fitxers Makefile.am. Cada un dels fitxers Makefile.am conté, entre altres coses, definicions de variables útils per al programari a compilar, com opcions del compilador i de l'enllaçador, les dependències i les seves versions, etc. El fitxer Makefile.in generat és portable i compatible amb les convencions sobre Makefile del GNU Coding Standards.[1]
Automake té com a objectiu que el programador pugui crear un fitxer makefile amb llenguatge d'alt nivell en lloc de fer-ho manualment. En els casos més senzills n'hi ha prou amb:
D'aquesta informació, Automake genera un makefile que permet a l'usuari:
Els makefiles resultants segueixen els GNU Coding Standards.
Automake també genera automàticament informació sobre les dependències, de manera que quan es modifica un fitxer de codi font, la següent invocació de l'ordre make
sabrà quins fitxers de codi font cal recompilar. Si el compilador ho permet, Automake crearà un sistema dinàmic de dependències: cada vegada que es compila un fitxer de codi font, les dependències s'actualitzen. D'aquesta manera s'intenta evitar el problema d'alguns sistemes de control de dependències estàtics, on les dependències són detectades només una vegada quan el programador comença a treballar en el projecte.[2] En aquest cas, si un arxiu de font té una dependència nova (p. ex., si el programador afegeix una nova directiva #include
en un arxiu de codi font escrit en C), en aquest cas hi ha una discrepància entre les dependències reals i les que són utilitzades pel sistema de compilació. El programador llavors hauria de regenerar les dependències, però corre el risc d'oblidar fer-ho.
Automake també pot ajudar amb la compilació de les biblioteques generant automàticament els makefiles que invocaran a GNU Libtool. Per tant, el programador no ha de saber com cridar directament a Libtool, i el projecte es beneficia de l'ús d'una eina per crear biblioteques portables.