eliot/configure.in

260 lines
9.6 KiB
Text
Raw Normal View History

2004-04-08 11:43:06 +02:00
dnl -*-m4-*-
dnl Process this file with autoconf to produce a configure script.
dnl --------------------------------------------------------------
dnl configure.in for Eliot
dnl --------------------------------------------------------------
2013-04-09 19:39:57 +02:00
AC_INIT([eliot],[2.2-git])
AC_CONFIG_SRCDIR(qt/main.cpp)
dnl See http://www.flameeyes.eu/autotools-mythbuster/automake/nonrecursive.html
dnl for the subdir-objets arguments (used at the moment for game/cmd/)
AM_INIT_AUTOMAKE([subdir-objects])
AC_CONFIG_HEADERS([config.h])
AC_CANONICAL_HOST
AC_CANONICAL_BUILD
2004-04-08 11:43:06 +02:00
dnl --------------------------------------------------------------
dnl Checks for programs.
dnl --------------------------------------------------------------
AC_PROG_INSTALL
AC_PROG_CC
dnl Needed for gettext
AC_USE_SYSTEM_EXTENSIONS
2004-04-08 11:43:06 +02:00
AC_PROG_CXX
AC_PROG_MAKE_SET
AC_PROG_RANLIB
PKG_PROG_PKG_CONFIG
2004-04-08 11:43:06 +02:00
AC_CHECK_HEADERS_ONCE(execinfo.h)
AX_CXX_GCC_ABI_DEMANGLE
2004-04-08 11:43:06 +02:00
dnl --------------------------------------------------------------
dnl Checks for compilation flags
2004-04-08 11:43:06 +02:00
dnl --------------------------------------------------------------
CFLAGS_save="${CFLAGS}"
AC_CACHE_CHECK([if \$CC accepts -Wall],
[ac_cv_c_Wall],
[CFLAGS="-Wall ${CFLAGS_save}"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[ac_cv_c_Wall=yes],[ac_cv_c_Wall=no])])
CFLAGS="${CFLAGS_save}"
if test "${ac_cv_c_Wall}" != "no"; then
CFLAGS+=" -Wall"
CXXFLAGS+=" -Wall"
fi
CFLAGS_save="${CFLAGS}"
AC_CACHE_CHECK([if \$CC accepts -Wextra],
[ac_cv_c_Wextra],
[CFLAGS="-Wextra ${CFLAGS_save}"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[ac_cv_c_Wextra=yes],[ac_cv_c_Wextra=no])])
CFLAGS="${CFLAGS_save}"
if test "${ac_cv_c_Wextra}" != "no"; then
CFLAGS+=" -Wextra"
CXXFLAGS+=" -Wextra"
fi
dnl Logging
AC_ARG_ENABLE([logging],AS_HELP_STRING([--enable-logging],[logging (default disabled)]))
if test "${enable_logging}" = "yes"; then
want_logging=1
else
want_logging=0
fi
dnl Debug mode
AC_ARG_ENABLE([debug],AS_HELP_STRING([--enable-debug],[debug mode (default disabled)]))
if test "${enable_debug}" = "yes"; then
CPPFLAGS+=" -DDEBUG"
CFLAGS+=" -g"
CXXFLAGS+=" -g"
2004-04-08 11:57:28 +02:00
fi
dnl Profile mode
AC_ARG_ENABLE([profile],AS_HELP_STRING([--enable-profile],[profile mode (default disabled)]))
if test "${enable_profile}" = "yes"; then
CPPFLAGS+=" -DPROFILE"
CFLAGS+=" -pg"
CXXFLAGS+=" -pg"
LDFLAGS+=" -pg"
fi
dnl Regexp / Listdic / Compdic build enable
AC_ARG_ENABLE([dictools],AS_HELP_STRING([--enable-dictools],[build independant dictionary tools (default enabled)]))
2005-04-09 21:16:56 +02:00
AM_CONDITIONAL([BUILD_DICTOOLS], [test "${enable_dictools}" != "no"])
dnl Define WIN32_BUILD if the compiler is i586-mingw32msvc-g++
AM_CONDITIONAL([WIN32_BUILD], [test "${CXX}" = "i586-mingw32msvc-g++"])
2004-04-08 11:43:06 +02:00
dnl --------------------------------------------------------------
dnl Checks for header files.
dnl --------------------------------------------------------------
AC_HEADER_STDC
AC_CHECK_HEADERS(fcntl.h unistd.h sys/stats.h sys/types.h)
AC_CHECK_HEADERS(arpa/inet.h netinet/in.h)
AC_CHECK_HEADERS([readline/readline.h], [has_readline=1], [has_readline=0])
AM_CONDITIONAL(HAS_READLINE, test "$has_readline" = "1")
2004-04-08 11:43:06 +02:00
dnl --------------------------------------------------------------
dnl Checks for typedefs, structures, and compiler characteristics.
dnl --------------------------------------------------------------
AC_C_CONST
AC_TYPE_SIZE_T
2006-04-16 13:26:04 +02:00
AC_C_BIGENDIAN
2004-06-26 16:47:39 +02:00
AC_C_INLINE
dnl AC_CHECK_SIZEOF(char, 1)
dnl AC_CHECK_SIZEOF(short, 2)
dnl AC_CHECK_SIZEOF(int *, 4)
dnl AC_CHECK_SIZEOF(int, 4)
dnl AC_CHECK_SIZEOF(long, 4)
dnl AC_CHECK_SIZEOF(long long, 0)
2004-04-08 11:43:06 +02:00
dnl --------------------------------------------------------------
dnl Checks for library functions.
dnl --------------------------------------------------------------
AC_FUNC_MEMCMP
AC_CHECK_FUNCS([wcwidth])
2004-04-08 11:43:06 +02:00
dnl --------------------------------------------------------------
dnl Checks for libraries.
dnl --------------------------------------------------------------
dnl Check for the Boost libraries (in fact we only need the headers)
dnl We need at least version 1.36, for Boost.Unordered
AX_BOOST_BASE([1.36.0])
PKG_CHECK_MODULES(LIBCONFIG, [libconfig++],
[has_libconfig=1
AC_DEFINE(HAVE_LIBCONFIG, 1, [Define to 1 if you have the libconfig library])],
[has_libconfig=0])
dnl Check for liblog4cxx
PKG_CHECK_MODULES(LOG4CXX, [liblog4cxx],
[has_log4cxx=1
AC_DEFINE(HAVE_LIBLOG4CXX, 1, [Define to 1 if you have the liblog4cxx library])],
[has_log4cxx=0])
AS_IF([test "${want_logging}" = "1"],
[AS_IF([test "${has_log4cxx}" = "1"],
[with_logging=1
AC_DEFINE(USE_LOGGING, 1, [Define to 1 if you want to enable logging])],
[AC_MSG_ERROR([Logging requested, but liblog4cxx could not be found on your system (using pkg-config)])])])
# Conditional, to avoid a useless dependency (in the case of shared library)
AM_CONDITIONAL([WITH_LOGGING], [test "${with_logging}" = "1"])
dnl Check for Expat
AX_LIB_EXPAT([2.0.1])
dnl Check for arabica and libxml2
PKG_CHECK_MODULES(ARABICA, [arabica], [],
[AC_MSG_ERROR([Could not find Arabica on your system (using pkg-config)])])
dnl PKG_CHECK_MODULES(LIBXML2, [libxml-2.0], [],
dnl [AC_MSG_ERROR([Could not find libxml2 on your system (using pkg-config)])])
dnl Check for ncurses
dnl We enable it if asked by the user, or if ncursesw is found
AC_ARG_ENABLE([ncurses],AS_HELP_STRING([--enable-ncurses],
[ncurses interface support (default enabled if ncursesw found on your system)]))
AX_WITH_CURSES([--without-ncurses --with-ncursesw])
if test "${enable_ncurses}" != "no" -a "${ax_cv_ncursesw}" = "yes"; then
want_ncurses=1
else
want_ncurses=0
if test "${enable_ncurses}" = "yes"; then
AC_MSG_ERROR([Could not find the ncursesw library on your system])
fi
fi
AM_CONDITIONAL([BUILD_NCURSES], [test "${want_ncurses}" = "1"])
dnl Check for Qt
AC_ARG_ENABLE([qt],AS_HELP_STRING([--enable-qt],
[Qt4 interface support (default enabled)]))
2013-09-25 22:23:01 +02:00
qt4_ok=0
AS_IF([test "${enable_qt}" != "no"],
[PKG_CHECK_MODULES(QT, [QtCore QtGui QtNetwork >= 4.2.0],
2013-09-25 22:23:01 +02:00
[qt4_ok=1
dnl Check for the qt4 suffix first (useful on Archlinux, which uses qt5 by default)
AC_PATH_PROGS(MOC, [moc-qt4 moc], moc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
AC_PATH_PROGS(UIC, [uic-qt4 uic], uic,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
AC_PATH_PROGS(RCC, [rcc-qt4 rcc], rcc,`$PKG_CONFIG --variable=exec_prefix QtCore`/bin)
QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
AC_SUBST(QT4LOCALEDIR)
],
[AC_MSG_ERROR([Could not find Qt on your system (using pkg-config)])]
)
])
2013-09-25 22:23:01 +02:00
dnl Check for Qt5
AC_ARG_ENABLE([qt5],AS_HELP_STRING([--enable-qt5],
[Qt5 interface support (default disabled)]))
qt5_ok=0
AS_IF([test "${enable_qt5}" = "yes"],
[PKG_CHECK_MODULES(QT, [Qt5Core Qt5Gui Qt5Widgets Qt5PrintSupport Qt5Network >= 5.1.0],
[qt5_ok=1
AC_PATH_PROGS(MOC, moc, moc,`$PKG_CONFIG --variable=exec_prefix Qt5Core`/bin)
AC_PATH_PROGS(UIC, uic, uic,`$PKG_CONFIG --variable=exec_prefix Qt5Core`/bin)
AC_PATH_PROGS(RCC, rcc, rcc,`$PKG_CONFIG --variable=exec_prefix Qt5Core`/bin)
QT4LOCALEDIR="$($PKG_CONFIG --variable=prefix QtCore)/share/qt4/translations/"
AC_SUBST(QT4LOCALEDIR)
],
[AC_MSG_ERROR([Could not find Qt5 on your system (using pkg-config)])]
)
])
dnl We biuld either with Qt4 or Qt5, but not both
if test "${qt5_ok}" = "1" && "${qt4_ok}" = "1"; then
AC_MSG_ERROR([Please deactivate Qt4 explicitly if you want to build with Qt5])
fi
2013-11-11 22:35:08 +01:00
AM_CONDITIONAL([BUILD_QT], [test "${qt4_ok}" = "1" -o "${qt5_ok}" = "1" ])
dnl Enable/disable text version
AC_ARG_ENABLE([text],AS_HELP_STRING([--enable-text],[text interface support (default enabled)]))
AM_CONDITIONAL([BUILD_TEXT], [test "${enable_text}" != "no"])
dnl Internationalization macros
2013-01-06 17:42:12 +01:00
AM_GNU_GETTEXT_VERSION(0.18.1)
AM_GNU_GETTEXT
dnl Iconv
dnl This test depends on AM_GNU_GETTEXT executed before
AS_IF([test "$am_cv_func_iconv" != "yes"],
[AC_MSG_ERROR([libiconv is needed for Eliot to work properly])])
dnl Information about who built eliot (useful for the dictionary)
AC_DEFINE_UNQUOTED(ELIOT_COMPILE_BY, "`whoami`", [user who ran configure])
AC_DEFINE_UNQUOTED(ELIOT_COMPILE_HOST, "`hostname`", [host which ran configure])
dnl Check the operating system
case "${host_os}" in
*mingw32* | *cygwin*)
SYS=mingw32
;;
*)
dnl nothing to do
;;
esac
if test "$SYS" = "mingw32"; then
# For ntohl, in particular
LIBS="${LIBS} -lws2_32"
fi
2004-04-08 11:43:06 +02:00
dnl --------------------------------------------------------------
dnl Output
dnl --------------------------------------------------------------
AC_CONFIG_FILES(intl/Makefile po/Makefile.in
2004-06-26 16:47:39 +02:00
dic/Makefile
2004-04-08 11:43:06 +02:00
game/Makefile
utils/Makefile
qt/Makefile
extras/Makefile
extras/innosetup/eliot-setup.iss
2004-04-08 11:43:06 +02:00
Makefile)
2004-06-26 16:47:39 +02:00
AC_OUTPUT
if test "$has_libconfig" != "1"; then
echo
echo "@@@@@@@@@@@"
echo "Warning!"
echo "libconfig++ was not detected on your system: saving and loading the configuration will be impossible!"
echo "libconfig++ can be downloaded here: http://www.hyperrealm.com/main.php?s=libconfig"
echo "@@@@@@@@@@@"
fi