GNU build system

De Viquipèdia
Salta a: navegació, cerca
Infotaula de programariGNU build system
Tipus eina de programació
Llicència GNU General Public License i GPL linking exception
Part de GNU toolchain
Modifica dades a Wikidata

GNU build system,  també conegut com a Autotools, és un conjunt d'eines de programació dissenyades pel Projecte GNU per ajudar a la creació de paquets de codi font portable a diferents sistemes Unix-like.[1]

Autotools és part de GNU toolchain i és àmpliament utilitzat en el món del programari lliure.[2] Tot i que les seves eines estan sota la llicència GNU GPL amb algunes excepcions especials, és permès  el seu ús per crear programari propietari.[3][4]

Components[modifica]

Esquema de flux de autoconf i automake

Autotools està format per les eines del Projecte GNU Autoconf, Automake, i Libtool.[5] Altres eines sovint utilitzades  son GNU make , GNU gettext, pkg-config, i  GNU Compiler Collection (GCC).

GNU Autoconf[modifica]

Article principal: GNU Autoconf

Autoconf genera un script  configure  basat en la llista d'instruccions continguda en un fitxer anomenat configure.ac. L'script configure, quan s'executa, escaneja el context de construcció i genera un script subordinat anomenat config.status  que, al seu torn, converteix altres fitxers d'entrada, generalment Makefile.in, en fitxers de sortida Makefile apropiats per a l'entorn. Finalment, amb l'eina Make, utilitza els fitxers Makefile per a generar fitxers executables a partir del codi font.

La complexitat de Autotools reflecteix la varietat de circumstàncies en què pot ser construït el codi font.

  • Si canvia un arxiu de codi font n'hi ha prou amb tornar a executar make que només recompila la part del codi font afectada pel canvi.
  • Si canvia un fitxer .in llavors basta amb tornar a executar config.status i make.
  • Si es copia el codi font a un altre ordinador llavors n'hi ha prou amb executar configure (que executa config.status) i make. Per aquesta raó el codi font que utilitza Autotools normalment és distribuït sense els fitxers que genera configure.
  • Si hi ha un canvi profund del codi font, llavors han de substituir-se  els fitxers configure.ac  i .in. Per a processar arxius, Autoconf utilitza la implementació del sistema de macros «m4» del Projecte GNU.

Autoconf porta diverses eines auxiliars c com Autoheader, usat per a gestionar els fitxers de capçalera de C o Autoscan, que pot crear un fitxer inicial d'entrada per Autoconf.

GNU Automake[modifica]

Article principal: GNU Automake

Automake ajuda a crear fitxers portables Makefile, que al seu torn són processats amb la utilitat make, que pren  com a entrada un fitxer Makefile.am i el converteix en Makefile.in, que utilitza l'script de configuració per generar el fitxer Makefile de sortida.[6] Automake també porta a terme la revisió automàtica de dependències ; cada cop que es compila un fitxer de codi font, grava la llista de dependències (per exemple, els arxius de capçalera C). Posteriorment, cada vegada que s'executa make i si sembla que ha canviat cap dependència, es reconstruiran els arxius dependents.

GNU Libtool[modifica]

Article principal: GNU Libtool

Libtool ajuda a gestionar la creació de biblioteques estàtiques i dinàmiques en diversos sistemes operatius Unix-like. Libtool ho aconsegueix amb l'abstracció del procés de creació de les biblioteques ocultant les diferències entre els diferents sistemes (per exemple, entre sistemes GNU/Linux i Solaris).[7]

Gnulib[modifica]

Gnulib és una col·lecció (biblioteca informàtica) de subrutines de programari que simplifica el procés de de creació del programari que utilitza Autoconf i Automake, portable a una àmplia gamma de sistemes operatius.

Ús[modifica]

Autotools ajuda als equips de desenvolupament de programari a escriure programari multiplataforma i posar-lo a disposició d'una comunitat d'usuaris molt més àmplia incloent-hi  el codi font per a aquells usuaris que desitgen construir el programari ells mateixos. En la majoria dels casos, els usuaris només han d'executar l'script configure subministrat (amb l'única dependència necessària, l'existència d'un shell d'Unix compatible amb Bourne Shell),  i un programa make.[8] Tampoc cal que tinguin les Autotools instal·lades en l'ordinador.

Referències[modifica]

  1. Enginyeria del programari en entorns de programari lliure, 2006, p. 153.
  2. «GNU build system (autotools)». Acacha.org. [Consulta: 10 març 2016].
  3. «AUTOCONF CONFIGURE SCRIPT EXCEPTION» (en anglès). Gnu.org, 18-08-2009. [Consulta: 9 març 2016].
  4. «libtool HACKING» (en anglès). Gnu.org. [Consulta: 9 març 2016]. inclou totes les excepcions de llicència pertinents.
  5. «Introducing the GNU tools» (en anglès). autotoolset.sourceforge.net. [Consulta: 9 març 2016].
  6. Enginyeria del programari en entorns de programari lliure, 2006, p. 165.
  7. Enginyeria del programari en entorns de programari lliure, 2006, p. 169.
  8. «Introducing the GNU Build System» (en anglès). Gnu.org. [Consulta: 9 març 2016].

Vegeu també[modifica]

Bibliografia[modifica]

Enllaços externs[modifica]