ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/configure.ac
Revision: 1.3
Committed: Sun Feb 5 19:53:21 2006 UTC (18 years, 3 months ago) by root
Branch: MAIN
Changes since 1.2: +25 -38 lines
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 dnl Process this file with autoconf to produce a configure script.
2    
3 root 1.3 AC_REVISION($Id: configure.ac,v 1.2 2006/02/03 07:25:24 root Exp $)
4 root 1.1 AC_INIT([crossfire], [1.8.0], [crossfire-devel@listserv.real-time.com])
5     AC_CONFIG_AUX_DIR(utils)
6     AC_CONFIG_SRCDIR([server/main.c])
7     AM_INIT_AUTOMAKE
8     AM_CONFIG_HEADER(include/autoconf.h)
9    
10     AM_MAINTAINER_MODE
11    
12     AC_PREFIX_DEFAULT(/usr/games/crossfire)
13    
14     dnl we want a config.h file instead of -D options.
15    
16     dnl Checks for programs.
17     AC_PROG_LIBTOOL
18     AC_PROG_CC
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     AC_ARG_WITH(python, [ --with-python=dir Directory to look for python headers/library (default=standard system location) ],
41     PYTHON_HOME="$withval")
42    
43    
44     dnl check for some other programs
45     AC_PATH_PROG(LATEX, latex)
46     AC_PATH_PROG(GZIP, gzip)
47     AC_PATH_PROG(GUNZIP, gunzip)
48     AC_PATH_PROG(TAR, tar)
49     AC_PATH_PROG(PERL, perl)
50     AC_PATH_PROG(BASENAME, basename)
51    
52     if test -n "$GZIP" -a -z "$GUNZIP" ; then
53     echo "Found gzip, but not gunzip - setting GUNZIP to gzip -c";
54     GUNZIP="$GZIP -c"
55     fi;
56    
57     if test -z "$COMPRESS" ; then
58     AC_PATH_PROG(COMPRESS, compress)
59     AC_PATH_PROG(UNCOMPRESS, uncompress)
60     fi
61    
62     AC_PATH_PROG(BZIP, bzip2)
63     AC_PATH_PROG(BUNZIP, bunzip2)
64    
65     if test -n "$BZIP" -a -z "$BUNZIP" ; then
66     echo "Found bzip2, but not bunzip2 - setting BUNZIP to bzip2 -c";
67     BUNZIP="$BZIP -c"
68     fi;
69    
70     if test -z "$COMPRESS" -a -z "$GZIP" -a -z "$BZIP" ; then
71     echo "Unable to find either compress, bzip2, or gzip - hope you don't plan on compressing";
72     echo "any files.";
73     fi;
74    
75     dnl nsl, socket may be needed for the X-windowing system, so check
76     dnl for them before before checking for X.
77     AC_CHECK_LIB(nsl, main)
78     AC_CHECK_LIB(socket, main)
79    
80     dnl Checks for libraries.
81     dnl Start of X11 libraries
82     AC_PATH_XTRA
83    
84     dnl Some of these checks are probably excessive. Unfortunately, on
85     dnl some systems, to link in Xaw, Xt you need SM, which needs ICE.
86     dnl the order of the checks below is important
87     OLD_LD_FLAGS="$LDFLAGS"
88     LDFLAGS="$X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS"
89    
90     AC_CHECK_LIB(X11, main, AC_DEFINE(HAVE_LIBX11,[],[Define if libX11 is available]) X11LIBS="$X11LIBS -lX11")
91    
92     AC_CHECK_LIB(ICE, main, AC_DEFINE(HAVE_LIBICE,[],[Define if libICE is available]) X11LIBS="$X11LIBS -lICE")
93    
94     AC_CHECK_LIB(SM, main, AC_DEFINE(HAVE_LIBSM,[],[Define if libSM is available]) X11LIBS="$X11LIBS -lSM", , $X11LIBS)
95    
96     AC_CHECK_LIB(Xext, main, AC_DEFINE(HAVE_LIBXEXT,[],[Define if libEXT is available]) X11LIBS="$X11LIBS -lXext", , -lX11)
97    
98     AC_CHECK_LIB(Xt, main, AC_DEFINE(HAVE_LIBXT,[],[Define if libXT is available]) X11LIBS="$X11LIBS -lXt", , $X11LIBS)
99    
100     AC_CHECK_LIB(Xmu, main, AC_DEFINE(HAVE_LIBXMU,[],[Define if libXMU is available]) X11LIBS="$X11LIBS -lXmu", ,$X11LIBS)
101    
102     AC_CHECK_LIB(Xaw, main, AC_DEFINE(HAVE_LIBXAW,[],[Define if libXAW is available]) X11LIBS="-lXaw $X11LIBS", , $X11LIBS)
103    
104     LDFLAGS="$OLD_LD_FLAGS"
105     X11LIBS="$X_LIBS $X11LIBS"
106    
107     AC_CHECK_LIB(Xpm, main, AC_DEFINE(HAVE_LIBXPM,[],[Define if libXpm is available]) X11LIBS="$X11LIBS -lXpm", , $X11LIBS )
108    
109     AC_CHECK_LIB(m, main)
110    
111     AC_CHECK_LIB(png, main, AC_DEFINE(HAVE_LIBPNG,[],[Define if libpng is available]) X11LIBS="$X11LIBS -lpng", , $X11LIBS )
112    
113     dnl png has a dependency in some cases on libz - if we have it, can't really
114     dnl be harmful to link it in.
115     AC_CHECK_LIB(z, main, AC_DEFINE(HAVE_LIBZ,[],[Define if libz is available]) X11LIBS="$X11LIBS -lz", , $X11LIBS )
116    
117     dnl Misc libraries.
118     AC_CHECK_LIB(crypt, main)
119     AC_CHECK_LIB(des, des_crypt)
120    
121     dnl Gros - Changed this to support some external programs that do not like dmalloc (like Python).
122     dnl If you really need to make some memory debugging, uncomment the dmalloc line and comment out the dmalloclp one.
123    
124     if eval "test x$use_dmalloc = xyes"; then
125     AC_CHECK_LIB(dmalloc, main)
126     else
127     AC_CHECK_LIB(dmalloclp, main)
128     fi
129    
130     dnl Checks for header files.
131     AC_HEADER_DIRENT
132     AC_HEADER_STDC
133     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)
134    
135    
136     dnl Checks for typedefs, structures, and compiler characteristics.
137     AC_C_CONST
138     AC_C_INLINE
139     AC_TYPE_PID_T
140     AC_TYPE_SIZE_T
141     AC_HEADER_TIME
142     AC_STRUCT_TM
143     AC_TYPE_UID_T
144    
145     AC_CHECK_SIZEOF(long)
146     AC_CHECK_SIZEOF(long long)
147    
148     dnl Checks for library functions.
149     AC_PROG_GCC_TRADITIONAL
150     AC_FUNC_MEMCMP
151     AC_FUNC_SETPGRP
152     AC_TYPE_SIGNAL
153     AC_FUNC_STRFTIME
154     AC_FUNC_VPRINTF
155     AC_CHECK_FUNCS(gettimeofday mkdir mktime rmdir select socket strcspn strerror strspn strstr strtol strcasecmp strncasecmp snprintf setsid srandom getdtablesize srand48 srand sysconf scandir)
156    
157     dnl alphasort can not be added to AC_CHECK_FUNCS because
158     AC_MSG_CHECKING(checking if alphasort is defined)
159     AC_TRY_COMPILE([#include <dirent.h>], [alphasort;],
160     ac_cv_func_alphasort=yes, ac_cv_func_alphasort=no)
161     if test "$ac_cv_func_alphasort" = yes; then
162     AC_DEFINE(HAVE_ALPHASORT, 1, [Define if you have the alphasort() function declaration.])
163     AC_MSG_RESULT(yes)
164     else
165     AC_MSG_RESULT(no)
166     fi
167    
168    
169    
170     AC_MSG_CHECKING(how many args gettimeofday uses)
171     AC_CACHE_VAL(ac_cv_gettimeofday_args,
172     [AC_TRY_COMPILE([#include <sys/time.h>
173     #include <unistd.h>],
174     [struct timeval tv; struct timezone tzp;
175     gettimeofday(&tv, &tzp);],
176     [ac_gettimeofday_args=2],
177     [AC_TRY_COMPILE([#include <sys/time.h>
178     #include <unistd.h>],
179     [struct timeval tv;
180     gettimeofday(&tv, NULL);],
181     [ac_gettimeofday_args=2],
182     [AC_TRY_COMPILE([#include <sys/time.h>
183     #include <unistd.h>],
184     [struct timeval tv; gettimeofday(&tv);],
185     [ac_gettimeofday_args=1],
186     [ac_gettimeofday_args=0])])])
187     ac_cv_gettimeofday_args=$ac_gettimeofday_args])
188    
189     ac_gettimeofday_args=$ac_cv_gettimeofday_args
190     if test $ac_gettimeofday_args = 1 ; then
191     AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
192     AC_MSG_RESULT(one argument)
193     elif test $ac_gettimeofday_args = 2 ; then
194     AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
195     AC_DEFINE(GETTIMEOFDAY_TWO_ARGS,[],[Define if gettimeofday takes two arguments])
196     AC_MSG_RESULT(two arguments)
197     else
198     AC_MSG_RESULT(unknown)
199     fi
200    
201     AC_SUBST(x_includes)
202     AC_SUBST(x_libraries)
203     AC_SUBST(no_x)
204     AM_CONDITIONAL(HAVE_X,test "x$no_x" = "x")
205     AC_SUBST(X11LIBS)
206     AC_SUBST(PERL)
207     AC_SUBST(BASENAME)
208    
209     AC_SUBST(pkgstatedir,$localstatedir/$PACKAGE)
210     AC_SUBST(pkgconfdir,$sysconfdir/$PACKAGE)
211    
212     AC_DEFINE_UNQUOTED(COMPRESS,"${COMPRESS}",[Path to the compress binary])
213     AC_DEFINE_UNQUOTED(UNCOMPRESS,"${UNCOMPRESS}",[Path to the uncompress binary])
214     AC_DEFINE_UNQUOTED(GZIP,"${GZIP}",[Path to the gzip binary])
215     AC_DEFINE_UNQUOTED(GUNZIP,"${GUNZIP}",[Path to the gunzip binary])
216     AC_DEFINE_UNQUOTED(BZIP,"${BZIP}",[Path to the bzip binary])
217     AC_DEFINE_UNQUOTED(BUNZIP,"${BUNZIP}",[Path to the bunzip binary])
218    
219 root 1.3 AC_PATH_PROG(PERL, perl5)
220     AC_PATH_PROG(PERL, perl)
221    
222     AC_MSG_CHECKING(for $PERL suitability)
223     if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
224    
225     save_CFLAGS="$CFLAGS"
226     save_LIBS="$LIBS"
227     CFLAGS="$CFLAGS `$PERL -MExtUtils::Embed -e ccopts`"
228     LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
229     AC_TRY_LINK([
230 root 1.2 #include <EXTERN.h>
231     #include <perl.h>
232     #include <XSUB.h>
233     ],[
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     PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts`"
243     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     AC_OUTPUT([Makefile
279     crossedit/Makefile crossedit/doc/Makefile crossedit/include/Makefile
280     crossedit/Cnv/Makefile crossedit/bitmaps/Makefile
281     doc/Makefile doc/Developers/Makefile doc/spell-docs/Makefile
282     doc/spoiler/Makefile doc/spoiler-html/Makefile
283     doc/playbook/Makefile doc/playbook-html/Makefile
284     doc/scripts/Makefile
285     lib/Makefile random_maps/Makefile socket/Makefile server/Makefile
286     include/Makefile utils/Makefile lib/checkarch.pl
287     lib/collect.pl utils/add_throw.perl utils/crossloop.tmpl utils/crossloop.pl.tmpl
288     utils/metaserver.pl utils/crossloop.web utils/scores.pl utils/player_dl.pl
289 root 1.2 common/Makefile plugins/Makefile plugins/cfperl/Makefile plugins/cfpython/Makefile plugins/cfanim/Makefile devel/Makefile
290 root 1.1 ])