ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/configure.ac
Revision: 1.14
Committed: Mon Aug 28 16:52:50 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.13: +5 -6 lines
Log Message:
disable old-style plug-ins, implement attach-field for map headers and map attachments

File Contents

# User Rev Content
1 root 1.1 dnl Process this file with autoconf to produce a configure script.
2    
3 root 1.7 AC_INIT([crossfire], [1.9.1], [crossfire-devel@listserv.real-time.com])
4 root 1.1 AC_CONFIG_AUX_DIR(utils)
5 elmex 1.9 AC_CONFIG_SRCDIR([server/main.C])
6 root 1.1 AM_INIT_AUTOMAKE
7     AM_CONFIG_HEADER(include/autoconf.h)
8    
9     AM_MAINTAINER_MODE
10    
11     AC_PREFIX_DEFAULT(/usr/games/crossfire)
12    
13     dnl we want a config.h file instead of -D options.
14    
15     dnl Checks for programs.
16 root 1.12 AC_PROG_CXX
17     AC_LANG(C++)
18 root 1.1 AC_PROG_LIBTOOL
19    
20     case "$target" in
21     alpha-dec-osf*)
22     # If we are not using gcc, we want the ansi version of cc.
23     if test -z "$GCC"; then
24     # CFLAGS="$CFLAGS -std1 -warnprotos" # Not yet ready for warnprotos...
25     CFLAGS="$CFLAGS -std1"
26     fi
27     ;;
28     *)
29     ;;
30     esac
31    
32    
33     AC_PROG_CPP
34     AM_PROG_LEX
35     AC_PROG_AWK
36    
37     AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Use the dmalloc library if available, may prevent plugins from working],
38     use_dmalloc=yes, use_dmalloc=no)
39    
40 root 1.14 dnl AC_ARG_WITH(python, [ --with-python=dir Directory to look for python headers/library (default=standard system location) ], PYTHON_HOME="$withval")
41 root 1.1
42    
43     dnl check for some other programs
44     AC_PATH_PROG(LATEX, latex)
45     AC_PATH_PROG(GZIP, gzip)
46     AC_PATH_PROG(GUNZIP, gunzip)
47     AC_PATH_PROG(TAR, tar)
48     AC_PATH_PROG(PERL, perl)
49     AC_PATH_PROG(BASENAME, basename)
50    
51     if test -n "$GZIP" -a -z "$GUNZIP" ; then
52     echo "Found gzip, but not gunzip - setting GUNZIP to gzip -c";
53     GUNZIP="$GZIP -c"
54     fi;
55    
56     if test -z "$COMPRESS" ; then
57     AC_PATH_PROG(COMPRESS, compress)
58     AC_PATH_PROG(UNCOMPRESS, uncompress)
59     fi
60    
61     AC_PATH_PROG(BZIP, bzip2)
62     AC_PATH_PROG(BUNZIP, bunzip2)
63    
64     if test -n "$BZIP" -a -z "$BUNZIP" ; then
65     echo "Found bzip2, but not bunzip2 - setting BUNZIP to bzip2 -c";
66     BUNZIP="$BZIP -c"
67     fi;
68    
69     if test -z "$COMPRESS" -a -z "$GZIP" -a -z "$BZIP" ; then
70     echo "Unable to find either compress, bzip2, or gzip - hope you don't plan on compressing";
71     echo "any files.";
72     fi;
73    
74     dnl nsl, socket may be needed for the X-windowing system, so check
75     dnl for them before before checking for X.
76     AC_CHECK_LIB(nsl, main)
77     AC_CHECK_LIB(socket, main)
78    
79     dnl Checks for libraries.
80     AC_CHECK_LIB(m, main)
81     AC_CHECK_LIB(png, main, AC_DEFINE(HAVE_LIBPNG,[],[Define if libpng is available]) X11LIBS="$X11LIBS -lpng", , $X11LIBS )
82    
83     dnl png has a dependency in some cases on libz - if we have it, can't really
84     dnl be harmful to link it in.
85     AC_CHECK_LIB(z, main, AC_DEFINE(HAVE_LIBZ,[],[Define if libz is available]) X11LIBS="$X11LIBS -lz", , $X11LIBS )
86    
87     dnl Misc libraries.
88     AC_CHECK_LIB(crypt, main)
89     AC_CHECK_LIB(des, des_crypt)
90    
91     dnl Gros - Changed this to support some external programs that do not like dmalloc (like Python).
92     dnl If you really need to make some memory debugging, uncomment the dmalloc line and comment out the dmalloclp one.
93    
94     if eval "test x$use_dmalloc = xyes"; then
95     AC_CHECK_LIB(dmalloc, main)
96     else
97     AC_CHECK_LIB(dmalloclp, main)
98     fi
99    
100     dnl Checks for header files.
101     AC_HEADER_DIRENT
102     AC_HEADER_STDC
103     AC_CHECK_HEADERS(fcntl.h limits.h malloc.h strings.h sys/file.h sys/ioctl.h sys/time.h time.h unistd.h stddef.h stdlib.h sys/ttycom.h sys/termios.h crypt.h arpa/inet.h des.h)
104    
105    
106     dnl Checks for typedefs, structures, and compiler characteristics.
107     AC_C_CONST
108     AC_C_INLINE
109     AC_TYPE_PID_T
110     AC_TYPE_SIZE_T
111     AC_HEADER_TIME
112     AC_STRUCT_TM
113     AC_TYPE_UID_T
114    
115     AC_CHECK_SIZEOF(long)
116     AC_CHECK_SIZEOF(long long)
117    
118     dnl Checks for library functions.
119     AC_PROG_GCC_TRADITIONAL
120     AC_FUNC_MEMCMP
121     AC_FUNC_SETPGRP
122     AC_TYPE_SIGNAL
123     AC_FUNC_STRFTIME
124     AC_FUNC_VPRINTF
125     AC_CHECK_FUNCS(gettimeofday mkdir mktime rmdir select socket strcspn strerror strspn strstr strtol strcasecmp strncasecmp snprintf setsid srandom getdtablesize srand48 srand sysconf scandir)
126    
127     dnl alphasort can not be added to AC_CHECK_FUNCS because
128     AC_MSG_CHECKING(checking if alphasort is defined)
129     AC_TRY_COMPILE([#include <dirent.h>], [alphasort;],
130     ac_cv_func_alphasort=yes, ac_cv_func_alphasort=no)
131     if test "$ac_cv_func_alphasort" = yes; then
132     AC_DEFINE(HAVE_ALPHASORT, 1, [Define if you have the alphasort() function declaration.])
133     AC_MSG_RESULT(yes)
134     else
135     AC_MSG_RESULT(no)
136     fi
137    
138    
139    
140     AC_MSG_CHECKING(how many args gettimeofday uses)
141     AC_CACHE_VAL(ac_cv_gettimeofday_args,
142     [AC_TRY_COMPILE([#include <sys/time.h>
143     #include <unistd.h>],
144     [struct timeval tv; struct timezone tzp;
145     gettimeofday(&tv, &tzp);],
146     [ac_gettimeofday_args=2],
147     [AC_TRY_COMPILE([#include <sys/time.h>
148     #include <unistd.h>],
149     [struct timeval tv;
150     gettimeofday(&tv, NULL);],
151     [ac_gettimeofday_args=2],
152     [AC_TRY_COMPILE([#include <sys/time.h>
153     #include <unistd.h>],
154     [struct timeval tv; gettimeofday(&tv);],
155     [ac_gettimeofday_args=1],
156     [ac_gettimeofday_args=0])])])
157     ac_cv_gettimeofday_args=$ac_gettimeofday_args])
158    
159     ac_gettimeofday_args=$ac_cv_gettimeofday_args
160     if test $ac_gettimeofday_args = 1 ; then
161     AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
162     AC_MSG_RESULT(one argument)
163     elif test $ac_gettimeofday_args = 2 ; then
164     AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
165     AC_DEFINE(GETTIMEOFDAY_TWO_ARGS,[],[Define if gettimeofday takes two arguments])
166     AC_MSG_RESULT(two arguments)
167     else
168     AC_MSG_RESULT(unknown)
169     fi
170    
171     AC_SUBST(x_includes)
172     AC_SUBST(x_libraries)
173     AC_SUBST(no_x)
174     AM_CONDITIONAL(HAVE_X,test "x$no_x" = "x")
175     AC_SUBST(X11LIBS)
176     AC_SUBST(PERL)
177     AC_SUBST(BASENAME)
178    
179     AC_SUBST(pkgstatedir,$localstatedir/$PACKAGE)
180     AC_SUBST(pkgconfdir,$sysconfdir/$PACKAGE)
181    
182     AC_DEFINE_UNQUOTED(COMPRESS,"${COMPRESS}",[Path to the compress binary])
183     AC_DEFINE_UNQUOTED(UNCOMPRESS,"${UNCOMPRESS}",[Path to the uncompress binary])
184     AC_DEFINE_UNQUOTED(GZIP,"${GZIP}",[Path to the gzip binary])
185     AC_DEFINE_UNQUOTED(GUNZIP,"${GUNZIP}",[Path to the gunzip binary])
186     AC_DEFINE_UNQUOTED(BZIP,"${BZIP}",[Path to the bzip binary])
187     AC_DEFINE_UNQUOTED(BUNZIP,"${BUNZIP}",[Path to the bunzip binary])
188    
189 root 1.3 AC_PATH_PROG(PERL, perl5)
190     AC_PATH_PROG(PERL, perl)
191    
192     AC_MSG_CHECKING(for $PERL suitability)
193     if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
194    
195     save_CFLAGS="$CFLAGS"
196     save_LIBS="$LIBS"
197 root 1.12 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts` `$PERL -MEvent::MakeMaker -e 'print +{&Event::MakeMaker::event_args}->{INC}'`"
198 root 1.3 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
199     AC_TRY_LINK([
200 root 1.2 #include <EXTERN.h>
201     #include <perl.h>
202     #include <XSUB.h>
203 root 1.8 #include "EventAPI.h"
204 root 1.2 ],[
205 root 1.3 PerlInterpreter *perl = perl_alloc ();
206 root 1.2 ],[perl_link=yes],[perl_link=no])
207 root 1.12 CXXFLAGS="$save_CXXFLAGS"
208 root 1.3 LIBS="$save_LIBS"
209 root 1.2
210 root 1.3 if test x$perl_link = xyes; then
211     AC_MSG_RESULT(ok)
212     AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
213 root 1.8 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts` `$PERL -MEvent::MakeMaker -e 'print +{&Event::MakeMaker::event_args}->{INC}'`"
214 root 1.3 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
215     PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
216     PERL_PLUGIN=yes
217 root 1.2 else
218 root 1.3 AC_MSG_ERROR([no, unable to link])
219 root 1.2 fi
220 root 1.3 else
221     AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
222 root 1.2 fi
223     AC_SUBST(PERLLIB)
224     AC_SUBST(PERLFLAGS)
225     AC_SUBST(PERLPRIVLIBEXP)
226     AC_SUBST(PERL)
227     AM_CONDITIONAL(PERL_PLUGIN,test "x$PERL_PLUGIN" != "x")
228     AC_SUBST(PERL_PLUGIN)
229    
230 root 1.1 #############################################
231     # Plugin configuration
232     AC_CHECK_LIB(dl, dlopen,[ cf_have_libdl=yes ])
233     AM_CONDITIONAL(HAVE_LIBDL,test "x$cf_have_libdl" = "xyes")
234    
235     if test "x$cf_have_libdl" = "xyes" ; then
236     ###############
237     # Python plugin
238 root 1.14 dnl CF_CHECK_PYTHON(
239     dnl [PLUGIN_PYTHON="cfpython.la"],
240     dnl [AC_MSG_NOTICE([No Python found. Python plugin will not be built.])]
241     dnl )
242 root 1.1 dnl *** Put other plugins configuration code here ***
243     else
244     AC_MSG_NOTICE([No dl library found. Plugins will not be supported.])
245     fi
246     AM_CONDITIONAL(PYTHON_PLUGIN,test "x$PLUGIN_PYTHON" != "x")
247     AC_SUBST(PLUGIN_PYTHON)
248    
249     AC_OUTPUT([Makefile
250     doc/Makefile doc/Developers/Makefile doc/spell-docs/Makefile
251     doc/spoiler/Makefile doc/spoiler-html/Makefile
252     doc/playbook/Makefile doc/playbook-html/Makefile
253     doc/scripts/Makefile
254     lib/Makefile random_maps/Makefile socket/Makefile server/Makefile
255     include/Makefile utils/Makefile lib/checkarch.pl
256     lib/collect.pl utils/add_throw.perl utils/crossloop.tmpl utils/crossloop.pl.tmpl
257     utils/metaserver.pl utils/crossloop.web utils/scores.pl utils/player_dl.pl
258 elmex 1.4 common/Makefile plugins/Makefile plugins/cfpython/Makefile
259 elmex 1.11 plugins/cfpython/include/Makefile
260 elmex 1.4 plugins/common/Makefile plugins/common/include/Makefile
261     devel/Makefile
262 root 1.1 ])