1. Úvod

Chápejte prosím následující řádky jako skromný úvod do problematiky. Mé stránky v žádném případě nemají ambice nahradit originální manuál - pokud Vás popisované nástroje zaujaly natolik, že některé odstavce Vám budou připadat nedostatečně podrobné, "zalistujte" v dokumentaci. Laskavý čtenář nechť rovněž promine, že mlčky předpokládám některé elementární znalosti práce v prostředí UNIX.

1.1 Proč používat nástroje pro konfigurování

V životě programátora potká několik důležitých otázek:
Jak programovat?
Myslím, že na tuto otázku dává odpověď bezpočet matfyzáckých přednášek...
Proč programovat a jak naložit se zdrojáky?
Zřejmě se shodneme, že v současné době je zřejmě nejdůležitější odpověď je odpověď Richarda Stallmana: GNU's Not Unix a GNU General Public License.
Jak zdrojáky distribuovat?
Chtěl bych se ve svém referátu zabývat pravě poslední otázkou. Poté, co jste prošli při psaní svého programu přibližně následujícím vývojem: návrh, implementace, odladění, zklamání, změna návrhu, přepsání, odladění, perzekuce viníků špatného návrhu, opět změna návrhu.... propluli mezi Skyllou a Charybdou a nyní chcete své zdrojáky zpřístupnit, dostanete se k otázkám, nad kterými jste se doma v teple vůbec nezamýšleli.

Přicházejí problémy

snadná přenositelnost
sice již nejste ohrožováni bubáky známými z jednoho nepochválitelného operačního systému, ale pokud se nechcete šovinisticky omezovat pouze na Linux/x86, měli byste pomýšlet na otázky typu: endianity, sizeof(integer), které knihovny musím přilinkovat, abych směl používat funkci xy, jaké jsou potřeba include soubory, jak se tvoří sdílené knihovny, kam soubory nainstalovat...
jednoduchý způsob překladu a následného nainstalování
bylo by pěkné, pokud by zodpovězení výše zmíněných otázek vyžadovalo co nejméně zásahů ze strany uživatele Vašeho programu (který má o nich velmi mizivé ponětí)

Jistě nechcete strávit na těchto úkolech více času než nad vývojem vlastního programu. Tedy - správa celého programu by měla být standardní, rozšířená, co nejobecnější a pokud možno i pro programátora jednoduchá.

Vedle pochybných a víceméně nepoužívaných (respektive pouze partikulárně používaných) či nepoužitelných řešení (například Imakefile od X11), se snaží GNU odpovědět na otázku "Jak zdrojáky distribuovat?" odpovědět třemi balíčky programů: Autoconf, Automake, Libtools.

1.2 Blíže o jednotlivých nástrojích

Autoconf
slouží k jednoduchému konfigurování programů (pro konfiguraci před samotným překladem zdrojáků - nikoliv konfigurování na způsob uživatelských dialogů v již hotových - přeložených - programech)
Automake
by Vám měl zjednodušit práci s vytvoření Makefile souborů (počítání dependencies, různé cíle: *clean, TAGS - dokonce i vytvoření distribučního archivu...)
Libtool
je nástroj pro jednotný způsob vytváření knihoven - tedy abstrakce operací nutných k vytvoření knihovny - operací závislých na různých operačních systémech.

Autoconf, Automake a Libtool snímají velký kus námahy a rutinní práce z programátora (a jak ironicky píše jejich autor v dokumentaci k jednomu z těchto nástrojů: a nakládají ji na bedra autorů programů autoconf, automake a libtoool).

Instalujeme

Při výrobě distribučních archivů všech tří nástrojů byl samozřejmě použitý jak Autoconf tak i Automake. Postup instalace se tedy nikterak neliší od standardního postupu při instalování jiných balíčků programů - můžete tedy rovnou přejít na následující kapitolu AAL z hlediska koncového uživatele, která Vám přiblíží rysy, které sdílejí všechny balíčky používající zde popisované nástroje.


(c) 1998 0rfelyus