Viele Softwarepakete verwenden zur Portierung das Paket Autoconf von GNU, welches über die Programme autoscan die vollautomatische Portierung durch detailierte Untersuchung zumindest annähernd erreicht, als auch den Erfahrungsschatz und das Know How von GNU Programmieren in Form von vordefinierten Makros zur Verfügung stellt, um die Portierung mittels autoconf zu vereinfachen.
Autoconf ist ein Tool von GNU zur Produktion eines Shell-Skriptes, welches automatisch Quellcode-Pakete auf viele Arten von UNIX Systemen anpaßt. Die durch Autoconf produzierten Skriptdateien benötigen keinen Eingriff der Benutzer oder zusätzliche Software und beinhalten alle Funktionen.
Autoconf produziert anhand einer Vorlage (template) mit dem Namen configure.in, welche Makros enthält das Skript mit dem Namen configure. Der Aufruf von configure löst die Untersuchung des Systems aus, um die Besonderheiten und den Typ des Systems festzustellen. Abhängig von den Feststellungen, wird aus einer weiteren Vorlage für eine Makedatei mit dem Namen Makefile.in die Makedatei angepaßt an das System erzeugt. Zu den UNIX Varianten, die entdeckt werden gehören u.a. AIX, DYNIX/PTX, IRIX, SUN, ISC-POSIX, MINIX, SCO, XENIX und natürlich LINUX.
Das Konfigurationsskript verwendet keine Features, um die nach UNIX Version 7 (also circa 1977) viele Shells erweitert wurden. Die Vorlage configure.in hat folgenden Grundaufbau:
AC_INIT(FILE) checks for programs checks of librarys checks of compiler characteristics checks for further things AC_OUTPUT(FILE)
Mit AC_INIT wird die Datei begonnen und legt den Namen einer Referenzdatei fest. AC_OUTPUT erzeugt in der Regel eine oder mehere (Make-)Dateien. Weitere von autoconf definierte Makros können zwischen diesen Befehlen eingebunden werden, um bestimmte Eigenschaften festzustellen, die für die Portierung der Software von Bedeutung sind.
Da auch das TCL und TK Paket autoconf einsetzt, um die Shell für verschiedene System zu erzeugen, hat der Autor dir Vorlage configure.in übernommen, um sie für die Portierung des Datenbankmanagers bzw. VDM Servers zu verwenden, da auch hier eine TCL Shell erzeugt wird. Lediglich die Referenzdatei, die über AC_INIT festgelegt wird, hat der Autor wie folgt angepaßt:
AC_INIT(./dbm.vdm)
Als Referenz für das aktuelle Verzeichnis wird damit die DSL-Spezifikation der Datenbank verwendet. Bei jüngeren TCL-Versionen kann wiederum, um sich die Beschäftigung mit zahlreichen systemspezifischen Eigenschaften zu ersparen, die Vorlage von TCL verwendet und in AC_INIT angepaßt werden.
Einzelheiten über die Variablen und vordefinierten Makros sind in der Dokumentation des GNU-Autoconf Paketes hinterlegt(*).