1 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT(ginac/basic.cpp)
7 AC_ARG_ENABLE(html-doc, [ --enable-help-doc build HTML documentation [default=yes]], , enable_html_doc=yes)
8 AC_ARG_ENABLE(ps-doc, [ --enable-ps-doc build PostScript documentation [default=yes]], , enable_ps_doc=yes)
10 dnl GiNaC version information
13 dnl GINACLIB_MICRO_VERSION += 1;
14 dnl GINACLIB_INTERFACE_AGE += 1;
15 dnl GINACLIB_BINARY_AGE += 1;
16 dnl if any functions have been added, set GINACLIB_INTERFACE_AGE to 0.
17 dnl if backwards compatibility has been broken,
18 dnl set GINACLIB_BINARY_AGE and GINACLIB_INTERFACE_AGE to 0.
20 dnl NOTE: these can't be renamed to GINAC_MAJOR_VERSION etc. because
21 dnl autoconf sees "AC_MAJOR_VERSION" and complains about an undefined macro
22 dnl (don't we all *love* autoconf?)...
24 GINACLIB_MAJOR_VERSION=0
25 GINACLIB_MINOR_VERSION=4
26 GINACLIB_MICRO_VERSION=0
27 GINACLIB_INTERFACE_AGE=0
29 GINACLIB_VERSION=$GINACLIB_MAJOR_VERSION.$GINACLIB_MINOR_VERSION.$GINACLIB_MICRO_VERSION
31 AC_SUBST(GINACLIB_MAJOR_VERSION)
32 AC_SUBST(GINACLIB_MINOR_VERSION)
33 AC_SUBST(GINACLIB_MICRO_VERSION)
34 AC_SUBST(GINACLIB_INTERFACE_AGE)
35 AC_SUBST(GINACLIB_BINARY_AGE)
36 AC_SUBST(GINACLIB_VERSION)
38 dnl libtool versioning
39 LT_RELEASE=$GINACLIB_MAJOR_VERSION.$GINACLIB_MINOR_VERSION
40 LT_CURRENT=`expr $GINACLIB_MICRO_VERSION - $GINACLIB_INTERFACE_AGE`
41 LT_REVISION=$GINACLIB_INTERFACE_AGE
42 LT_AGE=`expr $GINACLIB_BINARY_AGE - $GINACLIB_INTERFACE_AGE`
49 dnl This defines PACKAGE and VERSION
50 AM_CONFIG_HEADER(config.h)
51 AM_INIT_AUTOMAKE([GiNaC], $GINACLIB_VERSION)
54 dnl ===========================================================================
55 dnl Check for the compiler and all the utilities needed for the build:
56 dnl ===========================================================================
64 dnl Check for data types which are needed by the hash function (golden_ratio_hash)
65 AC_CHECK_SIZEOF(long, 4)
66 AC_CHECK_SIZEOF(long long, 8)
67 AC_CHECK_SIZEOF(long double, 12)
69 dnl Switch to C++ language mode for the following libraries and headers:
72 dnl Check for stuff needed for building the GiNaC interactive shell (ginsh):
73 AC_CHECK_HEADERS(unistd.h)
74 AC_CHECK_HEADERS(readline/readline.h readline/history.h)
76 AC_CHECK_LIB(readline, readline)
81 dnl Make sure the following libraries work by testing for symbols therein.
82 dnl They are automatically added the the variable $LIBS and thus passed into
84 AC_CHECK_LIB(stdc++, cout)
86 dnl Make sure all the necessary new-style headers are installed on the system.
87 dnl If one of them cannot be found the system is probably not ANSI-conform
88 dnl enough so trying the .h-style headers is a waste of time.
89 AC_CHECK_HEADERS(iostream vector map string list typeinfo iterator strstream stdexcept algorithm, ,
90 AC_MSG_ERROR(need to have ANSI compliant headers))
92 dnl We need to have Bruno Haible's CLN installed (macros are in acinclude.m4):
96 dnl Expand the cppflags and libraries needed by apps using GiNaC
97 GINACLIB_CPPFLAGS=$CPPFLAGS
99 AC_SUBST(GINACLIB_CPPFLAGS)
100 AC_SUBST(GINACLIB_LIBS)
102 dnl Check for utilities needed by the different kinds of documentation.
103 dnl Documantation needs only be built when extending it, so never mind if it
104 dnl cannot find those helpers:
105 AC_PATH_PROG(DOXYGEN, doxygen, "")
106 AC_PATH_PROG(LATEX, latex, "")
107 AC_PATH_PROG(MAKEINDEX, makeindex, "")
108 AC_PATH_PROG(DVIPS, dvips, "")
109 AC_PATH_PROG(FIG2DEV, fig2dev, "")
111 dnl Determine which documentation shall be built
114 if [[ "x$enable_html_doc" = "xyes" ]]; then
115 TUTORIAL_TARGETS="$TUTORIAL_TARGETS ginac.html"
116 if [[ "$DOXYGEN" ]]; then
117 REFERENCE_TARGETS="$REFERENCE_TARGETS index.html"
120 if [[ "x$enable_ps_doc" = "xyes" ]]; then
121 TUTORIAL_TARGETS="$TUTORIAL_TARGETS ginac.ps"
122 if [[ "$DOXYGEN" ]]; then
123 REFERENCE_TARGETS="$REFERENCE_TARGETS reference.ps"
126 AC_SUBST(TUTORIAL_TARGETS)
127 AC_SUBST(REFERENCE_TARGETS)
129 dnl Output makefiles etc.
138 doc/tutorial/Makefile
139 doc/reference/Makefile
140 ], [chmod +x ginac-config])
141 echo "Configuration done. Now type \"make\"."