2012-03-24 7 views
1

ich ein kleines Problem mit autoconf haben, weiß ich, dass Sie configure.ac einige definiert hinzufügen können configure.h, aber ist es eine Möglichkeit, so etwas zu tun:Autoconf und configure Variablen

in einem meiner Header habe ich

#ifndef SIZE 
#define SIZE 4 
#endif 

jetzt will ich eine Option haben, wenn ich

./configure 

es Make-Datei aufrufen, erstellt und die Größe ist 4, aber wenn jemand tut

./configure --block-size=num 

die Größe wird auf num eingestellt werden, vorzugsweise das ich will, ohne config.h tun, ich ihm etwas zu Makefile nur hinzufügen wollen, so dass die Zusammenstellung mit

-DSIZE=num 
+2

Eine weitere Option ist nur, um die Tatsache zu dokumentieren, dass Benutzer './configure CPPFLAGS = -DSIZE = 4' ausführen können. Und dies erfordert keine Änderung in Ihrer Einrichtung. – adl

Antwort

4
# configure.ac 
AC_ARG_WITH([blocksize], 
      AS_HELP_STRING([The desired blocksize [[default: 4]]]), 
      [blocksize="$withval"], [blocksize=4]) 
my_CPPFLAGS="-DSIZE=$blocksize" 
AC_SUBST([my_CPPFLAGS]) 
aufgerufen werden

Ganz einfach.

# Makefile.am 
AM_CPPFLAGS = ${my_CPPFLAGS} 
+0

Anstatt my_CPPFLAGS können Sie AM_CPPFLAGS in configure.ac (und AC_SUBST ([AM_CPPFLAGS])) zuweisen und keine Änderungen an Makefile.am vornehmen –