# Process this file with autoconf to produce a configure script. ####################################################################### # Initial configuration # ####################################################################### AC_PREREQ([2.57]) AC_INIT([Battle for Wesnoth], [0.8.4-CVS], [davidnwhite@optusnet.com.au], [wesnoth]) dnl AC_DEFINE([WESNOTH_DEFAULT_SERVER], ["server.wesnoth.org"], [The default server for this version]) dnl AC_DEFINE([WESNOTH_DEFAULT_SERVER], ["devsrv.wesnoth.org"], [The default server for this version]) AC_DEFINE([WESNOTH_DEFAULT_SERVER], ["devsrv.wesnoth.org:14999"], [The default server for this version]) AC_REVISION([$Revision$]) AC_CONFIG_AUX_DIR([config]) AM_INIT_AUTOMAKE([foreign 1.5]) AC_CONFIG_SRCDIR([src/actions.cpp]) AC_CONFIG_HEADER([config.h]) AM_MAINTAINER_MODE AM_GNU_GETTEXT ####################################################################### # Configuration options # ####################################################################### AC_ARG_ENABLE([debug], [ --enable-debug Enable debug in wesnoth], [if test "x${enableval}" = "xyes" ; then CXXFLAGS="$CXXFLAGS -DDEBUG -ggdb3" fi]) AC_ARG_ENABLE([static], [ --enable-static Enable static building of wesnoth], [static=$enableval], [static=no]) AC_ARG_ENABLE([lite], [ --enable-lite Enable lite version of wesnoth (without music)], [lite=$enableval], [lite=no]) DATADIR=$PACKAGE AC_ARG_ENABLE([datadir-name], [ --datadir-name[[=dir]] Change name of data directory. Default with this option: wesnoth-data], [case "${enableval}" in yes) DATADIR="wesnoth-data" ;; no) ;; *) DATADIR="${enableval}" ;; esac]) AC_SUBST([DATADIR]) AC_ARG_ENABLE([server], [ --enable-server Enable compilation of server], [server=$enableval], [server=no]) AC_ARG_ENABLE([editor], [ --enable-editor Enable compilation of map editor], [editor=$enableval], [editor=no]) AC_ARG_ENABLE([tools], [ --enable-tools Enable compilation of tools for translators and artists], [tools=$enableval], [tools=no]) AC_ARG_ENABLE([kde], [ --enable-kde Enable installation of icon and KDE menu entry], [kde=$enableval], [kde=no]) AC_ARG_ENABLE([gnome], [ --enable-gnome Enable installation of icon and GNOME menu entry], [gnome=$enableval], [gnome=no]) AC_ARG_ENABLE([wzip], [ --enable-wzip Enable compilation of wesnoth_zip program], [wzip=$enableval], [wzip=no]) AM_CONDITIONAL([STATIC], [test x$static = xyes]) AM_CONDITIONAL([SERVER], [test x$server = xyes]) AM_CONDITIONAL([EDITOR], [test x$editor = xyes]) AM_CONDITIONAL([TOOLS], [test x$tools = xyes]) AM_CONDITIONAL([KDE], [test x$kde = xyes && test x$kdefound = xyes]) AM_CONDITIONAL([GNOME1], [test x$gnome = xyes && test x$gnome1found = xyes]) AM_CONDITIONAL([GNOME2], [test x$gnome = xyes && test x$gnome1found = xno]) AM_CONDITIONAL([GCC], [test x$GXX = xyes]) AM_CONDITIONAL([WZIP], [test x$wzip = xyes]) AM_CONDITIONAL([INCLUDEDINTL], [test x$nls_cv_use_gnu_gettext = xyes]) ####################################################################### # Checks for programs. # ####################################################################### AC_PROG_CXX AC_PROG_CC have_libx11='no' if test "$with_x" != 'no'; then dnl Locate X include files and libraries AC_PATH_XTRA NEW_LIBS="$X_LIBS -lX11" AC_CHECK_LIB(X11, XOpenDisplay, have_libx11='yes',have_libx11='no',$X_LIBS) if test "$have_libx11" != 'no'; then AC_DEFINE(HAVE_LIBX11,,Define if you have X11 libraries) X_LIBS="$NEW_LIBS" CPPFLAGS="$X_CFLAGS $CPPFLAGS" LIBS="$X_LIBS $LIBS" fi fi AM_CONDITIONAL([X11], [test "$have_libx11" = 'yes']) # SDL_CONFIG AC_PATH_PROGS([SDL_CONFIG], [sdl-config sdl11-config], [none]) if test "x$SDL_CONFIG" = "xnone"; then AC_MSG_ERROR([*** SDL not found! Get SDL from www.libsdl.org. If you already installed it, check it's in the path. If problem remains, please send a mail to the address that appears in ./configure --version indicating your platform, the version of configure script and the problem.]) fi # libpng-config AC_PATH_PROGS([PNG_CONFIG], [libpng-config libpng12-config], [none]) if test "x$PNG_CONFIG" = "xnone"; then pngfound=no AC_MSG_WARN([*** LIBPNG not found.]) else pngfound=yes PNG_CFLAGS=`$PNG_CONFIG --cflags` PNG_LIBS=`$PNG_CONFIG --libs` fi AC_SUBST([PNG_CFLAGS]) AC_SUBST([PNG_LIBS]) AM_CONDITIONAL([LIBPNG], [test x$pngfound = xyes]) # Check for SDL version. Taken from sdl.m4 AC_ARG_ENABLE([sdltest], [ --disable-sdltest Do not try to compile and run a test SDL program], , enable_sdltest=yes) min_sdl_version=1.2.7 AC_MSG_CHECKING(for SDL - version >= $min_sdl_version) SDL_CFLAGS=`$SDL_CONFIG --cflags` SDL_LIBS=`$SDL_CONFIG --libs` sdl_major_version=`$SDL_CONFIG --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` sdl_minor_version=`$SDL_CONFIG --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` sdl_micro_version=`$SDL_CONFIG --version | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_sdltest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" ac_save_LIBS="$LIBS" CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS" # Now check if the installed SDL is sufficiently new. (Also sanity # checks the results of sdl-config to some extent rm -f conf.sdltest AC_RUN_IFELSE([AC_LANG_SOURCE([ #include #include #include #include "SDL.h" char* my_strdup (char *str) { char *new_str; if (str) { new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); strcpy (new_str, str); } else new_str = NULL; return new_str; } int main (int argc, char **argv) { int major, minor, micro; char *tmp_version; /* This hangs on some systems (?) system ("touch conf.sdltest"); */ { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } /* HP/UX 9 (%@#!) writes to sscanf strings */ tmp_version = my_strdup("$min_sdl_version"); if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { printf("%s, bad version string\n", "$min_sdl_version"); exit(1); } if (($sdl_major_version > major) || (($sdl_major_version == major) && ($sdl_minor_version > minor)) || (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) { return 0; } else { printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); printf("*** best to upgrade to the required version.\n"); printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); printf("*** to point to the correct copy of sdl-config, and remove the file\n"); printf("*** config.cache before re-running configure\n"); return 1; } } ])], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)] [AC_MSG_ERROR([*** Please upgrade your SDL version])], [AC_MSG_RESULT[not tested in cross-compiling]]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi # GNOME_CONFIG AC_PATH_PROGS([GNOME_CONFIG], [gnome-config], [none]) if test "x$GNOME_CONFIG" = "xnone"; then gnome1found=no else GNOME1_DESKTOP=`$GNOME_CONFIG --datadir`/gnome/apps/Games gnome1found=yes fi AC_SUBST([GNOME1_DESKTOP]) # KDE_CONFIG AC_PATH_PROGS([KDE_CONFIG], [kde-config], [none]) if test "x$KDE_CONFIG" = "xnone"; then kdefound=no else KDE_DESKTOP=`$KDE_CONFIG --expandvars --install apps`/Games/TacticStrategy KDE_ICON=`$KDE_CONFIG --expandvars --install icon` kdefound=yes fi AC_SUBST([KDE_DESKTOP]) AC_SUBST([KDE_ICON]) ####################################################################### # Checks for types. # ####################################################################### # No need to chech anymore #AC_LANG([C++]) #AC_MSG_CHECKING([if char is signed]) #AC_COMPILE_IFELSE( # [[static int test_array [1 - 2 * !(((char) -1) < 0)];]], # [AC_MSG_RESULT(yes)], # [AC_MSG_RESULT(no)] # [AC_MSG_ERROR([*** char is unsigned. Wesnoth cannot work with unsigned #chars. Try with another compiler (specify it using CXX environment variable.) #If you use GCC, you can force signed chars with CXXFLAGS=-fsigned-char])]) ####################################################################### # Checks for libraries. # ####################################################################### # Use a modified version of ac_link so that libtool gets called AC_PATH_PROG([LTOOL], [libtool], []) if test "$static" = "yes" -a -n "$LTOOL" then LDPREFIX="$LTOOL --mode=link" else LDPREFIX="" fi AC_SUBST([LDPREFIX]) # if test -n "$LDPREFIX" -a -r /usr/lib/libSDL.la then SDL_LIBS=/usr/lib/libSDL.la else SDL_LIBS=`$SDL_CONFIG --libs` fi OLD_LIBS=$LIBS LIBS="$LIBS $SDL_LIBS" # There's no need for this, $SDL_CONFIG comes with libsdl and # it doesn't find it in FreeBSD # AC_CHECK_LIB([SDL], [SDL_Init]) ac_link="$LDPREFIX $ac_link" AC_CHECK_LIB([SDL_image], [IMG_Load], [if test -n "$LDPREFIX" -a -r /usr/lib/libSDL_image.la then SDL_IMAGE_LIBS=/usr/lib/libSDL_image.la else SDL_IMAGE_LIBS=-lSDL_image fi], [AC_MSG_ERROR([*** SDL_image lib not found! Get SDL_image from http://www.libsdl.org/projects/SDL_image/index.html])]) AC_CHECK_LIB([SDL_mixer], [Mix_OpenAudio], [if test -n "$LDPREFIX" -a -r /usr/lib/libSDL_mixer.la then SDL_MIXER_LIBS=/usr/lib/libSDL_mixer.la else SDL_MIXER_LIBS=-lSDL_mixer fi], [AC_MSG_ERROR([*** SDL_mixer lib not found! Get SDL_mixer from http://www.libsdl.org/projects/SDL_mixer/index.html])]) AC_CHECK_LIB([SDL_net], [SDLNet_Init], [if test -n "$LDPREFIX" -a -r /usr/lib/libSDL_net.la then SDL_NET_LIBS=/usr/lib/libSDL_net.la else SDL_NET_LIBS=-lSDL_net fi], [AC_MSG_ERROR([*** SDL_net lib not found! Get SDL_net from http://www.libsdl.org/projects/SDL_net/index.html])]) AC_CHECK_LIB([SDL_ttf], [TTF_OpenFont], [if test -n "$LDPREFIX" -a -r /usr/lib/libSDL_ttf.la then SDL_TTF_LIBS=/usr/lib/libSDL_ttf.la else SDL_TTF_LIBS=-lSDL_ttf fi], [AC_MSG_ERROR([*** SDL_ttf lib not found! Get SDL_ttf from http://www.libsdl.org/projects/SDL_ttf/index.html])]) LIBS=$OLD_LIBS AC_SUBST([SDL_LIBS]) AC_SUBST([SDL_IMAGE_LIBS]) AC_SUBST([SDL_MIXER_LIBS]) AC_SUBST([SDL_NET_LIBS]) AC_SUBST([SDL_TTF_LIBS]) ####################################################################### # Checks for header files. # ####################################################################### AC_HEADER_DIRENT AC_HEADER_STDC OLD_CPPFLAGS=$CPPFLAGS OLD_CXXFLAGS=$CXXFLAGS SDL_CFLAGS=`$SDL_CONFIG --cflags` SDL_CFLAGS="$SDL_CFLAGS" CPPFLAGS="$CPPFLAGS $SDL_CFLAGS" CXXFLAGS="$CXXFLAGS $SDL_CFLAGS" AC_CHECK_HEADER([SDL.h], [], [AC_MSG_ERROR([*** SDL include files not found! You should install SDL development package.])]) AC_CHECK_HEADER([SDL_image.h], [], [AC_MSG_ERROR([*** SDL_image include files not found! You should install development package.])]) AC_CHECK_HEADER([SDL_mixer.h], [], [AC_MSG_ERROR([*** SDL_mixer include files not found! You should install development package.])]) AC_CHECK_HEADER([SDL_net.h], [], [AC_MSG_ERROR([*** SDL_net include files not found! You should install development package.])]) AC_CHECK_HEADER([SDL_ttf.h], [], [AC_MSG_ERROR([*** SDL_ttf include files not found! You should install development package.])]) CPPFLAGS=$OLD_CPPFLAGS CXXFLAGS=$OLD_CXXFLAGS AC_SUBST([SDL_CFLAGS]) AC_CHECK_HEADERS([stdlib.h unistd.h]) ####################################################################### # Checks for typedefs, structures, and compiler characteristics. # ####################################################################### AC_HEADER_STDBOOL AC_C_CONST AC_C_INLINE AC_TYPE_MODE_T AC_TYPE_SIZE_T AC_STRUCT_TM # Checks for library functions. AC_FUNC_ERROR_AT_LINE AC_FUNC_STAT AC_FUNC_STRFTIME AC_CHECK_FUNCS([floor socket strtoul]) ####################################################################### # Check for PNG support in SDL_image # ####################################################################### AC_LANG([C]) AC_MSG_CHECKING([for PNG support in SDL_image]) OLD_CPPFLAGS=$CPPFLAGS OLD_CFLAGS=$CFLAGS OLD_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $SDL_CFLAGS" CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS $SDL_IMAGE_LIBS" ac_link="$LDPREFIX $ac_link" AC_RUN_IFELSE([AC_LANG_SOURCE([ #include #include int main(int argc, char **argv) { SDL_RWops *src; src = SDL_RWFromFile("images/mage.png", "rb"); if (src == NULL) exit(0); exit(!IMG_isPNG(src)); } ])], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)] [AC_MSG_ERROR([*** SDL_image has no PNG support! You need SDL_image with PNG support])], [AC_MSG_RESULT[not tested in cross-compiling]]) CPPFLAGS=$OLD_CPPFLAGS CFLAGS=$OLD_CFLAGS LIBS=$OLD_LIBS ####################################################################### # Check for OGG support in SDL_mixer # ####################################################################### if test "x$lite" = "xno"; then if test -e "music/main_menu.ogg" ; then AC_LANG([C]) AC_MSG_CHECKING([for OGG support in SDL_mixer]) OLD_CPPFLAGS=$CPPFLAGS OLD_CFLAGS=$CFLAGS OLD_LIBS=$LIBS CPPFLAGS="$CPPFLAGS $SDL_CFLAGS" CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS $SDL_MIXER_LIBS" ac_link="$LDPREFIX $ac_link" AC_RUN_IFELSE([AC_LANG_SOURCE([ #include #include int main(int argc, char **argv) { Mix_Music* music = Mix_LoadMUS("music/main_menu.ogg"); if (music == NULL) exit(1); exit(0); } ])], [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)] [AC_MSG_ERROR([*** SDL_mixer has no OGG support! You need SDL_mixer with OGG support])], [AC_MSG_RESULT[not tested in cross-compiling]]) CPPFLAGS=$OLD_CPPFLAGS CFLAGS=$OLD_CFLAGS LIBS=$OLD_LIBS fi fi ####################################################################### # Data file substitution. # ####################################################################### MANUAL_FILES=`ls MANUAL*` MANUAL_FILES=`echo $MANUAL_FILES` AM_CONDITIONAL([LITE], [test "x$lite" = "xyes"]) if test "x$lite" = "xyes"; then PACKAGE=$PACKAGE-lite fi UTIL_FILES=`find utils -name CVS -prune -o -name ".cvs*" -o -name ".#*" -o -type d -o -print` UTIL_FILES=`echo $UTIL_FILES` AC_SUBST([MANUAL_FILES]) AC_SUBST([DATA_FILES]) AC_SUBST([FONT_FILES]) AC_SUBST([IMAGE_FILES]) AC_SUBST([MUSIC_FILES]) AC_SUBST([SOUND_FILES]) AC_SUBST([UTIL_FILES]) AC_CONFIG_FILES([Makefile po/Makefile.in m4/Makefile intl/Makefile icons/Makefile src/Makefile src/server/Makefile src/tools/Makefile src/zip/Makefile]) AC_OUTPUT