ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/configure.ac
Revision: 1.8
Committed: Tue Jul 11 14:24:15 2006 UTC (17 years, 10 months ago) by root
Branch: MAIN
CVS Tags: LAST_C_VERSION, difficulty_fix_merge_060810_2300
Branch point for: difficulty_fix
Changes since 1.7: +3 -2 lines
Log Message:
Prepared perl plug-in for event support
removed on_clock (use more efficient Event->timer).

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     AC_CONFIG_SRCDIR([server/main.c])
6     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     AC_PROG_LIBTOOL
17     AC_PROG_CC
18    
19     case "$target" in
20     alpha-dec-osf*)
21     # If we are not using gcc, we want the ansi version of cc.
22     if test -z "$GCC"; then
23     # CFLAGS="$CFLAGS -std1 -warnprotos" # Not yet ready for warnprotos...
24     CFLAGS="$CFLAGS -std1"
25     fi
26     ;;
27     *)
28     ;;
29     esac
30    
31    
32     AC_PROG_CPP
33     AM_PROG_LEX
34     AC_PROG_AWK
35    
36     AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Use the dmalloc library if available, may prevent plugins from working],
37     use_dmalloc=yes, use_dmalloc=no)
38    
39     AC_ARG_WITH(python, [ --with-python=dir Directory to look for python headers/library (default=standard system location) ],
40     PYTHON_HOME="$withval")
41    
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     dnl Start of X11 libraries
81     AC_PATH_XTRA
82    
83     dnl Some of these checks are probably excessive. Unfortunately, on
84     dnl some systems, to link in Xaw, Xt you need SM, which needs ICE.
85     dnl the order of the checks below is important
86     OLD_LD_FLAGS="$LDFLAGS"
87     LDFLAGS="$X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS"
88    
89     AC_CHECK_LIB(X11, main, AC_DEFINE(HAVE_LIBX11,[],[Define if libX11 is available]) X11LIBS="$X11LIBS -lX11")
90    
91     AC_CHECK_LIB(ICE, main, AC_DEFINE(HAVE_LIBICE,[],[Define if libICE is available]) X11LIBS="$X11LIBS -lICE")
92    
93     AC_CHECK_LIB(SM, main, AC_DEFINE(HAVE_LIBSM,[],[Define if libSM is available]) X11LIBS="$X11LIBS -lSM", , $X11LIBS)
94    
95     AC_CHECK_LIB(Xext, main, AC_DEFINE(HAVE_LIBXEXT,[],[Define if libEXT is available]) X11LIBS="$X11LIBS -lXext", , -lX11)
96    
97     AC_CHECK_LIB(Xt, main, AC_DEFINE(HAVE_LIBXT,[],[Define if libXT is available]) X11LIBS="$X11LIBS -lXt", , $X11LIBS)
98    
99     AC_CHECK_LIB(Xmu, main, AC_DEFINE(HAVE_LIBXMU,[],[Define if libXMU is available]) X11LIBS="$X11LIBS -lXmu", ,$X11LIBS)
100    
101     AC_CHECK_LIB(Xaw, main, AC_DEFINE(HAVE_LIBXAW,[],[Define if libXAW is available]) X11LIBS="-lXaw $X11LIBS", , $X11LIBS)
102    
103     LDFLAGS="$OLD_LD_FLAGS"
104     X11LIBS="$X_LIBS $X11LIBS"
105    
106     AC_CHECK_LIB(Xpm, main, AC_DEFINE(HAVE_LIBXPM,[],[Define if libXpm is available]) X11LIBS="$X11LIBS -lXpm", , $X11LIBS )
107    
108     AC_CHECK_LIB(m, main)
109    
110     AC_CHECK_LIB(png, main, AC_DEFINE(HAVE_LIBPNG,[],[Define if libpng is available]) X11LIBS="$X11LIBS -lpng", , $X11LIBS )
111    
112     dnl png has a dependency in some cases on libz - if we have it, can't really
113     dnl be harmful to link it in.
114     AC_CHECK_LIB(z, main, AC_DEFINE(HAVE_LIBZ,[],[Define if libz is available]) X11LIBS="$X11LIBS -lz", , $X11LIBS )
115    
116     dnl Misc libraries.
117     AC_CHECK_LIB(crypt, main)
118     AC_CHECK_LIB(des, des_crypt)
119    
120     dnl Gros - Changed this to support some external programs that do not like dmalloc (like Python).
121     dnl If you really need to make some memory debugging, uncomment the dmalloc line and comment out the dmalloclp one.
122    
123     if eval "test x$use_dmalloc = xyes"; then
124     AC_CHECK_LIB(dmalloc, main)
125     else
126     AC_CHECK_LIB(dmalloclp, main)
127     fi
128    
129     dnl Checks for header files.
130     AC_HEADER_DIRENT
131     AC_HEADER_STDC
132     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)
133    
134    
135     dnl Checks for typedefs, structures, and compiler characteristics.
136     AC_C_CONST
137     AC_C_INLINE
138     AC_TYPE_PID_T
139     AC_TYPE_SIZE_T
140     AC_HEADER_TIME
141     AC_STRUCT_TM
142     AC_TYPE_UID_T
143    
144     AC_CHECK_SIZEOF(long)
145     AC_CHECK_SIZEOF(long long)
146    
147     dnl Checks for library functions.
148     AC_PROG_GCC_TRADITIONAL
149     AC_FUNC_MEMCMP
150     AC_FUNC_SETPGRP
151     AC_TYPE_SIGNAL
152     AC_FUNC_STRFTIME
153     AC_FUNC_VPRINTF
154     AC_CHECK_FUNCS(gettimeofday mkdir mktime rmdir select socket strcspn strerror strspn strstr strtol strcasecmp strncasecmp snprintf setsid srandom getdtablesize srand48 srand sysconf scandir)
155    
156     dnl alphasort can not be added to AC_CHECK_FUNCS because
157     AC_MSG_CHECKING(checking if alphasort is defined)
158     AC_TRY_COMPILE([#include <dirent.h>], [alphasort;],
159     ac_cv_func_alphasort=yes, ac_cv_func_alphasort=no)
160     if test "$ac_cv_func_alphasort" = yes; then
161     AC_DEFINE(HAVE_ALPHASORT, 1, [Define if you have the alphasort() function declaration.])
162     AC_MSG_RESULT(yes)
163     else
164     AC_MSG_RESULT(no)
165     fi
166    
167    
168    
169     AC_MSG_CHECKING(how many args gettimeofday uses)
170     AC_CACHE_VAL(ac_cv_gettimeofday_args,
171     [AC_TRY_COMPILE([#include <sys/time.h>
172     #include <unistd.h>],
173     [struct timeval tv; struct timezone tzp;
174     gettimeofday(&tv, &tzp);],
175     [ac_gettimeofday_args=2],
176     [AC_TRY_COMPILE([#include <sys/time.h>
177     #include <unistd.h>],
178     [struct timeval tv;
179     gettimeofday(&tv, NULL);],
180     [ac_gettimeofday_args=2],
181     [AC_TRY_COMPILE([#include <sys/time.h>
182     #include <unistd.h>],
183     [struct timeval tv; gettimeofday(&tv);],
184     [ac_gettimeofday_args=1],
185     [ac_gettimeofday_args=0])])])
186     ac_cv_gettimeofday_args=$ac_gettimeofday_args])
187    
188     ac_gettimeofday_args=$ac_cv_gettimeofday_args
189     if test $ac_gettimeofday_args = 1 ; then
190     AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
191     AC_MSG_RESULT(one argument)
192     elif test $ac_gettimeofday_args = 2 ; then
193     AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
194     AC_DEFINE(GETTIMEOFDAY_TWO_ARGS,[],[Define if gettimeofday takes two arguments])
195     AC_MSG_RESULT(two arguments)
196     else
197     AC_MSG_RESULT(unknown)
198     fi
199    
200     AC_SUBST(x_includes)
201     AC_SUBST(x_libraries)
202     AC_SUBST(no_x)
203     AM_CONDITIONAL(HAVE_X,test "x$no_x" = "x")
204     AC_SUBST(X11LIBS)
205     AC_SUBST(PERL)
206     AC_SUBST(BASENAME)
207    
208     AC_SUBST(pkgstatedir,$localstatedir/$PACKAGE)
209     AC_SUBST(pkgconfdir,$sysconfdir/$PACKAGE)
210    
211     AC_DEFINE_UNQUOTED(COMPRESS,"${COMPRESS}",[Path to the compress binary])
212     AC_DEFINE_UNQUOTED(UNCOMPRESS,"${UNCOMPRESS}",[Path to the uncompress binary])
213     AC_DEFINE_UNQUOTED(GZIP,"${GZIP}",[Path to the gzip binary])
214     AC_DEFINE_UNQUOTED(GUNZIP,"${GUNZIP}",[Path to the gunzip binary])
215     AC_DEFINE_UNQUOTED(BZIP,"${BZIP}",[Path to the bzip binary])
216     AC_DEFINE_UNQUOTED(BUNZIP,"${BUNZIP}",[Path to the bunzip binary])
217    
218 root 1.3 AC_PATH_PROG(PERL, perl5)
219     AC_PATH_PROG(PERL, perl)
220    
221     AC_MSG_CHECKING(for $PERL suitability)
222     if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
223    
224     save_CFLAGS="$CFLAGS"
225     save_LIBS="$LIBS"
226 root 1.8 CFLAGS="$CFLAGS `$PERL -MExtUtils::Embed -e ccopts` `$PERL -MEvent::MakeMaker -e 'print +{&Event::MakeMaker::event_args}->{INC}'`"
227 root 1.3 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
228     AC_TRY_LINK([
229 root 1.2 #include <EXTERN.h>
230     #include <perl.h>
231     #include <XSUB.h>
232 root 1.8 #include "EventAPI.h"
233 root 1.2 ],[
234 root 1.3 PerlInterpreter *perl = perl_alloc ();
235 root 1.2 ],[perl_link=yes],[perl_link=no])
236 root 1.3 CXXFLAGS="$save_CFLAGS"
237     LIBS="$save_LIBS"
238 root 1.2
239 root 1.3 if test x$perl_link = xyes; then
240     AC_MSG_RESULT(ok)
241     AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
242 root 1.8 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts` `$PERL -MEvent::MakeMaker -e 'print +{&Event::MakeMaker::event_args}->{INC}'`"
243 root 1.3 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
244     PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
245     PERL_PLUGIN=yes
246 root 1.2 else
247 root 1.3 AC_MSG_ERROR([no, unable to link])
248 root 1.2 fi
249 root 1.3 else
250     AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
251 root 1.2 fi
252     AC_SUBST(PERLLIB)
253     AC_SUBST(PERLFLAGS)
254     AC_SUBST(PERLPRIVLIBEXP)
255     AC_SUBST(PERL)
256     AM_CONDITIONAL(PERL_PLUGIN,test "x$PERL_PLUGIN" != "x")
257     AC_SUBST(PERL_PLUGIN)
258    
259 root 1.1 #############################################
260     # Plugin configuration
261     AC_CHECK_LIB(dl, dlopen,[ cf_have_libdl=yes ])
262     AM_CONDITIONAL(HAVE_LIBDL,test "x$cf_have_libdl" = "xyes")
263    
264     if test "x$cf_have_libdl" = "xyes" ; then
265     ###############
266     # Python plugin
267     CF_CHECK_PYTHON(
268     [PLUGIN_PYTHON="cfpython.la"],
269     [AC_MSG_NOTICE([No Python found. Python plugin will not be built.])]
270     )
271     dnl *** Put other plugins configuration code here ***
272     else
273     AC_MSG_NOTICE([No dl library found. Plugins will not be supported.])
274     fi
275     AM_CONDITIONAL(PYTHON_PLUGIN,test "x$PLUGIN_PYTHON" != "x")
276     AC_SUBST(PLUGIN_PYTHON)
277    
278 pippijn 1.5 # crossedit compilability check
279     CF_CHECK_CROSSEDIT(["$X11LIBS"],
280     [cf_will_build_crossedit="yes"]
281     AC_SUBST(CROSSEDIT, 'crossedit'),
282     [cf_will_build_crossedit="no"] )
283    
284 root 1.1 AC_OUTPUT([Makefile
285     crossedit/Makefile crossedit/doc/Makefile crossedit/include/Makefile
286     crossedit/Cnv/Makefile crossedit/bitmaps/Makefile
287     doc/Makefile doc/Developers/Makefile doc/spell-docs/Makefile
288     doc/spoiler/Makefile doc/spoiler-html/Makefile
289     doc/playbook/Makefile doc/playbook-html/Makefile
290     doc/scripts/Makefile
291     lib/Makefile random_maps/Makefile socket/Makefile server/Makefile
292     include/Makefile utils/Makefile lib/checkarch.pl
293     lib/collect.pl utils/add_throw.perl utils/crossloop.tmpl utils/crossloop.pl.tmpl
294     utils/metaserver.pl utils/crossloop.web utils/scores.pl utils/player_dl.pl
295 elmex 1.4 common/Makefile plugins/Makefile plugins/cfpython/Makefile
296     plugins/cfpython/include/Makefile plugins/cfanim/Makefile
297     plugins/cfanim/include/Makefile
298     plugins/common/Makefile plugins/common/include/Makefile
299     devel/Makefile
300     plugins/cfperl/Makefile
301 root 1.1 ])