]> www.ginac.de Git - ginac.git/blob - configure.ac
[DOC] Suggest ios::binary flag for archiving files.
[ginac.git] / configure.ac
1 dnl Pull version info from the ginac/version.h file.
2 dnl GiNaC release number:
3 m4_define([ginac_major_version], GINAC_GET_VERSION([MAJOR]))
4 m4_define([ginac_minor_version], GINAC_GET_VERSION([MINOR]))
5 m4_define([ginac_micro_version], GINAC_GET_VERSION([MICRO]))
6 m4_define([ginac_version], [ginac_major_version.ginac_minor_version.ginac_micro_version])
7 m4_define([ginac_release], [ginac_major_version.ginac_minor_version])
8 dnl GiNaC library version information. It has very little to do with GiNaC
9 dnl version number. In particular, library version is OS dependent. 
10 m4_define([ginac_lt_current], GINAC_GET_LTVERSION([CURRENT]))
11 m4_define([ginac_lt_age], GINAC_GET_LTVERSION([AGE]))
12 m4_define([ginac_lt_revision], GINAC_GET_LTVERSION([REVISION]))
13
14 AC_INIT([GiNaC], ginac_version, [ginac-list@ginac.de], [ginac], [http://www.ginac.de/])
15 AC_PREREQ(2.59)
16 AC_CONFIG_SRCDIR(ginac/basic.cpp)
17 AC_CONFIG_AUX_DIR([config])
18 AC_CONFIG_HEADERS([config/config.h])
19 AC_CONFIG_MACRO_DIR([m4])
20 dnl This defines PACKAGE and VERSION.
21 AM_INIT_AUTOMAKE([gnu 1.8 dist-bzip2 subdir-objects])
22
23 dnl libtool versioning
24 LT_VERSION_INFO="ginac_lt_current:ginac_lt_revision:ginac_lt_age"
25 AC_SUBST(LT_VERSION_INFO)
26
27 dnl Check for the compiler and all the utilities needed for the build.
28 AC_PROG_CXX
29 AC_PROG_CXXCPP
30 AC_PROG_INSTALL
31 AM_PROG_LIBTOOL
32 AC_PROG_LEX
33 AC_PROG_YACC
34 AC_PATH_PROG(YACCEXE, $YACC, "")
35 AS_IF([test "x$LEX" = "x:" -a ! -f $srcdir/ginsh/ginsh_lexer.cpp],
36       [GINAC_WARNING([ginsh will not compile, because lex/flex is missing])])
37 AS_IF([test -z "$YACCEXE" -a ! -f $srcdir/ginsh/ginsh_parser.hpp],
38       [GINAC_WARNING([ginsh will not compile, because yacc/bison is missing])])
39
40 dnl Switch to C++ language mode for the following libraries and headers.
41 AC_LANG([C++])
42 AX_CXX_COMPILE_STDCXX([11])
43
44 dnl Make sure all the necessary standard headers are installed on the system.
45 GINAC_STD_CXX_HEADERS
46
47 dnl We need to have CLN installed.
48 PKG_CHECK_MODULES(CLN, cln >= 1.2.2)
49 AC_LIB_LINKFLAGS_FROM_LIBS([CLN_RPATH], [$CLN_LIBS])
50 LIBS="$LIBS $CLN_LIBS $CLN_RPATH"
51 CPPFLAGS="$CPPFLAGS $CLN_CFLAGS"
52 dnl Include proper rpath into pkg-config meta data, so
53 dnl g++ `pkg-config --cflags --libs ginac`
54 dnl actually works
55 GINACLIB_LIBS='-L${libdir} -lginac'
56 AC_LIB_LINKFLAGS_FROM_LIBS([GINACLIB_RPATH], [$GINACLIB_LIBS])
57
58 dnl Check for stuff needed for building the GiNaC interactive shell (ginsh).
59 AC_CHECK_HEADERS(unistd.h)
60 GINAC_HAVE_RUSAGE
61 GINAC_READLINE
62 dnl Python is necessary for building function.{cpp,h}
63 AC_PATH_PROG(PYTHON, python, "")
64 AS_IF([test -z "$PYTHON" -a ! -f "$srcdir/ginac/function.cpp"],
65       [AC_MSG_ERROR([GiNaC will not compile because Python is missing])])
66
67 dnl Check for dl library (needed for GiNaC::compile).
68 GINAC_EXCOMPILER
69 AM_CONDITIONAL(CONFIG_EXCOMPILER, [test "x${CONFIG_EXCOMPILER}" = "xyes"])
70
71 dnl Check for utilities needed by the different kinds of documentation.
72 dnl Documentation needs only be built when extending it, so never mind if it
73 dnl cannot find those helpers:
74 AC_PATH_PROG(DOXYGEN, doxygen, "")
75 AM_CONDITIONAL(CONFIG_DOXYGEN, [test ! -z "$DOXYGEN"])
76 AC_PATH_PROG(LATEX, latex, "")
77 AC_PATH_PROG(PDFLATEX, pdflatex, "")
78 AC_PATH_PROG(MAKEINDEX, makeindex, "")
79 AC_PATH_PROG(MAKEINFO, makeinfo, "")
80 AC_PATH_PROG(DVIPS, dvips, "")
81 AM_CONDITIONAL(CONFIG_TEX, [test ! \( -z "$LATEX" -o -z $"PDFLATEX" -o -z "$MAKEINDEX" -o -z "$DVIPS" \)])
82 AC_PATH_PROG(FIG2DEV, fig2dev, "")
83 AM_CONDITIONAL(CONFIG_FIG2DEV, [test ! -z "$FIG2DEV"])
84 AS_IF([test -z "$FIG2DEV" -o -z "$MAKEINFO"],
85           [GINAC_WARNING([Documentation may not build, because fig2dev/texinfo is missing.])])
86 AS_IF([test -z "$DOXYGEN"],
87           [GINAC_WARNING([Reference manual will not build, because doxygen is missing.])])
88 AS_IF([test -z "$LATEX" -o -z "$PDFLATEX" -o -z "$DVIPS"],
89           [GINAC_WARNING([Some documentation formats may not build, because latex/pdflatex/dvips is missing.])])
90            
91 dnl Output makefiles etc.
92 AC_CONFIG_FILES([
93 Makefile
94 GiNaC.spec
95 ginac.pc
96 ginac/Makefile
97 check/Makefile
98 ginsh/Makefile
99 ginsh/ginsh.1
100 tools/Makefile
101 tools/viewgar.1
102 tools/ginac-excompiler
103 doc/Makefile
104 doc/examples/Makefile
105 doc/tutorial/Makefile
106 doc/reference/Makefile
107 doc/reference/DoxyfileHTML
108 doc/reference/DoxyfileTEX
109 doc/reference/DoxyfilePDF
110 doc/reference/Doxyfooter
111 ])
112 AC_OUTPUT
113
114 dnl Display a final warning if there has been a GINAC_ERROR or a GINAC_WARNING
115 GINAC_CHECK_ERRORS