Autokonf | |
---|---|
Autoconf 2.68 konfigurerer Wine til at bygge | |
Type | værktøjssoftware |
Udvikler | GNU projekt |
Skrevet i | perl , m4 |
Operativ system | software på tværs af platforme |
Første udgave | 1991 |
nyeste version |
|
Licens | GPL |
Internet side | gnu.org/software/autocon… |
Mediefiler på Wikimedia Commons |
Autoconf er et værktøj til at oprette konfigurationsscripts ( ) configure, der automatisk konfigurerer kildepakker til at køre på Unix-lignende operativsystemer .
Konfigurationsscripts genereret af Autoconf kræver ikke brugerinteraktion for at køre; normalt kræver de ikke engang, at der gives argumenter, der specificerer systemtypen. I stedet tester sådanne scripts for tilstedeværelsen af hver funktion, som en given pakke kan have brug for. Under udførelsen af hver af kontrollerne udskriver scripterne en rapport om de kontroller, der udføres. Disse scripts fungerer således godt på systemer, der er hybrider eller specialiserede varianter af de fleste UNIX-varianter. Der er således ingen grund til at vedligeholde filer, der viser alle funktionerne i alle versioner af hver variant af UNIX.
For hver softwarepakke, som Autoconf bruger, genereres et konfigurationsscript fra skabelonen, der viser de systemfunktioner, som pakken har brug for eller kan bruge. Når først shell-koden, der genkender og håndterer en funktion, er skrevet, tillader Autoconf, at den kode kan bruges i alle pakker, der kan bruge (eller har brug for) funktionen. Hvis du senere af en eller anden grund skal ændre shell-koden, skal ændringerne kun foretages ét sted; alle opsætningsscripts kan automatisk genskabes for at afspejle kodeændringer.
Der er flere forskellige opgaver relateret til at skabe bærbar software, som i øjeblikket ikke kan løses af Autoconf. Disse inkluderer automatisk generering af Make- filer med alle de standardmål, du har brug for, og udskiftning af standardbiblioteksfunktioner og header-filer på systemer, der mangler disse funktioner eller filer. Arbejdet i denne retning er dog i gang, og disse funktioner kan forekomme i fremtidige versioner.
Autoconf pålægger nogle begrænsninger på makronavne, der bruges i C#ifdef -programdirektiver .
Scripting med Autoconf kræver GNU m4 -programmet . Det udnytter funktioner, der ikke findes i nogle UNIX-versioner af m4-programmet. Det overskrider også de interne grænser for nogle versioner af m4, inklusive GNU m4 version 1.0. Du skal bruge version 1.1 (eller nyere) af GNU m4-programmet. Version 1.3 og nyere vil køre meget hurtigere end version 1.1 eller 1.2.
CFLAGS og CXXFLAGS er enten miljøvariablenavne eller Makefile- variabler , der er indstillet til at specificere yderligere muligheder , der sendes til compileren under softwaregenerering .
Disse variabler specificeres normalt inde i Makefilen og tjener derefter som en hjælper til kommandolinjen, når compileren startes. Hvis de ikke er angivet i Makefilen, så vil de blive læst fra miljøet, hvis de er angivet der. Værktøjer som autoconf-værktøjets ./configure-konfigurationsscript tager typisk disse fra miljøet og skriver dem ind i de Make-filer, de genererer.
CFLAGS giver dig mulighed for at tilføje muligheder for C -kompileren , mens CXXFLAGS formodes at blive brugt, når du kalder C++-kompileren . På samme måde er CPPFLAGS- variablen specificeret for parametre, der sendes til C-præprocessoren .
Disse variabler bruges hovedsageligt til at specificere kompileringsmuligheder ved optimering eller fejlretning , for eksempel: -g, -O2eller (som er specifik for GCC ) -march=athlon.
Et værktøj, der giver en grænseflade til at få information om installerede softwarebiblioteker, inklusive muligheder for C- eller C++- kompileren , muligheder for linkeren og pakkeversion [2] . Oplysningerne er taget fra .pc-filen oprettet af pakkeadministratoren (f.eks . RPM eller deb ). Oprindeligt skrevet af James Henstridge og derefter transskriberet af Havok Pennington .