ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/configure.ac
Revision: 1.17
Committed: Fri Sep 1 13:58:06 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.16: +1 -1 lines
Log Message:
portability fix

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.17 AC_LANG(C++)
17 root 1.12 AC_PROG_CXX
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 root 1.15 CPPFLAGS="$CPPFLAGS $PERLFLAGS"
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    
228 root 1.1 #############################################
229     # Plugin configuration
230     AC_CHECK_LIB(dl, dlopen,[ cf_have_libdl=yes ])
231     AM_CONDITIONAL(HAVE_LIBDL,test "x$cf_have_libdl" = "xyes")
232    
233     if test "x$cf_have_libdl" = "xyes" ; then
234     ###############
235     # Python plugin
236 root 1.14 dnl CF_CHECK_PYTHON(
237     dnl [PLUGIN_PYTHON="cfpython.la"],
238     dnl [AC_MSG_NOTICE([No Python found. Python plugin will not be built.])]
239     dnl )
240 root 1.1 dnl *** Put other plugins configuration code here ***
241 root 1.15 :
242 root 1.1 else
243     AC_MSG_NOTICE([No dl library found. Plugins will not be supported.])
244     fi
245     AM_CONDITIONAL(PYTHON_PLUGIN,test "x$PLUGIN_PYTHON" != "x")
246     AC_SUBST(PLUGIN_PYTHON)
247    
248     AC_OUTPUT([Makefile
249     doc/Makefile doc/Developers/Makefile doc/spell-docs/Makefile
250     doc/spoiler/Makefile doc/spoiler-html/Makefile
251     doc/playbook/Makefile doc/playbook-html/Makefile
252     doc/scripts/Makefile
253 root 1.16 lib/Makefile random_maps/Makefile socket/Makefile server/Makefile src/Makefile
254 root 1.1 include/Makefile utils/Makefile lib/checkarch.pl
255     lib/collect.pl utils/add_throw.perl utils/crossloop.tmpl utils/crossloop.pl.tmpl
256     utils/metaserver.pl utils/crossloop.web utils/scores.pl utils/player_dl.pl
257 elmex 1.4 common/Makefile plugins/Makefile plugins/cfpython/Makefile
258 elmex 1.11 plugins/cfpython/include/Makefile
259 elmex 1.4 plugins/common/Makefile plugins/common/include/Makefile
260     devel/Makefile
261 root 1.1 ])