/[cvs]/eggdrop1.9/aclocal.m4
ViewVC logotype

Contents of /eggdrop1.9/aclocal.m4

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.35 - (show annotations) (download)
Fri Jun 22 05:49:30 2001 UTC (18 years ago) by guppy
Branch: MAIN
Changes since 1.34: +22 -1 lines
I added my libsafe_hacks patch because I want to get a few people to test it tonight also, I have a patch I'm trying to hack into eggdrop

1 dnl aclocal.m4
2 dnl macros autoconf uses when building configure from configure.in
3 dnl
4 dnl $Id: aclocal.m4,v 1.34 2001/06/20 14:44:16 poptix Exp $
5 dnl
6
7
8 dnl EGG_MSG_CONFIGURE_START()
9 dnl
10 AC_DEFUN(EGG_MSG_CONFIGURE_START, [dnl
11 AC_MSG_RESULT()
12 AC_MSG_RESULT(This is eggdrop's GNU configure script.)
13 AC_MSG_RESULT(It's going to run a bunch of strange tests to hopefully)
14 AC_MSG_RESULT(make your compile work without much twiddling.)
15 AC_MSG_RESULT()
16 ])dnl
17
18
19 dnl EGG_MSG_CONFIGURE_END()
20 dnl
21 AC_DEFUN(EGG_MSG_CONFIGURE_END, [dnl
22 AC_MSG_RESULT()
23 AC_MSG_RESULT(Configure is done.)
24 AC_MSG_RESULT()
25 AC_MSG_RESULT(Type 'make config' to configure the modules. Or 'make iconfig' to)
26 AC_MSG_RESULT(interactively choose which modules to compile.)
27 AC_MSG_RESULT()
28 if test -f "./$EGGEXEC"
29 then
30 AC_MSG_RESULT([After that, type 'make clean' and then 'make' to create the bot.])
31 else
32 AC_MSG_RESULT([After that, type 'make' to create the bot.])
33 fi
34 AC_MSG_RESULT()
35 ])dnl
36
37
38 dnl EGG_CHECK_CC()
39 dnl
40 dnl FIXME: make a better test
41 AC_DEFUN(EGG_CHECK_CC, [dnl
42 if test "x${cross_compiling}" = "x"
43 then
44 cat << 'EOF' >&2
45 configure: error:
46
47 This system does not appear to have a working C compiler.
48 A working C compiler is required to compile eggdrop.
49
50 EOF
51 exit 1
52 fi
53 ])dnl
54
55
56 dnl EGG_CHECK_CCPIPE()
57 dnl
58 dnl Checks whether the compiler supports the `-pipe' flag, which
59 dnl speeds up the compilation.
60 AC_DEFUN(EGG_CHECK_CCPIPE, [dnl
61 if test -z "$no_pipe"
62 then
63 if test -n "$GCC"
64 then
65 AC_CACHE_CHECK(whether the compiler understands -pipe, egg_cv_var_ccpipe,
66 [dnl
67 ac_old_CC="$CC"
68 CC="$CC -pipe"
69 AC_TRY_COMPILE(,, egg_cv_var_ccpipe="yes", egg_cv_var_ccpipe="no")
70 CC="$ac_old_CC"
71 ])
72 if test "x$egg_cv_var_ccpipe" = "xyes"; then
73 CC="$CC -pipe"
74 fi
75 fi
76 fi
77 ])dnl
78
79
80 dnl EGG_PROG_STRIP()
81 dnl
82 AC_DEFUN(EGG_PROG_STRIP, [dnl
83 AC_CHECK_PROG(STRIP,strip,strip)
84 if test "x${STRIP}" = "x"
85 then
86 STRIP=touch
87 fi
88 ])dnl
89
90
91 dnl EGG_PROG_AWK()
92 dnl
93 AC_DEFUN(EGG_PROG_AWK, [dnl
94 # awk is needed for Tcl library and header checks, and eggdrop version subst
95 AC_PROG_AWK
96 if test "x${AWK}" = "x"
97 then
98 cat << 'EOF' >&2
99 configure: error:
100
101 This system seems to lack a working 'awk' command.
102 A working 'awk' command is required to compile eggdrop.
103
104 EOF
105 exit 1
106 fi
107 ])dnl
108
109
110 dnl EGG_PROG_BASENAME()
111 dnl
112 AC_DEFUN(EGG_PROG_BASENAME, [dnl
113 # basename is needed for Tcl library and header checks
114 AC_CHECK_PROG(BASENAME, basename, basename)
115 if test "x${BASENAME}" = "x"
116 then
117 cat << 'EOF' >&2
118 configure: error:
119
120 This system seems to lack a working 'basename' command.
121 A working 'basename' command is required to compile eggdrop.
122
123 EOF
124 exit 1
125 fi
126 ])dnl
127
128
129 dnl EGG_CHECK_OS()
130 dnl
131 AC_DEFUN(EGG_CHECK_OS, [dnl
132 LINUX=no
133 IRIX=no
134 SUNOS=no
135 HPUX=no
136 MOD_CC="${CC}"
137 MOD_LD="${CC}"
138 MOD_STRIP="${STRIP}"
139 SHLIB_CC="${CC}"
140 SHLIB_LD="${CC}"
141 SHLIB_STRIP="${STRIP}"
142 NEED_DL=1
143 DEFAULT_MAKE=debug
144 MOD_EXT=so
145
146 AC_MSG_CHECKING(your os)
147 AC_CACHE_VAL(egg_cv_var_system, [egg_cv_var_system=`${UNAME}`])
148
149 case "$egg_cv_var_system" in
150 BSD/OS)
151 bsd_version=`${UNAME} -r | cut -d . -f 1`
152 case "$bsd_version" in
153 2)
154 AC_MSG_RESULT(BSD/OS 2)
155 NEED_DL=0
156 DEFAULT_MAKE=static
157 ;;
158 3)
159 AC_MSG_RESULT(BSD/OS 3)
160 MOD_CC=shlicc
161 MOD_LD=shlicc
162 MOD_STRIP="${STRIP} -d"
163 SHLIB_LD="shlicc -r"
164 SHLIB_STRIP=touch
165 AC_DEFINE(MODULES_OK)dnl
166 ;;
167 *)
168 AC_MSG_RESULT(BSD/OS 4+)
169 CFLAGS="$CFLAGS -Wall"
170 MOD_LD="${CC} "
171 MOD_STRIP="${STRIP} -d"
172 SHLIB_CC="${CC} -export-dynamic -fPIC"
173 SHLIB_LD="${CC} -shared -nostartfiles"
174 AC_DEFINE(MODULES_OK)dnl
175 ;;
176 esac
177 ;;
178 CYGWIN*)
179 cygwin_version=`${UNAME} -r | cut -c 1-3`
180 case "$cygwin_version" in
181 1.*)
182 AC_MSG_RESULT(Cygwin 1.x)
183 NEED_DL=0
184 SHLIB_LD="${CC} -shared"
185 CC="$CC -mwin32"
186 MOD_CC="${CC}"
187 MOD_LD="${CC}"
188 MOD_EXT=dll
189 AC_DEFINE(MODULES_OK)dnl
190 ;;
191 *)
192 AC_MSG_RESULT(Cygwin pre 1.0 or unknown)
193 NEED_DL=0
194 DEFAULT_MAKE=static
195 ;;
196 esac
197 ;;
198 HP-UX)
199 AC_MSG_RESULT(HP-UX)
200 HPUX=yes
201 MOD_LD="${CC} -fPIC -shared"
202 SHLIB_CC="${CC} -fPIC"
203 SHLIB_LD="ld -b"
204 NEED_DL=0
205 AC_DEFINE(MODULES_OK)dnl
206 AC_DEFINE(HPUX_HACKS)dnl
207 if test "x`${UNAME} -r | cut -d . -f 2`" = "x10"
208 then
209 AC_DEFINE(HPUX10_HACKS)dnl
210 fi
211 ;;
212 dell)
213 AC_MSG_RESULT(Dell SVR4)
214 SHLIB_STRIP=touch
215 NEED_DL=0
216 MOD_LD="${CC} -lelf -lucb"
217 ;;
218 IRIX)
219 echo "$ac_t""IRIX (Have fun with IRIX 4.+!)" 1>&6
220 SHLIB_LD="ld -n32 -shared -rdata_shared"
221 IRIX=yes
222 SHLIB_STRIP=touch
223 NEED_DL=0
224 DEFAULT_MAKE=static
225 ;;
226 Ultrix)
227 AC_MSG_RESULT(Ultrix)
228 NEED_DL=0
229 SHLIB_STRIP=touch
230 DEFAULT_MAKE=static
231 SHELL=/bin/sh5
232 ;;
233 SINIX*)
234 AC_MSG_RESULT(SINIX)
235 NEED_DL=0
236 SHLIB_STRIP=touch
237 DEFAULT_MAKE=static
238 SHLIB_CC="cc -G"
239 ;;
240 BeOS)
241 AC_MSG_RESULT(BeOS)
242 NEED_DL=0
243 SHLIB_STRIP=strip
244 DEFAULT_MAKE=static
245 ;;
246 Linux)
247 AC_MSG_RESULT(Linux)
248 LINUX=yes
249 CFLAGS="$CFLAGS -Wall"
250 MOD_LD="${CC}"
251 SHLIB_CC="${CC} -fPIC"
252 SHLIB_LD="${CC} -shared -nostartfiles"
253 AC_DEFINE(MODULES_OK)dnl
254 ;;
255 Lynx)
256 AC_MSG_RESULT(Lynx OS)
257 NEED_DL=0
258 DEFAULT_MAKE=static
259 SHLIB_STRIP=strip
260 ;;
261 OSF1)
262 AC_MSG_RESULT(OSF)
263 case `${UNAME} -r | cut -d . -f 1` in
264 V*)
265 AC_MSG_RESULT([ Digital OSF])
266 if test "x$AWK" = "xgawk"
267 then
268 AWK=awk
269 fi
270 MOD_CC=cc
271 MOD_LD=cc
272 SHLIB_CC=cc
273 SHLIB_LD="ld -shared -expect_unresolved \"'*'\""
274 SHLIB_STRIP=touch
275 AC_DEFINE(MODULES_OK)dnl
276 ;;
277 1.0|1.1|1.2)
278 AC_MSG_RESULT([ pre 1.3])
279 SHLIB_LD="ld -R -export $@:"
280 AC_DEFINE(MODULES_OK)dnl
281 AC_DEFINE(OSF1_HACKS)dnl
282 ;;
283 1.*)
284 AC_MSG_RESULT([ 1.3+])
285 SHLIB_CC="${CC} -fpic"
286 SHLIB_LD="ld -shared"
287 AC_DEFINE(MODULES_OK)dnl
288 AC_DEFINE(OSF1_HACKS)dnl
289 ;;
290 *)
291 AC_MSG_RESULT([ Some other weird OSF! No modules for you...])
292 NEED_DL=0
293 DEFAULT_MAKE=static
294 ;;
295 esac
296 AC_DEFINE(STOP_UAC)dnl
297 ;;
298 SunOS)
299 if test "x`${UNAME} -r | cut -d . -f 1`" = "x5"
300 then
301 AC_MSG_RESULT(Solaris)
302 if test -n "$GCC"
303 then
304 SHLIB_CC="${CC} -fPIC"
305 SHLIB_LD="${CC}"
306 else
307 SHLIB_CC="${CC} -KPIC"
308 SHLIB_LD="${CC} -G -z text"
309 fi
310 else
311 AC_MSG_RESULT(SunOS)
312 SUNOS=yes
313 SHLIB_LD=ld
314 SHLIB_CC="${CC} -PIC"
315 AC_DEFINE(DLOPEN_1)dnl
316 fi
317 AC_DEFINE(MODULES_OK)dnl
318 ;;
319 *BSD)
320 AC_MSG_RESULT(FreeBSD/NetBSD/OpenBSD - choose your poison)
321 SHLIB_CC="${CC} -fPIC"
322 SHLIB_LD="ld -Bshareable -x"
323 AC_DEFINE(MODULES_OK)dnl
324 ;;
325 *)
326 if test -r "/mach"
327 then
328 AC_MSG_RESULT(Something Mach based)
329 NEED_DL=0
330 DEFAULT_MAKE=static
331 AC_DEFINE(BORGCUBES)dnl
332 else
333 if test -r "/cmds"
334 then
335 AC_MSG_RESULT(QNX)
336 SHLIB_STRIP=touch
337 NEED_DL=0
338 DEFAULT_MAKE=static
339 else
340 AC_MSG_RESULT(Something unknown!)
341 AC_MSG_RESULT([If you get dynamic modules to work, be sure to let the devel team know HOW :)])
342 NEED_DL=0
343 DEFAULT_MAKE=static
344 fi
345 fi
346 ;;
347 esac
348 AC_SUBST(MOD_LD)dnl
349 AC_SUBST(MOD_CC)dnl
350 AC_SUBST(MOD_STRIP)dnl
351 AC_SUBST(SHLIB_LD)dnl
352 AC_SUBST(SHLIB_CC)dnl
353 AC_SUBST(SHLIB_STRIP)dnl
354 AC_SUBST(DEFAULT_MAKE)dnl
355 AC_SUBST(MOD_EXT)dnl
356 AC_DEFINE_UNQUOTED(EGG_MOD_EXT, "${MOD_EXT}")dnl
357 ])dnl
358
359
360 dnl EGG_CHECK_LIBS()
361 dnl
362 AC_DEFUN(EGG_CHECK_LIBS, [dnl
363 if test "$IRIX" = "yes"
364 then
365 AC_MSG_WARN(Skipping library tests because they CONFUSE Irix.)
366 else
367 AC_CHECK_LIB(socket, socket)
368 AC_CHECK_LIB(nsl, connect)
369 AC_CHECK_LIB(dns, gethostbyname)
370 AC_CHECK_LIB(dl, dlopen)
371 AC_CHECK_LIB(m, tan, EGG_MATH_LIB="-lm")
372 # This is needed for Tcl libraries compiled with thread support
373 AC_CHECK_LIB(pthread, pthread_mutex_init,
374 ac_cv_lib_pthread_pthread_mutex_init=yes,
375 ac_cv_lib_pthread_pthread_mutex_init=no)
376 if test "$SUNOS" = "yes"
377 then
378 # For suns without yp or something like that
379 AC_CHECK_LIB(dl, main)
380 else
381 if test "$HPUX" = "yes"
382 then
383 AC_CHECK_LIB(dld, shl_load)
384 fi
385 fi
386 fi
387 ])dnl
388
389
390 dnl EGG_CHECK_FUNC_VSPRINTF()
391 dnl
392 AC_DEFUN(EGG_CHECK_FUNC_VSPRINTF, [dnl
393 AC_CHECK_FUNCS(vsprintf)
394 if test "x${ac_cv_func_vsprintf}" = "xno"
395 then
396 cat << 'EOF' >&2
397 configure: error:
398
399 Your system does not have the sprintf/vsprintf libraries.
400 These are required to compile almost anything. Sorry.
401
402 EOF
403 exit 1
404 fi
405 ])dnl
406
407
408 dnl EGG_HEADER_STDC()
409 dnl
410 AC_DEFUN(EGG_HEADER_STDC, [dnl
411 if test "x${ac_cv_header_stdc}" = "xno"
412 then
413 cat << 'EOF' >&2
414 configure: error:
415
416 Your system must support ANSI C Header files.
417 These are required for the language support. Sorry.
418
419 EOF
420 exit 1
421 fi
422 ])dnl
423
424 dnl EGG_CHECK_LIBSAFE_SSCANF()
425 dnl
426 AC_DEFUN(EGG_CHECK_LIBSAFE_SSCANF, [dnl
427 AC_CACHE_CHECK(whether libsafe broke sscanf, egg_cv_var_libsafe_sscanf,
428 [dnl
429 AC_TRY_RUN([#include <stdio.h>
430 int main()
431 {
432 char *src = "0x001,guppyism\n";
433 char dst[10];
434 int idx;
435 if (sscanf(src, "0x%x,%10c", &idx, dst) == 1)
436 exit(1);
437 return 0;
438 }],egg_cv_var_libsafe_sscanf="no",egg_cv_var_libsafe_sscanf="yes",
439 egg_cv_var_libsafe_sscanf="no")
440 ])
441 if test "x$egg_cv_var_libsafe_sscanf" == "xyes"; then
442 AC_DEFINE(LIBSAFE_HACKS)dnl
443 fi
444 ])dnl
445
446 dnl EGG_CYGWIN()
447 dnl
448 dnl Check for Cygwin support.
449 AC_DEFUN(EGG_CYGWIN, [dnl
450 AC_CYGWIN
451 if test ! "x${CYGWIN}" = "x"
452 then
453 AC_DEFINE(CYGWIN_HACKS)dnl
454 fi
455 ])dnl
456
457
458 dnl EGG_EXEEXT()
459 dnl
460 dnl Test for executable suffix and define eggdrop's executable name
461 dnl accordingly.
462 AC_DEFUN(EGG_EXEEXT, [dnl
463 EGGEXEC=eggdrop
464 AC_EXEEXT
465 if test ! "x${EXEEXT}" = "x"
466 then
467 EGGEXEC=eggdrop${EXEEXT}
468 fi
469 AC_SUBST(EGGEXEC)dnl
470 ])dnl
471
472
473 dnl EGG_TCL_ARG_WITH()
474 dnl
475 AC_DEFUN(EGG_TCL_ARG_WITH, [dnl
476 # oohh new configure --variables for those with multiple tcl libs
477 AC_ARG_WITH(tcllib, [ --with-tcllib=PATH full path to tcl library], tcllibname=$withval)
478 AC_ARG_WITH(tclinc, [ --with-tclinc=PATH full path to tcl header], tclincname=$withval)
479
480 WARN=0
481 # Make sure either both or neither $tcllibname and $tclincname are set
482 if test ! "x${tcllibname}" = "x"
483 then
484 if test "x${tclincname}" = "x"
485 then
486 WARN=1
487 tcllibname=""
488 TCLLIB=""
489 TCLINC=""
490 fi
491 else
492 if test ! "x${tclincname}" = "x"
493 then
494 WARN=1
495 tclincname=""
496 TCLLIB=""
497 TCLINC=""
498 fi
499 fi
500 if test ${WARN} = 1
501 then
502 cat << 'EOF' >&2
503 configure: warning:
504
505 You must specify both --with-tcllib and --with-tclinc for them to work.
506 configure will now attempt to autodetect both the Tcl library and header...
507
508 EOF
509 fi
510 ])dnl
511
512
513 dnl EGG_TCL_ENV()
514 dnl
515 AC_DEFUN(EGG_TCL_ENV, [dnl
516 WARN=0
517 # Make sure either both or neither $TCLLIB and $TCLINC are set
518 if test ! "x${TCLLIB}" = "x"
519 then
520 if test "x${TCLINC}" = "x"
521 then
522 WARN=1
523 WVAR1=TCLLIB
524 WVAR2=TCLINC
525 TCLLIB=""
526 fi
527 else
528 if test ! "x${TCLINC}" = "x"
529 then
530 WARN=1
531 WVAR1=TCLINC
532 WVAR2=TCLLIB
533 TCLINC=""
534 fi
535 fi
536 if test ${WARN} = 1
537 then
538 cat << EOF >&2
539 configure: warning:
540
541 Environment variable ${WVAR1} was set, but I did not detect ${WVAR2}.
542 Please set both TCLLIB and TCLINC correctly if you wish to use them.
543 configure will now attempt to autodetect both the Tcl library and header...
544
545 EOF
546 fi
547 ])dnl
548
549
550 dnl EGG_TCL_WITH_TCLLIB()
551 dnl
552 AC_DEFUN(EGG_TCL_WITH_TCLLIB, [dnl
553 # Look for Tcl library: if $tcllibname is set, check there first
554 if test ! "x${tcllibname}" = "x"
555 then
556 if test -f "$tcllibname" && test -r "$tcllibname"
557 then
558 TCLLIB=`echo $tcllibname | sed 's%/[[^/]][[^/]]*$%%'`
559 TCLLIBFN=`$BASENAME $tcllibname | cut -c4-`
560 TCLLIBEXT=".`echo $TCLLIBFN | $AWK '{j=split([$]1, i, "."); print i[[j]]}'`"
561 TCLLIBFNS=`$BASENAME $tcllibname $TCLLIBEXT | cut -c4-`
562 else
563 cat << EOF >&2
564 configure: warning:
565
566 The file '$tcllibname' given to option --with-tcllib is not valid.
567 configure will now attempt to autodetect both the Tcl library and header...
568
569 EOF
570 tcllibname=""
571 tclincname=""
572 TCLLIB=""
573 TCLLIBFN=""
574 TCLINC=""
575 TCLINCFN=""
576 fi
577 fi
578 ])dnl
579
580
581 dnl EGG_TCL_WITH_TCLINC()
582 dnl
583 AC_DEFUN(EGG_TCL_WITH_TCLINC, [dnl
584 # Look for Tcl header: if $tclincname is set, check there first
585 if test ! "x${tclincname}" = "x"
586 then
587 if test -f "$tclincname" && test -r "$tclincname"
588 then
589 TCLINC=`echo $tclincname | sed 's%/[[^/]][[^/]]*$%%'`
590 TCLINCFN=`$BASENAME $tclincname`
591 else
592 cat << EOF >&2
593 configure: warning:
594
595 The file '$tclincname' given to option --with-tclinc is not valid.
596 configure will now attempt to autodetect both the Tcl library and header...
597
598 EOF
599 tcllibname=""
600 tclincname=""
601 TCLLIB=""
602 TCLLIBFN=""
603 TCLINC=""
604 TCLINCFN=""
605 fi
606 fi
607 ])dnl
608
609
610 dnl EGG_TCL_FIND_LIBRARY()
611 dnl
612 AC_DEFUN(EGG_TCL_FIND_LIBRARY, [dnl
613 # Look for Tcl library: if $TCLLIB is set, check there first
614 if test "x${TCLLIBFN}" = "x"
615 then
616 if test ! "x${TCLLIB}" = "x"
617 then
618 if test -d "${TCLLIB}"
619 then
620 for tcllibfns in $tcllibnames
621 do
622 for tcllibext in $tcllibextensions
623 do
624 if test -r "$TCLLIB/lib$tcllibfns$tcllibext"
625 then
626 TCLLIBFN=$tcllibfns$tcllibext
627 TCLLIBEXT=$tcllibext
628 TCLLIBFNS=$tcllibfns
629 break 2
630 fi
631 done
632 done
633 fi
634 if test "x${TCLLIBFN}" = "x"
635 then
636 cat << 'EOF' >&2
637 configure: warning:
638
639 Environment variable TCLLIB was set, but incorrect.
640 Please set both TCLLIB and TCLINC correctly if you wish to use them.
641 configure will now attempt to autodetect both the Tcl library and header...
642
643 EOF
644 TCLLIB=""
645 TCLLIBFN=""
646 TCLINC=""
647 TCLINCFN=""
648 fi
649 fi
650 fi
651 ])dnl
652
653
654 dnl EGG_TCL_FIND_HEADER()
655 dnl
656 AC_DEFUN(EGG_TCL_FIND_HEADER, [dnl
657 # Look for Tcl header: if $TCLINC is set, check there first
658 if test "x${TCLINCFN}" = "x"
659 then
660 if test ! "x${TCLINC}" = "x"
661 then
662 if test -d "${TCLINC}"
663 then
664 for tclheaderfn in $tclheadernames
665 do
666 if test -r "$TCLINC/$tclheaderfn"
667 then
668 TCLINCFN=$tclheaderfn
669 break
670 fi
671 done
672 fi
673 if test "x${TCLINCFN}" = "x"
674 then
675 cat << 'EOF' >&2
676 configure: warning:
677
678 Environment variable TCLINC was set, but incorrect.
679 Please set both TCLLIB and TCLINC correctly if you wish to use them.
680 configure will now attempt to autodetect both the Tcl library and header...
681
682 EOF
683 TCLLIB=""
684 TCLLIBFN=""
685 TCLINC=""
686 TCLINCFN=""
687 fi
688 fi
689 fi
690 ])dnl
691
692
693 dnl EGG_TCL_CHECK_LIBRARY()
694 dnl
695 AC_DEFUN(EGG_TCL_CHECK_LIBRARY, [dnl
696 AC_MSG_CHECKING(for Tcl library)
697
698 # Attempt autodetect for $TCLLIBFN if it's not set
699 if test ! "x${TCLLIBFN}" = "x"
700 then
701 AC_MSG_RESULT(using $TCLLIB/lib$TCLLIBFN)
702 else
703 for tcllibfns in $tcllibnames
704 do
705 for tcllibext in $tcllibextensions
706 do
707 for tcllibpath in $tcllibpaths
708 do
709 if test -r "$tcllibpath/lib$tcllibfns$tcllibext"
710 then
711 AC_MSG_RESULT(found $tcllibpath/lib$tcllibfns$tcllibext)
712 TCLLIB=$tcllibpath
713 TCLLIBFN=$tcllibfns$tcllibext
714 TCLLIBEXT=$tcllibext
715 TCLLIBFNS=$tcllibfns
716 break 3
717 fi
718 done
719 done
720 done
721 fi
722
723 # Show if $TCLLIBFN wasn't found
724 if test "x${TCLLIBFN}" = "x"
725 then
726 AC_MSG_RESULT(not found)
727 fi
728 AC_SUBST(TCLLIB)dnl
729 AC_SUBST(TCLLIBFN)dnl
730 ])dnl
731
732
733 dnl EGG_TCL_CHECK_HEADER()
734 dnl
735 AC_DEFUN(EGG_TCL_CHECK_HEADER, [dnl
736 AC_MSG_CHECKING(for Tcl header)
737
738 # Attempt autodetect for $TCLINCFN if it's not set
739 if test ! "x${TCLINCFN}" = "x"
740 then
741 AC_MSG_RESULT(using $TCLINC/$TCLINCFN)
742 else
743 for tclheaderpath in $tclheaderpaths
744 do
745 for tclheaderfn in $tclheadernames
746 do
747 if test -r "$tclheaderpath/$tclheaderfn"
748 then
749 AC_MSG_RESULT(found $tclheaderpath/$tclheaderfn)
750 TCLINC=$tclheaderpath
751 TCLINCFN=$tclheaderfn
752 break 2
753 fi
754 done
755 done
756 # FreeBSD hack ...
757 if test "x${TCLINCFN}" = "x"
758 then
759 for tcllibfns in $tcllibnames
760 do
761 for tclheaderpath in $tclheaderpaths
762 do
763 for tclheaderfn in $tclheadernames
764 do
765 if test -r "$tclheaderpath/$tcllibfns/$tclheaderfn"
766 then
767 AC_MSG_RESULT(found $tclheaderpath/$tcllibfns/$tclheaderfn)
768 TCLINC=$tclheaderpath/$tcllibfns
769 TCLINCFN=$tclheaderfn
770 break 3
771 fi
772 done
773 done
774 done
775 fi
776 fi
777
778 # Show if $TCLINCFN wasn't found
779 if test "x${TCLINCFN}" = "x"
780 then
781 AC_MSG_RESULT(not found)
782 fi
783 AC_SUBST(TCLINC)dnl
784 AC_SUBST(TCLINCFN)dnl
785 ])dnl
786
787
788 dnl EGG_CACHE_UNSET(CACHE-ID)
789 dnl
790 dnl Unsets a certain cache item. Typically called before using
791 dnl the AC_CACHE_*() macros.
792 AC_DEFUN(EGG_CACHE_UNSET, [dnl
793 unset $1
794 ])
795
796
797 dnl EGG_TCL_DETECT_CHANGE()
798 dnl
799 dnl Detect whether the tcl system has changed since our last
800 dnl configure run. Set egg_tcl_changed accordingly.
801 dnl
802 dnl Tcl related feature and version checks should re-run their
803 dnl checks as soon as egg_tcl_changed is set to "yes".
804 AC_DEFUN(EGG_TCL_DETECT_CHANGE, [dnl
805 AC_MSG_CHECKING(whether the tcl system has changed)
806 egg_tcl_changed=yes
807 egg_tcl_id="${TCLLIB}:${TCLLIBFN}:${TCLINC}:${TCLINCFN}"
808 if test "${egg_tcl_id}" != ":::"; then
809 egg_tcl_cached=yes
810 AC_CACHE_VAL(egg_cv_var_tcl_id, [dnl
811 egg_cv_var_tcl_id="$egg_tcl_id"
812 egg_tcl_cached=no
813 ])
814 if test "${egg_tcl_cached}" = "yes"; then
815 if test "x${egg_cv_var_tcl_id}" = "x${egg_tcl_id}"; then
816 egg_tcl_changed=no
817 else
818 egg_cv_var_tcl_id="$egg_tcl_id"
819 fi
820 fi
821 fi
822 if test "$egg_tcl_changed" = "yes"; then
823 AC_MSG_RESULT(yes)
824 else
825 AC_MSG_RESULT(no)
826 fi
827 ])
828
829
830 dnl EGG_TCL_CHECK_VERSION()
831 dnl
832 AC_DEFUN(EGG_TCL_CHECK_VERSION, [dnl
833 # Both TCLLIBFN & TCLINCFN must be set, or we bail
834 TCL_FOUND=0
835 if test "x${TCLLIBFN}" != "x" && test "x${TCLINCFN}" != "x"
836 then
837 TCL_FOUND=1
838
839 # Check Tcl's version
840 if test "$egg_tcl_changed" = "yes"; then
841 EGG_CACHE_UNSET(egg_cv_var_tcl_version)
842 fi
843 AC_MSG_CHECKING(for Tcl version)
844 AC_CACHE_VAL(egg_cv_var_tcl_version, [
845 egg_cv_var_tcl_version=`grep TCL_VERSION $TCLINC/$TCLINCFN | head -1 | $AWK '{gsub(/\"/, "", [$]3); print [$]3}'`
846 ])
847
848 if test ! "x${egg_cv_var_tcl_version}" = "x"
849 then
850 AC_MSG_RESULT($egg_cv_var_tcl_version)
851 else
852 AC_MSG_RESULT(not found)
853 TCL_FOUND=0
854 fi
855
856 # Check Tcl's patch level (if avaliable)
857 if test "$egg_tcl_changed" = "yes"; then
858 EGG_CACHE_UNSET(egg_cv_var_tcl_patch_level)
859 fi
860 AC_MSG_CHECKING(for Tcl patch level)
861 AC_CACHE_VAL(egg_cv_var_tcl_patch_level, [
862 eval "egg_cv_var_tcl_patch_level=`grep TCL_PATCH_LEVEL $TCLINC/$TCLINCFN | head -1 | $AWK '{gsub(/\"/, "", [$]3); print [$]3}'`"
863 ])
864
865 if test ! "x${egg_cv_var_tcl_patch_level}" = "x"
866 then
867 AC_MSG_RESULT($egg_cv_var_tcl_patch_level)
868 else
869 egg_cv_var_tcl_patch_level="unknown"
870 AC_MSG_RESULT(unknown)
871 fi
872 fi
873
874 # Check if we found Tcl's version
875 if test $TCL_FOUND = 0
876 then
877 cat << 'EOF' >&2
878 configure: error:
879
880 I can't find Tcl on this system.
881
882 Eggdrop requires Tcl to compile. If you already have Tcl installed
883 on this system, and I just wasn't looking in the right place for it,
884 set the environment variables TCLLIB and TCLINC so I will know where
885 to find 'libtcl.a' (or 'libtcl.so') and 'tcl.h' (respectively). Then
886 run 'configure' again.
887
888 Read the README file if you don't know what Tcl is or how to get it
889 and install it.
890
891 EOF
892 exit 1
893 fi
894 ])dnl
895
896
897 dnl EGG_TCL_CHECK_PRE70()
898 dnl
899 AC_DEFUN(EGG_TCL_CHECK_PRE70, [dnl
900 # Is this version of Tcl too old for us to use ?
901 TCL_VER_PRE70=`echo $egg_cv_var_tcl_version | $AWK '{split([$]1, i, "."); if (i[[1]] < 7) print "yes"; else print "no"}'`
902 if test "x$TCL_VER_PRE70" = "xyes"
903 then
904 cat << EOF >&2
905 configure: error:
906
907 Your Tcl version is much too old for eggdrop to use.
908 I suggest you download and complie a more recent version.
909 The most reliable current version is $tclrecommendver and
910 can be downloaded from $tclrecommendsite
911
912 EOF
913 exit 1
914 fi
915 ])dnl
916
917
918 dnl EGG_TCL_CHECK_PRE75()
919 dnl
920 AC_DEFUN(EGG_TCL_CHECK_PRE75, [dnl
921 # Are we using a pre 7.5 Tcl version ?
922 TCL_VER_PRE75=`echo $egg_cv_var_tcl_version | $AWK '{split([$]1, i, "."); if (((i[[1]] == 7) && (i[[2]] < 5)) || (i[[1]] < 7)) print "yes"; else print "no"}'`
923 if test "x${TCL_VER_PRE75}" = "xyes"
924 then
925 AC_DEFINE(HAVE_PRE7_5_TCL)dnl
926 fi
927 ])dnl
928
929
930 dnl EGG_TCL_TESTLIBS()
931 dnl
932 AC_DEFUN(EGG_TCL_TESTLIBS, [dnl
933 # Setup TCL_TESTLIBS for Tcl library tests
934 if test ! "x${TCLLIBEXT}" = "x.a"
935 then
936 TCL_TESTLIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB $LIBS"
937 else
938 if test ! "x${tcllibname}" = "x"
939 then
940 TCL_TESTLIBS="$TCLLIB/lib$TCLLIBFN $EGG_MATH_LIB $LIBS"
941 else
942 TCL_TESTLIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB $LIBS"
943 fi
944 fi
945 if test "x${ac_cv_lib_pthread_pthread_mutex_init}" = "xyes"
946 then
947 TCL_TESTLIBS="-lpthread $TCL_TESTLIBS"
948 fi
949 ])dnl
950
951
952 dnl EGG_TCL_CHECK_FREE()
953 dnl
954 AC_DEFUN(EGG_TCL_CHECK_FREE, [dnl
955 # Check for Tcl_Free()
956 if test "$egg_tcl_changed" = "yes"; then
957 EGG_CACHE_UNSET(egg_cv_var_tcl_free)
958 fi
959 AC_CACHE_CHECK(if Tcl library has Tcl_Free, [egg_cv_var_tcl_free], [
960 ac_save_LIBS="$LIBS"
961 LIBS="$TCL_TESTLIBS"
962 cat > conftest.$ac_ext << EOF
963 #include "confdefs.h"
964 char Tcl_Free();
965
966 int main() {
967 Tcl_Free();
968 return 0;
969 }
970 EOF
971 if { (eval echo configure: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}
972 then
973 rm -rf conftest*
974 egg_cv_var_tcl_free=yes
975 else
976 echo "configure: failed program was:" >&5
977 cat conftest.$ac_ext >&5
978 rm -rf conftest*
979 egg_cv_var_tcl_free=no
980 fi
981 rm -f conftest*
982 LIBS="$ac_save_LIBS"
983 ])
984
985 if test "x${egg_cv_var_tcl_free}" = "xyes"
986 then
987 AC_DEFINE(HAVE_TCL_FREE)dnl
988 fi
989 ])dnl
990
991
992 dnl EGG_TCL_ENABLE_THREADS()
993 dnl
994 AC_DEFUN(EGG_TCL_ENABLE_THREADS, [dnl
995 AC_ARG_ENABLE(tcl-threads,
996 [ --disable-tcl-threads Disable threaded tcl support if detected. (Ignore this
997 option unless you know what you are doing)],
998 enable_tcl_threads=$enableval,
999 enable_tcl_threads=yes)
1000 ])dnl
1001
1002
1003 dnl EGG_TCL_CHECK_THREADS()
1004 dnl
1005 AC_DEFUN(EGG_TCL_CHECK_THREADS, [dnl
1006 # Check for TclpFinalizeThreadData()
1007 if test "$egg_tcl_changed" = "yes"; then
1008 EGG_CACHE_UNSET(egg_cv_var_tcl_threaded)
1009 fi
1010 AC_CACHE_CHECK(if Tcl library is threaded, egg_cv_var_tcl_threaded, [
1011 ac_save_LIBS="$LIBS"
1012 LIBS="$TCL_TESTLIBS"
1013 cat > conftest.$ac_ext << EOF
1014 #include "confdefs.h"
1015 char TclpFinalizeThreadData();
1016
1017 int main() {
1018 TclpFinalizeThreadData();
1019 return 0;
1020 }
1021 EOF
1022 if { (eval echo configure: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}
1023 then
1024 rm -rf conftest*
1025 egg_cv_var_tcl_threaded=yes
1026 else
1027 echo "configure: failed program was:" >&5
1028 cat conftest.$ac_ext >&5
1029 rm -rf conftest*
1030 egg_cv_var_tcl_threaded=no
1031 fi
1032 rm -f conftest*
1033 LIBS="$ac_save_LIBS"
1034 ])
1035
1036 if test "x${egg_cv_var_tcl_threaded}" = "xyes"
1037 then
1038 if test "x$enable_tcl_threads" = "xno"
1039 then
1040
1041 cat << 'EOF' >&2
1042 configure: warning:
1043
1044 You have disabled threads support on a system with a threaded Tcl library.
1045 Tcl features that rely on scheduled events may not function properly.
1046
1047 EOF
1048 else
1049 AC_DEFINE(HAVE_TCL_THREADS)dnl
1050 fi
1051
1052 # Add -lpthread to $LIBS if we have it
1053 if test "x${ac_cv_lib_pthread_pthread_mutex_init}" = "xyes"
1054 then
1055 LIBS="-lpthread $LIBS"
1056 fi
1057 fi
1058 ])dnl
1059
1060
1061 dnl EGG_TCL_LIB_REQS()
1062 dnl
1063 AC_DEFUN(EGG_TCL_LIB_REQS, [dnl
1064 if test ! "x${TCLLIBEXT}" = "x.a"
1065 then
1066 TCL_REQS="$TCLLIB/lib$TCLLIBFN"
1067 TCL_LIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB"
1068 else
1069
1070 # Set default make as static for unshared Tcl library
1071 if test ! "$DEFAULT_MAKE" = "static"
1072 then
1073 cat << 'EOF' >&2
1074 configure: warning:
1075
1076 Your Tcl library is not a shared lib.
1077 configure will now set default make type to static...
1078
1079 EOF
1080 DEFAULT_MAKE=static
1081 AC_SUBST(DEFAULT_MAKE)dnl
1082 fi
1083
1084 # Are we using a pre 7.4 Tcl version ?
1085 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"}'`
1086 if test "x${TCL_VER_PRE74}" = "xno"
1087 then
1088
1089 # Was the --with-tcllib option given ?
1090 if test ! "x${tcllibname}" = "x"
1091 then
1092 TCL_REQS="$TCLLIB/lib$TCLLIBFN"
1093 TCL_LIBS="$TCLLIB/lib$TCLLIBFN $EGG_MATH_LIB"
1094 else
1095 TCL_REQS="$TCLLIB/lib$TCLLIBFN"
1096 TCL_LIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB"
1097 fi
1098 else
1099 cat << EOF >&2
1100 configure: warning:
1101
1102 Your Tcl version ($egg_cv_var_tcl_version) is older then 7.4.
1103 There are known problems, but we will attempt to work around them.
1104
1105 EOF
1106 TCL_REQS="libtcle.a"
1107 TCL_LIBS="-L`pwd` -ltcle $EGG_MATH_LIB"
1108 fi
1109 fi
1110 AC_SUBST(TCL_REQS)dnl
1111 AC_SUBST(TCL_LIBS)dnl
1112 ])dnl
1113
1114
1115 dnl EGG_FUNC_DLOPEN()
1116 dnl
1117 AC_DEFUN(EGG_FUNC_DLOPEN, [dnl
1118 if test $NEED_DL = 1 && test "x${ac_cv_func_dlopen}" = "xno"
1119 then
1120 if test "$LINUX" = "yes"
1121 then
1122 cat << 'EOF' >&2
1123 configure: warning:
1124
1125 Since you are on a Linux system, this has a known problem...
1126 I know a kludge for it,
1127 EOF
1128
1129 if test -r "/lib/libdl.so.1"
1130 then
1131 cat << 'EOF' >&2
1132 and you seem to have it, so we'll do that...
1133
1134 EOF
1135 AC_DEFINE(HAVE_DLOPEN)dnl
1136 LIBS="/lib/libdl.so.1 $LIBS"
1137 else
1138 cat << 'EOF' >&2
1139 which you DON'T seem to have... doh!
1140 perhaps you may still have the stuff lying around somewhere
1141 if you work out where it is, add it to your XLIBS= lines
1142 and #define HAVE_DLOPEN in config.h
1143
1144 we'll proceed on anyway, but you probably won't be able
1145 to 'make eggdrop' but you might be able to make the
1146 static bot (I'll default your make to this version).
1147
1148 EOF
1149 DEFAULT_MAKE=static
1150 fi
1151 else
1152 cat << 'EOF' >&2
1153 configure: warning:
1154
1155 You don't seem to have libdl anywhere I can find it, this will
1156 prevent you from doing dynamic modules, I'll set your default
1157 make to static linking.
1158
1159 EOF
1160 DEFAULT_MAKE=static
1161 fi
1162 fi
1163 ])dnl
1164
1165
1166 dnl EGG_SUBST_EGGVERSION()
1167 dnl
1168 AC_DEFUN(EGG_SUBST_EGGVERSION, [dnl
1169 EGGVERSION=`grep 'char.egg_version' ${srcdir}/src/main.c | $AWK '{gsub(/(\"|\;)/, "", [$]4); print [$]4}'`
1170 egg_version_num=`echo ${EGGVERSION} | $AWK 'BEGIN { FS = "."; } { printf("%d%02d%02d", [$]1, [$]2, [$]3); }'`
1171 AC_SUBST(EGGVERSION)dnl
1172 AC_DEFINE_UNQUOTED(EGG_VERSION, $egg_version_num)dnl
1173 ])dnl
1174
1175
1176 dnl EGG_SUBST_DEST()
1177 dnl
1178 AC_DEFUN(EGG_SUBST_DEST, [dnl
1179 if test "x$DEST" = "x"
1180 then
1181 DEST=\${prefix}
1182 fi
1183 AC_SUBST(DEST)dnl
1184 ])dnl
1185
1186
1187 dnl EGG_SUBST_MOD_UPDIR()
1188 dnl
1189 dnl Since module's Makefiles aren't generated by configure, some
1190 dnl paths in src/mod/Makefile.in take care of them. For correct
1191 dnl path "calculation", we need to keep absolute paths in mind
1192 dnl (which don't need a "../" pre-pended).
1193 AC_DEFUN(EGG_SUBST_MOD_UPDIR, [dnl
1194 case "$srcdir" in
1195 [[\\/]]* | ?:[[\\/]]* ) MOD_UPDIR="" ;;
1196 * ) MOD_UPDIR="../" ;;
1197 esac
1198 AC_SUBST(MOD_UPDIR)dnl
1199 ])dnl
1200
1201
1202 dnl EGG_REPLACE_IF_CHANGED(FILE-NAME, CONTENTS-CMDS, INIT-CMDS)
1203 dnl
1204 dnl Replace FILE-NAME if the newly created contents differs from the existing
1205 dnl file contents. Otherwise leave the file allone. This avoids needless
1206 dnl recompiles.
1207 dnl
1208 define(EGG_REPLACE_IF_CHANGED, [dnl
1209 AC_OUTPUT_COMMANDS([
1210 egg_replace_file=$1
1211 echo "creating $1"
1212 $2
1213 if test -f ${egg_replace_file} && cmp -s conftest.out ${egg_replace_file}
1214 then
1215 echo "$1 is unchanged"
1216 else
1217 mv conftest.out ${egg_replace_file}
1218 fi
1219 rm -f conftest.out], [$3])dnl
1220 ])dnl
1221
1222
1223 dnl EGG_TCL_LUSH()
1224 dnl
1225 AC_DEFUN(EGG_TCL_LUSH, [dnl
1226 EGG_REPLACE_IF_CHANGED(lush.h, [
1227 cat > conftest.out <<EGGEOF
1228 /* Ignore me but do not erase me. I am a kludge. */
1229
1230 #include "${egg_tclinc}/${egg_tclincfn}"
1231 EGGEOF], [egg_tclinc=${TCLINC}; egg_tclincfn=${TCLINCFN}])dnl
1232 ])dnl
1233
1234
1235 dnl EGG_CATCH_MAKEFILE_REBUILD()
1236 dnl
1237 AC_DEFUN(EGG_CATCH_MAKEFILE_REBUILD, [dnl
1238 AC_OUTPUT_COMMANDS([
1239 if test -f .modules; then
1240 ${ac_given_srcdir}/misc/modconfig --top_srcdir=${ac_given_srcdir} Makefile
1241 fi])
1242 ])dnl
1243
1244 dnl EGG_SAVE_PARAMETERS()
1245 dnl
1246 AC_DEFUN(EGG_SAVE_PARAMETERS, [dnl
1247 dnl Normally, we shouldn't use this level as it's not intended for this
1248 dnl type of code, but there's no other way to run it before the main
1249 dnl parameter loop in configure.
1250 AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
1251 egg_ac_parameters="[$]*"
1252 AC_DIVERT_POP()dnl to NORMAL
1253 AC_SUBST(egg_ac_parameters)dnl
1254 ])dnl

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23