Autoconf

Flödesschema

Autoconf är ett verktyg som producerar skalskript som automatiskt konfigurerar mjukvarukällkod så att den anpassas till många olika Unix-liknande system. Konfigurationsskripten som Autoconf producerar använder inte Autoconf när de utförs, så användaren behöver inte ha Autoconf installerat på sitt system för att installera mjukvarupaket som använder Autoconf.

Tillsammans med Automake och Libtool utgör Autoconf GNUs byggsystem.

Autoconf använder skriptspråket GNU m4 för att transformera filen 'autoconf.ac', skriven av mjukvaruutvecklaren, till en portabel skalskriptfil kallad 'configure', som skall köras av användaren vid installation. 'configure' körs icke-interaktivt, och genererar include-filer samt så kallade makefiler från fördefinierade mallar.

Metod

Autoconf liknar Metaconfig-paketet använt av Perl. imake-systemet som tidigare användes av X Windows är nära relaterat men har en annan grundmetod.

Autoconfs angreppssätt för att uppnå portabel källkod är att testa om den eftersökta funktionen finns på systemet och fungerar, inte att undersöka om den använda versionen av systemet skall stöda funktionen i fråga. Fördelarna med denna metod är:

  • konfigurationsskripten genererar rimliga resultat på nya/okända system
  • extra funktioner installerade av systemadministratören kan utnyttjas till fullo
  • inget behov av att hålla reda på funktionalitet hos olika versioner av system

Den primära nackdelen är att många tester inte fungerar vid korskompilering, det vill säga när man kompilerar ett paket för användning på en annan plattform än som kompileringen utförs på.

Externa länkar

  • GNU Autoconfs hemsida
  • GNU Autoconf makroarkiv
  • Onlineversion av Getboken
  • Genomgång "Learning Autoconf and Automake" av Eleftherios Gkioulekas
  • Ännu en genomgång.
  • Article "Using Automake and Autoconf with C++" av Murray Cumming
  • Autotoolset home page
  • Genomgång "Using Autoconf for fun and profit" av Axel Liljencrantz går igenom hur man utför vanliga, användbara tester, som att kontrollera närvaron av huvudfiler samt tillhandahålla reservimplementationer för saknade funktioner med hjälp av Autoconf