Corrected the new working example KGMinkowski.
[gridripperapp.git] / configure.ac
1 # CXXFLAGS variable should contain the flags for the actual compilation tests,
2 # since this variable is used by configure. For some reason, CXXFLAGS
3 # can not contain `gsl-config --cflags` type things, so we always have to
4 # expand this.
5 # However, the final cxxflags output by configure should contain the non-expanded
6 # versions (i.e. `gsl-config --cflags` and similar, instead of the expanded value)
7 # so this will be accumulated in CXXFLAGS_FINAL, and after all the compilation
8 # checks have been done, it will be copied to CXXFLAGS
9
10 AC_INIT
11 [ CWD=`pwd` ]
12
13 PKGNAME='GridRipperApp'
14 AC_SUBST([PKGNAME])
15 LIBNAME='gridripperapp'
16 AC_SUBST([LIBNAME])
17 PKGDESCRIPTION='PDE implementations for the GridRipper AMR + spectral PDE solver.'
18 AC_SUBST([PKGDESCRIPTION])
19 REQUIRES=gridripper
20 AC_SUBST([REQUIRES])
21 CONFIG_OPTIONS=$ac_configure_args
22 AC_SUBST([CONFIG_OPTIONS])
23
24 CXXFLAGS=''
25 CXXFLAGS_FINAL=''
26 LIBS=''
27
28 # ------------------- check for debug options --------------------------------
29
30 AC_ARG_ENABLE(debug,[[
31   --enable-debug[=arg]    Compile with debugging enabled [disabled]
32                           The extra arg can be for example 'gdb'
33                           to produce debugging info for gdb. See
34                           'man gcc' to find other possibilities.]],
35 [[
36   if [ "$enable_debug" != "no" ] ; then
37     if [ "$enable_debug" = "yes" ] ; then
38       enable_debug=""
39     fi
40     CXXFLAGS="$CXXFLAGS -DDEBUG -g$enable_debug"
41     CXXFLAGS_FINAL="$CXXFLAGS_FINAL -DDEBUG -g$enable_debug"
42   fi
43 ]])
44
45 # ------------------- check for operating system -----------------------------
46
47 AC_MSG_CHECKING([[platform]])
48 [PLATFORM=`uname -s | tr '[a-z]' '[A-Z]'`]
49 AC_SUBST([PLATFORM])
50 AC_MSG_RESULT([$PLATFORM])
51
52 # ------------------- check for architecture ---------------------------------
53
54 AC_MSG_CHECKING([[architecture]])
55 [ARCH=`uname -m | tr '[a-z]' '[A-Z]'`]
56 AC_SUBST([ARCH])
57 AC_MSG_RESULT([$ARCH])
58
59 # ------------------- check for standard header files ------------------------
60
61 AC_PROG_CC
62 AC_PROG_CXX
63 AN_MAKEVAR([AR], [AC_PROG_AR])
64 AN_PROGRAM([ar], [AC_PROG_AR])
65 AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
66 AC_PROG_AR
67 AN_MAKEVAR([FIND], [AC_PROG_FIND])
68 AN_PROGRAM([find], [AC_PROG_FIND])
69 AC_DEFUN([AC_PROG_FIND], [AC_CHECK_TOOL(FIND, find, :)])
70 AC_PROG_FIND
71 AN_MAKEVAR([GREP], [AC_PROG_GREP])
72 AN_PROGRAM([grep], [AC_PROG_GREP])
73 AC_DEFUN([AC_PROG_GREP], [AC_CHECK_TOOL(GREP, grep, :)])
74 AC_PROG_GREP
75 AC_LANG([C++])
76 [ STDCPPHEADERS="ok" ]
77 AC_CHECK_HEADERS([iostream],[],[STDCPPHEADERS="error"])
78 AC_CHECK_HEADERS([streambuf],[],[STDCPPHEADERS="error"])
79 AC_CHECK_HEADERS([fstream],[],[STDCPPHEADERS="error"])
80 AC_CHECK_HEADERS([cmath],[],[STDCPPHEADERS="error"])
81 AC_CHECK_HEADERS([cstdlib],[],[STDCPPHEADERS="error"])
82 AC_CHECK_HEADERS([cstdio],[],[STDCPPHEADERS="error"])
83 AS_IF([test "$STDCPPHEADERS" = "ok"],[],
84    AC_MSG_ERROR([
85  **   Some of the standard c++ header files do not exist
86  **   on your system. Your compiler is probably too old
87 ]))
88
89 # -----------------  get current date ----------------------------------------
90
91 AC_MSG_CHECKING([[date]])
92 [CONFDATE=`date +%Y%m%d`]
93 AC_SUBST([CONFDATE])
94 AC_MSG_RESULT([$CONFDATE])
95
96 # -----------------  get current version from changelog ----------------------
97
98 AC_MSG_CHECKING([[version from changelog]])
99 [VERSION=`grep -m 1 -E '^\[[0123456789]+\.[0123456789]+(\.[0123456789]+)?\]' changelog | tr -d '[]'`]
100 AC_SUBST([VERSION])
101 AC_MSG_RESULT([$VERSION])
102
103 # -----------------  get current revision from SVN ---------------------------
104
105 AC_MSG_CHECKING([[current SVN revision]])
106 [REVISION=`svn info 2>/dev/null | grep "^Revision:" | cut -f 2 -d ':' | tr -d ' \t'`]
107 AC_SUBST([REVISION])
108 AC_MSG_RESULT([$REVISION])
109
110 # ----------------- check programs -------------------------------------------
111
112 [MISSING_SW=""]
113
114 AS_IF([test -x /bin/echo],[ECHO=/bin/echo],
115 [
116  AC_CHECK_PROG(ECHO, echo, `which echo`, [])
117  AS_IF([test "$ECHO" != ""], [], AC_MSG_ERROR([[echo does not exist]]))
118 ])
119 AC_SUBST([ECHO])
120
121 AC_CHECK_PROG(PERL, perl, `which perl`, [])
122 AS_IF([test "$PERL" != ""], [], 
123       [MISSING_SW="$MISSING_SW\nperl            - some helper scripts will fail\n"]
124 )
125 #AC_SUBST([PERL])
126
127 AC_CHECK_PROG(DOXYGEN, doxygen, `which doxygen`, [])
128 AS_IF([test "$DOXYGEN" != ""], [],
129       [MISSING_SW="$MISSING_SW\ndoxygen         - document generation will fail\n"]
130 )
131 AC_SUBST([DOXYGEN])
132
133 # --------  check GridRipper presence ----------------------------------------
134
135 AC_MSG_CHECKING([[GridRipper]])
136 [GRIDRIPPER_CONFIG=`pkg-config gridripper --cflags 2>/dev/null`]
137 AS_IF([test "$GRIDRIPPER_CONFIG" != ""], 
138 [
139   AC_MSG_RESULT([found])
140   CXXFLAGS='-DHAVE_GRIDRIPPER '`pkg-config gridripper --cflags`
141   CXXFLAGS_FINAL="$CXXFLAGS_FINAL "'-DHAVE_GRIDRIPPER `pkg-config gridripper --cflags`'
142   LIBS="$LIBS "'`pkg-config gridripper --libs`'
143   GRRLIBS_DIR=`pkg-config gridripper --libs-only-L`
144   GRRLIBS_MAIN=`pkg-config gridripper --variable=GRRLIBS_MAIN`
145   AC_SUBST([GRRLIBS_DIR])
146   AC_SUBST([GRRLIBS_MAIN])
147 ], 
148 [
149   AC_MSG_ERROR([GridRipper is not found, which is necessary. Please install.])
150 ])
151
152 # finally copy the CXXFLAGS_FINAL into CXXFLAGS (no compilation checks will be done
153 # any more here, so it's ok
154 CXXFLAGS=$CXXFLAGS_FINAL
155 AC_SUBST([LIBS])
156
157 # ------------------ checking X11 headers/libraries locations ----------------
158
159 AC_PATH_XTRA
160
161 # ------------------ summarize things ----------------------------------------
162
163 [echo]
164
165 AC_CONFIG_FILES([config.mk:config.mk.in])
166 AC_CONFIG_FILES([$LIBNAME.pc:$LIBNAME.pc.in])
167 AC_OUTPUT
168
169 AS_IF([test "$MISSING_SW" != ""],
170
171
172   echo "####################  MISSING FEATURES  ##########################"
173   echo "##### (this may very severy limit functionality)          ########"
174   echo "##################################################################"
175   echo
176   echo -e "$MISSING_SW"
177   echo
178   echo "##################################################################"
179   echo "### We very strongly recommend to install these packages!  #######"
180   echo "##################################################################"
181
182
183 )