Autoverktyg

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 27 januari 2018; kontroller kräver 13 redigeringar .

Autotools ( MFA [ ˈ ɔ ː t ə ʊ t u ː l z ]; från  engelska  -  "autotools") är GNUs projektbyggsystem , en uppsättning mjukvaruverktyg utformade för att stödja portabilitet av programkällkod mellan UNIX-liknande system [ 1 ] .

Att portera kod från ett system till ett annat kan vara en skrämmande uppgift. Olika implementeringar av C-kompilatorn kan variera avsevärt: vissa språkfunktioner kan saknas, ha ett annat namn eller finnas i olika bibliotek. #ifProgrammeraren kan lösa detta problem med hjälp av till exempel makron och förprocessordirektiv #ifdefoch andra. Men i det här fallet måste användaren som kompilerar programmet på sitt system definiera alla dessa makron, vilket inte är så lätt, eftersom det finns många olika distributioner och systemvariationer. Autoverktyg anropas av en sekvens av kommandon ./configure && make && make installoch löser dessa problem automatiskt.

Byggsystemet GNU Autotools är en del av GNUs verktygskedja och används flitigt i många projekt med öppen källkod . Byggverktygen distribueras under GNU General Public License och kan användas i kommersiella projekt [3] .

Komponenter i GNU Autotools

Byggverktygen inkluderar Autoconf , Automake och Libtool [4] . Andra verktyg som används med GNU Autotools är make , gettext , pkg-config , och naturligtvis GCC och binutils .

Autoconf läser filen configure.ac(eller en äldre configure.in ) och genererar ett konfigurationsskript som heter configure. Autoconf använder GNU-implementeringen av makrospråket m4 för att bearbeta filer .

Det genererade konfigurationsskriptet körs av användaren. Skriptet läser filer med filtillägget " " .intill exempel Makefile.in, bearbetar dem (ta reda på alla funktioner i systemet) och får det slutliga resultatet - Makefile.

Autoconf använder några hjälpprogram som är skrivna för att göra saker enklare. Till exempel arbetar Autoheader med header-filer , autoscan undersöker koden för typiska portabilitetsproblem och skapar initialen configure.ac.

GNU Automake

Automake läser filerna Makefile.amoch skapar en bärbar Makefile, det vill säga Makefile.in, som sedan, efter att ha bearbetats av konfigurationsskriptet, blir och används av makeMakefile -verktyget .

GNU libtool

Libtool hanterar skapandet av statiska och dynamiska bibliotek på olika UNIX-liknande operativsystem.

Gnulib

Gnulib förenklar processen att skapa bärbara program med Autoconf och Automake.

Begränsningar för GNU-byggverktygen

Byggverktygen använder sh- skript för anpassning vid byggtid.

Byggverktygen kan användas både för att skapa program för samma arkitektur som byggs på, och för att korskompilera för en annan arkitektur. [1] . Det är också möjligt att ställa in en build för att kompilera på Windows med MinGW eller genom att installera Cygwin eller MSYS ovanpå Windows för att ge den nödvändiga kompatibilitetsnivån för att köra konfigurationsskriptet.

Byggverktygen och installationsskriptet tenderar att vara långsamma eftersom de anropar olika program, såsom C-kompilatorn, många gånger för att kontrollera förekomsten av olika bibliotek, rubrikfiler och språkfunktioner.

Se även

Fotnoter

  1. Dokumentation för GNU Build System . Tillträdesdatum: 9 januari 2011. Arkiverad från originalet den 23 december 2010.
  2. libtool HACKING Arkiverad 21 juli 2011 på Wayback Machine inklusive alla relevanta licensundantag
  3. Lär dig GNU-utvecklingsverktygen: Förord ​​. Hämtad 6 november 2010. Arkiverad från originalet 1 december 2010.

Externa länkar