1 |
dnl aclocal.m4: macros autoconf uses when building configure from configure.ac |
2 |
dnl |
3 |
dnl Copyright (C) 1999 - 2011 Eggheads Development Team |
4 |
dnl |
5 |
dnl This program is free software; you can redistribute it and/or |
6 |
dnl modify it under the terms of the GNU General Public License |
7 |
dnl as published by the Free Software Foundation; either version 2 |
8 |
dnl of the License, or (at your option) any later version. |
9 |
dnl |
10 |
dnl This program is distributed in the hope that it will be useful, |
11 |
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 |
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 |
dnl GNU General Public License for more details. |
14 |
dnl |
15 |
dnl You should have received a copy of the GNU General Public License |
16 |
dnl along with this program; if not, write to the Free Software |
17 |
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 |
dnl |
19 |
dnl $Id: aclocal.m4,v 1.122 2011/09/23 20:31:32 thommey Exp $ |
20 |
dnl |
21 |
|
22 |
|
23 |
dnl |
24 |
dnl Message macros. |
25 |
dnl |
26 |
|
27 |
|
28 |
dnl EGG_MSG_CONFIGURE_START() |
29 |
dnl |
30 |
AC_DEFUN([EGG_MSG_CONFIGURE_START], |
31 |
[ |
32 |
AC_MSG_RESULT |
33 |
AC_MSG_RESULT([This is Eggdrop's GNU configure script.]) |
34 |
AC_MSG_RESULT([It's going to run a bunch of tests to hopefully make your compile]) |
35 |
AC_MSG_RESULT([work without much twiddling.]) |
36 |
AC_MSG_RESULT |
37 |
]) |
38 |
|
39 |
|
40 |
dnl EGG_MSG_CONFIGURE_END() |
41 |
dnl |
42 |
AC_DEFUN([EGG_MSG_CONFIGURE_END], |
43 |
[ |
44 |
AC_MSG_RESULT([Type 'make config' to configure the modules, or type 'make iconfig']) |
45 |
AC_MSG_RESULT([to interactively choose which modules to compile.]) |
46 |
AC_MSG_RESULT |
47 |
]) |
48 |
|
49 |
|
50 |
dnl EGG_MSG_WEIRDOS() |
51 |
dnl |
52 |
dnl Print some messages at the end of configure to give extra information to |
53 |
dnl users of 'weird' operating systems. |
54 |
dnl |
55 |
AC_DEFUN([EGG_MSG_WEIRDOS], |
56 |
[ |
57 |
AC_MSG_RESULT([Operating System: $egg_cv_var_system_type $egg_cv_var_system_release]) |
58 |
AC_MSG_RESULT |
59 |
if test "$UNKNOWN_OS" = yes; then |
60 |
AC_MSG_RESULT([WARNING:]) |
61 |
AC_MSG_RESULT |
62 |
AC_MSG_RESULT([ Unknown Operating System: $egg_cv_var_system_type $egg_cv_var_system_release]) |
63 |
AC_MSG_RESULT |
64 |
AC_MSG_RESULT([ Module support has been disabled for this build.]) |
65 |
AC_MSG_RESULT |
66 |
AC_MSG_RESULT([ Please let us know what type of system this is by e-mailing]) |
67 |
AC_MSG_RESULT([ bugs@eggheads.org. The output of uname -a, and some other basic]) |
68 |
AC_MSG_RESULT([ information about the OS should be included.]) |
69 |
AC_MSG_RESULT |
70 |
else |
71 |
if test "$WEIRD_OS" = yes; then |
72 |
AC_MSG_RESULT([WARNING:]) |
73 |
AC_MSG_RESULT |
74 |
AC_MSG_RESULT([ The operating system you are using has not yet had a great]) |
75 |
AC_MSG_RESULT([ deal of testing with Eggdrop. For this reason, this compile]) |
76 |
AC_MSG_RESULT([ will default to "make static".]) |
77 |
AC_MSG_RESULT |
78 |
AC_MSG_RESULT([ To enable module support, type "make eggdrop" instead of just]) |
79 |
AC_MSG_RESULT([ "make" after you run "make config" (or "make iconfig").]) |
80 |
AC_MSG_RESULT |
81 |
AC_MSG_RESULT([ As we have not done a sufficient amount of testing on this]) |
82 |
AC_MSG_RESULT([ OS, your feedback is greatly appreciated. Please let us know]) |
83 |
AC_MSG_RESULT([ at bugs@eggheads.org if there are any problems compiling with]) |
84 |
AC_MSG_RESULT([ module support, or if you got it to work :)]) |
85 |
AC_MSG_RESULT |
86 |
fi |
87 |
AC_MSG_RESULT([If you experience any problems compiling Eggdrop, please read the]) |
88 |
AC_MSG_RESULT([compile guide, found in doc/COMPILE-GUIDE.]) |
89 |
AC_MSG_RESULT |
90 |
fi |
91 |
]) |
92 |
|
93 |
|
94 |
dnl EGG_APPEND_VAR() |
95 |
dnl |
96 |
dnl Append a non-empty string to a variable |
97 |
dnl |
98 |
dnl $1 = variable |
99 |
dnl $2 = string |
100 |
dnl |
101 |
AC_DEFUN([EGG_APPEND_VAR], |
102 |
[ |
103 |
if test "x$2" != x; then |
104 |
if test "x$$1" = x; then |
105 |
$1="$2" |
106 |
else |
107 |
$1="$$1 $2" |
108 |
fi |
109 |
fi |
110 |
]) |
111 |
|
112 |
|
113 |
dnl |
114 |
dnl Compiler checks. |
115 |
dnl |
116 |
|
117 |
|
118 |
dnl EGG_CHECK_CC() |
119 |
dnl |
120 |
dnl Check for a working C compiler. |
121 |
dnl |
122 |
AC_DEFUN([EGG_CHECK_CC], |
123 |
[ |
124 |
if test "x$cross_compiling" = x; then |
125 |
cat << 'EOF' >&2 |
126 |
configure: error: |
127 |
|
128 |
This system does not appear to have a working C compiler. |
129 |
A working C compiler is required to compile Eggdrop. |
130 |
|
131 |
EOF |
132 |
exit 1 |
133 |
fi |
134 |
]) |
135 |
|
136 |
|
137 |
dnl EGG_HEADER_STDC() |
138 |
dnl |
139 |
AC_DEFUN([EGG_HEADER_STDC], |
140 |
[ |
141 |
if test "$ac_cv_header_stdc" = no; then |
142 |
cat << 'EOF' >&2 |
143 |
configure: error: |
144 |
|
145 |
Your system must support ANSI C Header files. |
146 |
These are required for the language support. Sorry. |
147 |
|
148 |
EOF |
149 |
exit 1 |
150 |
fi |
151 |
]) |
152 |
|
153 |
|
154 |
dnl EGG_CHECK_ICC() |
155 |
dnl |
156 |
dnl Check for Intel's C compiler. It attempts to emulate gcc but doesn't |
157 |
dnl accept all the standard gcc options. |
158 |
dnl |
159 |
dnl |
160 |
AC_DEFUN([EGG_CHECK_ICC],[ |
161 |
AC_CACHE_CHECK([for icc], egg_cv_var_cc_icc, [ |
162 |
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ |
163 |
#if !(defined(__ICC) || defined(__ECC) || defined(__INTEL_COMPILER)) |
164 |
"Toto, I've a feeling we're not in Kansas anymore." |
165 |
#endif |
166 |
]])], [ |
167 |
egg_cv_var_cc_icc="yes" |
168 |
], [ |
169 |
egg_cv_var_cc_icc="no" |
170 |
]) |
171 |
]) |
172 |
|
173 |
if test "$egg_cv_var_cc_icc" = yes; then |
174 |
ICC="yes" |
175 |
else |
176 |
ICC="no" |
177 |
fi |
178 |
]) |
179 |
|
180 |
|
181 |
dnl EGG_CHECK_CCPIPE() |
182 |
dnl |
183 |
dnl This macro checks whether or not the compiler supports the `-pipe' flag, |
184 |
dnl which speeds up the compilation. |
185 |
dnl |
186 |
AC_DEFUN([EGG_CHECK_CCPIPE], |
187 |
[ |
188 |
if test "$GCC" = yes && test "$ICC" = no; then |
189 |
AC_CACHE_CHECK([whether the compiler understands -pipe], egg_cv_var_ccpipe, [ |
190 |
ac_old_CC="$CC" |
191 |
CC="$CC -pipe" |
192 |
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return(0); ]])], [ |
193 |
egg_cv_var_ccpipe="yes" |
194 |
], [ |
195 |
egg_cv_var_ccpipe="no" |
196 |
]) |
197 |
CC="$ac_old_CC" |
198 |
]) |
199 |
|
200 |
if test "$egg_cv_var_ccpipe" = yes; then |
201 |
EGG_APPEND_VAR(CFLAGS, -pipe) |
202 |
fi |
203 |
fi |
204 |
]) |
205 |
|
206 |
|
207 |
dnl EGG_CHECK_CCWALL() |
208 |
dnl |
209 |
dnl See if the compiler supports -Wall. |
210 |
dnl |
211 |
AC_DEFUN([EGG_CHECK_CCWALL], |
212 |
[ |
213 |
if test "$GCC" = yes && test "$ICC" = no; then |
214 |
AC_CACHE_CHECK([whether the compiler understands -Wall], egg_cv_var_ccwall, [ |
215 |
ac_old_CFLAGS="$CFLAGS" |
216 |
CFLAGS="$CFLAGS -Wall" |
217 |
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ return(0); ]])], [ |
218 |
egg_cv_var_ccwall="yes" |
219 |
], [ |
220 |
egg_cv_var_ccwall="no" |
221 |
]) |
222 |
CFLAGS="$ac_old_CFLAGS" |
223 |
]) |
224 |
|
225 |
if test "$egg_cv_var_ccwall" = yes; then |
226 |
EGG_APPEND_VAR(CFLAGS, -Wall) |
227 |
fi |
228 |
fi |
229 |
]) |
230 |
|
231 |
|
232 |
dnl |
233 |
dnl Checks for types and functions. |
234 |
dnl |
235 |
|
236 |
|
237 |
dnl EGG_CHECK_SOCKLEN_T() |
238 |
dnl |
239 |
dnl Check for the socklen_t type. |
240 |
dnl |
241 |
AC_DEFUN([EGG_CHECK_SOCKLEN_T], |
242 |
[ |
243 |
AC_CACHE_CHECK([for socklen_t], egg_cv_socklen_t, [ |
244 |
AC_RUN_IFELSE([AC_LANG_PROGRAM([[ |
245 |
#include <unistd.h> |
246 |
#include <sys/param.h> |
247 |
#include <sys/types.h> |
248 |
#include <sys/socket.h> |
249 |
#include <netinet/in.h> |
250 |
#include <arpa/inet.h> |
251 |
]],[[ |
252 |
socklen_t test = 55; |
253 |
|
254 |
if (test != 55) |
255 |
return(1); |
256 |
|
257 |
return(0); |
258 |
]])], [ |
259 |
egg_cv_socklen_t="yes" |
260 |
], [ |
261 |
egg_cv_socklen_t="no" |
262 |
], [ |
263 |
egg_cv_socklen_t="cross" |
264 |
]) |
265 |
]) |
266 |
|
267 |
if test "$egg_cv_socklen_t" = yes; then |
268 |
AC_DEFINE(HAVE_SOCKLEN_T, 1, [Define to 1 if you have the `socklen_t' type.]) |
269 |
fi |
270 |
]) |
271 |
|
272 |
|
273 |
dnl EGG_FUNC_VPRINTF() |
274 |
dnl |
275 |
AC_DEFUN([EGG_FUNC_VPRINTF], |
276 |
[ |
277 |
AC_FUNC_VPRINTF |
278 |
if test "$ac_cv_func_vprintf" = no; then |
279 |
cat << 'EOF' >&2 |
280 |
configure: error: |
281 |
|
282 |
Your system does not have the vprintf/vsprintf/sprintf libraries. |
283 |
These are required to compile almost anything. Sorry. |
284 |
|
285 |
EOF |
286 |
exit 1 |
287 |
fi |
288 |
]) |
289 |
|
290 |
|
291 |
dnl |
292 |
dnl Checks for programs. |
293 |
dnl |
294 |
|
295 |
|
296 |
dnl EGG_PROG_HEAD_1() |
297 |
dnl |
298 |
dnl This macro checks for the proper 'head -1' command variant to use. |
299 |
dnl |
300 |
AC_DEFUN([EGG_PROG_HEAD_1], |
301 |
[ |
302 |
cat << 'EOF' > conftest.head |
303 |
a |
304 |
b |
305 |
c |
306 |
EOF |
307 |
|
308 |
for ac_prog in 'head -n 1' 'head -1' 'sed 1q'; do |
309 |
AC_MSG_CHECKING([whether $ac_prog works]) |
310 |
AC_CACHE_VAL([ac_cv_prog_HEAD_1], [ |
311 |
if test -n "$HEAD_1"; then |
312 |
# Let the user override the test. |
313 |
ac_cv_prog_HEAD_1="$HEAD_1" |
314 |
else |
315 |
if test `cat conftest.head | $ac_prog` = a; then |
316 |
ac_cv_prog_HEAD_1="$ac_prog" |
317 |
fi |
318 |
fi |
319 |
]) |
320 |
if test -n "$ac_cv_prog_HEAD_1"; then |
321 |
AC_MSG_RESULT([yes]) |
322 |
break |
323 |
else |
324 |
AC_MSG_RESULT([no]) |
325 |
fi |
326 |
done |
327 |
|
328 |
if test "x$ac_cv_prog_HEAD_1" = x; then |
329 |
cat << 'EOF' >&2 |
330 |
configure: error: |
331 |
|
332 |
This system seems to lack a working 'head -1' or 'head -n 1' command. |
333 |
A working 'head -1' (or equivalent) command is required to compile Eggdrop. |
334 |
|
335 |
EOF |
336 |
exit 1 |
337 |
fi |
338 |
|
339 |
rm -f conftest.head |
340 |
HEAD_1="$ac_cv_prog_HEAD_1" |
341 |
AC_SUBST(HEAD_1) |
342 |
]) |
343 |
|
344 |
|
345 |
dnl EGG_PROG_STRIP() |
346 |
dnl |
347 |
AC_DEFUN([EGG_PROG_STRIP], |
348 |
[ |
349 |
AC_CHECK_PROG(STRIP, strip, strip) |
350 |
if test "x$STRIP" = x; then |
351 |
STRIP=touch |
352 |
fi |
353 |
]) |
354 |
|
355 |
|
356 |
dnl EGG_PROG_AWK() |
357 |
dnl |
358 |
AC_DEFUN([EGG_PROG_AWK], |
359 |
[ |
360 |
AC_PROG_AWK |
361 |
if test "x$AWK" = x; then |
362 |
cat << 'EOF' >&2 |
363 |
configure: error: |
364 |
|
365 |
This system seems to lack a working 'awk' command. |
366 |
A working 'awk' command is required to compile Eggdrop. |
367 |
|
368 |
EOF |
369 |
exit 1 |
370 |
fi |
371 |
]) |
372 |
|
373 |
|
374 |
dnl EGG_PROG_BASENAME() |
375 |
dnl |
376 |
AC_DEFUN([EGG_PROG_BASENAME], |
377 |
[ |
378 |
AC_CHECK_PROG(BASENAME, basename, basename) |
379 |
if test "x$BASENAME" = x; then |
380 |
cat << 'EOF' >&2 |
381 |
configure: error: |
382 |
|
383 |
This system seems to lack a working 'basename' command. |
384 |
A working 'basename' command is required to compile Eggdrop. |
385 |
|
386 |
EOF |
387 |
exit 1 |
388 |
fi |
389 |
]) |
390 |
|
391 |
|
392 |
dnl EGG_ENABLE_STRIP() |
393 |
dnl |
394 |
AC_DEFUN([EGG_ENABLE_STRIP], |
395 |
[ |
396 |
AC_ARG_ENABLE([strip], |
397 |
[ --enable-strip enable stripping of binaries], |
398 |
[enable_strip="$enableval"], |
399 |
[enable_strip="no"]) |
400 |
|
401 |
if test "$enable_strip" = yes; then |
402 |
cat << 'EOF' >&2 |
403 |
|
404 |
configure: WARNING: |
405 |
|
406 |
Stripping the executable, while saving some disk space, will make bug |
407 |
reports nearly worthless. If Eggdrop crashes and you wish to report |
408 |
a bug, you will need to recompile with stripping disabled. |
409 |
|
410 |
EOF |
411 |
else |
412 |
STRIP="touch" |
413 |
fi |
414 |
]) |
415 |
|
416 |
|
417 |
dnl |
418 |
dnl Checks for operating system and module support. |
419 |
dnl |
420 |
|
421 |
|
422 |
dnl EGG_OS_VERSION() |
423 |
dnl |
424 |
AC_DEFUN([EGG_OS_VERSION], |
425 |
[ |
426 |
dnl FIXME: Eventually replace these with the results of AC_CANONICAL_* below |
427 |
AC_CACHE_CHECK([system type], egg_cv_var_system_type, [egg_cv_var_system_type=`$UNAME -s`]) |
428 |
AC_CACHE_CHECK([system release], egg_cv_var_system_release, [egg_cv_var_system_release=`$UNAME -r`]) |
429 |
|
430 |
AC_CANONICAL_BUILD |
431 |
AC_CANONICAL_HOST |
432 |
AC_CANONICAL_TARGET |
433 |
]) |
434 |
|
435 |
|
436 |
dnl EGG_CYGWIN_BINMODE |
437 |
dnl |
438 |
dnl Check for binmode.o on Cygwin. |
439 |
dnl |
440 |
AC_DEFUN([EGG_CYGWIN_BINMODE], |
441 |
[ |
442 |
if test "$EGG_CYGWIN" = yes; then |
443 |
AC_MSG_CHECKING([for /usr/lib/binmode.o]) |
444 |
if test -r /usr/lib/binmode.o; then |
445 |
AC_MSG_RESULT([yes]) |
446 |
EGG_APPEND_VAR(LIBS, /usr/lib/binmode.o) |
447 |
else |
448 |
AC_MSG_RESULT([no]) |
449 |
AC_MSG_WARN([Make sure the directory Eggdrop is installed into is mounted in binary mode.]) |
450 |
fi |
451 |
fi |
452 |
]) |
453 |
|
454 |
|
455 |
dnl EGG_DARWIN_BUNDLE |
456 |
dnl |
457 |
dnl Locate bundle1.o on Darwin. Test systems seem to have it in /usr/lib, |
458 |
dnl however the official docs say /lib. |
459 |
dnl |
460 |
AC_DEFUN([EGG_DARWIN_BUNDLE], |
461 |
[ |
462 |
BUNDLE="" |
463 |
for bundlepath in "/lib" "/usr/lib" "/usr/local/lib"; do |
464 |
AC_MSG_CHECKING([for bundle1.o in ${bundlepath}]) |
465 |
if test -r "${bundlepath}/bundle1.o"; then |
466 |
AC_MSG_RESULT([yes]) |
467 |
BUNDLE="${bundlepath}/bundle1.o" |
468 |
break |
469 |
else |
470 |
AC_MSG_RESULT([no]) |
471 |
fi |
472 |
done |
473 |
|
474 |
if test "x$BUNDLE" = x; then |
475 |
cat << 'EOF' >&2 |
476 |
configure: WARNING: |
477 |
|
478 |
bundle1.o cannot be located. A module build might not compile correctly. |
479 |
|
480 |
EOF |
481 |
fi |
482 |
]) |
483 |
|
484 |
|
485 |
dnl EGG_CHECK_MODULE_SUPPORT() |
486 |
dnl |
487 |
dnl Checks for module support. This should be run after EGG_OS_VERSION. |
488 |
dnl |
489 |
AC_DEFUN([EGG_CHECK_MODULE_SUPPORT], |
490 |
[ |
491 |
MODULES_OK="yes" |
492 |
MOD_EXT="so" |
493 |
DEFAULT_MAKE="debug" |
494 |
LOAD_METHOD="dl" |
495 |
WEIRD_OS="yes" |
496 |
UNKNOWN_OS="no" |
497 |
MODULE_XLIBS="" |
498 |
|
499 |
AC_MSG_CHECKING([module loading capabilities]) |
500 |
AC_MSG_RESULT |
501 |
AC_CHECK_HEADERS([dl.h dlfcn.h loader.h rld.h mach-o/dyld.h mach-o/rld.h]) |
502 |
AC_CHECK_FUNCS([dlopen load NSLinkModule shl_load rld_load]) |
503 |
|
504 |
# Note to other maintainers: |
505 |
# Bourne shell has no concept of "fall through" |
506 |
case "$egg_cv_var_system_type" in |
507 |
BSD/OS) |
508 |
if test `echo "$egg_cv_var_system_release" | cut -d . -f 1` = 2; then |
509 |
MODULES_OK="no" |
510 |
fi |
511 |
;; |
512 |
CYGWI*) |
513 |
WEIRD_OS="no" |
514 |
MOD_EXT="dll" |
515 |
;; |
516 |
HP-UX) |
517 |
LOAD_METHOD="shl" |
518 |
;; |
519 |
dell) |
520 |
# do nothing |
521 |
;; |
522 |
IRIX) |
523 |
# do nothing |
524 |
;; |
525 |
Ultrix) |
526 |
# No dlopen() or similar on Ultrix. We can't use modules. |
527 |
MODULES_OK="no" |
528 |
;; |
529 |
BeOS) |
530 |
# We don't yet support BeOS's dynamic linking interface. |
531 |
MODULES_OK="no" |
532 |
;; |
533 |
Linux) |
534 |
WEIRD_OS="no" |
535 |
;; |
536 |
Lynx) |
537 |
# do nothing |
538 |
;; |
539 |
QNX) |
540 |
# do nothing |
541 |
# QNX (recent versions at least) support dlopen(). |
542 |
;; |
543 |
OSF1) |
544 |
case `echo "$egg_cv_var_system_release" | cut -d . -f 1` in |
545 |
1.*) LOAD_METHOD="loader" ;; |
546 |
esac |
547 |
;; |
548 |
SunOS) |
549 |
if test `echo "$egg_cv_var_system_release" | cut -d . -f 1` = 5; then |
550 |
# We've had quite a bit of testing on Solaris. |
551 |
WEIRD_OS="no" |
552 |
else |
553 |
# SunOS 4 |
554 |
AC_DEFINE(DLOPEN_1, 1, [Define if running on SunOS 4.0.]) |
555 |
fi |
556 |
;; |
557 |
*BSD) |
558 |
# FreeBSD/OpenBSD/NetBSD all support dlopen() and have had plenty of |
559 |
# testing with Eggdrop. |
560 |
WEIRD_OS="no" |
561 |
;; |
562 |
Darwin) |
563 |
# We should support Mac OS X (at least 10.1 and later) now. |
564 |
# Use rld on < 10.1. |
565 |
if test "$ac_cv_func_NSLinkModule" = no; then |
566 |
LOAD_METHOD="rld" |
567 |
fi |
568 |
LOAD_METHOD="dyld" |
569 |
EGG_DARWIN_BUNDLE |
570 |
EGG_APPEND_VAR(MODULE_XLIBS, $BUNDLE) |
571 |
;; |
572 |
*) |
573 |
if test -r /mach; then |
574 |
# At this point, we're guessing this is NeXT Step. We support rld, so |
575 |
# modules will probably work on NeXT now, but we have absolutely no way |
576 |
# to test this. I've never even seen a NeXT box, let alone do I know of |
577 |
# one I can test this on. |
578 |
LOAD_METHOD="rld" |
579 |
else |
580 |
# QNX apparently supports dlopen()... Fallthrough. |
581 |
if test -r /cmds; then |
582 |
UNKNOWN_OS="yes" |
583 |
MODULES_OK="no" |
584 |
fi |
585 |
fi |
586 |
;; |
587 |
esac |
588 |
|
589 |
if test "$MODULES_OK" = yes; then |
590 |
AC_DEFINE(MODULES_OK, 1, [Define if modules will work on your system.]) |
591 |
case $LOAD_METHOD in |
592 |
dl) |
593 |
AC_DEFINE(MOD_USE_DL, 1, [Define if modules should be loaded using the dl*() functions.]) |
594 |
;; |
595 |
shl) |
596 |
AC_DEFINE(MOD_USE_SHL, 1, [Define if modules should be loaded using the shl_*() functions.]) |
597 |
;; |
598 |
dyld) |
599 |
AC_DEFINE(MOD_USE_DYLD, 1, [Define if modules should be loaded using the NS*() functions.]) |
600 |
;; |
601 |
loader) |
602 |
AC_DEFINE(MOD_USE_LOADER, 1, [Define if modules should be loaded using the ldr*() and *load() functions.]) |
603 |
;; |
604 |
rld) |
605 |
AC_DEFINE(MOD_USE_RLD, 1, [Define if modules should be loaded using the rld_*() functions.]) |
606 |
;; |
607 |
esac |
608 |
else |
609 |
DEFAULT_MAKE="static" |
610 |
fi |
611 |
|
612 |
if test "$WEIRD_OS" = yes; then |
613 |
# Default to "make static" for 'weird' operating systems. Will print a |
614 |
# note at the end of configure explaining. This way, Eggdrop should compile |
615 |
# "out of the box" on most every operating system we know of, and they can |
616 |
# do a "make eggdrop" if they want to use(/try to use) module support. - Wcc |
617 |
DEFAULT_MAKE="static" |
618 |
fi |
619 |
|
620 |
AC_SUBST(DEFAULT_MAKE) |
621 |
AC_SUBST(MOD_EXT) |
622 |
AC_SUBST(MODULE_XLIBS) |
623 |
AC_DEFINE_UNQUOTED(EGG_MOD_EXT, "$MOD_EXT", [Defines the extension of Eggdrop modules.]) |
624 |
]) |
625 |
|
626 |
|
627 |
dnl EGG_CHECK_OS() |
628 |
dnl |
629 |
dnl Various operating system tests. |
630 |
dnl |
631 |
AC_DEFUN([EGG_CHECK_OS], |
632 |
[ |
633 |
MOD_CC="$CC" |
634 |
MOD_LD="$CC" |
635 |
MOD_STRIP="$STRIP" |
636 |
SHLIB_CC="$CC" |
637 |
SHLIB_LD="$CC" |
638 |
SHLIB_STRIP="$STRIP" |
639 |
LINUX="no" |
640 |
IRIX="no" |
641 |
SUNOS="no" |
642 |
HPUX="no" |
643 |
EGG_CYGWIN="no" |
644 |
|
645 |
case "$egg_cv_var_system_type" in |
646 |
BSD/OS) |
647 |
case `echo "$egg_cv_var_system_release" | cut -d . -f 1` in |
648 |
2) |
649 |
# do nothing |
650 |
;; |
651 |
3) |
652 |
MOD_CC="shlicc" |
653 |
MOD_LD="shlicc" |
654 |
if test "$STRIP" != touch; then |
655 |
MOD_STRIP="$STRIP -d" |
656 |
fi |
657 |
SHLIB_LD="shlicc -r" |
658 |
SHLIB_STRIP="touch" |
659 |
;; |
660 |
*) |
661 |
if test "$STRIP" != touch; then |
662 |
MOD_STRIP="$STRIP -d" |
663 |
fi |
664 |
SHLIB_CC="$CC -export-dynamic -fPIC" |
665 |
SHLIB_LD="$CC -shared -nostartfiles" |
666 |
;; |
667 |
esac |
668 |
;; |
669 |
CYGWI*) |
670 |
SHLIB_LD="$CC -shared" |
671 |
MOD_CC="$CC" |
672 |
MOD_LD="$CC" |
673 |
EGG_CYGWIN="yes" |
674 |
EGG_CYGWIN_BINMODE |
675 |
AC_DEFINE(CYGWIN_HACKS, 1, [Define if running under Cygwin.]) |
676 |
;; |
677 |
HP-UX) |
678 |
HPUX="yes" |
679 |
if test "$CC" = cc; then |
680 |
# HP-UX ANSI C Compiler. |
681 |
MOD_LD="$CC +z" |
682 |
SHLIB_CC="$CC +z" |
683 |
else |
684 |
# GCC |
685 |
MOD_LD="$CC -fPIC -shared" |
686 |
SHLIB_CC="$CC -fPIC" |
687 |
fi |
688 |
SHLIB_LD="ld -b" |
689 |
;; |
690 |
dell) |
691 |
SHLIB_STRIP="touch" |
692 |
MOD_LD="$CC -lelf -lucb" |
693 |
;; |
694 |
IRIX) |
695 |
SHLIB_LD="ld -n32 -shared -rdata_shared" |
696 |
IRIX="yes" |
697 |
SHLIB_STRIP="touch" |
698 |
;; |
699 |
Ultrix) |
700 |
SHLIB_STRIP="touch" |
701 |
DEFAULT_MAKE="static" |
702 |
SHELL="/bin/sh5" |
703 |
;; |
704 |
SINIX*) |
705 |
SHLIB_STRIP="touch" |
706 |
SHLIB_CC="cc -G" |
707 |
;; |
708 |
BeOS) |
709 |
# do nothing |
710 |
;; |
711 |
Linux) |
712 |
LINUX="yes" |
713 |
MOD_LD="$CC" |
714 |
SHLIB_CC="$CC -fPIC" |
715 |
SHLIB_LD="$CC -shared -nostartfiles" |
716 |
;; |
717 |
Lynx) |
718 |
# do nothing |
719 |
;; |
720 |
QNX) |
721 |
SHLIB_LD="ld -shared" |
722 |
AC_DEFINE(QNX_HACKS, 1, [Define if running under QNX.]) |
723 |
;; |
724 |
OSF1) |
725 |
case `echo "$egg_cv_var_system_release" | cut -d . -f 1` in |
726 |
V*) |
727 |
# Digital OSF uses an ancient version of gawk |
728 |
if test "$AWK" = gawk; then |
729 |
AWK="awk" |
730 |
fi |
731 |
SHLIB_LD="ld -shared -expect_unresolved \"'*'\"" |
732 |
SHLIB_STRIP="touch" |
733 |
;; |
734 |
1.0|1.1|1.2) |
735 |
SHLIB_LD="ld -R -export $@:" |
736 |
;; |
737 |
1.*) |
738 |
SHLIB_CC="$CC -fpic" |
739 |
SHLIB_LD="ld -shared" |
740 |
;; |
741 |
esac |
742 |
AC_DEFINE(BROKEN_SNPRINTF, 1, [Define to use Eggdrop's snprintf functions regardless of HAVE_SNPRINTF.]) |
743 |
AC_DEFINE(STOP_UAC, 1, [Define if running on OSF/1 platform.]) |
744 |
;; |
745 |
SunOS) |
746 |
if test `echo "$egg_cv_var_system_release" | cut -d . -f 1` = 5; then |
747 |
# Solaris |
748 |
if test -n "$GCC"; then |
749 |
SHLIB_CC="$CC -fPIC" |
750 |
SHLIB_LD="$CC -shared" |
751 |
else |
752 |
SHLIB_CC="$CC -KPIC" |
753 |
SHLIB_LD="$CC -G -z text" |
754 |
fi |
755 |
else |
756 |
# SunOS 4 |
757 |
SUNOS="yes" |
758 |
SHLIB_LD="ld" |
759 |
SHLIB_CC="$CC -PIC" |
760 |
fi |
761 |
;; |
762 |
*BSD) |
763 |
# FreeBSD/OpenBSD/NetBSD |
764 |
SHLIB_CC="$CC -fPIC" |
765 |
SHLIB_LD="ld -Bshareable -x" |
766 |
;; |
767 |
Darwin) |
768 |
# Mac OS X |
769 |
SHLIB_CC="$CC -fPIC" |
770 |
SHLIB_LD="ld -bundle -undefined error" |
771 |
AC_DEFINE(BIND_8_COMPAT, 1, [Define if running on Mac OS X with dns.mod.]) |
772 |
;; |
773 |
*) |
774 |
if test -r /mach; then |
775 |
# At this point, we're guessing this is NeXT Step. |
776 |
AC_DEFINE(BORGCUBES, 1, [Define if running on NeXT Step.]) |
777 |
else |
778 |
if test -r /cmds; then |
779 |
# Probably QNX. |
780 |
SHLIB_LD="ld -shared" |
781 |
SHLIB_STRIP="touch" |
782 |
fi |
783 |
fi |
784 |
;; |
785 |
esac |
786 |
|
787 |
AC_SUBST(MOD_LD) |
788 |
AC_SUBST(MOD_CC) |
789 |
AC_SUBST(MOD_STRIP) |
790 |
AC_SUBST(SHLIB_LD) |
791 |
AC_SUBST(SHLIB_CC) |
792 |
AC_SUBST(SHLIB_STRIP) |
793 |
]) |
794 |
|
795 |
|
796 |
dnl |
797 |
dnl Library tests. |
798 |
dnl |
799 |
|
800 |
|
801 |
dnl EGG_CHECK_LIBS() |
802 |
dnl |
803 |
AC_DEFUN([EGG_CHECK_LIBS], |
804 |
[ |
805 |
# FIXME: this needs to be fixed so that it works on IRIX |
806 |
if test "$IRIX" = yes; then |
807 |
AC_MSG_WARN([Skipping library tests because they CONFUSE IRIX.]) |
808 |
else |
809 |
AC_CHECK_LIB(socket, socket) |
810 |
AC_CHECK_LIB(nsl, connect) |
811 |
AC_CHECK_LIB(dns, gethostbyname) |
812 |
AC_CHECK_LIB(dl, dlopen) |
813 |
AC_CHECK_LIB(m, tan, EGG_MATH_LIB="-lm") |
814 |
|
815 |
# This is needed for Tcl libraries compiled with thread support |
816 |
AC_CHECK_LIB(pthread, pthread_mutex_init, [ |
817 |
ac_cv_lib_pthread_pthread_mutex_init="yes" |
818 |
ac_cv_lib_pthread="-lpthread" |
819 |
], [ |
820 |
AC_CHECK_LIB(pthread, __pthread_mutex_init, [ |
821 |
ac_cv_lib_pthread_pthread_mutex_init="yes" |
822 |
ac_cv_lib_pthread="-lpthread" |
823 |
], [ |
824 |
AC_CHECK_LIB(pthreads, pthread_mutex_init, [ |
825 |
ac_cv_lib_pthread_pthread_mutex_init="yes" |
826 |
ac_cv_lib_pthread="-lpthreads" |
827 |
], [ |
828 |
AC_CHECK_FUNC(pthread_mutex_init, [ |
829 |
ac_cv_lib_pthread_pthread_mutex_init="yes" |
830 |
ac_cv_lib_pthread="" |
831 |
], [ |
832 |
ac_cv_lib_pthread_pthread_mutex_init="no" |
833 |
] |
834 |
)] |
835 |
)] |
836 |
)]) |
837 |
|
838 |
if test "$SUNOS" = yes; then |
839 |
# For suns without yp |
840 |
AC_CHECK_LIB(dl, main) |
841 |
else |
842 |
if test "$HPUX" = yes; then |
843 |
AC_CHECK_LIB(dld, shl_load) |
844 |
fi |
845 |
fi |
846 |
fi |
847 |
]) |
848 |
|
849 |
|
850 |
dnl EGG_ARG_HANDLEN() |
851 |
dnl |
852 |
AC_DEFUN([EGG_ARG_HANDLEN], [ |
853 |
AC_ARG_WITH(handlen, [ --with-handlen=VALUE set the maximum length a handle on the bot can be], [ |
854 |
if test -n $withval && test $withval -ge 9 && test $withval -le 32; |
855 |
then |
856 |
AC_DEFINE_UNQUOTED(EGG_HANDLEN, $withval, [ |
857 |
Define the maximum length of handles on the bot. |
858 |
]) |
859 |
else |
860 |
AC_MSG_WARN([Invalid handlen given (must be a number between 9 and 32), defaulting to 9.]) |
861 |
fi |
862 |
]) |
863 |
]) |
864 |
|
865 |
dnl |
866 |
dnl Misc checks. |
867 |
dnl |
868 |
|
869 |
|
870 |
dnl EGG_EXEEXT() |
871 |
dnl |
872 |
dnl Test for executable suffix and define Eggdrop's executable name accordingly. |
873 |
dnl |
874 |
AC_DEFUN([EGG_EXEEXT], [ |
875 |
EGGEXEC="eggdrop" |
876 |
AC_EXEEXT |
877 |
if test "x$EXEEXT" != x; then |
878 |
EGGEXEC="eggdrop${EXEEXT}" |
879 |
fi |
880 |
AC_SUBST(EGGEXEC) |
881 |
]) |
882 |
|
883 |
|
884 |
dnl |
885 |
dnl Tcl checks. |
886 |
dnl |
887 |
|
888 |
|
889 |
dnl EGG_TCL_ARG_WITH() |
890 |
dnl |
891 |
AC_DEFUN([EGG_TCL_ARG_WITH], |
892 |
[ |
893 |
AC_ARG_WITH(tcllib, [ --with-tcllib=PATH full path to Tcl library (e.g. /usr/lib/libtcl8.5.so)], [tcllibname="$withval"]) |
894 |
AC_ARG_WITH(tclinc, [ --with-tclinc=PATH full path to Tcl header (e.g. /usr/include/tcl.h)], [tclincname="$withval"]) |
895 |
|
896 |
WARN=0 |
897 |
# Make sure either both or neither $tcllibname and $tclincname are set |
898 |
if test "x$tcllibname" != x; then |
899 |
if test "x$tclincname" = x; then |
900 |
WARN=1 |
901 |
tcllibname="" |
902 |
TCLLIB="" |
903 |
TCLINC="" |
904 |
fi |
905 |
else |
906 |
if test "x$tclincname" != x; then |
907 |
WARN=1 |
908 |
tclincname="" |
909 |
TCLLIB="" |
910 |
TCLINC="" |
911 |
fi |
912 |
fi |
913 |
|
914 |
if test "$WARN" = 1; then |
915 |
cat << 'EOF' >&2 |
916 |
configure: WARNING: |
917 |
|
918 |
You must specify both --with-tcllib and --with-tclinc for either to work. |
919 |
|
920 |
configure will now attempt to autodetect both the Tcl library and header. |
921 |
|
922 |
EOF |
923 |
fi |
924 |
]) |
925 |
|
926 |
|
927 |
dnl EGG_TCL_ENV() |
928 |
dnl |
929 |
AC_DEFUN([EGG_TCL_ENV], |
930 |
[ |
931 |
WARN=0 |
932 |
# Make sure either both or neither $TCLLIB and $TCLINC are set |
933 |
if test "x$TCLLIB" != x; then |
934 |
if test "x$TCLINC" = x; then |
935 |
WARN=1 |
936 |
WVAR1=TCLLIB |
937 |
WVAR2=TCLINC |
938 |
TCLLIB="" |
939 |
fi |
940 |
else |
941 |
if test "x$TCLINC" != x; then |
942 |
WARN=1 |
943 |
WVAR1=TCLINC |
944 |
WVAR2=TCLLIB |
945 |
TCLINC="" |
946 |
fi |
947 |
fi |
948 |
|
949 |
if test "$WARN" = 1; then |
950 |
cat << EOF >&2 |
951 |
configure: WARNING: |
952 |
|
953 |
Environment variable $WVAR1 was set, but I did not detect ${WVAR2}. |
954 |
Please set both TCLLIB and TCLINC correctly if you wish to use them. |
955 |
|
956 |
configure will now attempt to autodetect both the Tcl library and header. |
957 |
|
958 |
EOF |
959 |
fi |
960 |
]) |
961 |
|
962 |
|
963 |
dnl EGG_TCL_WITH_TCLLIB() |
964 |
dnl |
965 |
AC_DEFUN([EGG_TCL_WITH_TCLLIB], |
966 |
[ |
967 |
# Look for Tcl library: if $tcllibname is set, check there first |
968 |
if test "x$tcllibname" != x; then |
969 |
if test -f "$tcllibname" && test -r "$tcllibname"; then |
970 |
TCLLIB=`echo $tcllibname | sed 's%/[[^/]][[^/]]*$%%'` |
971 |
TCLLIBFN=`$BASENAME $tcllibname | cut -c4-` |
972 |
TCLLIBEXT=".`echo $TCLLIBFN | $AWK '{j=split([$]1, i, "."); print i[[j]]}'`" |
973 |
TCLLIBFNS=`$BASENAME $tcllibname $TCLLIBEXT | cut -c4-` |
974 |
else |
975 |
cat << EOF >&2 |
976 |
configure: WARNING: |
977 |
|
978 |
The file '$tcllibname' given to option --with-tcllib is not valid. |
979 |
Specify the full path including the file name (e.g. /usr/lib/libtcl8.5.so) |
980 |
|
981 |
configure will now attempt to autodetect both the Tcl library and header. |
982 |
|
983 |
EOF |
984 |
tcllibname="" |
985 |
tclincname="" |
986 |
TCLLIB="" |
987 |
TCLLIBFN="" |
988 |
TCLINC="" |
989 |
TCLINCFN="" |
990 |
fi |
991 |
fi |
992 |
]) |
993 |
|
994 |
|
995 |
dnl EGG_TCL_WITH_TCLINC() |
996 |
dnl |
997 |
AC_DEFUN([EGG_TCL_WITH_TCLINC], |
998 |
[ |
999 |
# Look for Tcl header: if $tclincname is set, check there first |
1000 |
if test "x$tclincname" != x; then |
1001 |
if test -f "$tclincname" && test -r "$tclincname"; then |
1002 |
TCLINC=`echo $tclincname | sed 's%/[[^/]][[^/]]*$%%'` |
1003 |
TCLINCFN=`$BASENAME $tclincname` |
1004 |
else |
1005 |
cat << EOF >&2 |
1006 |
configure: WARNING: |
1007 |
|
1008 |
The file '$tclincname' given to option --with-tclinc is not valid. |
1009 |
Specify the full path including the file name (e.g. /usr/include/tcl.h) |
1010 |
|
1011 |
configure will now attempt to autodetect both the Tcl library and header. |
1012 |
|
1013 |
EOF |
1014 |
tcllibname="" |
1015 |
tclincname="" |
1016 |
TCLLIB="" |
1017 |
TCLLIBFN="" |
1018 |
TCLINC="" |
1019 |
TCLINCFN="" |
1020 |
fi |
1021 |
fi |
1022 |
]) |
1023 |
|
1024 |
|
1025 |
dnl EGG_TCL_FIND_LIBRARY() |
1026 |
dnl |
1027 |
AC_DEFUN([EGG_TCL_FIND_LIBRARY], |
1028 |
[ |
1029 |
# Look for Tcl library: if $TCLLIB is set, check there first |
1030 |
if test "x$TCLLIBFN" = x && test "x$TCLLIB" != x; then |
1031 |
if test -d "$TCLLIB"; then |
1032 |
for tcllibfns in $tcllibnames; do |
1033 |
for tcllibext in $tcllibextensions; do |
1034 |
if test -r "${TCLLIB}/lib${tcllibfns}${tcllibext}"; then |
1035 |
TCLLIBFN="${tcllibfns}${tcllibext}" |
1036 |
TCLLIBEXT="$tcllibext" |
1037 |
TCLLIBFNS="$tcllibfns" |
1038 |
break 2 |
1039 |
fi |
1040 |
done |
1041 |
done |
1042 |
fi |
1043 |
|
1044 |
if test "x$TCLLIBFN" = x; then |
1045 |
cat << 'EOF' >&2 |
1046 |
configure: WARNING: |
1047 |
|
1048 |
Environment variable TCLLIB was set, but incorrectly. |
1049 |
Please set both TCLLIB and TCLINC correctly if you wish to use them. |
1050 |
|
1051 |
configure will now attempt to autodetect both the Tcl library and header. |
1052 |
|
1053 |
EOF |
1054 |
TCLLIB="" |
1055 |
TCLLIBFN="" |
1056 |
TCLINC="" |
1057 |
TCLINCFN="" |
1058 |
fi |
1059 |
fi |
1060 |
]) |
1061 |
|
1062 |
|
1063 |
dnl EGG_TCL_FIND_HEADER() |
1064 |
dnl |
1065 |
AC_DEFUN([EGG_TCL_FIND_HEADER], |
1066 |
[ |
1067 |
# Look for Tcl header: if $TCLINC is set, check there first |
1068 |
if test "x$TCLINCFN" = x && test "x$TCLINC" != x; then |
1069 |
if test -d "$TCLINC"; then |
1070 |
for tclheaderfn in $tclheadernames; do |
1071 |
if test -r "${TCLINC}/${tclheaderfn}"; then |
1072 |
TCLINCFN="$tclheaderfn" |
1073 |
break |
1074 |
fi |
1075 |
done |
1076 |
fi |
1077 |
|
1078 |
if test "x$TCLINCFN" = x; then |
1079 |
cat << 'EOF' >&2 |
1080 |
configure: WARNING: |
1081 |
|
1082 |
Environment variable TCLINC was set, but incorrectly. |
1083 |
Please set both TCLLIB and TCLINC correctly if you wish to use them. |
1084 |
|
1085 |
configure will now attempt to autodetect both the Tcl library and header. |
1086 |
|
1087 |
EOF |
1088 |
TCLLIB="" |
1089 |
TCLLIBFN="" |
1090 |
TCLINC="" |
1091 |
TCLINCFN="" |
1092 |
fi |
1093 |
fi |
1094 |
]) |
1095 |
|
1096 |
|
1097 |
dnl EGG_TCL_CHECK_LIBRARY() |
1098 |
dnl |
1099 |
AC_DEFUN([EGG_TCL_CHECK_LIBRARY], |
1100 |
[ |
1101 |
AC_MSG_CHECKING([for Tcl library]) |
1102 |
|
1103 |
# Attempt autodetect for $TCLLIBFN if it's not set |
1104 |
if test "x$TCLLIBFN" != x; then |
1105 |
AC_MSG_RESULT([using ${TCLLIB}/lib${TCLLIBFN}]) |
1106 |
else |
1107 |
for tcllibfns in $tcllibnames; do |
1108 |
for tcllibext in $tcllibextensions; do |
1109 |
for tcllibpath in $tcllibpaths; do |
1110 |
if test -r "${tcllibpath}/lib${tcllibfns}${tcllibext}"; then |
1111 |
AC_MSG_RESULT([found ${tcllibpath}/lib${tcllibfns}${tcllibext}]) |
1112 |
TCLLIB="$tcllibpath" |
1113 |
TCLLIBFN="${tcllibfns}${tcllibext}" |
1114 |
TCLLIBEXT="$tcllibext" |
1115 |
TCLLIBFNS="$tcllibfns" |
1116 |
break 3 |
1117 |
fi |
1118 |
done |
1119 |
done |
1120 |
done |
1121 |
fi |
1122 |
|
1123 |
# Show if $TCLLIBFN wasn't found |
1124 |
if test "x$TCLLIBFN" = x; then |
1125 |
AC_MSG_RESULT([not found]) |
1126 |
fi |
1127 |
|
1128 |
AC_SUBST(TCLLIB) |
1129 |
AC_SUBST(TCLLIBFN) |
1130 |
]) |
1131 |
|
1132 |
|
1133 |
dnl EGG_TCL_CHECK_HEADER() |
1134 |
dnl |
1135 |
AC_DEFUN([EGG_TCL_CHECK_HEADER], |
1136 |
[ |
1137 |
AC_MSG_CHECKING([for Tcl header]) |
1138 |
|
1139 |
# Attempt autodetect for $TCLINCFN if it's not set |
1140 |
if test "x$TCLINCFN" != x; then |
1141 |
AC_MSG_RESULT([using ${TCLINC}/${TCLINCFN}]) |
1142 |
else |
1143 |
for tclheaderpath in $tclheaderpaths; do |
1144 |
for tclheaderfn in $tclheadernames; do |
1145 |
if test -r "${tclheaderpath}/${tclheaderfn}"; then |
1146 |
AC_MSG_RESULT([found ${tclheaderpath}/${tclheaderfn}]) |
1147 |
TCLINC="$tclheaderpath" |
1148 |
TCLINCFN="$tclheaderfn" |
1149 |
break 2 |
1150 |
fi |
1151 |
done |
1152 |
done |
1153 |
|
1154 |
# FreeBSD hack ... |
1155 |
if test "x$TCLINCFN" = x; then |
1156 |
for tcllibfns in $tcllibnames; do |
1157 |
for tclheaderpath in $tclheaderpaths; do |
1158 |
for tclheaderfn in $tclheadernames; do |
1159 |
if test -r "${tclheaderpath}/${tcllibfns}/${tclheaderfn}"; then |
1160 |
AC_MSG_RESULT([found ${tclheaderpath}/${tcllibfns}/${tclheaderfn}]) |
1161 |
TCLINC="${tclheaderpath}/${tcllibfns}" |
1162 |
TCLINCFN="$tclheaderfn" |
1163 |
break 3 |
1164 |
fi |
1165 |
done |
1166 |
done |
1167 |
done |
1168 |
fi |
1169 |
fi |
1170 |
|
1171 |
if test "x$TCLINCFN" = x; then |
1172 |
AC_MSG_RESULT([not found]) |
1173 |
fi |
1174 |
|
1175 |
AC_SUBST(TCLINC) |
1176 |
AC_SUBST(TCLINCFN) |
1177 |
]) |
1178 |
|
1179 |
|
1180 |
dnl EGG_CACHE_UNSET(CACHE-ID) |
1181 |
dnl |
1182 |
dnl Unsets a certain cache item. Typically called before using the AC_CACHE_*() |
1183 |
dnl macros. |
1184 |
dnl |
1185 |
AC_DEFUN([EGG_CACHE_UNSET], [unset $1]) |
1186 |
|
1187 |
|
1188 |
dnl EGG_TCL_DETECT_CHANGE() |
1189 |
dnl |
1190 |
dnl Detect whether the Tcl system has changed since our last configure run. |
1191 |
dnl Set egg_tcl_changed accordingly. |
1192 |
dnl |
1193 |
dnl Tcl related feature and version checks should re-run their checks as soon |
1194 |
dnl as egg_tcl_changed is set to "yes". |
1195 |
dnl |
1196 |
AC_DEFUN([EGG_TCL_DETECT_CHANGE], |
1197 |
[ |
1198 |
dnl NOTE: autoconf 2.50+ disables config.cache by default. |
1199 |
dnl These checks don't do us much good if cache is disabled. |
1200 |
AC_MSG_CHECKING([whether the Tcl system has changed]) |
1201 |
egg_tcl_changed="yes" |
1202 |
egg_tcl_id="${TCLLIB}:${TCLLIBFN}:${TCLINC}:${TCLINCFN}" |
1203 |
if test "$egg_tcl_id" != ":::"; then |
1204 |
egg_tcl_cached="yes" |
1205 |
AC_CACHE_VAL(egg_cv_var_tcl_id, [ |
1206 |
egg_cv_var_tcl_id="$egg_tcl_id" |
1207 |
egg_tcl_cached="no" |
1208 |
]) |
1209 |
if test "$egg_tcl_cached" = yes; then |
1210 |
if test "x$egg_cv_var_tcl_id" = "x$egg_tcl_id"; then |
1211 |
egg_tcl_changed="no" |
1212 |
else |
1213 |
egg_cv_var_tcl_id="$egg_tcl_id" |
1214 |
fi |
1215 |
fi |
1216 |
fi |
1217 |
|
1218 |
if test "$egg_tcl_changed" = yes; then |
1219 |
AC_MSG_RESULT([yes]) |
1220 |
else |
1221 |
AC_MSG_RESULT([no]) |
1222 |
fi |
1223 |
]) |
1224 |
|
1225 |
|
1226 |
dnl EGG_TCL_CHECK_VERSION() |
1227 |
dnl |
1228 |
AC_DEFUN([EGG_TCL_CHECK_VERSION], |
1229 |
[ |
1230 |
# Both TCLLIBFN & TCLINCFN must be set, or we bail |
1231 |
TCL_FOUND=0 |
1232 |
if test "x$TCLLIBFN" != x && test "x$TCLINCFN" != x; then |
1233 |
TCL_FOUND=1 |
1234 |
|
1235 |
# Check Tcl's version |
1236 |
if test "$egg_tcl_changed" = yes; then |
1237 |
EGG_CACHE_UNSET(egg_cv_var_tcl_version) |
1238 |
fi |
1239 |
|
1240 |
AC_MSG_CHECKING([for Tcl version]) |
1241 |
AC_CACHE_VAL(egg_cv_var_tcl_version, [ |
1242 |
egg_cv_var_tcl_version=`grep TCL_VERSION $TCLINC/$TCLINCFN | $HEAD_1 | $AWK '{gsub(/\"/, "", [$]3); print [$]3}'` |
1243 |
]) |
1244 |
|
1245 |
if test "x$egg_cv_var_tcl_version" != x; then |
1246 |
AC_MSG_RESULT([$egg_cv_var_tcl_version]) |
1247 |
else |
1248 |
AC_MSG_RESULT([not found]) |
1249 |
TCL_FOUND=0 |
1250 |
fi |
1251 |
|
1252 |
# Check Tcl's patch level (if available) |
1253 |
if test "$egg_tcl_changed" = yes; then |
1254 |
EGG_CACHE_UNSET(egg_cv_var_tcl_patch_level) |
1255 |
fi |
1256 |
AC_MSG_CHECKING([for Tcl patch level]) |
1257 |
AC_CACHE_VAL(egg_cv_var_tcl_patch_level, [ |
1258 |
eval "egg_cv_var_tcl_patch_level=`grep TCL_PATCH_LEVEL $TCLINC/$TCLINCFN | $HEAD_1 | $AWK '{gsub(/\"/, "", [$]3); print [$]3}'`" |
1259 |
]) |
1260 |
|
1261 |
if test "x$egg_cv_var_tcl_patch_level" != x; then |
1262 |
AC_MSG_RESULT([$egg_cv_var_tcl_patch_level]) |
1263 |
else |
1264 |
egg_cv_var_tcl_patch_level="unknown" |
1265 |
AC_MSG_RESULT([unknown]) |
1266 |
fi |
1267 |
fi |
1268 |
|
1269 |
# Check if we found Tcl's version |
1270 |
if test "$TCL_FOUND" = 0; then |
1271 |
cat << 'EOF' >&2 |
1272 |
configure: error: |
1273 |
|
1274 |
Tcl cannot be found on this system. |
1275 |
|
1276 |
Eggdrop requires Tcl and the Tcl development files to compile. |
1277 |
If you already have Tcl installed on this system, make sure you |
1278 |
also have the development files (common package names include |
1279 |
'tcl-dev' and 'tcl-devel'). If I just wasn't looking |
1280 |
in the right place for it, re-run ./configure using the |
1281 |
--with-tcllib='/path/to/libtcl.so' and |
1282 |
--with-tclinc='/path/to/tcl.h' options. |
1283 |
|
1284 |
See doc/COMPILE-GUIDE's 'Tcl Detection and Installation' section for more |
1285 |
information. |
1286 |
|
1287 |
EOF |
1288 |
exit 1 |
1289 |
fi |
1290 |
]) |
1291 |
|
1292 |
|
1293 |
dnl EGG_TCL_CHECK_PRE70() |
1294 |
dnl |
1295 |
AC_DEFUN([EGG_TCL_CHECK_PRE70], |
1296 |
[ |
1297 |
# Is this version of Tcl too old for us to use ? |
1298 |
TCL_VER_PRE70=`echo $egg_cv_var_tcl_version | $AWK '{split([$]1, i, "."); if (i[[1]] < 7) print "yes"; else print "no"}'` |
1299 |
if test "$TCL_VER_PRE70" = yes; then |
1300 |
cat << EOF >&2 |
1301 |
configure: error: |
1302 |
|
1303 |
Your Tcl version is much too old for Eggdrop to use. You should |
1304 |
download and compile a more recent version. The most reliable |
1305 |
current version is $tclrecommendver and can be downloaded from |
1306 |
${tclrecommendsite}. |
1307 |
|
1308 |
See doc/COMPILE-GUIDE's 'Tcl Detection and Installation' section |
1309 |
for more information. |
1310 |
|
1311 |
EOF |
1312 |
exit 1 |
1313 |
fi |
1314 |
]) |
1315 |
|
1316 |
|
1317 |
dnl EGG_TCL_TESTLIBS() |
1318 |
dnl |
1319 |
AC_DEFUN([EGG_TCL_TESTLIBS], |
1320 |
[ |
1321 |
# Set variables for Tcl library tests |
1322 |
TCL_TEST_LIB="$TCLLIBFNS" |
1323 |
TCL_TEST_OTHERLIBS="-L$TCLLIB $EGG_MATH_LIB" |
1324 |
if test "x$ac_cv_lib_pthread" != x; then |
1325 |
TCL_TEST_OTHERLIBS="$TCL_TEST_OTHERLIBS $ac_cv_lib_pthread" |
1326 |
fi |
1327 |
]) |
1328 |
|
1329 |
|
1330 |
dnl EGG_TCL_CHECK_FREE() |
1331 |
dnl |
1332 |
AC_DEFUN([EGG_TCL_CHECK_FREE], |
1333 |
[ |
1334 |
if test "$egg_tcl_changed" = yes; then |
1335 |
EGG_CACHE_UNSET(egg_cv_var_tcl_free) |
1336 |
fi |
1337 |
|
1338 |
# Check for Tcl_Free() |
1339 |
AC_CHECK_LIB($TCL_TEST_LIB, Tcl_Free, [egg_cv_var_tcl_free="yes"], [egg_cv_var_tcl_free="no"], $TCL_TEST_OTHERLIBS) |
1340 |
|
1341 |
if test "$egg_cv_var_tcl_free" = yes; then |
1342 |
AC_DEFINE(HAVE_TCL_FREE, 1, [Define for Tcl that has Tcl_Free() (7.5p1 and later).]) |
1343 |
fi |
1344 |
]) |
1345 |
|
1346 |
|
1347 |
dnl EGG_TCL_CHECK_GETCURRENTTHREAD |
1348 |
dnl |
1349 |
AC_DEFUN([EGG_TCL_CHECK_GETCURRENTTHREAD], |
1350 |
[ |
1351 |
if test "$egg_tcl_changed" = yes; then |
1352 |
EGG_CACHE_UNSET(egg_cv_var_tcl_getcurrentthread) |
1353 |
fi |
1354 |
|
1355 |
# Check for Tcl_GetCurrentThread() |
1356 |
AC_CHECK_LIB($TCL_TEST_LIB, Tcl_GetCurrentThread, [egg_cv_var_tcl_getcurrentthread="yes"], [egg_cv_var_tcl_getcurrentthread="no"], $TCL_TEST_OTHERLIBS) |
1357 |
if test "$egg_cv_var_tcl_getcurrentthread" = yes; then |
1358 |
AC_DEFINE(HAVE_TCL_GETCURRENTTHREAD, 1, [Define for Tcl that has Tcl_GetCurrentThread() (8.1a2 and later).]) |
1359 |
|
1360 |
# Add pthread library to $LIBS if we need it for threaded Tcl |
1361 |
if test "x$ac_cv_lib_pthread" != x; then |
1362 |
EGG_APPEND_VAR(LIBS, $ac_cv_lib_pthread) |
1363 |
fi |
1364 |
fi |
1365 |
]) |
1366 |
|
1367 |
|
1368 |
dnl EGG_TCL_CHECK_GETTHREADDATA |
1369 |
dnl |
1370 |
AC_DEFUN([EGG_TCL_CHECK_GETTHREADDATA], |
1371 |
[ |
1372 |
if test "$egg_tcl_changed" = yes; then |
1373 |
EGG_CACHE_UNSET(egg_cv_var_tcl_getthreaddata) |
1374 |
fi |
1375 |
|
1376 |
# Check for Tcl_GetThreadData() |
1377 |
AC_CHECK_LIB($TCL_TEST_LIB, Tcl_GetThreadData, [egg_cv_var_tcl_getthreaddata="yes"], [egg_cv_var_tcl_getthreaddata="no"], $TCL_TEST_OTHERLIBS) |
1378 |
if test "$egg_cv_var_tcl_getthreaddata" = yes; then |
1379 |
AC_DEFINE(HAVE_TCL_GETTHREADDATA, 1, [Define for Tcl that has Tcl_GetThreadData() (8.1a2 and later).]) |
1380 |
fi |
1381 |
]) |
1382 |
|
1383 |
|
1384 |
dnl EGG_TCL_CHECK_SETNOTIFIER |
1385 |
dnl |
1386 |
AC_DEFUN([EGG_TCL_CHECK_SETNOTIFIER], |
1387 |
[ |
1388 |
if test "$egg_tcl_changed" = yes; then |
1389 |
EGG_CACHE_UNSET(egg_cv_var_tcl_setnotifier) |
1390 |
fi |
1391 |
|
1392 |
# Check for Tcl_SetNotifier() |
1393 |
AC_CHECK_LIB($TCL_TEST_LIB, Tcl_SetNotifier, [egg_cv_var_tcl_setnotifier="yes"], [egg_cv_var_tcl_setnotifier="no"], $TCL_TEST_OTHERLIBS) |
1394 |
if test "$egg_cv_var_tcl_setnotifier" = yes; then |
1395 |
AC_DEFINE(HAVE_TCL_SETNOTIFIER, 1, [Define for Tcl that has Tcl_SetNotifier() (8.2b1 and later).]) |
1396 |
fi |
1397 |
]) |
1398 |
|
1399 |
|
1400 |
dnl EGG_TCL_CHECK_NOTIFIER_INIT |
1401 |
dnl |
1402 |
AC_DEFUN([EGG_TCL_CHECK_NOTIFIER_INIT], |
1403 |
[ |
1404 |
if test "$egg_tcl_changed" = yes; then |
1405 |
EGG_CACHE_UNSET(egg_cv_var_tcl_notifier_init) |
1406 |
fi |
1407 |
|
1408 |
# Check for Tcl_NotifierProcs member initNotifierProc |
1409 |
AC_CHECK_MEMBER([Tcl_NotifierProcs.initNotifierProc], [egg_cv_var_tcl_notifier_init="yes"], [egg_cv_var_tcl_notifier_init="no"], [[#include "$TCLINC/$TCLINCFN"]]) |
1410 |
if test "$egg_cv_var_tcl_notifier_init" = yes; then |
1411 |
AC_DEFINE(HAVE_TCL_NOTIFIER_INIT, 1, [Define for Tcl that has the Tcl_NotifierProcs struct member initNotifierProc (8.4 and later).]) |
1412 |
fi |
1413 |
]) |
1414 |
|
1415 |
|
1416 |
dnl EGG_TCL_LIB_REQS() |
1417 |
dnl |
1418 |
AC_DEFUN([EGG_TCL_LIB_REQS], |
1419 |
[ |
1420 |
if test "$EGG_CYGWIN" = yes; then |
1421 |
TCL_REQS="${TCLLIB}/lib${TCLLIBFN}" |
1422 |
TCL_LIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB" |
1423 |
else |
1424 |
if test "$TCLLIBEXT" != ".a"; then |
1425 |
TCL_REQS="${TCLLIB}/lib${TCLLIBFN}" |
1426 |
TCL_LIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB" |
1427 |
else |
1428 |
# Set default make as static for unshared Tcl library |
1429 |
if test "$DEFAULT_MAKE" != static; then |
1430 |
cat << 'EOF' >&2 |
1431 |
configure: WARNING: |
1432 |
|
1433 |
Your Tcl library is not a shared lib. |
1434 |
configure will now set default make type to static. |
1435 |
|
1436 |
EOF |
1437 |
DEFAULT_MAKE="static" |
1438 |
AC_SUBST(DEFAULT_MAKE) |
1439 |
fi |
1440 |
|
1441 |
# Are we using a pre 7.4 Tcl version ? |
1442 |
TCL_VER_PRE74=`echo $egg_cv_var_tcl_version | $AWK '{split([$]1, i, "."); if (((i[[1]] == 7) && (i[[2]] < 4)) || (i[[1]] < 7)) print "yes"; else print "no"}'` |
1443 |
if test "$TCL_VER_PRE74" = no; then |
1444 |
|
1445 |
# Was the --with-tcllib option given ? |
1446 |
if test "x$tcllibname" != x; then |
1447 |
TCL_REQS="${TCLLIB}/lib${TCLLIBFN}" |
1448 |
TCL_LIBS="${TCLLIB}/lib${TCLLIBFN} $EGG_MATH_LIB" |
1449 |
else |
1450 |
TCL_REQS="${TCLLIB}/lib${TCLLIBFN}" |
1451 |
TCL_LIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB" |
1452 |
fi |
1453 |
else |
1454 |
cat << EOF >&2 |
1455 |
configure: WARNING: |
1456 |
|
1457 |
Your Tcl version ($egg_cv_var_tcl_version) is older than 7.4. |
1458 |
There are known problems, but we will attempt to work around them. |
1459 |
|
1460 |
EOF |
1461 |
TCL_REQS="libtcle.a" |
1462 |
TCL_LIBS="-L`pwd` -ltcle $EGG_MATH_LIB" |
1463 |
fi |
1464 |
fi |
1465 |
fi |
1466 |
|
1467 |
AC_SUBST(TCL_REQS) |
1468 |
AC_SUBST(TCL_LIBS) |
1469 |
]) |
1470 |
|
1471 |
|
1472 |
dnl EGG_SUBST_EGGVERSION() |
1473 |
dnl |
1474 |
AC_DEFUN([EGG_SUBST_EGGVERSION], |
1475 |
[ |
1476 |
EGGVERSION=`grep 'char.egg_version' $srcdir/src/main.c | $AWK '{gsub(/(\"|\;)/, "", [$]4); print [$]4}'` |
1477 |
egg_version_num=`echo $EGGVERSION | $AWK 'BEGIN {FS = "."} {printf("%d%02d%02d", [$]1, [$]2, [$]3)}'` |
1478 |
AC_SUBST(EGGVERSION) |
1479 |
AC_DEFINE_UNQUOTED(EGG_VERSION, $egg_version_num, [Defines the current Eggdrop version.]) |
1480 |
]) |
1481 |
|
1482 |
|
1483 |
dnl EGG_SUBST_DEST() |
1484 |
AC_DEFUN([EGG_SUBST_DEST], |
1485 |
[ |
1486 |
if test "x$DEST" = x; then |
1487 |
DEST=\${prefix} |
1488 |
fi |
1489 |
AC_SUBST(DEST) |
1490 |
]) |
1491 |
|
1492 |
|
1493 |
dnl EGG_SUBST_MOD_UPDIR() |
1494 |
dnl |
1495 |
dnl Since module's Makefiles aren't generated by configure, some paths in |
1496 |
dnl src/mod/Makefile.in take care of them. For correct path "calculation", we |
1497 |
dnl need to keep absolute paths in mind (which don't need a "../" prepended). |
1498 |
dnl |
1499 |
AC_DEFUN([EGG_SUBST_MOD_UPDIR], [ |
1500 |
case "$srcdir" in |
1501 |
[[\\/]]* | ?:[[\\/]]*) |
1502 |
MOD_UPDIR="" |
1503 |
;; |
1504 |
*) |
1505 |
MOD_UPDIR="../" |
1506 |
;; |
1507 |
esac |
1508 |
AC_SUBST(MOD_UPDIR) |
1509 |
]) |
1510 |
|
1511 |
|
1512 |
dnl EGG_REPLACE_IF_CHANGED(FILE-NAME, CONTENTS-CMDS, INIT-CMDS) |
1513 |
dnl |
1514 |
dnl Replace FILE-NAME if the newly created contents differs from the existing |
1515 |
dnl file contents. Otherwise, leave the file alone. This avoids needless |
1516 |
dnl recompiles. |
1517 |
dnl |
1518 |
m4_define(EGG_REPLACE_IF_CHANGED, |
1519 |
[ |
1520 |
AC_CONFIG_COMMANDS([replace-if-changed], [[ |
1521 |
egg_replace_file="$1" |
1522 |
$2 |
1523 |
if test -f "$egg_replace_file" && cmp -s conftest.out $egg_replace_file; then |
1524 |
echo "$1 is unchanged" |
1525 |
else |
1526 |
echo "creating $1" |
1527 |
mv conftest.out $egg_replace_file |
1528 |
fi |
1529 |
rm -f conftest.out |
1530 |
]], |
1531 |
[[$3]]) |
1532 |
]) |
1533 |
|
1534 |
|
1535 |
dnl EGG_TCL_LUSH() |
1536 |
dnl |
1537 |
AC_DEFUN([EGG_TCL_LUSH], |
1538 |
[ |
1539 |
EGG_REPLACE_IF_CHANGED(lush.h, [ |
1540 |
cat > conftest.out << EOF |
1541 |
|
1542 |
/* Ignore me but do not erase me. I am a kludge. */ |
1543 |
|
1544 |
#include "${egg_tclinc}/${egg_tclincfn}" |
1545 |
|
1546 |
EOF |
1547 |
], [ |
1548 |
egg_tclinc="$TCLINC" |
1549 |
egg_tclincfn="$TCLINCFN" |
1550 |
]) |
1551 |
]) |
1552 |
|
1553 |
|
1554 |
dnl EGG_DEBUG_ENABLE() |
1555 |
dnl |
1556 |
AC_DEFUN([EGG_DEBUG_ENABLE], |
1557 |
[ |
1558 |
AC_ARG_ENABLE(debug, [ --enable-debug enable generic debug code (default for 'make debug')], [enable_debug="$enableval"], [enable_debug="auto"]) |
1559 |
AC_ARG_ENABLE(debug, [ --disable-debug disable generic debug code], [enable_debug="$enableval"], [enable_debug="auto"]) |
1560 |
AC_ARG_ENABLE(debug-assert, [ --enable-debug-assert enable assert debug code (default for 'make debug')], [enable_debug_assert="$enableval"], [enable_debug_assert="auto"]) |
1561 |
AC_ARG_ENABLE(debug-assert, [ --disable-debug-assert disable assert debug code], [enable_debug_assert="$enableval"], [enable_debug_assert="auto"]) |
1562 |
AC_ARG_ENABLE(debug-mem, [ --enable-debug-mem enable memory debug code (default for 'make debug')], [enable_debug_mem="$enableval"], [enable_debug_mem="auto"]) |
1563 |
AC_ARG_ENABLE(debug-mem, [ --disable-debug-mem disable memory debug code], [enable_debug_mem="$enableval"], [enable_debug_mem="auto"]) |
1564 |
AC_ARG_ENABLE(debug-dns, [ --enable-debug-dns enable dns.mod debug messages (default for 'make debug')], [enable_debug_dns="$enableval"], [enable_debug_dns="auto"]) |
1565 |
AC_ARG_ENABLE(debug-dns, [ --disable-debug-dns disable dns.mod debug messages], [enable_debug_dns="$enableval"], [enable_debug_dns="auto"]) |
1566 |
AC_ARG_ENABLE(debug-context, [ --enable-debug-context enable context debug code (default)], [enable_debug_context="$enableval"], [enable_debug_context="auto"]) |
1567 |
AC_ARG_ENABLE(debug-context, [ --disable-debug-context disable context debug code], [enable_debug_context="$enableval"], [enable_debug_context="auto"]) |
1568 |
]) |
1569 |
|
1570 |
|
1571 |
dnl EGG_DEBUG_DEFAULTS() |
1572 |
dnl |
1573 |
AC_DEFUN([EGG_DEBUG_DEFAULTS], |
1574 |
[ |
1575 |
# Defaults: |
1576 |
|
1577 |
# make: 'eggdrop' or 'static' |
1578 |
default_std_debug="no" |
1579 |
default_std_debug_assert="no" |
1580 |
default_std_debug_mem="no" |
1581 |
default_std_debug_context="yes" |
1582 |
default_std_debug_dns="no" |
1583 |
|
1584 |
# make: 'debug' or 'sdebug' |
1585 |
default_deb_debug="yes" |
1586 |
default_deb_debug_assert="yes" |
1587 |
default_deb_debug_mem="yes" |
1588 |
default_deb_debug_context="yes" |
1589 |
default_deb_debug_dns="yes" |
1590 |
|
1591 |
if test "$DEFAULT_MAKE" = eggdrop || test "$DEFAULT_MAKE" = static; then |
1592 |
default_debug="$default_std_debug" |
1593 |
default_debug_assert="$default_std_debug_assert" |
1594 |
default_debug_mem="$default_std_debug_mem" |
1595 |
default_debug_context="$default_std_debug_context" |
1596 |
default_debug_dns="$default_std_debug_dns" |
1597 |
else |
1598 |
default_debug="$default_deb_debug" |
1599 |
default_debug_assert="$default_deb_debug_assert" |
1600 |
default_debug_mem="$default_deb_debug_mem" |
1601 |
default_debug_context="$default_deb_debug_context" |
1602 |
default_debug_dns="$default_deb_debug_dns" |
1603 |
fi |
1604 |
|
1605 |
debug_options="debug debug_assert debug_mem debug_dns" |
1606 |
|
1607 |
debug_cflags_debug="-g3 -DDEBUG" |
1608 |
debug_cflags_debug_assert="-DDEBUG_ASSERT" |
1609 |
debug_cflags_debug_mem="-DDEBUG_MEM" |
1610 |
debug_cflags_debug_dns="-DDEBUG_DNS" |
1611 |
debug_stdcflags_debug="" |
1612 |
debug_stdcflags_debug_assert="" |
1613 |
debug_stdcflags_debug_mem="" |
1614 |
debug_stdcflags_debug_dns="" |
1615 |
debug_debcflags_debug="" |
1616 |
debug_debcflags_debug_assert="" |
1617 |
debug_debcflags_debug_mem="" |
1618 |
debug_debcflags_debug_dns="" |
1619 |
]) |
1620 |
|
1621 |
|
1622 |
dnl EGG_DEBUG_OPTIONS() |
1623 |
dnl |
1624 |
AC_DEFUN([EGG_DEBUG_OPTIONS], |
1625 |
[ |
1626 |
for enable_option in $debug_options; do |
1627 |
|
1628 |
eval enable_value=\$enable_$enable_option |
1629 |
|
1630 |
# Check if either --enable-<opt> or --disable-<opt> was used |
1631 |
if test "$enable_value" != auto; then |
1632 |
# Make sure an invalid option wasn't passed as --enable-<opt>=foo |
1633 |
if test "$enable_value" != yes && test "$enable_value" != no; then |
1634 |
opt_name=`echo $enable_option | sed 's/_/-/g'` |
1635 |
eval opt_default=\$default_$enable_option |
1636 |
AC_MSG_WARN([Invalid option '$enable_value' passed to --enable-${opt_name}, defaulting to '$opt_default']) |
1637 |
eval enable_$enable_option="auto" |
1638 |
fi |
1639 |
fi |
1640 |
|
1641 |
if test "$enable_value" = auto; then |
1642 |
# Note: options generally should not end up in both std and deb but |
1643 |
# there may be options in the future where this behavior is desired. |
1644 |
if test `eval echo '${'default_std_$enable_option'}'` = yes; then |
1645 |
eval `echo debug_stdcflags_$enable_option`=\$debug_cflags_$enable_option |
1646 |
fi |
1647 |
if test `eval echo '${'default_deb_$enable_option'}'` = yes; then |
1648 |
eval `echo debug_debcflags_$enable_option`=\$debug_cflags_$enable_option |
1649 |
fi |
1650 |
else |
1651 |
if test "$enable_value" = yes; then |
1652 |
# If option defaults to 'yes' for debug, always put it in stdcflags |
1653 |
# when the option is forced on because someone may want it enabled |
1654 |
# for a non-debug build. |
1655 |
if test `eval echo '${'default_deb_$enable_option'}'` = yes; then |
1656 |
eval `echo debug_stdcflags_$enable_option`=\$debug_cflags_$enable_option |
1657 |
else |
1658 |
# option defaulted to 'no' so put it in debcflags |
1659 |
eval `echo debug_debcflags_$enable_option`=\$debug_cflags_$enable_option |
1660 |
fi |
1661 |
fi |
1662 |
fi |
1663 |
done |
1664 |
]) |
1665 |
|
1666 |
|
1667 |
dnl EGG_DEBUG_CFLAGS() |
1668 |
dnl |
1669 |
AC_DEFUN([EGG_DEBUG_CFLAGS], |
1670 |
[ |
1671 |
for cflg_option in $debug_options; do |
1672 |
eval stdcflg_value=\$debug_stdcflags_$cflg_option |
1673 |
EGG_APPEND_VAR(CFLGS, $stdcflg_value) |
1674 |
|
1675 |
eval debcflg_value=\$debug_debcflags_$cflg_option |
1676 |
EGG_APPEND_VAR(DEBCFLGS, $debcflg_value) |
1677 |
done |
1678 |
|
1679 |
# Disable debug symbol stripping if compiled with --enable-debug |
1680 |
# This will result in core dumps that are actually useful. |
1681 |
if test "x$debug_stdcflags_debug" != x; then |
1682 |
STRIP="touch" |
1683 |
MOD_STRIP="touch" |
1684 |
SHLIB_STRIP="touch" |
1685 |
fi |
1686 |
|
1687 |
AC_SUBST(CFLGS) |
1688 |
AC_SUBST(DEBCFLGS) |
1689 |
]) |
1690 |
|
1691 |
|
1692 |
dnl EGG_ENABLE_DEBUG_CONTEXT() |
1693 |
dnl |
1694 |
AC_DEFUN([EGG_ENABLE_DEBUG_CONTEXT], |
1695 |
[ |
1696 |
# Check if either --enable-debug-context or --disable-debug-context was used |
1697 |
if test "$enable_debug_context" != auto; then |
1698 |
|
1699 |
# Make sure an invalid option wasn't passed as --enable-debug-context=foo |
1700 |
if test "$enable_debug_context" != yes && test "$enable_debug_context" != no; then |
1701 |
AC_MSG_WARN([Invalid option '$enable_debug_context' passed to --enable-debug-context, defaulting to '$default_debug_context']) |
1702 |
enable_debug_context="$default_debug_context" |
1703 |
fi |
1704 |
else |
1705 |
enable_debug_context="$default_debug_context" |
1706 |
fi |
1707 |
|
1708 |
if test "$enable_debug_context" = yes; then |
1709 |
AC_DEFINE(DEBUG_CONTEXT, 1, [Define for context debugging.]) |
1710 |
else |
1711 |
cat << 'EOF' >&2 |
1712 |
configure: WARNING: |
1713 |
|
1714 |
You have disabled context debugging. |
1715 |
|
1716 |
Eggdrop will not be able to provide context information if it crashes. |
1717 |
Bug reports without context are less helpful when tracking down bugs. |
1718 |
|
1719 |
EOF |
1720 |
fi |
1721 |
]) |
1722 |
|
1723 |
|
1724 |
dnl EGG_CATCH_MAKEFILE_REBUILD() |
1725 |
dnl |
1726 |
AC_DEFUN([EGG_CATCH_MAKEFILE_REBUILD], |
1727 |
[ |
1728 |
AC_CONFIG_COMMANDS([catch-make-rebuild], [[ |
1729 |
if test -f .modules; then |
1730 |
$srcdir/misc/modconfig --top_srcdir="$srcdir/src" Makefile |
1731 |
fi |
1732 |
]]) |
1733 |
]) |
1734 |
|
1735 |
|
1736 |
dnl EGG_SAVE_PARAMETERS() |
1737 |
dnl |
1738 |
dnl Remove --cache-file and --srcdir arguments so they do not pile up. |
1739 |
dnl |
1740 |
AC_DEFUN([EGG_SAVE_PARAMETERS], |
1741 |
[ |
1742 |
egg_ac_parameters= |
1743 |
ac_prev= |
1744 |
for ac_arg in $ac_configure_args; do |
1745 |
if test -n "$ac_prev"; then |
1746 |
ac_prev= |
1747 |
continue |
1748 |
fi |
1749 |
case $ac_arg in |
1750 |
-cache-file | --cache-file | --cache-fil | --cache-fi | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) |
1751 |
ac_prev=cache_file ;; |
1752 |
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) |
1753 |
;; |
1754 |
--config-cache | -C) |
1755 |
;; |
1756 |
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr) |
1757 |
ac_prev=srcdir ;; |
1758 |
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) |
1759 |
;; |
1760 |
*) egg_ac_parameters="$egg_ac_parameters $ac_arg" ;; |
1761 |
esac |
1762 |
done |
1763 |
|
1764 |
AC_SUBST(egg_ac_parameters) |
1765 |
AC_DEFINE_UNQUOTED(EGG_AC_ARGS, "$egg_ac_parameters", [Arguments passed to configure]) |
1766 |
]) |