Autoconf | |
---|---|
| |
Tip de | software-ul instrumentului |
Dezvoltator | proiect GNU |
Scris in | perl , m4 |
Sistem de operare | software multiplatformă |
Prima editie | 1991 |
ultima versiune |
|
Licență | GPL |
Site-ul web | gnu.org/software/autocon… |
Fișiere media la Wikimedia Commons |
Autoconf este un utilitar pentru crearea de scripturi de configurare ( configure) care configurează automat pachetele sursă pentru a rula pe sisteme de operare asemănătoare Unix .
Scripturile de configurare generate de Autoconf nu necesită interacțiunea utilizatorului pentru a rula; de obicei, nici măcar nu necesită ca argumente care specifică tipul de sistem să fie date. În schimb, astfel de scripturi testează prezența fiecărei caracteristici de care ar putea avea nevoie un anumit pachet. În timpul executării fiecăreia dintre verificări, scripturile imprimă un raport cu privire la verificările efectuate. Astfel, aceste scripturi funcționează bine pe sistemele care sunt hibrizi sau variante specializate ale majorității versiunilor UNIX. Astfel, nu este nevoie să mențineți fișiere care listează toate caracteristicile tuturor versiunilor fiecărei variante de UNIX.
Pentru fiecare pachet software pe care Autoconf îl folosește, din șablonul este generat un script de configurare care listează caracteristicile sistemului de care pachetul are nevoie sau le poate folosi. Odată ce codul shell care recunoaște și gestionează o caracteristică este scris, Autoconf permite ca acel cod să fie utilizat în toate pachetele care pot folosi (sau au nevoie) de caracteristică. Dacă mai târziu, dintr-un motiv oarecare, trebuie să schimbați codul shell, atunci modificările vor trebui făcute doar într-un singur loc; toate scripturile de configurare pot fi recreate automat pentru a reflecta modificările codului.
Există mai multe sarcini diferite legate de crearea de software portabil care nu pot fi rezolvate în prezent de Autoconf. Acestea includ generarea automată a fișierelor Makefile cu toate țintele standard de care aveți nevoie și furnizarea de înlocuiri pentru funcțiile standard de bibliotecă și fișierele antet pe sistemele cărora le lipsesc acele funcții sau fișiere. Cu toate acestea, se lucrează în această direcție și aceste caracteristici pot apărea în versiunile viitoare.
Autoconf impune unele restricții asupra numelor macro care sunt utilizate în directivele #ifdefprogramului C.
Scriptarea cu Autoconf necesită programul GNU m4 . Acesta profită de caracteristicile care nu se găsesc în unele versiuni UNIX ale programului m4. De asemenea, depășește limitele interne ale unor versiuni de m4, inclusiv GNU m4 versiunea 1.0. Trebuie să utilizați versiunea 1.1 (sau mai recentă) a programului GNU m4. Versiunile 1.3 și ulterioare vor rula mult mai rapid decât versiunile 1.1 sau 1.2.
CFLAGS și CXXFLAGS sunt fie nume de variabile de mediu, fie variabile Makefile care sunt setate pentru a specifica opțiuni suplimentare care sunt transmise compilatorului în timpul generării software-ului .
Aceste variabile sunt de obicei specificate în interiorul Makefile și apoi servesc ca ajutor pentru linia de comandă atunci când compilatorul este invocat. Dacă nu sunt specificate în Makefile, atunci vor fi citite din mediu dacă sunt specificate acolo. Instrumente precum scriptul de configurare ./configure al utilitarului autoconf le preiau de obicei din mediu și le scriu în fișierele Makefile pe care le generează.
CFLAGS vă permite să adăugați opțiuni pentru compilatorul C , în timp ce CXXFLAGS ar trebui să fie utilizat atunci când apelați compilatorul C++ . În mod similar, variabila CPPFLAGS este specificată pentru parametrii trecuți la preprocesorul C.
Aceste variabile sunt utilizate în principal pentru a specifica opțiunile compilatorului la optimizare sau depanare , de exemplu: -g, -O2sau (care este specific GCC ) -march=athlon.
Un utilitar care oferă o interfață pentru obținerea de informații despre bibliotecile software instalate, inclusiv opțiuni pentru compilatorul C sau C++ , opțiuni pentru linker și versiunea pachetului [2] . Informațiile sunt preluate din fișierul .pc creat de managerul de pachete (ex . RPM sau deb ). Scrisă inițial de James Henstridge, apoi transcrisă de Havok Pennington .