2. Autoconf, automake a libtool z hlediska koncoveho uzivatele

2.1 Instalujeme

Jak jsem jiz napsal, z hlediska koncoveho uzivatele by melo byt instalovani Vaseho balicku programu pokud mozno co nejjedodussi. V dalsim textu predpokladam, ze `pracujeme' na novem projektu s nazvem Kopretina. Prave jsme vydali novou versi kopretiny (3.2) a uzivatel zapoli s distribucnim archivem:

root@meadow:/usr/src# tar -xzvf kopretina-3.2.tar.gz
root@meadow:/usr/src# cd kopretina-3.2
root@meadow:/usr/src/kopretina-3.2# ./configure
root@meadow:/usr/src/kopretina-3.2# make
root@meadow:/usr/src/kopretina-3.2# make install

Myslim, ze jsme jiz nemohli uzivateli vyjit vice vstric. `configure' je skript (soubor prikazu pro shell), ktery si Vas system `otukne' a vytvori prislusne konfiguracni soubory a soubory Makefile. Pokud byl `configure' skript napsan korektne, neni jiz zapotrebi dalsich zasahu - staci pouze napsat `make' a odejit na kafe ci svacinu (umernou velikosti instalovaneho software a neprimo umerne rychlosti pocitace :)

2.2 Jak prizpusobit chovani `configure' skriptu

Vetsinou si vsak uzivatel s holym prikazem `configure' nevystaci - casto je zapotrebi zmenit adresar, kam budou nainstalovany soubory, nebo je-li vice moznosti konfigurace, je nutne poradit `configure' skriptu, ktere ma volit (typicky pripad: vytvorit dynamicky sdilene knihovny ci nikoliv a podobne).

Zde je kratky prehled casto pouzivanych parametru:

--help
Vypise seznam vsech dostupnych parametru a jejich implicitni nastaveni
--prefix=cesta
Nainstaluje program do podadresaru daneho adresare
        ./configure --prefix=/usr/local

(programy do /usr/local/bin ci /usr/local/sbin, knihovny do /usr/local/lib, manualove stranky do /usr/local/man atd).

--enable-..., --disable-..., --with-..., --without-...
Tyto parametry zakazi nebo naopak povoli ruzne vlastnosti programu. Pokud jsou v balicku i knihovny (a autor pouzil libtool), pak zcela jiste vyuzijete nasledujici parametry:
        ./configure --disable-static --enable-shared

2.3 Jak ovlivnit preklad

Ovlivnit nektere parametry prekladace (napriklad zapnout optimalizaci, nastavit cesty ke knihovnam) muzete nastavenim standardnich promennych shellu - napriklad:

CC
prekladac jazyka C
CFLAGS
parametry pri prekladu pomoci $(CC)
CXX
prekladac C++
CXXFLAGS
parametry pri prekladu pomoci $(CXX)
LDFLAGS
parametry pro linker (ld)
LIBS
knihovny, ktere ma navic linker pripojit k programu

Priklad pouziti promennych:

CFLAGS='-O2 -m486 -fomit-frame-pointer' LIBS='-L/some/obscude/libs' \
./configure --prefix=/why/not/here

2.4 Mam cist dal?

Pokud jste docetli muj elaborat az na toto misto a kladete si otazku, zda mate pokracovat dale, zaclenil jsem maly kviz:

Jsem koncovy uzivatel,
ktery si sem tam neco nainstaluje a prehled, ktery jsem si prave prave precetl, mi do konce zivota postaci. Radeji si pujdu precist novinky ze sveta free software
Kam jsem se to dostal?
- a proc se tu nehovori o nejnovejsim MS Visual C++ - tam prece nic podobneho neni zapotrebi (natoz programator!) - pujdu si stezovat stryckovi Billovi z hell://www.microsoft.com
Pracuji na free software projektu
a stranky me velmi zaujaly - chtel bych co nejdrive nabyte znalosti pouzit ve svem novem projektu. Nemuzu se dockat nasledujici kapitoly.

(c) 1998 0rfelyus