Herakles
Profifragensteller
Moin!
Ich bin seit langem am Basteln, um ein Programm mit den autotools zum Laufen zu bringen. Um es zu vereinfachen, hab ich hier einfach mal ein hello world programm genommen.
Ich will erreichen, dass ein #define dem compiler mitgegeben wird, je nachdem, ob ich beim configure den Schalter "--enable-english" mitgebe oder eben nicht (oder einen beliebigen anderen, aber erstmal das als Beispiel).
Hier der code:
Dann habe ich die configure.ac angepasst:
Makefile.am sieht so aus:
Jetzt folgen diese Befehle auf der Konsole:
Zu guter Letzt ein
und meinem Verständnis zufolge sollte nun der Compiler mit einem define für ENGLISH kommen, also -DENGLISH. Passiert aber nicht:
Wo ist mein Fehler? Wieso ist nach dem configure-script kein -DENGLISH beim Compiler zu finden?
Danke für jeden Tipp,
Herakles
Ich bin seit langem am Basteln, um ein Programm mit den autotools zum Laufen zu bringen. Um es zu vereinfachen, hab ich hier einfach mal ein hello world programm genommen.
Ich will erreichen, dass ein #define dem compiler mitgegeben wird, je nachdem, ob ich beim configure den Schalter "--enable-english" mitgebe oder eben nicht (oder einen beliebigen anderen, aber erstmal das als Beispiel).
Hier der code:
Code:
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("Hello, world!\n");
return 0;
}
Dann habe ich die configure.ac angepasst:
Code:
AC_PREREQ([2.64])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AC_CONFIG_SRCDIR([hello.c])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE(hello, 1.0)
AC_CONFIG_FILES([Makefile])
(...)
AC_MSG_CHECKING(--enable-english argument)
AC_ARG_ENABLE(english,
[ --enable-english Use english language rather than german.],
ENABLE_ENGLISH=$enableval,
ENABLE_ENGLISH=yes)
if test x"${ENABLE_ENGLISH}" = xyes; then
AC_DEFINE([ENGLISH], 1, [english language on display.])
else
AC_DEFINE([GERMAN], 1, [german language on display.])
fi
Makefile.am sieht so aus:
Code:
bin_PROGRAMS=hello
hello_SOURCES=hello.c
AM_CFLAGS=-Wall
Jetzt folgen diese Befehle auf der Konsole:
Code:
:~/test$ autoheader
:~/test$ aclocal
:~/test$ automake
:~/test$ autoconf
Zu guter Letzt ein
Code:
./configure --enable-english
und meinem Verständnis zufolge sollte nun der Compiler mit einem define für ENGLISH kommen, also -DENGLISH. Passiert aber nicht:
Code:
test$ make
make all-am
make[1]: Betrete Verzeichnis '~/test'
gcc -DHAVE_CONFIG_H -I. -g -O2 -MT hello.o -MD -MP -MF .deps/hello.Tpo -c -o hello.o hello.c
mv -f .deps/hello.Tpo .deps/hello.Po
gcc -g -O2 -o hello hello.o
make[1]: Verlasse Verzeichnis '/~test'
Wo ist mein Fehler? Wieso ist nach dem configure-script kein -DENGLISH beim Compiler zu finden?
Danke für jeden Tipp,
Herakles