Autokonference - Autoconf
![]() | |
Původní autoři | David Mackenzie |
---|---|
Vývojáři | Projekt GNU |
První vydání | 1991 |
Stabilní uvolnění | 2.69 / 24. dubna 2012 |
Úložiště | ![]() |
Operační systém | Cross-platform |
Typ | Programovací nástroj |
Licence | GNU GPL |
webová stránka | www |
GNU Autoconf je nástroj pro výrobu konfigurovat skripty pro vytváření, instalaci a balení softwaru v počítačových systémech, kde a Bourneova skořápka je k dispozici.
Autoconf je agnostický ohledně použitých programovacích jazyků, ale často se používá pro projekty, které používají C, C ++, Fortran, Fortran 77, Erlang nebo Cíl-C.
Konfigurační skript konfiguruje softwarový balíček pro instalace na konkrétním cílovém systému. Po spuštění řady testů v cílovém systému se vygeneruje skript konfigurace hlavičkové soubory a a makefile ze šablon, a tím přizpůsobit softwarový balíček pro cílový systém. Dohromady s Automake a Libtool, Autoconf tvoří GNU Build System, který zahrnuje několik dalších nástrojů, zejména Autoheader.
Přehled použití

Vývojář určuje požadované chování konfiguračního skriptu zapsáním seznamu pokynů do souboru GNU m4 jazyk v souboru s názvem „configure.ac“. Knihovna předdefinovaných m4 makra je k dispozici k popisu běžných pokynů ke konfiguraci skriptu. Autoconf převádí pokyny v souboru „configure.ac“ na přenosný skript pro konfiguraci. Systém, který bude stavbu provádět, nemusí mít nainstalovanou funkci autoconf: autoconf je potřeba pouze k vytvoření skriptu pro konfiguraci, který je obvykle dodáván se softwarem.
Dějiny
Autoconf zahájil v létě 1991 David Mackenzie, aby podpořil jeho práci v Free Software Foundation. V následujících letech se rozrostla o vylepšení od řady autorů a stala se nejpoužívanějším konfiguračním systémem sestavení pro psaní přenosných bezplatných nebo open-source software.
Přístup
Autoconf je podobný balíku Metaconfig, který používá Perl. The dělám systém dříve používaný Systém X Window (až do X11R6.9) úzce souvisí, ale má jinou filozofii.
Přístup Autoconf k přenosnost je otestovat funkce, ne pro verze. Například nativní překladač jazyka C na systému SunOS 4 nepodporoval ISO C.. Je však možné, aby uživatel nebo správce nainstaloval kompilátor kompatibilní s normou ISO C. Čistý přístup založený na verzi by nezjistil přítomnost kompilátoru ISO C, ale přístup k testování funkcí by byl schopen objevit kompilátor ISO C, který si uživatel nainstaloval. Důvodem tohoto přístupu je získání následujících výhod:
- konfigurační skript může získat přiměřené výsledky na novějších nebo neznámých systémech
- to umožňuje správci přizpůsobit své stroje a nechat skript konfigurace využívat přizpůsobení
- není třeba sledovat minutové podrobnosti verzí, čísla oprav atd., abyste zjistili, zda je konkrétní funkce podporována nebo ne
Autoconf poskytuje rozsáhlou dokumentaci o nepřenosnosti mnoha konstrukcí skořápek POSIX na starší skořápky a chyby v nich. Poskytuje také M4SH, náhradu makra syntaxe prostředí založenou na makrech.[1]
Kritika
Existuje určitá kritika, která uvádí, že Autoconf používá zastaralé technologie, má spoustu starších omezení a zbytečně komplikuje jednoduché scénáře pro autora configure.ac skripty. Často citované slabé stránky Autoconfu jsou zejména:
- Obecná složitost použité architektury, většina projektů používá více opakování.[2][3]
- Vygenerovaná „konfigurace“ je zapsána Bourneova skořápka a tedy generování Makefile je pomalé.
- Někteří lidé si myslí, že skripty „konfigurace“ generované automatickou konfigurací poskytují pouze ručně ovládané rozhraní příkazového řádku bez jakékoli standardizace.[4] I když je pravda, že někteří vývojáři nerespektují běžné konvence, takové konvence existují a jsou široce používány.[5]
- M4 je neobvyklý a pro mnoho vývojářů neznámý. Vývojáři se to budou muset naučit, aby rozšířili automatickou konfiguraci o nestandardní kontroly.[4][6]
- Slabá zpětná a dopředná kompatibilita vyžaduje souhrnný skript.[7]
- Automaticky generované skripty jsou obvykle velké a poměrně složité. I když produkují rozsáhlé protokolování, jejich ladění může být stále obtížné.
Kvůli těmto omezením několik projektů, které používaly GNU Build System, přešlo na různé buildovací systémy, jako např CMake a SCons.[2][8]
Viz také
- CMake - Alternativní systém sestavení
- Meson Další systém sestavení
- Nakonfigurujte skript
- GNU build systém
- pkg-config - Detekce závislostí balíků
Reference
- ^ „Přenosná skořápka“. Autokonference. Citováno 20. ledna 2020.
- ^ A b Neundorf, Alexander (2006-06-21). „Proč se projekt KDE přepnul na CMake - a jak“.
- ^ Kamp, Poul-Henning (2012-08-15). „Generation Lost in the Bazaar“. Fronta ACM. 10 (8).
- ^ A b McCall, Andrew (21.06.2003). „Zastavte šílenství autoconf! Proč potřebujeme nový systém sestavení“.
- ^ "Normy kódování GNU".
- ^ Kamp, Poul-Henning (2010-04-20). „Zavolal jsi jim autokrap nástroje?". Archivovány od originál dne 2017-09-11. Citováno 2017-08-16.
- ^ Dickey, Thomas. "proč stále používám autoconf 2.13".
- ^ „Archivovaná kopie“. Archivovány od originál dne 02.12.2008. Citováno 2009-06-10.CS1 maint: archivovaná kopie jako titul (odkaz)