gnucash/configure.in
Linas Vepstas 1f4bc1bf10 Fixes for dec-osf builds
Date: Sun, 22 Aug 1999 20:59:09 -0500 (CDT)
From: Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu>

1) adds top_srcdir to Makefile.init.in, since one of the Makefiles that
includes it needs top_srcdir but it isn't set in that particular Makefile.
This may not be the right call -- it should probably be substituted directly
into the Makefile.ins that are missing it.

2) It removes instances where (gcc|egcs)-specific C flags are in configure.in
or the Makefile.ins.  As long as CFLAGS is substituted into the Makefiles by
configure, there shouldn't be any need to augment CFLAGS.

3) It fixes a problem with finding libXpm and later libXmHTML on platforms
where $x_libraries (after a call to AC_PATH_X and AC_PATH_XTRA) is empty (i.e.
the libraries and header files are in standard places).  Using X_PRE_LIBS
may not be the right solution here either, so further work may be necessary
on this.

4) It makes sure that any CPPFLAGS specified by the person running configure
(e.g. -I/path/to/Xpm/headers -I/path/to/XmHTML/headers) is passed into the
Motif Makefile.in, so header files are found.

5) It updates the top level Makefile.init.in so that @CXX@ is used in place
of @C++@, since that's the common autoconf "variable" for it.  I don't think
C++ stuff is used anywhere here anyway so it's probably not needed, but I
noticed it so I thought I would fix it.


git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@1915 57a11ea4-9604-0410-9ed3-97b8803252fd
1999-08-23 05:28:40 +00:00

451 lines
15 KiB
Bash

