root/1.8.3/branches/gc/configure.in

Revision 1299, 8.3 KB (checked in by shawnw, 3 months ago)

GC: Update to p7

Line 
1### autoconf file for PennMUSH
2### This file uses tests from the Autoconf Macro Archive.
3### It is available at http://autoconf-archive.cryp.to/
4### The actual tests used are in ./aclocal.m4. DO NOT AUTO-GENERATE
5### that file with aclocal.
6
7AC_INIT(configure.in)
8AC_CONFIG_HEADERS(config.h)
9AC_CANONICAL_BUILD
10
11if test "x$CFLAGS" = "x"; then
12CFLAGS="-O"
13DEFAULT_CFLAGS=yes
14else
15DEFAULT_CFLAGS=no
16fi
17
18AC_LANG(C)
19
20### Programs
21
22AC_PATH_PROG(CAT, cat)
23AC_PROG_CC
24AC_PROG_CC_C99
25AC_PATH_PROG(GDB, gdb)
26AC_PATH_PROG(CHMOD, chmod)
27AC_PATH_PROG(CP, cp)
28AC_PATH_PROG(ECHO, echo)
29AC_PROG_INSTALL
30AC_PROG_LN_S
31AC_PATH_PROG(MAKE, make)
32
33AX_WITH_PERL
34if test "${PERL+set}" != "set"; then
35   AC_MSG_ERROR([perl is required to build and run PennMUSH])
36fi
37
38AC_PATH_PROG(TEST, test)
39AC_PATH_PROG(TOUCH, touch)
40AC_PATH_PROG(RM, rm)
41AC_PATH_PROG(INDENT, indent)
42AC_PATH_PROG(CTAGS, ctags)
43AC_PATH_PROG(ETAGS, etags)
44AC_PATH_PROG(EXCTAGS, exctags)
45
46# Set good debug and warning options if using gcc
47# and custom CFLAGS aren't being used.
48# Todo: Look into the warnings setting macros in the autoconf archive,
49# maybe use them instead?
50if test $DEFAULT_CFLAGS = yes; then
51 if test "${GDB+set}" = "set"; then
52  if test "${ac_cv_c_compiler_gnu+set}" = "set"; then
53CFLAGS="-ggdb $CFLAGS -W -Wall -pedantic -Wno-comment"
54   else
55CFLAGS="-g $CFLAGS -W"
56  fi
57 else
58CFLAGS="-g $CFLAGS -W"
59 fi
60fi
61
62AX_GCC_OPTION([-fstack-protector], [], [], [
63   CFLAGS="$CFLAGS -fstack-protector"
64], [])
65
66case "${build_cpu}-${build_os}" in
67  powerpc*-darwin*)
68   AX_GCC_OPTION([-mdynamic-no-pic], [], [], [
69      CFLAGS="$CFLAGS -mdynamic-no-pic"
70   ], [])
71  ;;
72esac
73
74if test "${CTAGS+set}" != "set" -a "${EXCTAGS+set}" = "set"; then
75    CTAGS=$EXCTAGS
76fi
77
78if test "${ETAGS+set}" != "set" -a "${EXCTAGS+set}" = "set"; then
79    ETAGS="$EXCTAGS -e"
80fi
81
82AC_PATH_PROG(UPTIME, uptime)
83if test "${UPTIME+set}" = "set"; then
84 AC_DEFINE([HAVE_UPTIME])
85 AC_DEFINE_UNQUOTED([UPTIME], "$UPTIME")
86fi
87
88AC_ARG_VAR(SENDMAIL, Path to sendmail)
89AC_PATH_PROG(SENDMAIL, sendmail)
90if test "${SENDMAIL+set}" = "set"; then
91 AC_DEFINE([HAVE_SENDMAIL])
92 AC_DEFINE_UNQUOTED([SENDMAIL], "$SENDMAIL")
93fi
94
95
96### Headers
97# Usually there's no need to check for standard C89 headers.
98
99# <stdint.h> is checked by this.
100AC_HEADER_STDC
101AC_HEADER_STDBOOL
102AC_HEADER_SYS_WAIT
103AC_HEADER_TIME
104AC_CHECK_HEADER(sys/time.h, [AC_DEFINE(I_SYS_TIME)])
105AC_CHECK_HEADER(arpa/inet.h, [AC_DEFINE(I_ARPA_INET)])
106AC_CHECK_HEADER(arpa/nameser.h, [AC_DEFINE(I_ARPA_NAMESER)])
107AC_CHECK_HEADER(fcntl.h, [AC_DEFINE(I_FCNTL)])
108AC_CHECK_HEADER(floatingpoint.h, [AC_DEFINE(I_FLOATINGPOINT)])
109AC_CHECK_HEADER(libintl.h, [AC_DEFINE(I_LIBINTL)])
110AC_CHECK_HEADER(malloc.h, [AC_DEFINE(I_MALLOC)])
111AC_CHECK_HEADER(netdb.h, [AC_DEFINE(I_NETDB)])
112AC_CHECK_HEADER(netinet/in.h, [AC_DEFINE(I_NETINET_IN)])
113AC_CHECK_HEADER(netinet/tcp.h, [AC_DEFINE(I_NETINET_TCP)])
114AC_CHECK_HEADER(sys/errno.h, [AC_DEFINE(I_SYS_ERRNO)])
115AC_CHECK_HEADER(sys/file.h, [AC_DEFINE(I_SYS_FILE)])
116AC_CHECK_HEADER(sys/in.h, [AC_DEFINE(I_SYS_IN)])
117AC_CHECK_HEADER(sys/mman.h, [AC_DEFINE(I_SYS_MMAN)])
118AC_CHECK_HEADER(sys/page.h, [AC_DEFINE(I_SYS_PAGE)])
119AC_CHECK_HEADER(sys/param.h, [AC_DEFINE(I_SYS_PARAM)])
120AC_CHECK_HEADER(sys/socket.h, [AC_DEFINE(I_SYS_SOCKET)])
121AC_CHECK_HEADER(sys/stat.h, [AC_DEFINE(I_SYS_STAT)])
122AC_CHECK_HEADER(sys/types.h, [AC_DEFINE(I_SYS_TYPES)])
123AC_CHECK_HEADERS([sys/un.h ieeefp.h sys/resource.h sys/event.h sys/uio.h])
124AC_CHECK_HEADERS([poll.h sys/epoll.h sys/select.h sys/inotify.h fam.h])
125### C language support
126# Only need to check C99 and GNU extensions
127
128AC_C_RESTRICT
129AC_C_INLINE
130AX_C___ATTRIBUTE__
131
132if test "$ax_cv___attribute__" = "yes"; then
133 AX_GCC_MALLOC_CALL
134fi
135
136### Types
137# Again, no need to check for standard C89 types.
138
139AC_TYPE_SSIZE_T
140AC_TYPE_PID_T
141TYPE_SOCKLEN_T
142AC_TYPE_UINT8_T
143AC_TYPE_UINT16_T
144AC_TYPE_INT32_T
145AC_TYPE_UINT32_T
146AC_TYPE_INT64_T
147AC_TYPE_UINT64_T
148AC_TYPE_INTMAX_T
149AC_TYPE_UINTMAX_T
150
151AC_CHECK_SIZEOF([int])
152AC_CHECK_SIZEOF([long])
153AC_CHECK_SIZEOF([int64_t])
154AC_CHECK_SIZEOF([intmax_t])
155AC_CHECK_SIZEOF([time_t])
156AC_CHECK_SIZEOF([void *])
157
158### Libraries
159AC_CHECK_LIB(m, sin)
160AC_CHECK_LIB(intl, gettext)
161AC_CHECK_LIB(crypt, crypt)
162LIB_SOCKET_NSL
163AC_CHECK_LIB(fam, FAMOpen)
164
165# with_ssl=set
166CHECK_SSL
167if test "$HAVE_SSL" = "yes"; then
168   AC_DEFINE(HAVE_SSL)
169fi
170
171# system libpcre
172AX_PATH_LIB_PCRE()
173if test "${PCRE_LIBS+set}" = "set"; then
174   AC_DEFINE(HAVE_PCRE)
175fi
176
177### Databases
178
179AC_ARG_ENABLE(sql, AS_HELP_STRING([--disable-sql],
180[Don't use SQL support]), enable_sql=$enableval, enable_sql=yes)
181
182if test "$enable_sql" = "yes"; then
183AC_MSG_NOTICE([Looking for supported SQL servers])
184AX_LIB_MYSQL()
185AX_LIB_POSTGRESQL()
186AX_LIB_SQLITE3()
187else
188AC_MSG_NOTICE([Skipping SQL server checks])
189fi
190
191### Functions
192AC_CHECK_FUNC(bindtextdomain, [AC_DEFINE(HAS_BINDTEXTDOMAIN)])
193AC_CHECK_FUNC(crypt, [AC_DEFINE(HAS_CRYPT)])
194AC_CHECK_FUNCS([fpsetmask fpsetround])
195AC_MSG_CHECKING([for isnormal])
196AC_LINK_IFELSE([
197#include <math.h>
198int main(void) {
199 return !isnormal(1.0);
200}
201],
202[AC_MSG_RESULT(yes)]
203[AC_DEFINE(HAVE_ISNORMAL)],
204AC_MSG_RESULT(no))
205
206AC_CHECK_FUNC(gai_strerror, [AC_DEFINE(HAS_GAI_STRERROR)])
207AC_CHECK_FUNC(getaddrinfo, [AC_DEFINE(HAS_GETADDRINFO)])
208AC_CHECK_FUNC(getdate, [AC_DEFINE(HAS_GETDATE)])
209AC_CHECK_FUNC(gethostbyname2, [AC_DEFINE(HAS_GETHOSTBYNAME2)])
210AC_CHECK_FUNC(getnameinfo, [AC_DEFINE(HAS_GETNAMEINFO)])
211AC_CHECK_FUNC(getpagesize, [AC_DEFINE(HAS_GETPAGESIZE)])
212AC_CHECK_FUNC(getrlimit, [AC_DEFINE(HAS_GETRLIMIT)])
213AC_CHECK_FUNC(getrusage, [AC_DEFINE(HAS_GETRUSAGE)])
214AC_CHECK_FUNCS([gettext getpid getppid])
215AC_CHECK_FUNC(inet_pton, [AC_DEFINE(HAS_INET_PTON)])
216AC_CHECK_FUNC(setitimer, [AC_DEFINE(HAS_ITIMER)])
217AC_CHECK_FUNC(setlocale, [AC_DEFINE(HAS_SETLOCALE)])
218AC_FUNC_FORK
219AC_CHECK_FUNCS([setsid setpgid setpgrp])
220if test $ac_cv_func_setpgrp = yes; then
221AC_FUNC_SETPGRP
222fi
223AC_CHECK_FUNCS([cbrt log2 round imaxdiv])
224AC_CHECK_FUNCS([getuid geteuid seteuid getpriority setpriority])
225AC_CHECK_FUNCS([socketpair sigaction sigprocmask valloc writev])
226AC_CHECK_FUNCS([fcntl pselect poll ppoll pollts kqueue epoll_ctl inotify_init])
227AC_CHECK_FUNCS([pread pwrite])
228
229AC_FUNC_SNPRINTF
230if test "x$ac_cv_have_working_snprintf" = xyes; then
231AC_DEFINE(HAS_SNPRINTF)
232fi
233if test "x$ac_cv_have_working_vsnprintf" = xyes; then
234AC_DEFINE(HAS_VSNPRINTF)
235fi
236AC_CHECK_FUNCS(_vsnprintf_s)
237
238AC_CHECK_FUNCS([strcasecmp strncasecmp _stricmp _strnicmp strdup])
239AC_FUNC_STRCOLL
240AC_CHECK_FUNCS([strxfrm _strncoll _stricoll _strnicoll strdup])
241AC_CHECK_FUNC(sysconf, [AC_DEFINE(HAS_SYSCONF)])
242AC_CHECK_FUNC(textdomain, [AC_DEFINE(HAS_TEXTDOMAIN)])
243
244AC_CHECK_FUNCS(waitpid)
245
246if test $ac_cv_func_waitpid = no; then
247
248AC_CHECK_FUNCS([wait3 wait])
249AC_MSG_CHECKING([for union wait])
250AC_CHECK_TYPES([union wait], [AC_DEFINE(UNION_WAIT)
251 AC_MSG_RESULT(yes)], AC_MSG_RESULT(no),
252 [AC_INCLUDES_DEFAULT
253 #ifdef I_SYS_WAIT
254 #include <sys/wait.h>
255 #endif
256 ])
257
258fi
259
260
261### Variables, constants, defines and other misc. stuff
262
263AC_CHECK_DECLS(h_errno, [AC_DEFINE(HAVE_H_ERRNO)],,[AC_INCLUDES_DEFAULT
264#ifdef I_NETDB
265#include <netdb.h>
266#endif
267])
268
269AC_CHECK_TYPES([struct sockaddr_in6], [AC_DEFINE(HAVE_SOCKADDR_IN6)],,
270[AC_INCLUDES_DEFAULT
271#ifdef I_NETINET_IN
272#include <netinet/in.h>
273#endif
274])
275
276# Will toupper()ing an already uppercase character be a problem?
277AC_MSG_CHECKING([if it is safe to toupper uppers])
278AC_TRY_COMPILE(
279[#include <ctype.h>],
280[
281if (toupper('A') == 'A')
282    return 0;
283else
284    return 1;
285], ac_safe_toupper=yes, ac_safe_toupper=no)
286AC_MSG_RESULT([$ac_safe_toupper])
287if test "x$ac_safe_toupper" = xyes; then
288    AC_DEFINE(HAVE_SAFE_TOUPPER)
289fi
290
291
292
293# Which flavor of child killing to use? Prefer SIGCHLD.
294
295AC_CHECK_DECLS(SIGCHLD, [AC_DEFINE(HAVE_SIGCHLD)],,[AC_INCLUDES_DEFAULT
296#include <signal.h>
297])
298
299AC_CHECK_DECLS(SIGCLD, [AC_DEFINE(HAVE_SIGCLD)],,[AC_INCLUDES_DEFAULT
300#include <signal.h>
301])
302
303
304### Files
305AC_CHECK_FILE(/dev/urandom, [AC_DEFINE(HAS_DEV_URANDOM)])
306
307### Misc features
308AC_ARG_ENABLE(ipv6,  AS_HELP_STRING([--disable-ipv6],
309      [Don't use IPv6 networking]), enable_ipv6=$enableval, enable_ipv6=yes)
310
311if test "$enable_ipv6" = "no"; then
312AC_DEFINE(FORCE_IPV4)
313fi
314
315AC_ARG_ENABLE(nls, AS_HELP_STRING([--disable-nls],
316  [Don't use message-translation]), enable_nls=$enableval, enable_nls=yes)
317
318if test "$enable_nls" = "no"; then
319AC_DEFINE(DONT_TRANSLATE)
320fi
321
322### Output
323
324AC_CONFIG_FILES([Makefile src/Makefile])
325AC_CONFIG_FILES([game/txt/compose.sh], [chmod +x game/txt/compose.sh])
326AC_CONFIG_FILES([test/alltests.sh], [chmod +x test/alltests.sh])
327AC_OUTPUT
Note: See TracBrowser for help on using the browser.