ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/configure.ac
Revision: 1.12
Committed: Sun Aug 13 17:47:24 2006 UTC (17 years, 9 months ago) by root
Branch: MAIN
Changes since 1.11: +4 -32 lines
Log Message:
configury changes for c++

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     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     AC_CHECK_LIB(m, main)
82     AC_CHECK_LIB(png, main, AC_DEFINE(HAVE_LIBPNG,[],[Define if libpng is available]) X11LIBS="$X11LIBS -lpng", , $X11LIBS )
83    
84     dnl png has a dependency in some cases on libz - if we have it, can't really
85     dnl be harmful to link it in.
86     AC_CHECK_LIB(z, main, AC_DEFINE(HAVE_LIBZ,[],[Define if libz is available]) X11LIBS="$X11LIBS -lz", , $X11LIBS )
87    
88     dnl Misc libraries.
89     AC_CHECK_LIB(crypt, main)
90     AC_CHECK_LIB(des, des_crypt)
91    
92     dnl Gros - Changed this to support some external programs that do not like dmalloc (like Python).
93     dnl If you really need to make some memory debugging, uncomment the dmalloc line and comment out the dmalloclp one.
94    
95     if eval "test x$use_dmalloc = xyes"; then
96     AC_CHECK_LIB(dmalloc, main)
97     else
98     AC_CHECK_LIB(dmalloclp, main)
99     fi
100    
101     dnl Checks for header files.
102     AC_HEADER_DIRENT
103     AC_HEADER_STDC
104     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)
105    
106    
107     dnl Checks for typedefs, structures, and compiler characteristics.
108     AC_C_CONST
109     AC_C_INLINE
110     AC_TYPE_PID_T
111     AC_TYPE_SIZE_T
112     AC_HEADER_TIME
113     AC_STRUCT_TM
114     AC_TYPE_UID_T
115    
116     AC_CHECK_SIZEOF(long)
117     AC_CHECK_SIZEOF(long long)
118    
119     dnl Checks for library functions.
120     AC_PROG_GCC_TRADITIONAL
121     AC_FUNC_MEMCMP
122     AC_FUNC_SETPGRP
123     AC_TYPE_SIGNAL
124     AC_FUNC_STRFTIME
125     AC_FUNC_VPRINTF
126     AC_CHECK_FUNCS(gettimeofday mkdir mktime rmdir select socket strcspn strerror strspn strstr strtol strcasecmp strncasecmp snprintf setsid srandom getdtablesize srand48 srand sysconf scandir)
127    
128     dnl alphasort can not be added to AC_CHECK_FUNCS because
129     AC_MSG_CHECKING(checking if alphasort is defined)
130     AC_TRY_COMPILE([#include <dirent.h>], [alphasort;],
131     ac_cv_func_alphasort=yes, ac_cv_func_alphasort=no)
132     if test "$ac_cv_func_alphasort" = yes; then
133     AC_DEFINE(HAVE_ALPHASORT, 1, [Define if you have the alphasort() function declaration.])
134     AC_MSG_RESULT(yes)
135     else
136     AC_MSG_RESULT(no)
137     fi
138    
139    
140    
141     AC_MSG_CHECKING(how many args gettimeofday uses)
142     AC_CACHE_VAL(ac_cv_gettimeofday_args,
143     [AC_TRY_COMPILE([#include <sys/time.h>
144     #include <unistd.h>],
145     [struct timeval tv; struct timezone tzp;
146     gettimeofday(&tv, &tzp);],
147     [ac_gettimeofday_args=2],
148     [AC_TRY_COMPILE([#include <sys/time.h>
149     #include <unistd.h>],
150     [struct timeval tv;
151     gettimeofday(&tv, NULL);],
152     [ac_gettimeofday_args=2],
153     [AC_TRY_COMPILE([#include <sys/time.h>
154     #include <unistd.h>],
155     [struct timeval tv; gettimeofday(&tv);],
156     [ac_gettimeofday_args=1],
157     [ac_gettimeofday_args=0])])])
158     ac_cv_gettimeofday_args=$ac_gettimeofday_args])
159    
160     ac_gettimeofday_args=$ac_cv_gettimeofday_args
161     if test $ac_gettimeofday_args = 1 ; then
162     AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
163     AC_MSG_RESULT(one argument)
164     elif test $ac_gettimeofday_args = 2 ; then
165     AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
166     AC_DEFINE(GETTIMEOFDAY_TWO_ARGS,[],[Define if gettimeofday takes two arguments])
167     AC_MSG_RESULT(two arguments)
168     else
169     AC_MSG_RESULT(unknown)
170     fi
171    
172     AC_SUBST(x_includes)
173     AC_SUBST(x_libraries)
174     AC_SUBST(no_x)
175     AM_CONDITIONAL(HAVE_X,test "x$no_x" = "x")
176     AC_SUBST(X11LIBS)
177     AC_SUBST(PERL)
178     AC_SUBST(BASENAME)
179    
180     AC_SUBST(pkgstatedir,$localstatedir/$PACKAGE)
181     AC_SUBST(pkgconfdir,$sysconfdir/$PACKAGE)
182    
183     AC_DEFINE_UNQUOTED(COMPRESS,"${COMPRESS}",[Path to the compress binary])
184     AC_DEFINE_UNQUOTED(UNCOMPRESS,"${UNCOMPRESS}",[Path to the uncompress binary])
185     AC_DEFINE_UNQUOTED(GZIP,"${GZIP}",[Path to the gzip binary])
186     AC_DEFINE_UNQUOTED(GUNZIP,"${GUNZIP}",[Path to the gunzip binary])
187     AC_DEFINE_UNQUOTED(BZIP,"${BZIP}",[Path to the bzip binary])
188     AC_DEFINE_UNQUOTED(BUNZIP,"${BUNZIP}",[Path to the bunzip binary])
189    
190 root 1.3 AC_PATH_PROG(PERL, perl5)
191     AC_PATH_PROG(PERL, perl)
192    
193     AC_MSG_CHECKING(for $PERL suitability)
194     if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then
195    
196     save_CFLAGS="$CFLAGS"
197     save_LIBS="$LIBS"
198 root 1.12 CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts` `$PERL -MEvent::MakeMaker -e 'print +{&Event::MakeMaker::event_args}->{INC}'`"
199 root 1.3 LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`"
200     AC_TRY_LINK([
201 root 1.2 #include <EXTERN.h>
202     #include <perl.h>
203     #include <XSUB.h>
204 root 1.8 #include "EventAPI.h"
205 root 1.2 ],[
206 root 1.3 PerlInterpreter *perl = perl_alloc ();
207 root 1.2 ],[perl_link=yes],[perl_link=no])
208 root 1.12 CXXFLAGS="$save_CXXFLAGS"
209 root 1.3 LIBS="$save_LIBS"
210 root 1.2
211 root 1.3 if test x$perl_link = xyes; then
212     AC_MSG_RESULT(ok)
213     AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter)
214 root 1.8 PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts` `$PERL -MEvent::MakeMaker -e 'print +{&Event::MakeMaker::event_args}->{INC}'`"
215 root 1.3 PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`"
216     PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`"
217     PERL_PLUGIN=yes
218 root 1.2 else
219 root 1.3 AC_MSG_ERROR([no, unable to link])
220 root 1.2 fi
221 root 1.3 else
222     AC_MSG_ERROR([no working perl found, or perl not version >= 5.8])
223 root 1.2 fi
224     AC_SUBST(PERLLIB)
225     AC_SUBST(PERLFLAGS)
226     AC_SUBST(PERLPRIVLIBEXP)
227     AC_SUBST(PERL)
228     AM_CONDITIONAL(PERL_PLUGIN,test "x$PERL_PLUGIN" != "x")
229     AC_SUBST(PERL_PLUGIN)
230    
231 root 1.1 #############################################
232     # Plugin configuration
233     AC_CHECK_LIB(dl, dlopen,[ cf_have_libdl=yes ])
234     AM_CONDITIONAL(HAVE_LIBDL,test "x$cf_have_libdl" = "xyes")
235    
236     if test "x$cf_have_libdl" = "xyes" ; then
237     ###############
238     # Python plugin
239     CF_CHECK_PYTHON(
240     [PLUGIN_PYTHON="cfpython.la"],
241     [AC_MSG_NOTICE([No Python found. Python plugin will not be built.])]
242     )
243     dnl *** Put other plugins configuration code here ***
244     else
245     AC_MSG_NOTICE([No dl library found. Plugins will not be supported.])
246     fi
247     AM_CONDITIONAL(PYTHON_PLUGIN,test "x$PLUGIN_PYTHON" != "x")
248     AC_SUBST(PLUGIN_PYTHON)
249    
250     AC_OUTPUT([Makefile
251     doc/Makefile doc/Developers/Makefile doc/spell-docs/Makefile
252     doc/spoiler/Makefile doc/spoiler-html/Makefile
253     doc/playbook/Makefile doc/playbook-html/Makefile
254     doc/scripts/Makefile
255     lib/Makefile random_maps/Makefile socket/Makefile server/Makefile
256     include/Makefile utils/Makefile lib/checkarch.pl
257     lib/collect.pl utils/add_throw.perl utils/crossloop.tmpl utils/crossloop.pl.tmpl
258     utils/metaserver.pl utils/crossloop.web utils/scores.pl utils/player_dl.pl
259 elmex 1.4 common/Makefile plugins/Makefile plugins/cfpython/Makefile
260 elmex 1.11 plugins/cfpython/include/Makefile
261 elmex 1.4 plugins/common/Makefile plugins/common/include/Makefile
262     devel/Makefile
263     plugins/cfperl/Makefile
264 root 1.1 ])