Automatické nářadí

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 27. ledna 2018; kontroly vyžadují 13 úprav .

Autotools ( MFA [ ˈ ɔ ː t ə ʊ t u ː l z ]; z  angličtiny  -  „autotools“) je systém pro sestavení projektu GNU , sada softwarových nástrojů navržených pro podporu přenositelnosti zdrojového kódu programu mezi systémy podobnými UNIXu [ 1] .

Přenesení kódu z jednoho systému do druhého může být skličující úkol. Různé implementace kompilátoru C se mohou výrazně lišit: některé jazykové funkce mohou chybět, mít jiný název nebo být v různých knihovnách. Programátor může tento problém vyřešit například pomocí maker a direktiv preprocesoru #ifa #ifdefdalších. Ale v tomto případě uživatel, který program kompiluje na svém systému, bude muset definovat všechna tato makra, což není tak snadné, protože existuje mnoho různých distribucí a variací systému. Autotools jsou volány posloupností příkazů ./configure && make && make installa řeší tyto problémy automaticky.

GNU Autotools build systém je součástí GNU toolchain a je široce používán v mnoha open source projektech . Nástroje pro sestavení jsou distribuovány pod GNU General Public License a mohou být použity v komerčních projektech [3] .

Komponenty GNU Autotools

Nástroje pro sestavení zahrnují Autoconf , Automake a Libtool [4] . Další nástroje používané s GNU Autotools jsou make , gettext , pkg-config a samozřejmě GCC a binutils .

Autoconf načte soubor configure.ac(nebo starší configure.in ) a vygeneruje konfigurační skript s názvem configure. Autoconf používá ke zpracování souborů implementaci GNU jazyka maker m4 .

Vygenerovaný konfigurační skript spouští uživatel. .inSkript například načte soubory s příponou " " Makefile.in, zpracuje je (zjistí všechny vlastnosti systému) a získá konečný výsledek - Makefile.

Autoconf používá některé pomocné programy, které jsou napsány pro usnadnění práce. Například Autoheader pracuje se soubory záhlaví , autoscan prozkoumá kód pro typické problémy s přenositelností a vytvoří počáteční soubor configure.ac.

GNU Automake

Automake načte soubory Makefile.ama vytvoří portable Makefile, tj. Makefile.in, který se poté po zpracování konfiguračním skriptem stane a je používán Makefileobslužným programem make .

GNU libtool

Libtool spravuje vytváření statických a dynamických knihoven na různých operačních systémech podobných UNIXu .

Gnulib

Gnulib zjednodušuje proces vytváření přenosných programů pomocí Autoconf a Automake.

Omezení sestavovacích nástrojů GNU

Nástroje pro sestavení používají skripty sh pro přizpůsobení v době sestavování.

Nástroje pro sestavení lze použít jak k vytváření programů pro stejnou architekturu, na které se staví, tak ke křížové kompilaci pro jinou architekturu. [1] . Je také možné nastavit sestavení pro kompilaci ve Windows pomocí MinGW nebo instalací Cygwin nebo MSYS nad Windows, aby byla zajištěna požadovaná úroveň kompatibility pro spuštění konfiguračního skriptu.

Nástroje pro sestavení a instalační skript bývají pomalé, protože často volají různé programy, jako je kompilátor C, aby zkontrolovaly přítomnost různých knihoven, hlavičkových souborů a jazykových funkcí.

Viz také

Poznámky pod čarou

  1. Dokumentace GNU Build System . Datum přístupu: 9. ledna 2011. Archivováno z originálu 23. prosince 2010.
  2. libtool HACKING Archivováno 21. července 2011 na Wayback Machine včetně všech souvisejících licenčních výjimek
  3. Seznámení s vývojovými nástroji GNU: Předmluva . Získáno 6. listopadu 2010. Archivováno z originálu 1. prosince 2010.

Externí odkazy