1. Uvod
Chapejte prosim nasledujici radky jako skromny uvod do problematiky. Me stranky
v zadnem pripade nemaji ambice nahradit originalni manual - pokud Vas popisovane
nastroje zaujaly natolik, ze nektere odstavce Vam budou pripadat nedostatecne
podrobne, "zalistujte" v dokumentaci. Laskavy ctenar necht rovnez promine, ze
mlcky predpokladam nektere elementarni znalosti prace v prostredi UNIX.
V zivote programatora potka nekolik dulezitych otazek:
- Jak programovat?
- Myslim, ze na tuto otazku dava odpoved bezpocet matfyzackych prednasek...
- Proc programovat a jak nalozit se zdrojaky?
- Zrejme se shodneme, ze v soucasne dobe je zrejme nejdulezitejsi odpoved je
odpoved Richarda Stallmana: GNU's Not Unix a
GNU General Public License.
- Jak zdrojaky distribuovat?
- Chtel bych se ve svem referatu zabyvat prave posledni otazkou. Pote, co
jste prosli pri psani sveho programu priblizne nasledujicim vyvojem: navrh,
implementace, odladeni, zklamani, zmena navrhu, prepsani, odladeni, perzekuce
viniku spatneho navrhu, opet zmena navrhu.... propluli mezi Skyllou a Charybdou
a nyni chcete sve zdrojaky zpristupnit, dostanete se k otazkam, nad kterymi jste
se doma v teple vubec nezamysleli.
Prichazeji problemy
- snadna prenositelnost
- sice jiz nejste ohrozovani bubaky znamymi z jednoho nepochvalitelneho
operacniho systemu, ale pokud se nechcete sovinisticky omezovat pouze na
Linux/x86, meli byste pomyslet na otazky typu: endianity, sizeof(integer),
ktere knihovny musim prilinkovat, abych smel pouzivat funkci xy, jake jsou potreba
include soubory, jak se tvori sdilene knihovny, kam soubory nainstalovat...
- jednoduchy zpusob prekladu a nasledneho nainstalovani
- bylo by pekne, pokud by zodpovezeni vyse zminenych otazek vyzadovalo co
nejmene zasahu ze strany uzivatele Vaseho programu (ktery ma o nich velmi mizive
poneti)
Jiste nechcete stravit na techto ukolech vice casu nez nad vyvojem vlastniho
programu. Tedy - sprava celeho programu by mela byt standardni, rozsirena, co
nejobecnejsi a pokud mozno i pro programatora jednoducha.
Vedle pochybnych a vicemene nepouzivanych (respektive pouze partikularne
pouzivanych) ci nepouzitelnych reseni (napriklad Imakefile od X11), se snazi GNU
odpovedet na otazku "Jak zdrojaky distribuovat?" odpovedet tremi balicky
programu: Autoconf, Automake, Libtools.
-
Autoconf
- slouzi k jednoduchemu konfigurovani programu (pro konfiguraci pred samotnym
prekladem zdrojaku - nikoliv konfigurovani na zpusob uzivatelskych dialogu v jiz
hotovych - prelozenych - programech)
-
Automake
- by Vam mel zjednodusit praci s vytvoreni Makefile souboru (pocitani
dependencies, ruzne cile: *clean, TAGS - dokonce i vytvoreni distribucniho
archivu...)
-
Libtool
- je nastroj pro jednotny zpusob vytvareni knihoven - tedy abstrakce operaci
nutnych k vytvoreni knihovny - operaci zavislych na ruznych operacnich
systemech.
Autoconf, Automake a Libtool snimaji velky kus namahy a rutinni prace z
programatora (a jak ironicky pise jejich autor v dokumentaci k jednomu z techto
nastroju: a nakladaji ji na bedra autoru programu autoconf, automake a
libtoool).
Pri vyrobe distribucnich archivu
vsech tri nastroju byl samozrejme pouzity jak Autoconf tak i Automake. Postup
instalace se tedy nikterak nelisi od standardniho postupu pri instalovani jinych
balicku programu - muzete tedy rovnou prejit na nasledujici kapitolu AAL z hlediska koncoveho uzivatele, ktera Vam priblizi
rysy, ktere sdileji vsechny balicky pouzivajici zde popisovane nastroje.
(c) 1998 0rfelyus