From c625314940a3e41c28aff7a311ccd7ad2d0bf8d7 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Mon, 11 Mar 2013 21:09:56 +0000 Subject: Make the configure script work with the latest autotools. --- configure.ac | 561 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 561 insertions(+) create mode 100644 configure.ac (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..cb8ac36 --- /dev/null +++ b/configure.ac @@ -0,0 +1,561 @@ +dnl ---------------------------------------------------------------- +dnl append SVN revision to the version number + +dnl determine the svn revision number +define([svnversion], esyscmd([sh -c "echo -n 'svn'; svnversion -q|tr -d '\n'"])) + +AC_INIT([osirion], [0.2.4-svnversion]) + +AC_CONFIG_HEADERS(src/config.h) + +AC_LANG_CPLUSPLUS +AC_PROG_CXX +AC_PROG_LIBTOOL + +AM_INIT_AUTOMAKE + +dnl KDE_FIND_PATH(programm-name, variable-name, list of directories, +dnl if-not-found, test-parameter) +AC_DEFUN([KDE_FIND_PATH], +[ + AC_MSG_CHECKING([for $1]) + if test -n "$$2"; then + kde_cv_path="$$2"; + else + kde_cache=`echo $1 | sed 'y%./+-%__p_%'` + + AC_CACHE_VAL(kde_cv_path_$kde_cache, + [ + kde_cv_path="NONE" + dirs="$3" + kde_save_IFS=$IFS + IFS=':' + for dir in $PATH; do + dirs="$dirs $dir" + done + IFS=$kde_save_IFS + + for dir in $dirs; do + if test -x "$dir/$1"; then + if test -n "$5" + then + evalstr="$dir/$1 $5 2>&1 " + if eval $evalstr; then + kde_cv_path="$dir/$1" + break + fi + else + kde_cv_path="$dir/$1" + break + fi + fi + done + + eval "kde_cv_path_$kde_cache=$kde_cv_path" + + ]) + + eval "kde_cv_path=\"`echo '$kde_cv_path_'$kde_cache`\"" + + fi + + if test -z "$kde_cv_path" || test "$kde_cv_path" = NONE; then + AC_MSG_RESULT(not found) + $4 + else + AC_MSG_RESULT($kde_cv_path) + $2=$kde_cv_path + + fi +]) + +dnl ---------------------------------------------------------------- +dnl HOST dependend variables +dnl + +AC_MSG_CHECKING([host type]) +case "$host" in + *-apple-darwin*) + HOST_LIBS="" + HOST_GL_LIBS="-framework OpenGL" + HOST_AL_LIBS="-framework OpenAL" + ICON_CLIENT="" + ICON_SERVER="" + SDLMAIN="SDLMain.o" + INSTALLTYPE="application bundle" + OS=OSX + AC_MSG_RESULT(OS X) + AC_DEFINE_UNQUOTED(_OSX, 1, [Define this if you are building for native OS X]) + +dnl +dnl Do not rely on AC_PROG_OBJC presence (e.g. autoconf 2.59) +dnl http://www.mail-archive.com/xine-cvslog@lists.sourceforge.net/msg01693.html +dnl + + m4_ifdef( + [AC_PROG_OBJC], + [AC_PROG_OBJC], + [AC_CHECK_TOOL([OBJC], [gcc]) + AC_SUBST(OBJC) + AC_SUBST(OBJCFLAGS)] + ) + ;; + + *-*-mingw*) + HOST_LIBS="-lws2_32" + HOST_GL_LIBS="-lopengl32 -lglu32" + HOST_AL_LIBS="-lopenal32" + ICON_CLIENT="osirion-res.o" + ICON_SERVER="osiriond-res.o" + SDLMAIN="" + INSTALLTYPE="single directory" + OS=WIN32 + AC_MSG_RESULT(win32) + ;; + + *) + HOST_LIBS="" + HOST_GL_LIBS="-lGL -lGLU" + HOST_AL_LIBS="-lopenal" + ICON_CLIENT="" + ICON_SERVER="" + SDLMAIN="" + INSTALLTYPE="standard" + AC_MSG_RESULT(generic unix) + OS=UNIX + ;; +esac + +dnl +dnl Make Objective-C work with automake 1.7.x +dnl http://mlblog.osdir.com/sysutils.automake.general/2003-05/msg00030.shtml +dnl +AM_CONDITIONAL([am__fastdepOBJC], false) + +AC_SUBST(OS) +AC_SUBST(HOST_LIBS) +AC_SUBST(ICON_CLIENT) +AC_SUBST(ICON_SERVER) +AC_SUBST(SDLMAIN) + +AC_DEFINE(OS, $OS, [Operating System]) + +dnl ---------------------------------------------------------------- +dnl enable compiler warnings or not +dnl + +AC_MSG_CHECKING(whether to abort on compiler warnings) +WARN_CFLAGS="" +AC_ARG_ENABLE(warn, + AC_HELP_STRING([--disable-warn], [do not abort on compiler warnings]), + AC_MSG_RESULT(no), + AC_MSG_RESULT(yes) + WARN_CFLAGS="$WARN_CFLAGS -Wall -Werror" +) +AC_SUBST(WARN_CFLAGS) + +dnl ---------------------------------------------------------------- +dnl enable DEBUG messages or not +dnl + +AC_MSG_CHECKING(whether to include debug messages) +AC_ARG_ENABLE(debug_messages, + AC_HELP_STRING([--disable-debug-messages], [build without extra debug messages]), + AC_MSG_RESULT(no), + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(HAVE_DEBUG_MESSAGES, 1, [Define this to enable debug messages]) +) + +dnl ---------------------------------------------------------------- +dnl curses +dnl + +HAVE_CURSES=no + +AC_ARG_WITH(curses, + AC_HELP_STRING([--without-curses], + [do not include curses support] + ) +) + +if test "x${with_curses}" != "xno"; then + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $CURSES_CFLAGS" + + AC_CHECK_HEADER(curses.h, + HAVE_CURSES="maybe", + HAVE_CURSES="no" + ) + + if test "x${HAVE_CURSES}" = "xmaybe"; then + AC_CHECK_LIB(ncurses, initscr, + HAVE_CURSES="ncurses" + AC_DEFINE(HAVE_CURSES, ncurses, [Define this if you have the curses library]) + CURSES_LIBS="-lncurses", + HAVE_CURSES="maybe" + ) + fi + + if test "x${HAVE_CURSES}" = "xmaybe"; then + AC_CHECK_LIB(pdcurses, initscr, + HAVE_CURSES="pdcurses" + AC_DEFINE(HAVE_CURSES, pdcurses, [Define this if you have the curses library]) + CURSES_LIBS="-lpdcurses", + HAVE_CURSES="maybe" + ) + fi + + if test "x${HAVE_CURSES}" = "xmaybe"; then + AC_CHECK_LIB(curses, initscr, + HAVE_CURSES="curses" + AC_DEFINE(HAVE_CURSES, curses, [Define this if you have the curses library]) + CURSES_LIBS="-lcurses", + HAVE_CURSES="maybe" + ) + fi + + + if test "x${HAVE_CURSES}" = "xmaybe"; then + HAVE_CURSES=no + fi + + CPPFLAGS="$save_CPPFLAGS" +fi +AC_SUBST(CURSES_CFLAGS) +AC_SUBST(CURSES_LIBS) + +dnl ---------------------------------------------------------------- +dnl bullet +dnl + +HAVE_BULLET=no + +AC_ARG_ENABLE(static_bullet, + AC_HELP_STRING([--enable-static-bullet], [staticly link with bullet physics libraries]), + AC_MSG_RESULT(yes), + STATIC_BULLET="yes" + AC_MSG_RESULT(no) + STATIC_BULLET="no" +) + +AC_ARG_WITH(bullet, + AC_HELP_STRING([--with-bullet=PREFIX], + [link with bullet physics library installed in PREFIX] + ) +) + +LD_FLAGS_save="$LD_FLAGS" +CPPFLAGS_save="$CPPFLAGS" + +BULLET_DIR="/usr" +if test "x${with_bullet}" != "x"; then + BULLET_DIR="${with_bullet}" +fi + +CPPFLAGS="-I${BULLET_DIR}/include/bullet" + +AC_CHECK_HEADER(btBulletDynamicsCommon.h, + [], + AC_MSG_ERROR([bullet physics library not found in ${BULLET_DIR}]) +) + +AC_MSG_CHECKING([if static linking of the bullet libraries is requested]) +if test "x${enable_static_bullet}" = "xyes"; then + BULLET_CPPFLAGS="-I${BULLET_DIR}/include/bullet" + BULLET_LIBS="${BULLET_DIR}/lib/libBulletDynamics.a $BULLET_DIR/lib/libBulletCollision.a $BULLET_DIR/lib/libLinearMath.a" + AC_MSG_RESULT([yes]) +else + BULLET_CPPFLAGS="-I${BULLET_DIR}/include/bullet" + BULLET_LIBS="-lBulletDynamics -lBulletCollision -lLinearMath" + AC_MSG_RESULT([no]) +fi + +CPPFLAGS="$CPPFLAGS_save $BULLET_CPPFLAGS" +LD_FLAGS="$LD_FLAGS_save $BULLET_LIBS" + +CPPFLAGS="$CPPFLAGS_save" +LD_FLAGS="$LD_FLAGS_save" + +AC_SUBST(BULLET_CPPFLAGS) +AC_SUBST(BULLET_LIBS) + +dnl ---------------------------------------------------------------- +dnl zlib +dnl + +LIBS_save="$LIBS" +LD_FLAGS_save="$LD_FLAGS" + +AC_CHECK_HEADER(zlib.h, + [], + AC_MSG_ERROR([zlib.h not found]) +) + +AC_CHECK_LIB(z, compress, + [], + AC_MSG_ERROR([zlib not found]) +) + +LD_FLAGS="$LD_FLAGS_save" +LIBS="$LIBS_save" + +LIBZ_LIBS="-lz" +AC_SUBST(LIBZ_LIBS) + + +dnl ---------------------------------------------------------------- +dnl build client and server or dedicated server only +dnl +BUILD_CLIENT=no + +AC_ARG_WITH(client, + AC_HELP_STRING([--without-client], [do not build the client application]) +) + +AC_MSG_CHECKING(whether to build client) + +if test "x${with_client}" = xno; then + + AC_MSG_RESULT(no) + +else + AC_MSG_RESULT(yes) + + LD_FLAGS_save="$LDFLAGS" + + dnl --------------------------------------------------------------- + dnl OpenGL + dnl + + if test "x${OS}" = "xOSX"; then + AC_CHECK_HEADER(OpenGL/gl.h, + [], + [AC_MSG_ERROR([OpenGL/gl.h not found])] + ) + AC_CHECK_HEADER(OpenGL/glu.h, + [], + [AC_MSG_ERROR([OpenGL/glu.h not found])] + ) + else + AC_CHECK_HEADER(GL/gl.h, + [], + [AC_MSG_ERROR([GL/gl.h not found])] + ) + AC_CHECK_HEADER(GL/glu.h, + [], + [AC_MSG_ERROR([GL/glu.h not found])] + ) + fi + + LD_FLAGS="$LD_FLAGS_save" + GL_LIBS="$HOST_GL_LIBS" + AC_SUBST(GL_LIBS) + AC_SUBST(GL_CFLAGS) + + dnl --------------------------------------------------------------- + dnl OpenAL + + if test "x${OS}" = "xOSX"; then + AC_CHECK_HEADER(OpenAL/al.h, + [], + [AC_MSG_ERROR([OpenAL/al.h not found])] + ) + else + AC_CHECK_HEADER(AL/al.h, + [], + [AC_MSG_ERROR([AL/al.h not found])] + ) + fi + + LD_FLAGS="$LD_FLAGS_save" + AL_LIBS="$HOST_AL_LIBS" + AC_SUBST(AL_LIBS) + AC_SUBST(AL_CFLAGS) + + dnl --------------------------------------------------------------- + dnl libpng + dnl + + LD_FLAGS_save="$LD_FLAGS" + LD_FLAGS="$LD_FLAGS $LIBZ_LIBS" + + AC_CHECK_HEADER(png.h, + [], + [AC_MSG_ERROR([png.h not found])] + ) + AC_CHECK_LIB(png, png_create_info_struct, + HAVE_LIBPNG=yes, + [AC_MSG_ERROR([libpng not found])] + ) + + LD_FLAGS="$LD_FLAGS_save" + LIBPNG_LIBS="-lpng" + AC_SUBST(LIBPNG_LIBS) + + dnl --------------------------------------------------------------- + dnl libjpeg + dnl + + AC_CHECK_HEADER(jpeglib.h, + [], + [AC_MSG_ERROR([jpeglib.h not found])] + ) + AC_CHECK_LIB(jpeg, jpeg_start_decompress, + HAVE_LIBJPEG=yes + AC_DEFINE_UNQUOTED(HAVE_LIBJPEG, 1, [Define this if you have libjpeg]), + AC_MSG_ERROR([libjpeg not found]) + ) + LIBJPG_LIBS="-ljpeg" + AC_SUBST(LIBJPG_LIBS) + + dnl --------------------------------------------------------------- + dnl Ogg Vorbis + dnl + AC_CHECK_HEADER(vorbis/vorbisfile.h, + [], + [AC_MSG_ERROR([vorbis/vorbisfile.h not found])] + ) + AC_CHECK_HEADER(vorbis/codec.h, + [], + [AC_MSG_ERROR([vorbis/codec.h not found])] + ) + + AC_CHECK_LIB(vorbisfile, ov_fopen, + HAVE_VORBISFILE=yes + AC_DEFINE_UNQUOTED(HAVE_VORBISFILE, 1, [Define this if you have libvorbisfile]), + AC_MSG_ERROR([libvorbisfile not found]) + ) + LIBVORBISFILE_LIBS="-lvorbisfile" + AC_SUBST(LIBVORBISFILE_LIBS) + + dnl --------------------------------------------------------------- + dnl SDL + dnl + + AC_MSG_CHECKING([looking for SDL]) + KDE_FIND_PATH(sdl-config, LIBSDL_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [ + AC_MSG_ERROR([SDL not found]) + ]) + + if test -n "$LIBSDL_CONFIG"; then + LIBSDL_LIBS="`$LIBSDL_CONFIG --libs`" + LIBSDL_RPATH= + for args in $LIBSDL_LIBS; do + case $args in + -L*) + LIBSDL_RPATH="$LIBSDL_RPATH $args" + ;; + esac + done + + LIBSDL_RPATH=`echo $LIBSDL_RPATH | sed -e "s/-L/-R/g"` + LIBSDL_CFLAGS="`$LIBSDL_CONFIG --cflags`" + fi + + AC_MSG_RESULT($HAVE_LIBSDL) + + AC_SUBST(LIBSDL_LIBS) + AC_SUBST(LIBSDL_CFLAGS) + AC_SUBST(LIBSDL_RPATH) + + BUILD_CLIENT=yes + AC_DEFINE_UNQUOTED(BUILD_CLIENT, 1, [Define this to build the client]) +fi + +CXXFLAGS="-pipe $DEBUG_CFLAGS $WARN_CFLAGS $CXXFLAGS" +AC_SUBST(CXXFLAGS) + +CPPFLAGS="$CPPFLAGS $BULLET_CPPFLAGS" +AC_SUBST(CPPFLAGS) + +dnl --------------------------------------------------------------- +dnl Installation paths + +AC_MSG_CHECKING(installation type) +AC_ARG_ENABLE(single_directory, + AC_HELP_STRING( + [--enable-single-directory], [install everything in a single directory] + ), + AC_MSG_RESULT(single directory) + INSTALLTYPE="single directory", + AC_MSG_RESULT(standard) + INSTALLTYPE="standard" +) + +if test "x${INSTALLTYPE}" = xstandard; then + test "$prefix" = "NONE" && prefix="/usr/local" + bindir="$prefix/bin" + pkgdatadir="$prefix/share/${PACKAGE}" + docdir="$pkgdatadir/doc" +else + test "$prefix" = "NONE" && prefix="/opt/games/$PACKAGE" + bindir="$prefix" + pkgdatadir="$prefix" + docdir="$prefix/doc" +fi + +PACKAGE_DATADIR="$pkgdatadir/data" + +AC_DEFINE(PACKAGE_DATADIR, "$PACKAGE_DATADIR", + [Define this to the path containing the game data.] +) + +dnl --------------------------------------------------------------- +dnl Write makefiles and config.h + +AM_CONDITIONAL(BUILD_CLIENT, test "x$BUILD_CLIENT" = xyes) +AM_CONDITIONAL(BUILD_DEDICATED, test "x$BUILD_CLIENT" = xno) + +AC_CONFIG_FILES([ \ + src/auxiliary/Makefile \ + src/math/Makefile \ + src/sys/Makefile \ + src/filesystem/Makefile \ + src/model/Makefile \ + src/core/Makefile \ + src/dedicated/Makefile \ + src/audio/Makefile \ + src/render/Makefile \ + src/ui/Makefile\ + src/client/Makefile \ + src/game/base/Makefile \ + src/game/example/Makefile \ + src/game/intro/Makefile \ + src/game/Makefile \ + src/Makefile \ + Makefile]) + +AC_OUTPUT + +dnl --------------------------------------------------------------- +dnl Configuration summary + +AC_MSG_RESULT([ +Project::OSiRiON $VERSION + +Configuration summary: + +platform ........... $host +flags .............. $CPPFLAGS $CXXFLAGS +libraries .......... $HOST_LIBS $LIBJPG_LIBS $LIBPNG_LIBS $LIBZ_LIBS $CURSES_LIBS +bullet ............. $BULLET_LIBS +curses ............. $HAVE_CURSES +build client ....... $BUILD_CLIENT]) + +if test "x$BUILD_CLIENT" = xyes; then +AC_MSG_RESULT([SDL ................ $LIBSDL_LIBS +opengl ............. $GL_LIBS +openal ............. $AL_LIBS] +vorbisfile ......... $LIBVORBISFILE_LIBS) +fi + +AC_MSG_RESULT([ +Installation directories: + +installation type .. $INSTALLTYPE +prefix ............. $prefix +binaries ........... $bindir +documentation ...... $docdir +game data .......... $PACKAGE_DATADIR +]) + -- cgit v1.2.3