dnl Process this file with autoconf to produce a configure script. AC_INIT(ginac/basic.cpp) AC_PREREQ(2.12) dnl Configure options AC_ARG_ENABLE(html-doc, [ --enable-help-doc build HTML documentation [default=yes]], , enable_html_doc=yes) AC_ARG_ENABLE(ps-doc, [ --enable-ps-doc build PostScript documentation [default=no]], , enable_ps_doc=no) dnl GiNaC version information dnl dnl Making releases: dnl GINACLIB_MICRO_VERSION += 1; dnl GINACLIB_INTERFACE_AGE += 1; dnl GINACLIB_BINARY_AGE += 1; dnl if any functions have been added, set GINACLIB_INTERFACE_AGE to 0. dnl if backwards compatibility has been broken, dnl set GINACLIB_BINARY_AGE and GINACLIB_INTERFACE_AGE to 0. dnl dnl NOTE: these can't be renamed to GINAC_MAJOR_VERSION etc. because dnl autoconf sees "AC_MAJOR_VERSION" and complains about an undefined macro dnl (don't we all *love* autoconf?)... GINACLIB_MAJOR_VERSION=0 GINACLIB_MINOR_VERSION=4 GINACLIB_MICRO_VERSION=0 GINACLIB_INTERFACE_AGE=0 GINACLIB_BINARY_AGE=0 GINACLIB_VERSION=$GINACLIB_MAJOR_VERSION.$GINACLIB_MINOR_VERSION.$GINACLIB_MICRO_VERSION AC_SUBST(GINACLIB_MAJOR_VERSION) AC_SUBST(GINACLIB_MINOR_VERSION) AC_SUBST(GINACLIB_MICRO_VERSION) AC_SUBST(GINACLIB_INTERFACE_AGE) AC_SUBST(GINACLIB_BINARY_AGE) AC_SUBST(GINACLIB_VERSION) dnl libtool versioning LT_RELEASE=$GINACLIB_MAJOR_VERSION.$GINACLIB_MINOR_VERSION LT_CURRENT=`expr $GINACLIB_MICRO_VERSION - $GINACLIB_INTERFACE_AGE` LT_REVISION=$GINACLIB_INTERFACE_AGE LT_AGE=`expr $GINACLIB_BINARY_AGE - $GINACLIB_INTERFACE_AGE` AC_SUBST(LT_RELEASE) AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) dnl This defines PACKAGE and VERSION AM_CONFIG_HEADER(config.h) AM_INIT_AUTOMAKE([GiNaC], $GINACLIB_VERSION) AM_MAINTAINER_MODE dnl =========================================================================== dnl Check for the compiler and all the utilities needed for the build: dnl =========================================================================== AC_PROG_CXX AC_PROG_CXXCPP AM_PROG_INSTALL AM_PROG_LIBTOOL AM_PROG_LEX AC_PROG_YACC dnl Check for data types which are needed by the hash function (golden_ratio_hash) AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(long long, 8) AC_CHECK_SIZEOF(long double, 12) dnl Switch to C++ language mode for the following libraries and headers: AC_LANG_CPLUSPLUS dnl Check for stuff needed for building the GiNaC interactive shell (ginsh): AC_CHECK_HEADERS(unistd.h) AC_CHECK_HEADERS(readline/readline.h readline/history.h) save_LIBS=$LIBS AC_CHECK_LIB(readline, readline) GINSH_LIBS=$LIBS LIBS=$save_LIBS AC_SUBST(GINSH_LIBS) dnl Make sure the following libraries work by testing for symbols therein. dnl They are automatically added the the variable $LIBS and thus passed into dnl the Makefile: AC_CHECK_LIB(stdc++, cout) dnl Make sure all the necessary new-style headers are installed on the system. dnl If one of them cannot be found the system is probably not ANSI-conform dnl enough so trying the .h-style headers is a waste of time. AC_CHECK_HEADERS(iostream vector map string list typeinfo iterator strstream stdexcept algorithm, , AC_MSG_ERROR(need to have ANSI compliant headers)) dnl We need to have Bruno Haible's CLN installed (macros are in acinclude.m4): GINAC_CHECK_CLN_H GINAC_CHECK_LIBCLN dnl Check for utilities needed by the different kinds of documentation. dnl Documantation needs only be built when extending it, so never mind if it dnl cannot find those helpers: AC_PATH_PROG(DOXYGEN, doxygen, "") AC_PATH_PROG(JADE, jade, "") AC_PATH_PROG(JADETEX, jadetex, "") AC_PATH_PROG(LATEX, latex, "") AC_PATH_PROG(MAKEINDEX, makeindex, "") AC_PATH_PROG(DVIPS, dvips, "") AC_PATH_PROG(FIG2DEV, fig2dev, "") dnl Determine which documentation shall be built TUTORIAL_TARGETS= REFERENCE_TARGETS= if [[ "x$enable_html_doc" = "xyes" ]]; then TUTORIAL_TARGETS="$TUTORIAL_TARGETS index.html" REFERENCE_TARGETS="$REFERENCE_TARGETS index.html" fi if [[ "x$enable_ps_doc" = "xyes" ]]; then # currently doesn't work # TUTORIAL_TARGETS="$TUTORIAL_TARGETS tutorial.ps" REFERENCE_TARGETS="$REFERENCE_TARGETS reference.ps" fi AC_SUBST(TUTORIAL_TARGETS) AC_SUBST(REFERENCE_TARGETS) dnl =========================================================================== dnl Produce a Makefile from Makefile.in: dnl =========================================================================== AC_OUTPUT([ Makefile GiNaC.spec ginac/Makefile check/Makefile ginsh/Makefile doc/Makefile doc/tutorial/Makefile doc/reference/Makefile ]) echo "Configuration done. Now type \"make\"."