mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 13:37:05 +00:00
* --enable-builtin-ace (default) set use builting in mangos sources ACE version build and use * --disable-builtin-ace set use installed in system ACE version (if any) or error if no system version installed. This let easy use system version of ACE if it prefered by some reasons (for example 5.5.2 ACE package at 6.x FreeBSD) * This also fix proper detection Stack_Trace.h existance in both cases. More proper header existance check base at patch suggested by Plaes. Thanks to Splinter for testing.
296 lines
9.2 KiB
Text
296 lines
9.2 KiB
Text
# Copyright (C) 2005-2009 MaNGOS project <http://getmangos.com/>
|
|
#
|
|
# This file is free software; as a special exception the author gives
|
|
# unlimited permission to copy and/or distribute it, with or without
|
|
# modifications, as long as this notice is preserved.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
## Process this file with autoconf to produce a configure script.
|
|
|
|
# TODO: create m4 directory and put the checks there, because this file got realy poluted ( by Derex )
|
|
|
|
## Prelude, basic settings for Autoconf
|
|
# PACKAGE: mangos
|
|
# VERSION: 0.14.0 (trunk)
|
|
# BUG-REPORT-ADDRESS: mangos-devs@lists.sourceforge.net
|
|
AC_INIT( [mangos], [0.14.0], [mangos-devs@lists.sourceforge.net])
|
|
AC_CONFIG_SRCDIR([src/shared/Base.cpp])
|
|
|
|
## Prelude, basic settings for Automake
|
|
# Turn on all warnings and error messages, and enforce GNU
|
|
# standards for the package.
|
|
AM_INIT_AUTOMAKE([foreign -Wall -Werror gnu tar-pax])
|
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
|
|
|
AM_MAINTAINER_MODE
|
|
|
|
## Prevent the configure script from continuing any further if
|
|
# configuration is being performed in the top-level directory.
|
|
# The idea is to prevent this ,because some maintainers tend
|
|
# to break parallel build trees (a.k.a. VPATH builds).
|
|
if test "$srcdir" = "." && test "$enable_maintainer_mode" != "yes"; then
|
|
AC_MSG_ERROR(
|
|
[
|
|
Please configure and build in a directory other than the
|
|
top-level source directory. This is needed because a lot
|
|
of maintainers tend to break parallel build trees
|
|
(a.k.a. VPATH builds). This is kinda real ensurance they
|
|
will not do it (by enforcing everybody to do VPATH builds).
|
|
|
|
For example, try the following from the top-level source
|
|
directory:
|
|
|
|
mkdir objdir
|
|
cd objdir
|
|
../configure
|
|
make
|
|
|
|
This will create a build space in the directory `objdir' and
|
|
start a build in that directory.
|
|
|
|
If however you realy want to disable this error,
|
|
use --enable-maintainer-mode switch.
|
|
])
|
|
fi
|
|
|
|
## Disable building of static libraries by default
|
|
AC_DISABLE_STATIC
|
|
|
|
## Check for required dependencies.
|
|
|
|
## Check for a valid build environment.
|
|
# Valid equals having:
|
|
# - a C++ compiler compliant with the ISO98 C++ specification.
|
|
# - a working library tool for creating convenience libraries.
|
|
# - a working linker for creating static and shared libraries.
|
|
AC_PROG_CC
|
|
AC_PROG_CXX
|
|
AM_PROG_CC_C_O
|
|
AC_PROG_LIBTOOL
|
|
AC_PROG_INSTALL
|
|
PKG_PROG_PKG_CONFIG
|
|
|
|
# Check for doxygen
|
|
AC_ARG_ENABLE(doxygen, AC_HELP_STRING([--enable-doxygen], [turn on generating documentation]))
|
|
|
|
enable_doxygen_support=no
|
|
|
|
if test "x$enable_doxygen" = "xyes";
|
|
then
|
|
AC_PATH_PROG(DOXYGEN, doxygen, no)
|
|
if test "x$DOXYGEN" = "xno"; then
|
|
AC_MSG_ERROR([You need to install the doxygen package])
|
|
fi
|
|
enable_doxygen_support=yes
|
|
fi
|
|
AM_CONDITIONAL(DOXYGEN_ENABLED, test x$enable_doxygen_support = xyes)
|
|
|
|
## Check for required libraries.
|
|
AC_CHECK_LIB( pthread, pthread_create, [],
|
|
[LDFLAGS="-pthread $LDFLAGS"
|
|
AC_TRY_LINK([char pthread_create();],
|
|
pthread_create();,
|
|
[], [AC_MSG_ERROR([Missing pthread])])
|
|
])
|
|
AC_CHECK_LIB( z, compress, [ZLIB=-lz],[AC_MSG_ERROR([Missing zlib])] )
|
|
AC_CHECK_LIB( compat, ftime, [COMPATLIB=-lcompat] )
|
|
PKG_CHECK_MODULES(OPENSSL, [openssl], [], [AC_MSG_ERROR([Missing openssl])])
|
|
|
|
AC_ARG_WITH(postgresql,
|
|
[ --with-postgresql Use PostgreSQL as a backend (default: no)],
|
|
[case "${withval}" in
|
|
yes) DO_POSTGRESQL=yes ;;
|
|
no) DO_POSTGRESQL=no ;;
|
|
maybe) DO_POSTGRESQL=maybe ;;
|
|
*) AC_MSG_ERROR(Bad value ${withval} for --with-postgresql) ;;
|
|
esac],
|
|
[DO_POSTGRESQL=no])
|
|
|
|
AC_ARG_WITH(mysql,
|
|
[ --with-mysql Use MySQL as a backend (default: yes)],
|
|
[case "${withval}" in
|
|
yes) DO_MYSQL=yes ;;
|
|
no) DO_MYSQL=no ;;
|
|
maybe) DO_MYSQL=maybe ;;
|
|
*) AC_MSG_ERROR(Bad value ${withval} for --with-mysql) ;;
|
|
esac],
|
|
[DO_MYSQL=yes])
|
|
|
|
# here Postgre
|
|
AC_MSG_CHECKING(whether to build/link POSTGRESQL)
|
|
if test "x$DO_POSTGRESQL" = "xyes"; then
|
|
DO_MYSQL=no
|
|
POSTGRE_INCLUDES="-I/usr/include/postgresql $POSTGRE_INCLUDES"
|
|
POSTGRE_LIBS="-L/usr/lib/postresql -lpq -lz -lpthread -lcrypt -lnsl -lm -lpthread -L/usr/lib $OPENSSL_LIBS $POSTGRE_LIBS "
|
|
CXXFLAGS="-DDO_POSTGRESQL $CXXFLAGS"
|
|
fi
|
|
AC_MSG_RESULT($DO_POSTGRESQL)
|
|
|
|
# here mysql
|
|
AC_MSG_CHECKING(whether to build/link MYSQL)
|
|
if test "x$DO_MYSQL" = "xyes"; then
|
|
AC_MSG_RESULT($DO_MYSQL)
|
|
AC_PATH_PROGS(MYSQL_CONFIG, mysql_config, mysql_config, $PATH)
|
|
if test -x "$MYSQL_CONFIG"
|
|
then
|
|
# MySQL v4 uses --include while v3 uses --cflags
|
|
MYSQL_INCLUDES="`$MYSQL_CONFIG --include`" || \
|
|
MYSQL_INCLUDES="`$MYSQL_CONFIG --cflags`"
|
|
MYSQL_LIBS="`$MYSQL_CONFIG --libs_r`"
|
|
CXXFLAGS="-DDO_MYSQL $CXXFLAGS"
|
|
# Workaround for --as-needed linker flag that comes sometimes from mysql
|
|
if echo $MYSQL_LIBS|grep "\-Wl,--as-needed" > /dev/null; then
|
|
MYSQL_LIBS=`echo $MYSQL_LIBS|sed -e "s/-Wl,--as-needed//"`;
|
|
AC_MSG_WARN([Your mysql libs contains -Wl,--as-needed, this is not good, problem fixed in more recent mysql versions])
|
|
fi
|
|
fi
|
|
else
|
|
AC_MSG_RESULT($DO_MYSQL)
|
|
fi
|
|
|
|
## Check for options
|
|
# Include debug info in library?
|
|
AC_MSG_CHECKING(whether to include debug info in library)
|
|
MANGOSD_DEBUG_INFO=no
|
|
AC_ARG_WITH(debug-info,
|
|
[
|
|
Debugging options:
|
|
|
|
--with-debug-info Include debug info in library],
|
|
[
|
|
if test "$withval" = "yes" ; then
|
|
CFLAGS="-g -DMANGOS_DEBUG $CFLAGS"
|
|
CXXFLAGS="-g -DMANGOS_DEBUG $CXXFLAGS"
|
|
MANGOSD_DEBUG_INFO=yes
|
|
elif test "$withval" != "no" ; then
|
|
AC_MSG_ERROR(Please choose yes or no)
|
|
fi
|
|
])
|
|
AC_MSG_RESULT($MANGOSD_DEBUG_INFO)
|
|
|
|
## Check for required header files.
|
|
AC_HEADER_STDC
|
|
AC_HEADER_DIRENT
|
|
AC_CHECK_HEADERS([ arpa/inet.h fcntl.h limits.h locale.h malloc.h netdb.h netinet/in.h stddef.h stdint.h stdlib.h string.h strings.h sys/ioctl.h sys/param.h sys/socket.h sys/timeb.h sys/time.h termios.h unistd.h ])
|
|
|
|
AC_CHECK_HEADERS([pthread.h])
|
|
AC_CHECK_HEADERS([mysql.h mysql/mysql.h])
|
|
AC_CHECK_HEADERS([libpq-fe.h])
|
|
AC_CHECK_HEADERS([zlib.h])
|
|
|
|
## Check for typedefs, structures, and compiler characteristics.
|
|
AC_HEADER_STDBOOL
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
AC_C_VOLATILE
|
|
AC_CHECK_TYPES([ptrdiff_t])
|
|
|
|
## Check for required library functions.
|
|
AC_FUNC_CLOSEDIR_VOID
|
|
AC_FUNC_ERROR_AT_LINE
|
|
AC_FUNC_MALLOC
|
|
AC_FUNC_MEMCMP
|
|
AC_FUNC_REALLOC
|
|
AC_FUNC_SELECT_ARGTYPES
|
|
AC_TYPE_SIGNAL
|
|
AC_FUNC_VPRINTF
|
|
AC_CHECK_FUNCS([atexit ftime gethostbyaddr gethostbyname gethostname gettimeofday memmove memset pow realpath select socket sqrt strchr strdup strerror strstr])
|
|
|
|
|
|
# Check for use buildtin ACE sources
|
|
AC_ARG_ENABLE(builtin_ace, AC_HELP_STRING([--enable-builtin-ace], [turn on/off using builtin ACE sources]))
|
|
|
|
enable_builtin_ace_support=yes
|
|
|
|
if test "x$enable_builtin_ace" = "xno"; then
|
|
PKG_CHECK_MODULES(ACE, [ACE >= 5.5.2], [need_builtin_ace=no], [need_builtin_ace=yes])
|
|
if test X$need_builtin_ace = Xyes ; then
|
|
AC_MSG_ERROR([You need to install ACE package or use built-in ACE sources])
|
|
fi
|
|
enable_builtin_ace_support=no
|
|
fi
|
|
|
|
if test X$enable_builtin_ace_support = Xno; then
|
|
|
|
# old ace versions might not have ace/Stack_Trace.h...
|
|
AC_LANG_PUSH([C++])
|
|
AC_CHECK_HEADERS([ace/Stack_Trace.h])
|
|
AC_LANG_POP
|
|
else
|
|
# ...but we certainly have it in our included version
|
|
AC_DEFINE(HAVE_ACE_STACK_TRACE_H)
|
|
ACE_INCLUDES="-I\$(top_srcdir)/dep/ACE_wrappers -I\$(top_builddir)/dep/ACE_wrappers"
|
|
ACE_LIBS="\$(top_builddir)/dep/ACE_wrappers/ace/libACE.la"
|
|
fi
|
|
|
|
AM_CONDITIONAL([MANGOS_BUILD_ACE], [test X$enable_builtin_ace_support = Xyes])
|
|
|
|
## Unify all additional includes/libs in one variable.
|
|
# TODO this looks kinda ugly, but when we add m4 folder I will make it look very pritey ( by Derex ).
|
|
MANGOS_INCLUDES="$ACE_INCLUDES $POSTGRE_INCLUDES $MYSQL_INCLUDES $OPENSSL_INCLUDES $MANGOS_INCLUDES"
|
|
MANGOS_LIBS="$ACE_LIBS $POSTGRE_LIBS $MYSQL_LIBS $ZLIB $COMPATLIB $OPENSSL_LIBS $MANGOS_LIBS"
|
|
|
|
## Export defined variables
|
|
AC_SUBST(DOXYGEN)
|
|
AC_SUBST(MANGOSD_DEBUG_INFO)
|
|
|
|
## Additional CPPFLAGS and LDFLAGS.
|
|
AC_SUBST(MANGOS_INCLUDES)
|
|
AC_SUBST(MANGOS_LIBS)
|
|
|
|
## Set output files.
|
|
AC_CONFIG_HEADERS([config.h])
|
|
AC_CONFIG_FILES([
|
|
dep/include/Makefile
|
|
dep/lib/Makefile
|
|
dep/src/Makefile
|
|
dep/src/g3dlite/Makefile
|
|
dep/src/sockets/Makefile
|
|
dep/src/zlib/Makefile
|
|
dep/Makefile
|
|
doc/Doxyfile
|
|
doc/Makefile
|
|
Makefile
|
|
sql/Makefile
|
|
sql/tools/Makefile
|
|
sql/updates/Makefile
|
|
src/Makefile
|
|
src/tools/Makefile
|
|
src/tools/genrevision/Makefile
|
|
src/framework/Makefile
|
|
src/shared/Makefile
|
|
src/shared/Auth/Makefile
|
|
src/shared/Config/Makefile
|
|
src/shared/Database/Makefile
|
|
src/shared/vmap/Makefile
|
|
src/shared/SystemConfig.h
|
|
src/game/Makefile
|
|
src/realmd/Makefile
|
|
src/realmd/realmd.conf.dist
|
|
src/mangosd/Makefile
|
|
src/mangosd/mangosd.conf.dist
|
|
src/bindings/Makefile
|
|
src/bindings/universal/Makefile
|
|
])
|
|
|
|
## Configure ACE, if needed
|
|
if test X$enable_builtin_ace_support = Xyes; then
|
|
AC_CONFIG_SUBDIRS([dep/ACE_wrappers])
|
|
fi
|
|
|
|
AC_CONFIG_COMMANDS([default],[
|
|
echo ""
|
|
echo "Configuration of MaNGOS $PACKAGE_VERSION is now complete."
|
|
echo ""
|
|
],[PACKAGE_VERSION=$PACKAGE_VERSION])
|
|
|
|
## Disabled Makefiles, until they are ready for a successful make and
|
|
# make dist run.
|
|
|
|
## Output files.
|
|
AC_OUTPUT
|