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.
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.
-
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).
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