# -*-shell-script-*-
# FILE:
# configure.in
#
# FUNCTION:
# implements checks vfor a variety of system-specific functions
#
# Contents:
# Headers - Autoconf header stuff
# Variables - Hardcoded variables
# Programs - Check for programs binaries
# Functions - Check for functions
# With - Check for --with/without options
# Enable - Check for --enable/disable options
# Libraries - Check for libraries
# Footer - Autoconf footer stuff
### --------------------------------------------------------------------------
### Headers
### check for various programs, and stuff (do this first because later
### commands depend on them):
AC_INIT(src/guile/gnucash.h.in)
AC_PROG_INSTALL
AC_PROG_RANLIB
### AC_PROG_CC sets CFLAGS if it's not already set.
AC_PROG_CC
AC_ISC_POSIX
AC_C_BIGENDIAN
AC_PROG_MAKE_SET
AC_CHECK_FUNCS(stpcpy)
### --------------------------------------------------------------------------
### Variables
### Set up all the initial variable values...
# 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) )
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)
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) )
### --------------------------------------------------------------------------
### Programs
# Check for perl, force version 5
# AC_CHECK_PROGS(PERL,perl5 perl) # Sets @PERL@
AC_PATH_PROG(PERL, perl)
AC_ARG_WITH(perl,
[ --with-perl=FILE which perl executable to use ],
PERL="${with_perl}")
# Make sure Perl was found
if test x"$PERL" = x; then
AC_MSG_ERROR([Cannot find Perl. Try using the --with-perl flag.])
fi
# Make sure it's version 5 or later
if "$PERL" -e 'exit 1 if $] < 5.0'; then
:
else
AC_MSG_ERROR([Found ${PERL} reports version ]
[`${PERL} -e 'print $]'`, need version 5.*])
fi
AC_SUBST(PERL)
# Now check for perl headers
# This appears to be what Perl's ExtUtils::MakeMaker module does, so
# I'm reasonably sure it's correct.
# PERLINCL="/usr/lib/perl5/i386-linux/5.00404"
#
PERLINCL=`perl -MConfig -e 'print $Config{"archlibexp"}'`
AC_ARG_WITH( perl-includes,
[ --with-perl-includes=DIR specify where to look for perl includes],
PERLINCL="$with_perl_includes" )
if test ! -d ${PERLINCL}/CORE; then
AC_MSG_ERROR([Missing directory ${PERLINCL}/CORE in the perl include directory])
fi
AC_SUBST(PERLINCL)
# Check for 'swig'
AC_PATH_PROG(SWIG,swig,no) # Sets @SWIG@
AC_ARG_WITH(swig,
[ --with-swig=FILE which swig executable to use ],
SWIG="${with_swig}")
if test x"$SWIG" = xno; then
AC_MSG_ERROR([Cannot find Swig. Try using the --with-swig flag.])
fi
# Let the user specify gnome paths:
GNOME_CONFIG_BIN="gnome-config"
AC_ARG_WITH( gnome-config,
[ --with-gnome-config=executable which gnome-config to use to find gnome ],
GNOME_CONFIG_BIN="$with_gnome_config")
# If the user hasn't specified the binary, then try to find it.
if test x"${GNOME_CONFIG_BIN}" = x
then
AC_PATH_PROG(GNOME_CONFIG_BIN, gnome-config, GNOME_CONFIG_NOT_FOUND)
fi
AC_SUBST(GNOME_CONFIG_BIN)
### --------------------------------------------------------------------------
### Libraries
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_XTRA
if test x"$no_x" = xyes; then
AC_ERROR([Can not find X11 development headers or libraries.])
fi
# This is how to use the variables set by AC_PATH_XTRA:
# cc @X_CFLAGS@ -c -o foo.o foo.c
# cc @X_LIBS@ (-lfoo...) @X_PRE_LIBS@ -lX11 @X_EXTRA_LIBS@
# (But see also the test for Motif libraries, below.)
# (Perhaps X_LIBS should have been called X_LDFLAGS.)
# XXX - Not all programs need all of these, surely.
X_LIBS="$X_LIBS -lXext -lXmu -lXt -lX11"
# XXX - Ask Motif what it wants
MOTIF_LIBS="-lXm"
### --------------------------------------------------------------------------
### Motif libs -- these are needed for the motif builds only
# 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" )
### --------------------------------------------------------------------------
### Gnome libs -- these are needed for the gnome builds only
# Let the user specify gnome paths:
# -I...libgnomesupport is to fix bug in gnome-1.3 release
#
# I believe all the gnome configuration can and should be superceded by
# --with-gnome-config.
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" )
# 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" )
### --------------------------------------------------------------------------
# The XmHTML widget is used by motif and gnome alike.
AC_ARG_WITH( xmhtml-includes,
[ --with-xmhtml-includes=DIR specify where to look for xmhtml headers],
X_CFLAGS="-I$with_xmhtml_includes ${X_CFLAGS}" )
AC_ARG_WITH( xmhtml-libraries,
[ --with-xmhtml-libraries=DIR specify where to look for xmhtml libs],
X_LIBS="-L$with_xmhtml_libraries ${X_LIBS}" )
# 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), $X_PRE_LIBS -lX11 $X_LIBS $X_EXTRA_LIBS)
# 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",
,
$X_PRE_LIBS $MOTIF_LIBS $X_EXTRA_LIBS $X_LIBS)
AC_SUBST(XMHTML_TARGET)
AC_SUBST(XMHTML_INC)
### --------------------------------------------------------------------------
## Nana
# XXX - There should probably be a --without-nana option (e.g., for
# someone who happens to have it installed on his local machine, but
# is building GnuCash for people who might not have it).
# See if the <nana.h> header file can be found.
AC_CHECK_HEADER(nana.h, ,
AC_MSG_ERROR([Can not find nana.h -- do you have nana installed?]))
AC_CHECK_LIB(nana, L_buffer_create, ,
AC_MSG_ERROR([Can not find a valid nana library -- do you have nana installed?]))
### --------------------------------------------------------------------------
# If readline exists, just assume that guile needs it. It probably does.
AC_CHECK_LIB(readline, readline)
### --------------------------------------------------------------------------
### Guile (libraries and executable)
# Don't disable this. It's the only reliable way to detect guile's
# settings on current guile installs. If it doesn't work for you, then
# don't specify --with-guile-config. (RLB)
# In the long run, --with-guile should go away in favor of
# --with-guile-config. It might make sense to do this now. If you have
# guile 1.3 installed, but don't have guile-config, your install is
# most likely broken anyway, and should be fixed. (RLB)
# Let the user override the guile-config executable.
AC_ARG_WITH( guile-config,
[ --with-guile-config=executable which guile-config to use to find guile ],
AC_MSG_CHECKING([for guile-config])
AC_MSG_RESULT([${with_guile_config}])
GUILE_CONFIG="$with_guile_config"
LIBS="`${GUILE_CONFIG} link` ${LIBS}"
CFLAGS="$CFLAGS `${GUILE_CONFIG} compile`")
if test x"$GUILE_CONFIG" = x; then
# Try to find a default guile-config
AC_PATH_PROG(GUILE_CONFIG,guile-config)
fi
# Still allow the old method (for now).
AC_ARG_WITH( guile,
[ --with-guile=PATH specify where to look for guile includes and libs],
LIBS="-L$with_guile/lib ${LIBS}" CFLAGS="$CFLAGS -I$with_guile/include")
# You can't have both...
if test x"$GUILE_CONFIG" != x && test x"$with_guile" != x ; then
AC_MSG_ERROR([${GUILE_CONFIG} ================ ${with_guile}])
AC_MSG_ERROR([You cannot specify both --with-guile and --with-guile-config])
fi
if test x"$GUILE_CONFIG" = x; then
# If we didn't get GUILE_CONFIG, then do things the old, dumb way.
# Have to use AC_TRY_LINK here because AC_CHECK_LIB caches the
# results, so one failure makes all further attempts fail.
GNC_LIBS_SAFE=${LIBS}
AC_CACHE_CHECK([for guile], ac_cv_lib_guile,
for GNC_TEST_LIBS in "-lguile" "-lguile -ldl" "-lguile -lqthreads" \
"-lguile -ltermcap" "-lguile -lqthreads -ltermcap" \
"-lguile -lreadline -lncurses"; do
if test x"${GUILELIBS}" != x; then
ac_cv_lib_guile=${GUILELIBS}
break
else
LIBS="${GNC_TEST_LIBS} ${GNC_LIBS_SAFE}"
AC_TRY_LINK([#include<guile/gh.h>], [gh_eval_file;],
GUILELIBS="${GNC_TEST_LIBS}")
fi
done)
GUILELIBS=${ac_cv_lib_guile}
else
# We did find a suitable guile-config. Use that.
# and use any guile binary in that same directory.
GUILE_INC=`${GUILE_CONFIG} compile`
GUILELIBS=`${GUILE_CONFIG} link`
fi
# Find the appropriate guile binary.
if test x"$GUILE_CONFIG" != x; then
AC_PATH_PROG(GUILE_BIN, guile,,`dirname ${GUILE_CONFIG}`)
fi
# If that didn't work, try the --with-guile directory, if any.
if test x"$GUILE_BIN" = x && test x"$with_guile" != x; then
AC_PATH_PROG(GUILE_BIN, guile,,`${with_guile}/bin`)
fi
# Final stab at locating a guile binary.
if test x"${GUILE_BIN}" = x; then
AC_PATH_PROG(GUILE_BIN,guile)
fi
if test x"${GUILELIBS}" = x || test x"${GUILE_BIN}" = x; then
AC_MSG_ERROR([Cannot configure guile bits. Do you have guile 1.3 installed?])
fi
# Get just the directory for the guile binary.
GUILE_BIN=`dirname ${GUILE_BIN}`
AC_SUBST(GUILE_CONFIG)
AC_SUBST(GUILE_BIN)
AC_SUBST(GUILE_INC)
AC_SUBST(GUILELIBS)
### --------------------------------------------------------------------------
### Plotutils
#AC_CHECK_LIB(plot, pl_openpl,
# AC_DEFINE(HAVE_PLOTUTILS,1)
# HAVE_PLOTUTILS=1
# AC_DEFINE(PLOTUTILS_LIBS,"-lXaw -lXt -lplot"),
# ,
# $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(PLOTUTILS_LIBS)
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_LIBDIR='${prefix}/lib'
GNC_CONFIGDIR=${sysconfdir}
GNC_SHAREDIR=${datadir}
else
GNC_DOCDIR='${prefix}/doc/gnucash'
GNC_BINDIR='${prefix}/bin'
GNC_LIBDIR='${prefix}/lib/gnucash'
GNC_CONFIGDIR=${sysconfdir}/gnucash
GNC_SHAREDIR=${datadir}/gnucash
fi
AC_SUBST(GNC_DOCDIR)
AC_SUBST(GNC_BINDIR)
AC_SUBST(GNC_LIBDIR)
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 bootstrap.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)
# UGLY HACK
GTKSHEET_DIR="gtksheet"
AC_SUBST(GTKSHEET_DIR)
#CFLAGS="${CFLAGS} -Werror -Wno-unused"
ABSOLUTE_TOP_SRCDIR=`pwd`
AC_SUBST(ABSOLUTE_TOP_SRCDIR)
AC_CONFIG_HEADER(config.h)
AC_OUTPUT(Makefile
Makefile.init
src/Makefile
src/engine/Makefile
src/guile/Makefile
src/scm/Makefile
src/g-wrap/Makefile
src/gnome/Makefile
src/motif/Makefile
src/qt/Makefile
src/register/Makefile
src/reports/Makefile
src/swig/Makefile
src/swig/perl5/Makefile
lib/Makefile
lib/${GTKSHEET_DIR}/Makefile
lib/Xbae-4.6.2-linas/Makefile
lib/Xbae-4.6.2-linas/src/Makefile
lib/ComboBox-1.33/Makefile
lib/gtkfilesel2/Makefile
lib/gtkfilesel2/config.h)
chmod +x gnucash
make -f Makefile.config.finish prefix=${prefix} \
GNC_SHAREDIR=${GNC_SHAREDIR} \
GNC_CONFIGDIR=${GNC_SHAREDIR}