Automake - Automake - Wikipedia
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
![]() | |
Vývojáři | Projekt GNU |
---|---|
První vydání | 28. května 1996 |
Stabilní uvolnění | 1.16.2 / 21. března 2020[1] |
Úložiště | ![]() |
Operační systém | Cross-platform |
Typ | Programovací nástroj |
Licence | GNU General Public License |
webová stránka | www![]() |
v vývoj softwaru, GNU Automake je programovací nástroj automatizovat části procesu kompilace. Usnadňuje obvyklé problémy s kompilací. Například ukazuje na potřebné závislosti.
Automaticky generuje jeden nebo více Makefile.in ze souborů s názvem Makefile.am. Každý Makefile.am obsahuje mimo jiné užitečné definice proměnných pro kompilovaný software, jako např překladač a linker příznaky, závislosti a jejich verze atd.Makefile.in"jsou přenosné a vyhovují konvencím Makefile v Normy kódování GNU a mohou být používány konfigurovat skripty generovat funkční Makefile.[2]
The Free Software Foundation udržuje automake jako jeden z GNU programů a jako součást GNU build systém. Používá se k sestavení několika aplikací a knihoven GNU, například GTK,[3] stejně jako software bez GNU, jako je XCircuit.[4]
Proces

Automake si klade za cíl umožnit programátorovi napsat makefile v jazyce vyšší úrovně, místo aby musel celý makefile psát ručně. V jednoduchých případech stačí uvést:
- Řádek, který deklaruje název programu, který se má sestavit
- Seznam zdrojových souborů
- Seznam možností příkazového řádku, které mají být předány do překladač (například ve kterém budou nalezeny hlavičkové soubory adresářů)
- Seznam možností příkazového řádku, které mají být předány do linker (které knihovny program potřebuje a v jakých adresářích se nacházejí)
Automake se také stará o automatické generování závislost informace,[5] takže při změně zdrojového souboru bude další vyvolání příkazu make vědět, které zdrojové soubory je třeba znovu zkompilovat. Pokud to kompilátor umožňuje, Automake se pokusí vytvořit závislostní systém dynamický: při každém kompilaci zdrojového souboru se závislosti tohoto souboru aktualizují tak, že požádají kompilátor, aby znovu vygeneroval seznam závislostí souboru. Jinými slovy, sledování závislostí je vedlejším účinkem procesu kompilace.
To se pokusí vyhnout problému s některými systémy statické závislosti, kde jsou závislosti detekovány pouze jednou, když programátor začne pracovat na projektu.[6] V takovém případě, pokud zdrojový soubor získá novou závislost (např. Pokud programátor přidá novou direktivu #include do C zdrojový soubor), poté je zaveden rozpor mezi skutečnými závislostmi a těmi, které používá kompilační systém. Programátor by pak měl regenerovat závislosti, ale riskuje, že na to zapomene.
V obecném případě automake generuje závislosti prostřednictvím přiloženého skriptu dekompilace, který vhodně vyvolá kompilátor nebo se vrátí zpět nezávislý. Pokud je kompilátor dostatečně nejnovější verzí gcc, avšak automake vloží kód generování závislostí pro přímé volání gcc.
Design
Automake je napsán v Perl a musí být použit s GNU Autoconf.[2] Automake obsahuje následující příkazy:
- aclocal
- automake
aclocal, nicméně, je univerzální program, který může být užitečný pro uživatele autoconf. The Sbírka překladačů GNU například použití aclocal i když jeho makefile je psán rukou.
Stejně jako Autoconf, ani Automake není úplně zpětně kompatibilní. Například projekt vytvořený pomocí nástroje automake 1.13 nemusí nutně fungovat s nástrojem automake 1.14.[7] To může vyžadovat, aby složité projekty obsahovaly více verzí.
Viz také
Poznámky
- ^ Meyering, Jim (21. března 2020). „automake-1.16.2 vydáno [stabilní]“ (Poštovní seznam). Projekt GNU. Citováno 22. března 2020.
- ^ A b „Automake“. GNU. Free Software Foundation. 2018-02-25. Citováno 2018-02-26.
- ^ Knihovny GTK +
- ^ Dokumentace XCircuit
- ^ „Automatické sledování závislostí“. Manuál Automake. GNU.org. Free Software Foundation.
- ^ „Automake History“. GNU.org.
- ^ Automake "nefunkční"?
Reference
- Vaughan, Gary V .; Elliston, Ben; Tromey, Tom. Gnu Autoconf, Automake a Libtool. Sams. ISBN 1-57870-190-2.