| 1 |
dnl Process this file with autoconf to produce a configure script.
|
| 2 |
|
| 3 |
dnl GiNaC library version information.
|
| 4 |
dnl
|
| 5 |
dnl Making releases:
|
| 6 |
dnl ginac_micro_version += 1;
|
| 7 |
dnl ginac_interface_age += 1;
|
| 8 |
dnl ginac_binary_age += 1;
|
| 9 |
dnl if any functions have been added, set ginac_interface_age to 0.
|
| 10 |
dnl if backwards compatibility has been broken,
|
| 11 |
dnl set ginac_binary_age and ginac_interface_age to 0.
|
| 12 |
|
| 13 |
m4_define([ginac_major_version], [1])
|
| 14 |
m4_define([ginac_minor_version], [5])
|
| 15 |
m4_define([ginac_micro_version], [0])
|
| 16 |
m4_define([ginac_version], [ginac_major_version.ginac_minor_version.ginac_micro_version])
|
| 17 |
m4_define([ginac_release], [ginac_major_version.ginac_minor_version])
|
| 18 |
m4_define([ginac_interface_age], [0])
|
| 19 |
m4_define([ginac_binary_age], [0])
|
| 20 |
|
| 21 |
AC_INIT([GiNaC], ginac_version, [<ginac-list@ginac.de>])
|
| 22 |
AC_PREREQ(2.59)
|
| 23 |
AC_CONFIG_SRCDIR(ginac/basic.cpp)
|
| 24 |
AC_CONFIG_HEADERS(config.h)
|
| 25 |
dnl This defines PACKAGE and VERSION.
|
| 26 |
AM_INIT_AUTOMAKE([gnu 1.7 dist-bzip2])
|
| 27 |
|
| 28 |
dnl Process GiNaC version information
|
| 29 |
GINACLIB_MAJOR_VERSION=ginac_major_version
|
| 30 |
GINACLIB_MINOR_VERSION=ginac_minor_version
|
| 31 |
GINACLIB_MICRO_VERSION=ginac_micro_version
|
| 32 |
GINACLIB_VERSION=ginac_version
|
| 33 |
AC_SUBST(GINACLIB_MAJOR_VERSION)
|
| 34 |
AC_SUBST(GINACLIB_MINOR_VERSION)
|
| 35 |
AC_SUBST(GINACLIB_MICRO_VERSION)
|
| 36 |
AC_SUBST(GINACLIB_VERSION)
|
| 37 |
|
| 38 |
dnl GiNaC archive file version information.
|
| 39 |
dnl
|
| 40 |
dnl If properties have been added, ARCHIVE_VERSION += 1, ARCHIVE_AGE += 1.
|
| 41 |
dnl If backwards compatibility has been broken, set ARCHIVE_AGE to 0.
|
| 42 |
dnl
|
| 43 |
dnl The version number in newly created archives will be ARCHIVE_VERSION.
|
| 44 |
dnl Archives version (ARCHIVE_VERSION-ARCHIVE_AGE) thru ARCHIVE_VERSION can
|
| 45 |
dnl be read by this version of the GiNaC library.
|
| 46 |
|
| 47 |
ARCHIVE_VERSION=2
|
| 48 |
ARCHIVE_AGE=2
|
| 49 |
|
| 50 |
AC_SUBST(ARCHIVE_VERSION)
|
| 51 |
AC_SUBST(ARCHIVE_AGE)
|
| 52 |
AC_DEFINE_UNQUOTED(ARCHIVE_VERSION, $ARCHIVE_VERSION, [Current GiNaC archive file version number])
|
| 53 |
AC_DEFINE_UNQUOTED(ARCHIVE_AGE, $ARCHIVE_AGE, [GiNaC archive file version age])
|
| 54 |
|
| 55 |
dnl libtool versioning
|
| 56 |
m4_define([lt_revision], [ginac_interface_age])
|
| 57 |
m4_define([lt_current], [m4_eval(ginac_micro_version - ginac_interface_age)])
|
| 58 |
m4_define([lt_age], [m4_eval(ginac_binary_age - ginac_interface_age)])
|
| 59 |
LT_VERSION_INFO="lt_current:lt_revision:lt_age"
|
| 60 |
LT_RELEASE="ginac_release"
|
| 61 |
|
| 62 |
AC_SUBST(LT_VERSION_INFO)
|
| 63 |
AC_SUBST(LT_RELEASE)
|
| 64 |
|
| 65 |
|
| 66 |
dnl Check for the compiler and all the utilities needed for the build.
|
| 67 |
AC_PROG_CXX
|
| 68 |
AC_PROG_CXXCPP
|
| 69 |
AC_PROG_INSTALL
|
| 70 |
AM_PROG_LIBTOOL
|
| 71 |
AM_PROG_LEX
|
| 72 |
AC_PROG_YACC
|
| 73 |
|
| 74 |
dnl Check for data types which are needed by the hash function
|
| 75 |
dnl (golden_ratio_hash).
|
| 76 |
AC_CHECK_SIZEOF(int)
|
| 77 |
AC_CHECK_SIZEOF(long)
|
| 78 |
AC_CHECK_SIZEOF(long long)
|
| 79 |
AC_CHECK_SIZEOF(long double)
|
| 80 |
AC_CHECK_SIZEOF(void *)
|
| 81 |
|
| 82 |
dnl Switch to C++ language mode for the following libraries and headers.
|
| 83 |
AC_LANG([C++])
|
| 84 |
|
| 85 |
dnl Check for stuff needed for building the GiNaC interactive shell (ginsh).
|
| 86 |
AC_CHECK_HEADERS(unistd.h)
|
| 87 |
GINAC_HAVE_RUSAGE
|
| 88 |
AC_CHECK_HEADERS(readline/readline.h readline/history.h)
|
| 89 |
if test "x${ac_cv_header_readline_readline_h}" != "xyes" -o "x${ac_cv_header_readline_history_h}" != "xyes"; then
|
| 90 |
GINAC_WARNING([I could not find the headers for libreadline (needed for building ginsh).])
|
| 91 |
fi
|
| 92 |
GINAC_TERMCAP
|
| 93 |
save_LIBS=$LIBS
|
| 94 |
LIBS="$LIBTERMCAP $LIBS"
|
| 95 |
AC_CHECK_LIB(readline, readline)
|
| 96 |
if test "x${ac_cv_lib_readline_readline}" = "xyes"; then
|
| 97 |
GINAC_LIB_READLINE_VERSION
|
| 98 |
else
|
| 99 |
GINAC_WARNING([I could not find libreadline (needed by ginsh).])
|
| 100 |
fi
|
| 101 |
GINSH_LIBS=$LIBS
|
| 102 |
LIBS=$save_LIBS
|
| 103 |
AC_SUBST(GINSH_LIBS)
|
| 104 |
|
| 105 |
dnl Make sure all the necessary standard headers are installed on the system.
|
| 106 |
AC_CHECK_HEADER(iosfwd, , GINAC_ERROR([The standard <iosfwd> header file could not be found.]))
|
| 107 |
AC_CHECK_HEADER(iostream, , GINAC_ERROR([The standard <iostream> header file could not be found.]))
|
| 108 |
AC_CHECK_HEADER(vector, , GINAC_ERROR([The standard <vector> header file could not be found.]))
|
| 109 |
AC_CHECK_HEADER(list, , GINAC_ERROR([The standard <list> header file could not be found.]))
|
| 110 |
AC_CHECK_HEADER(map, , GINAC_ERROR([The standard <map> header file could not be found.]))
|
| 111 |
AC_CHECK_HEADER(string, , GINAC_ERROR([The standard <string> header file could not be found.]))
|
| 112 |
AC_CHECK_HEADER(sstream, , GINAC_ERROR([The standard <sstream> header file could not be found.]))
|
| 113 |
AC_CHECK_HEADER(typeinfo, , GINAC_ERROR([The standard <typeinfo> header file could not be found.]))
|
| 114 |
AC_CHECK_HEADER(stdexcept, , GINAC_ERROR([The standard <stdexcept> header file could not be found.]))
|
| 115 |
AC_CHECK_HEADER(algorithm, , GINAC_ERROR([The standard <algorithm> header file could not be found.]))
|
| 116 |
AC_CHECK_HEADER(limits, , GINAC_ERROR([The standard <limits> header file could not be found.]))
|
| 117 |
if test "x$CONFIG_RUSAGE" = "xno"; then
|
| 118 |
AC_CHECK_HEADER(ctime, , GINAC_ERROR([The standard <ctime> header file could not be found.]))
|
| 119 |
fi
|
| 120 |
|
| 121 |
DL_LIBS=""
|
| 122 |
dnl Check for dl library (needed for GiNaC::compile).
|
| 123 |
AC_CHECK_LIB(dl, dlopen,
|
| 124 |
[
|
| 125 |
DL_LIBS="-ldl"
|
| 126 |
AC_DEFINE(HAVE_LIBDL, 1, [set to 1 if you have a working libdl installed.])
|
| 127 |
],
|
| 128 |
GINAC_WARNING([libdl not found. GiNaC::compile will be disabled.]))
|
| 129 |
AC_SUBST(DL_LIBS)
|
| 130 |
|
| 131 |
dnl We need to have Bruno Haible's CLN installed.
|
| 132 |
dnl (pkg-config must have installed pkg.m4 at a visible place, which provides
|
| 133 |
dnl this macro. CLN >= 1.1.6 must have installed cln.pc at a visible place,
|
| 134 |
dnl which provides the actual dependency information.)
|
| 135 |
PKG_CHECK_MODULES(CLN, cln >= 1.1.6)
|
| 136 |
LIBS="$LIBS $CLN_LIBS"
|
| 137 |
CPPFLAGS="$CPPFLAGS $CLN_CFLAGS"
|
| 138 |
|
| 139 |
dnl Check for utilities needed by the different kinds of documentation.
|
| 140 |
dnl Documentation needs only be built when extending it, so never mind if it
|
| 141 |
dnl cannot find those helpers:
|
| 142 |
AC_PATH_PROG(DOXYGEN, doxygen, "")
|
| 143 |
AM_CONDITIONAL(CONFIG_DOXYGEN, [test ! -z "$DOXYGEN"])
|
| 144 |
AC_PATH_PROG(LATEX, latex, "")
|
| 145 |
AC_PATH_PROG(PDFLATEX, pdflatex, "")
|
| 146 |
AC_PATH_PROG(MAKEINDEX, makeindex, "")
|
| 147 |
AC_PATH_PROG(DVIPS, dvips, "")
|
| 148 |
AM_CONDITIONAL(CONFIG_TEX, [test ! \( -z "$LATEX" -o -z $"PDFLATEX" -o -z "$MAKEINDEX" -o -z "$DVIPS" \)])
|
| 149 |
AC_PATH_PROG(FIG2DEV, fig2dev, "")
|
| 150 |
AM_CONDITIONAL(CONFIG_FIG2DEV, [test ! -z "$FIG2DEV"])
|
| 151 |
|
| 152 |
dnl Output makefiles etc.
|
| 153 |
AC_CONFIG_FILES([
|
| 154 |
Makefile
|
| 155 |
GiNaC.spec
|
| 156 |
ginac.pc
|
| 157 |
ginac/Makefile
|
| 158 |
ginac/version.h
|
| 159 |
check/Makefile
|
| 160 |
ginsh/Makefile
|
| 161 |
ginsh/ginsh.1
|
| 162 |
tools/Makefile
|
| 163 |
tools/viewgar.1
|
| 164 |
tools/ginac-excompiler
|
| 165 |
doc/Makefile
|
| 166 |
doc/examples/Makefile
|
| 167 |
doc/tutorial/Makefile
|
| 168 |
doc/reference/Makefile
|
| 169 |
doc/reference/DoxyfileHTML
|
| 170 |
doc/reference/DoxyfileTEX
|
| 171 |
doc/reference/DoxyfilePDF
|
| 172 |
doc/reference/Doxyfooter
|
| 173 |
])
|
| 174 |
AC_OUTPUT
|
| 175 |
dnl Display a final warning if there has been a GINAC_ERROR or a GINAC_WARNING
|
| 176 |
GINAC_CHECK_ERRORS
|