AC_INIT(src/guile/gnucash.h.in) ### check for various programs, and stuff (do this first because later ### commands depend on them): AC_PROG_INSTALL AC_PROG_RANLIB AC_PROG_CC AC_ISC_POSIX AC_C_BIGENDIAN AC_PROG_MAKE_SET ### Set up all the initial variable values... CFLAGS="${CFLAGS} -O2 -Wall" # some plything option lists # CFLAGS="-g -Wall -ansi -pedantic -Wwrite-strings -Wid-clash-31 -Wpointer-arith -Wcast-qual -Wcast-align -Wtraditional -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wshadow -Woverloaded-virtual -Winline -felide-constructors -fnonnull-objects" # CFLAGS="-g -Wall -ansi -pedantic -Wwrite-strings -Wtraditional -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wshadow -Winline" # CFLAGS="-g -Wall -ansi -pedantic" LIBS="$LIBS -lm" # We're going to set up our own X configure variables. These are only # used in side configure. At the end, we use them to set X_LIBS. # This allows us to be careful about libarary ordering, in case that's # important. AC_PATH_X AC_PATH_XTRA X_LIBS="$X_LIBS -lXext -lXmu -lXt -lX11" MOTIF_LIBS="-lXm" # Let the user specify gnome paths: AC_ARG_WITH( gnome-config, [ --with-gnome-config=executable which gnome-config to use to find gnome ], GNOME_CONFIG_BIN="$with_gnome_config") AC_SUBST(GNOME_CONFIG_BIN) # Let the user specify imlib paths: AC_ARG_WITH( imlib, [ --with-imlib=PATH specify where to look for imlib includes and libs], X_LIBS="${X_LIBS} -L$with_imlib/lib" X_CFLAGS="$X_CFLAGS -I$with_imlib/include" ) # Let the user specify guile paths: AC_ARG_WITH( guile, [ --with-guile=PATH specify where to look for guile includes and libs], GUILE_INC="-I$with_guile/include" GUILELIBS="-L$with_guile/lib" LIBS="${LIBS} $GUILELIBS" ) # ******************************************* # * figure out the configure options: AC_ARG_ENABLE( debug, [ --enable-debug compile with debugging flags set], CFLAGS="${CFLAGS} -g -Wall" LDFLAGS="${LDFLAGS} -g -Wall" AC_DEFINE(DEBUG_MEMORY,1) AC_DEFINE(USE_DEBUG,1), AC_DEFINE(DEBUG_MEMORY,0) AC_DEFINE(USE_DEBUG,0) ) AC_ARG_ENABLE( warnings, [ --enable-warnings compile with lots of warnings generated], CFLAGS="${CFLAGS} -g -Wall -ansi -pedantic -Wwrite-strings -Wid-clash-31 -Wpointer-arith -Wcast-qual -Wcast-align -Wtraditional -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wshadow -Woverloaded-virtual -Winline -felide-constructors -fnonnull-objects" LDFLAGS="${LDFLAGS} -g -Wall" AC_DEFINE(DEBUG_MEMORY,1) AC_DEFINE(USE_DEBUG,1) ) # USE_QUICKFILL: AC_DEFINE(USE_QUICKFILL,1) # Should we uses color (red/black) balances? AC_ARG_ENABLE( color, [ --disable-color don't use color (red/black) balances], AC_DEFINE(USE_NO_COLOR,1), AC_DEFINE(USE_NO_COLOR,0) ) # Let the user specify motif paths: AC_ARG_WITH( motif, [ --with-motif=PATH specify where to look for motif includes and libs], X_LIBS="${X_LIBS} -L$with_motif/lib" X_CFLAGS="$X_CFLAGS -I$with_motif/include" ) AC_ARG_WITH( motif-includes, [ --with-motif-includes=DIR specify where to look for motif includes], X_CFLAGS="${X_CFLAGS} -I$with_motif_includes" ) AC_ARG_WITH( motif-libraries, [ --with-motif-libraries=DIR specify where to look for motif libs], X_LIBS="${X_LIBS} -L$with_motif_libraries" ) AC_ARG_WITH( xmhtml-includes, [ --with-xmhtml-includes=DIR specify where to look for xmhtml headers], X_CFLAGS="${X_CFLAGS} -I$with_xmhtml_includes" ) AC_ARG_WITH( xmhtml-libraries, [ --with-xmhtml-libraries=DIR specify where to look for xmhtml libs], X_LIBS="${X_LIBS} -L$with_xmhtml_libraries" ) # Let the user specify gnome paths: # -I...libgnomesupport is to fix bug in gnome-1.3 release AC_ARG_WITH( gnome, [ --with-gnome=PATH specify where to look for gnome includes and libs], X_LIBS="${X_LIBS} -L$with_gnome/lib" X_CFLAGS="$X_CFLAGS -I$with_gnome/include -I$with_gnome/lib/gnome-libs/include" ) AC_ARG_WITH( gnome-includes, [ --with-gnome-includes=DIR specify where to look for gnome includes], X_CFLAGS="${X_CFLAGS} -I$with_gnome_includes -I$with_gnome_includes/libgnomesupport" ) AC_ARG_WITH( gnome-libraries, [ --with-gnome-libraries=DIR specify where to look for gnome libs], X_LIBS="${X_LIBS} -L$with_gnome_libraries" ) AC_ARG_WITH( opt-style-install, [ --with-opt-style-install install everything in subdirs of --prefix], OPT_STYLE_INSTALL=1, OPT_STYLE_INSTALL=0) AC_SUBST(OPT_STYLE_INSTALL) # ******************************************* # the XmHTML widget needs libz, libjpeg, libpng and libm # it also uses #ifdef's not #if's so DONT #def to zero. AC_CHECK_LIB(z, deflateEnd, AC_DEFINE(HAVE_ZLIB,1) LIBS="-lz $LIBS") AC_CHECK_LIB(jpeg, jpeg_read_scanlines, AC_DEFINE(HAVE_JPEG,1) LIBS="-ljpeg $LIBS") AC_CHECK_LIB(png, png_read_image, AC_DEFINE(HAVE_PNG,1) LIBS="-lpng $LIBS") # This should be done in the OTHER_LIBRARIES argument to AC_CHECK_LIB # if it's actually needed and Makefile.in's should be using # X_PRE_LIBS, X_LIBS, and X_EXTRA_LIBS, rather than relying on LIBS. # LIBS="-lXmu -lXt -lXext $X_PRE_LIBS -lX11 $X_LIBS $X_EXTRA_LIBS $LIBS" AC_CHECK_LIB(Xpm, XpmReadFileToXpmImage, AC_DEFINE(HAVE_XPM,1) X_LIBS="-lXpm $X_LIBS", AC_DEFINE(HAVE_XPM,0), -L $x_libraries -lX11) # Don't build the xmhtml source if user already has it installed... # this is ugly, there must be a nicer way of setting this up ... AC_CHECK_LIB(XmHTML, XmHTMLTextScrollToLine, MOTIF_LIBS="-lXmHTML $MOTIF_LIBS", MOTIF_LIBS="-lXmHTML $MOTIF_LIBS" XMHTML_TARGET=default XMHTML_INC=/lib/XmHTML-1.1.0/src LIBS="-L $srcdir/lib/XmHTML-1.1.0 $LIBS" , $X_PRE_LIBS $MOTIF_LIBS $X_EXTRA_LIBS $X_LIBS) AC_SUBST(XMHTML_TARGET) AC_SUBST(XMHTML_INC) ### Guile # Set GUILELIBS according to the set of libraries needed to link # with guile. # If readline exists, just assume that guile needs it. It probably does. AC_CHECK_LIB(readline, readline) # Have to use AC_TRY_LINK here because AC_CHECK_LIB caches the # results, so one failure makes all further attempts fail. AC_MSG_CHECKING([for guile]) GNC_LIBS_SAFE=${LIBS} GNC_TEST_LIBS="-lguile" LIBS="${GNC_LIBS_HELPER} ${GNC_TEST_LIBS} ${LIBS}" AC_TRY_LINK([#include], [gh_eval_file;], GUILELIBS="$GUILELIBS ${GNC_TEST_LIBS}") LIBS="${GNC_LIBS_SAFE}" if test x"${GUILELIBS}" = x; then GNC_TEST_LIBS="-lguile -ldl" LIBS="${GNC_LIBS_HELPER} ${GNC_TEST_LIBS} ${LIBS}" AC_TRY_LINK([#include], [gh_eval_file;], GUILELIBS="$GUILELIBS ${GNC_TEST_LIBS}") LIBS="${GNC_LIBS_SAFE}" fi if test x"${GUILELIBS}" = x; then GNC_TEST_LIBS="-lguile -lqthreads" LIBS="${GNC_LIBS_HELPER} ${GNC_TEST_LIBS} ${LIBS}" AC_TRY_LINK([#include], [gh_eval_file;], GUILELIBS="$GUILELIBS ${GNC_TEST_LIBS}") LIBS="${GNC_LIBS_SAFE}" fi if test x"${GUILELIBS}" = x; then GNC_TEST_LIBS="-lguile -ltermcap" LIBS="${GNC_LIBS_HELPER} ${GNC_TEST_LIBS} ${LIBS}" AC_TRY_LINK([#include], [gh_eval_file;], GUILELIBS="$GUILELIBS ${GNC_TEST_LIBS}") LIBS="${GNC_LIBS_SAFE}" fi if test x"${GUILELIBS}" = x; then GNC_TEST_LIBS="-lguile -lqthreads -ltermcap" LIBS="${GNC_LIBS_HELPER} ${GNC_TEST_LIBS} ${LIBS}" AC_TRY_LINK([#include], [gh_eval_file;], GUILELIBS="$GUILELIBS ${GNC_TEST_LIBS}") LIBS="${GNC_LIBS_SAFE}" fi if test x"${GUILELIBS}" = x; then AC_MSG_ERROR(Cannot link with guile. Do you have guile 1.3 installed?) fi AC_SUBST(GUILE_INC) AC_SUBST(GUILELIBS) AC_MSG_RESULT([yes]) ### Plotutils AC_CHECK_LIB(plot, openpl, AC_DEFINE(HAVE_PLOTUTILS,1) HAVE_PLOTUTILS=1 LIBS="-lplot $LIBS" X_LIBS="-lXaw $X_LIBS", , $X_PRE_LIBS $MOTIF_LIBS $X_EXTRA_LIBS -lXaw $X_LIBS) # We need this in at least one of the Makefile.in's AC_SUBST(HAVE_PLOTUTILS) AC_SUBST(MOTIF_LIBS) ############################################################# ### Set up the install style and all the default paths... ### # some confusion due to FSSTND stuff -- # the readme's and miscellaneous docs are in /usr/doc (or equivalent) # the online help system is in /usr/share/gnucash/Doc and various subdirs # the parsed-html report supsystem is in /usr/share/gnucash/Reports if test ${OPT_STYLE_INSTALL} = 1 then GNC_DOCDIR='${prefix}/doc' GNC_BINDIR='${prefix}/bin' GNC_CONFIGDIR=${sysconfdir} GNC_SHAREDIR=${datadir} else GNC_DOCDIR='${prefix}/doc/gnucash' GNC_BINDIR='${prefix}/bin' GNC_CONFIGDIR=${sysconfdir}/gnucash GNC_SHAREDIR=${datadir}/gnucash fi AC_SUBST(GNC_DOCDIR) AC_SUBST(GNC_BINDIR) AC_SUBST(GNC_CONFIGDIR) AC_SUBST(GNC_SHAREDIR) # We have to handle these here because they are the *runtime* (not install # time) defaults, and they're substituted into startup.scm and gnucash.h # directly, so: # 1) We don't want them to change if you do # make prefix=foo install # 2) They are normally defined in terms of $prefix so we need to expand # that before substituting into those source files. I wish I knew how # to force a recursive expansion... GNC_RUNTIME_SHAREDIR=`eval echo ${GNC_SHAREDIR}` GNC_RUNTIME_CONFIGDIR=`eval echo ${GNC_CONFIGDIR}` AC_SUBST(GNC_RUNTIME_SHAREDIR) AC_SUBST(GNC_RUNTIME_CONFIGDIR) # ******************************************* AC_CONFIG_HEADER(config.h) AC_OUTPUT(Makefile Makefile.init src/Makefile src/engine/Makefile src/guile/Makefile src/scm/Makefile src/scm/startup/Makefile src/gnome/Makefile src/motif/Makefile src/qt/Makefile src/register/Makefile src/reports/Makefile src/swig/Makefile src/swig/guile/Makefile lib/Makefile lib/Xbae-4.6.2-linas/Makefile lib/Xbae-4.6.2-linas/src/Makefile lib/ComboBox-1.33/Makefile) chmod +x gnucash make -f Makefile.config.finish prefix=${prefix} \ GNC_SHAREDIR=${GNC_SHAREDIR} \ GNC_CONFIGDIR=${GNC_SHAREDIR}