Kompilieren unter Linux und Solaris mit GNU autotools


Kollege Oberfell sandte vor einer Weile eine ganz gute
Zusammenfassung wichtiger Schritte:

http://sun250.biblio.etc.tu-bs.de/pipermail/allegro/2012-March/035165.html

Und dann war da noch diese Handreichung:

http://sun250.biblio.etc.tu-bs.de/pipermail/allegro/2012-January/034765.html

fußend auf
http://www.lugod.org/presentations/autotools/presentation/autotools.pdf

Dies nun einmal durchspielend für osdp, mit diesem
Dateienbestand im Ordner osdp: (die daneben noch bereitgestellten
sind hinfällig bzw. nur für Windows-VC)

Makefile.am
osdp.cpp
uif0ger (nur zum Testen)

und parallel liegenden ac15 und aindex, dort bereits die libraries
libac15.a bzw. libaindex.a, ergibt dann folgende Sequenz:
(Reinschauen in die jeweils entstehenden -->Dateien, man sieht
dann schon worum's geht)

autoscan
--> configure.scan

mv configure.scan configure.ac

autoheader
--> autom4te.cache
config.h.in

vim configure.ac
Ergaenzung direkt nach AC_INIT:
AM_INIT_AUTOMAKE
Ergaenzung unter # Checks for programs
AC_PROG_RANLIB

aclocal
--> aclocal.m4
und Aenderungen an configure.ac

Dateien NEWS, README, AUTHORS, COPYING und ChangeLog bereitstellen,
Inhalt egal, sonst Fehlermeldung bei:

automake --add-missing --copy
--> INSTALL

autoconf
--> configure

automake
--> Makefile.in

./configure
--> config.status
--> config.log
--> config.h
--> stamp-h1
--> Makefile

Das letzte ist es, was wir die ganze Zeit wollen.

Nun in Makefile (warum, führt jetzt zu weit) die Zeile
INCLUDES = -I$(top_srcdir)/ac15 -I$(top_srcdir)/aindex
ersetzen durch
INCLUDES = -I../ac15 -I../aindex

Dann

make

und es entsteht das Executable osdp
Es ist auffällig groß, denn es enthält Debugging-Sachen. Die wird man
los mit

strip osdp

Und nun haengen Sie noch einen Ordner demo mit der DemoBank dran und
schaffen sich dieses File test.bef:

OPTIONS
-b cat
-d demo
-r 3

COMMANDS
find shakespeare
keys

Dieses Befehlsskript übergibt man osdp mit folgendem Befehl:

./osdp <test.bef

Der Befehl "find shakespeare" findet über Register 3 den ersten
Eintrag, der mit "shakespeare" beginnt und lädt den Satz. Der
Befehl "keys" wirft seine Schlüssel aus. Welche Befehle osdp
sonst noch kennt, steht in osdp.cpp kommentiert.

B.Eversberg