GNU Automake

De Viquipèdia
Salta a: navegació, cerca
Infotaula de programariGNU Automake
Heckert GNU white.svg
Desenvolupador(s) Projecte GNU
Versió estable

1.15

/ 6 Gener 2015; fa 2 anys (2015-01-06)[1]
Escrit en Perl
Sistema operatiu Unix-like
Tipus eina de programació
Llicència GNU GPL
Part de Projecte GNU
Més informació
Lloc web gnu.org/software/automake
Codi font Codi font
Modifica dades a Wikidata

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. Automake està escrit en Perl i ha de ser utilitzat amb GNU Autoconf.

Automake 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.[2]

Procés[modifica | modifica el codi]

Esquema de flux de autoconf i automake

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:

  • Una línia que declara el nom de l'aplicació a crear;
  • Una llista dels fitxers amb el codi font;
  • Una llista d'opcions de la línia d'ordres per donar-li al compilador;
  • Una llista d'opcions de la línia d'ordres per passar a l'enllaçador (quines biblioteques son necessàries i en que directori es poden trobar).

D'aquesta informació, Automake genera un makefile que permet a l'usuari:

  • Compilar el programa;
  • Netejar (per exemple, treure els arxius que resulten de la recopilació);
  • Instal·lar el programa en els directoris estàndards;
  • Desinstal·lar el programa des d'on estava instal·lat;
  • Crear un arxiu per la distribució del programa (anomenat generalment tarball);
  • Provar l'autonomia del fitxer, en particular si el programa pot ser compilat en un directori diferent al del codi font.

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.[3]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.

Referències[modifica | modifica el codi]

  1. Lattarini, Stefano. «GNU Automake 1.15 released» (en anglès). Gnu.org, 06-01-2015. [Consulta: 22 abril 2016].
  2. Automake - GNU Project Documentation
  3. Dependency Tracking in Automake, Automake Manual

Vegeu també[modifica | modifica el codi]

Bibliografia[modifica | modifica el codi]

  • Vaughn, Gary V.; Elliston, Ben; Tromey, Tom; Taylor, Ian Lance. GNU Autoconf, Automake, and Libtool (en anglès). Sams Publishing, 6 octubre 2000. ISBN 1-57870-190-2. 

Enllaços externs[modifica | modifica el codi]