# CXXFLAGS variable should contain the flags for the actual compilation tests, # since this variable is used by configure. For some reason, CXXFLAGS # can not contain `gsl-config --cflags` type things, so we always have to # expand this. # However, the final cxxflags output by configure should contain the non-expanded # versions (i.e. `gsl-config --cflags` and similar, instead of the expanded value) # so this will be accumulated in CXXFLAGS_FINAL, and after all the compilation # checks have been done, it will be copied to CXXFLAGS AC_INIT [ CWD=`pwd` ] PKGNAME='GridRipperApp' AC_SUBST([PKGNAME]) LIBNAME='gridripperapp' AC_SUBST([LIBNAME]) PKGDESCRIPTION='PDE implementations for the GridRipper AMR + spectral PDE solver.' AC_SUBST([PKGDESCRIPTION]) REQUIRES=gridripper AC_SUBST([REQUIRES]) CONFIG_OPTIONS=$ac_configure_args AC_SUBST([CONFIG_OPTIONS]) CXXFLAGS='' CXXFLAGS_FINAL='' LIBS='' # ------------------- check for debug options -------------------------------- AC_ARG_ENABLE(debug,[[ --enable-debug[=arg] Compile with debugging enabled [disabled] The extra arg can be for example 'gdb' to produce debugging info for gdb. See 'man gcc' to find other possibilities.]], [[ if [ "$enable_debug" != "no" ] ; then if [ "$enable_debug" = "yes" ] ; then enable_debug="" fi CXXFLAGS="$CXXFLAGS -DDEBUG -g$enable_debug" CXXFLAGS_FINAL="$CXXFLAGS_FINAL -DDEBUG -g$enable_debug" fi ]]) # ------------------- check for operating system ----------------------------- AC_MSG_CHECKING([[platform]]) [PLATFORM=`uname -s | tr '[a-z]' '[A-Z]'`] AC_SUBST([PLATFORM]) AC_MSG_RESULT([$PLATFORM]) # ------------------- check for architecture --------------------------------- AC_MSG_CHECKING([[architecture]]) [ARCH=`uname -m | tr '[a-z]' '[A-Z]'`] AC_SUBST([ARCH]) AC_MSG_RESULT([$ARCH]) # ------------------- check for standard header files ------------------------ AC_PROG_CC AC_PROG_CXX AN_MAKEVAR([AR], [AC_PROG_AR]) AN_PROGRAM([ar], [AC_PROG_AR]) AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)]) AC_PROG_AR AN_MAKEVAR([FIND], [AC_PROG_FIND]) AN_PROGRAM([find], [AC_PROG_FIND]) AC_DEFUN([AC_PROG_FIND], [AC_CHECK_TOOL(FIND, find, :)]) AC_PROG_FIND AN_MAKEVAR([GREP], [AC_PROG_GREP]) AN_PROGRAM([grep], [AC_PROG_GREP]) AC_DEFUN([AC_PROG_GREP], [AC_CHECK_TOOL(GREP, grep, :)]) AC_PROG_GREP AC_LANG([C++]) [ STDCPPHEADERS="ok" ] AC_CHECK_HEADERS([iostream],[],[STDCPPHEADERS="error"]) AC_CHECK_HEADERS([streambuf],[],[STDCPPHEADERS="error"]) AC_CHECK_HEADERS([fstream],[],[STDCPPHEADERS="error"]) AC_CHECK_HEADERS([cmath],[],[STDCPPHEADERS="error"]) AC_CHECK_HEADERS([cstdlib],[],[STDCPPHEADERS="error"]) AC_CHECK_HEADERS([cstdio],[],[STDCPPHEADERS="error"]) AS_IF([test "$STDCPPHEADERS" = "ok"],[], AC_MSG_ERROR([ ** Some of the standard c++ header files do not exist ** on your system. Your compiler is probably too old ])) # ----------------- get current date ---------------------------------------- AC_MSG_CHECKING([[date]]) [CONFDATE=`date +%Y%m%d`] AC_SUBST([CONFDATE]) AC_MSG_RESULT([$CONFDATE]) # ----------------- get current version from changelog ---------------------- AC_MSG_CHECKING([[version from changelog]]) [VERSION=`grep -m 1 -E '^\[[0123456789]+\.[0123456789]+(\.[0123456789]+)?\]' changelog | tr -d '[]'`] AC_SUBST([VERSION]) AC_MSG_RESULT([$VERSION]) # ----------------- get current revision from SVN --------------------------- AC_MSG_CHECKING([[current SVN revision]]) [REVISION=`svn info 2>/dev/null | grep "^Revision:" | cut -f 2 -d ':' | tr -d ' \t'`] AC_SUBST([REVISION]) AC_MSG_RESULT([$REVISION]) # ----------------- check programs ------------------------------------------- [MISSING_SW=""] AS_IF([test -x /bin/echo],[ECHO=/bin/echo], [ AC_CHECK_PROG(ECHO, echo, `which echo`, []) AS_IF([test "$ECHO" != ""], [], AC_MSG_ERROR([[echo does not exist]])) ]) AC_SUBST([ECHO]) AC_CHECK_PROG(PERL, perl, `which perl`, []) AS_IF([test "$PERL" != ""], [], [MISSING_SW="$MISSING_SW\nperl - some helper scripts will fail\n"] ) #AC_SUBST([PERL]) AC_CHECK_PROG(DOXYGEN, doxygen, `which doxygen`, []) AS_IF([test "$DOXYGEN" != ""], [], [MISSING_SW="$MISSING_SW\ndoxygen - document generation will fail\n"] ) AC_SUBST([DOXYGEN]) # -------- check GridRipper presence ---------------------------------------- AC_MSG_CHECKING([[GridRipper]]) [GRIDRIPPER_CONFIG=`pkg-config gridripper --cflags 2>/dev/null`] AS_IF([test "$GRIDRIPPER_CONFIG" != ""], [ AC_MSG_RESULT([found]) CXXFLAGS='-DHAVE_GRIDRIPPER '`pkg-config gridripper --cflags` CXXFLAGS_FINAL="$CXXFLAGS_FINAL "'-DHAVE_GRIDRIPPER `pkg-config gridripper --cflags`' LIBS="$LIBS "'`pkg-config gridripper --libs`' GRRLIBS_DIR=`pkg-config gridripper --libs-only-L` GRRLIBS_MAIN=`pkg-config gridripper --variable=GRRLIBS_MAIN` AC_SUBST([GRRLIBS_DIR]) AC_SUBST([GRRLIBS_MAIN]) ], [ AC_MSG_ERROR([GridRipper is not found, which is necessary. Please install.]) ]) # finally copy the CXXFLAGS_FINAL into CXXFLAGS (no compilation checks will be done # any more here, so it's ok CXXFLAGS=$CXXFLAGS_FINAL AC_SUBST([LIBS]) # ------------------ checking X11 headers/libraries locations ---------------- AC_PATH_XTRA # ------------------ summarize things ---------------------------------------- [echo] AC_CONFIG_FILES([config.mk:config.mk.in]) AC_CONFIG_FILES([$LIBNAME.pc:$LIBNAME.pc.in]) AC_OUTPUT AS_IF([test "$MISSING_SW" != ""], echo "#################### MISSING FEATURES ##########################" echo "##### (this may very severy limit functionality) ########" echo "##################################################################" echo echo -e "$MISSING_SW" echo echo "##################################################################" echo "### We very strongly recommend to install these packages! #######" echo "##################################################################" )