dnl =========================================================================== dnl Process this file with GNU Autoconf to produce a configure script. Then dnl call ./configure to create Makefiles. After that say make and make install. dnl See aclocal.m4 for additional self-made macros. dnl =========================================================================== dnl This file is used as a signal that everything is in place: AC_INIT(include/ginac.h) dnl A convenient header file for some additional system-dependend output: AC_CONFIG_HEADER(config.h) dnl Set the Version Number at this place only: GiNaC_Major_Version=0 GiNaC_Minor_Version=0 GiNaC_Micro_Version=30 dnl This composite variable can be inserted where it appears necessary: GiNaC_Version="${GiNaC_Major_Version}.${GiNaC_Minor_Version}.${GiNaC_Micro_Version}" dnl This composition is needed for libtool, if a shared lib shall be built: LibGiNaC_Ver="${GiNaC_Major_Version}:${GiNaC_Micro_Version}:${GiNaC_Minor_Version}" dnl =========================================================================== dnl Several features need to be added to standard-configure: dnl =========================================================================== AC_ARG_ENABLE(shared, [ --enable-shared build shared libraries [default=no] (a static library will still be built as well)], shared=${enableval}, shared="no") dnl =========================================================================== dnl Check for the compiler and all the utilities needed for the build: dnl =========================================================================== dnl Which is the C++ Compiler? (whether to use c++, g++, gcc, CC, cxx, cc++...) AC_PROG_CXX dnl How to run the C++ preprocessor? AC_PROG_CXXCPP dnl Switch to C++ language mode for the following libraries and headers: AC_LANG_CPLUSPLUS 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 aclocal.m4): GINAC_CHECK_CLN_H GINAC_CHECK_LIBCLN dnl We need to distribure install-sh anyways since otherwise configure will dnl refuse to do several things, like divert into subdirs and so: AC_PROG_INSTALL dnl Todd Brunhoff's makedepend utility is needed by make: AC_PATH_PROG(MAKEDEPEND, makedepend, "") dnl We need GNU libtool if the user chose to create a shared lib. (By using a dnl little trick we can safely recycle the variable shlib which is later passed dnl into the Makefile.) case "${shared}" in "yes"|"Yes"|"YES") # Default-enable ("yes") or user was nitpicking: shared="shlib"; AC_PATH_PROG(LIBTOOL, libtool, "") if test "${LIBTOOL}" == ""; then AC_MSG_WARN([libtool not found: building static lib only]) shared=""; fi ;; *) # Default, default-disable ("no") or user entered bogus: shared=""; ;; esac dnl Check for helpers needed for building the GiNaC interactive shell: AC_PROG_LEX AC_PROG_YACC AC_DECL_YYTEXT AC_HEADER_STDC AC_CHECK_HEADERS(unistd.h) AC_CHECK_FUNCS(strdup) AC_CHECK_HEADERS(readline/readline.h readline/history.h, , AC_MSG_ERROR(need to have GNU readline headers)) AC_CHECK_LIB(readline, readline, , AC_MSG_ERROR(need to have GNU readline library)) 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(LATEX, latex, "") AC_PATH_PROG(MAKEINDEX, makeindex, "") AC_PATH_PROG(DVIPS, dvips, "") AC_PATH_PROG(FIG2DEV, fig2dev, "") AC_PATH_PROG(JADE, jade, "") AC_PATH_PROG(JADETEX, jadetex, "") dnl =========================================================================== dnl Substitute these variables in the Makefile: dnl =========================================================================== AC_SUBST(shared) AC_SUBST(LibGiNaC_Ver) dnl =========================================================================== dnl Produce a Makefile from Makefile.in: dnl =========================================================================== AC_OUTPUT([Makefile src/Makefile check/Makefile ginsh/Makefile doc/Makefile]) echo "now type make"