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