/[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.36 - (show annotations) (download)
Fri Jun 22 05:52:39 2001 UTC (17 years, 11 months ago) by guppy
Branch: MAIN
Changes since 1.35: +24 -8 lines
here is that pthreads patch with the changes tothwolf talked about

1 dnl aclocal.m4
2 dnl macros autoconf uses when building configure from configure.in
3 dnl
4 dnl $Id: aclocal.m4,v 1.35 2001/06/22 05:49:30 guppy 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 "$ac_cv_lib_pthread_pthread_mutex_init" = "no"; then
377 AC_CHECK_LIB(pthread,__pthread_mutex_init,
378 ac_cv_lib_pthread_pthread_mutex_init=yes,
379 ac_cv_lib_pthread_pthread_mutex_init=no)
380 fi
381 if test "$ac_cv_lib_pthread_pthread_mutex_init" = "no"; then
382 AC_CHECK_LIB(pthreads,pthread_mutex_init,
383 ac_cv_lib_pthreads_pthread_mutex_init=yes,
384 ac_cv_lib_pthreads_pthread_mutex_init=no)
385 fi
386 if test "$SUNOS" = "yes"
387 then
388 # For suns without yp or something like that
389 AC_CHECK_LIB(dl, main)
390 else
391 if test "$HPUX" = "yes"
392 then
393 AC_CHECK_LIB(dld, shl_load)
394 fi
395 fi
396 fi
397 ])dnl
398
399
400 dnl EGG_CHECK_FUNC_VSPRINTF()
401 dnl
402 AC_DEFUN(EGG_CHECK_FUNC_VSPRINTF, [dnl
403 AC_CHECK_FUNCS(vsprintf)
404 if test "x${ac_cv_func_vsprintf}" = "xno"
405 then
406 cat << 'EOF' >&2
407 configure: error:
408
409 Your system does not have the sprintf/vsprintf libraries.
410 These are required to compile almost anything. Sorry.
411
412 EOF
413 exit 1
414 fi
415 ])dnl
416
417
418 dnl EGG_HEADER_STDC()
419 dnl
420 AC_DEFUN(EGG_HEADER_STDC, [dnl
421 if test "x${ac_cv_header_stdc}" = "xno"
422 then
423 cat << 'EOF' >&2
424 configure: error:
425
426 Your system must support ANSI C Header files.
427 These are required for the language support. Sorry.
428
429 EOF
430 exit 1
431 fi
432 ])dnl
433
434 dnl EGG_CHECK_LIBSAFE_SSCANF()
435 dnl
436 AC_DEFUN(EGG_CHECK_LIBSAFE_SSCANF, [dnl
437 AC_CACHE_CHECK(whether libsafe broke sscanf, egg_cv_var_libsafe_sscanf,
438 [dnl
439 AC_TRY_RUN([#include <stdio.h>
440 int main()
441 {
442 char *src = "0x001,guppyism\n";
443 char dst[10];
444 int idx;
445 if (sscanf(src, "0x%x,%10c", &idx, dst) == 1)
446 exit(1);
447 return 0;
448 }],egg_cv_var_libsafe_sscanf="no",egg_cv_var_libsafe_sscanf="yes",
449 egg_cv_var_libsafe_sscanf="no")
450 ])
451 if test "x$egg_cv_var_libsafe_sscanf" = "xyes"; then
452 AC_DEFINE(LIBSAFE_HACKS)dnl
453 fi
454 ])dnl
455
456 dnl EGG_CYGWIN()
457 dnl
458 dnl Check for Cygwin support.
459 AC_DEFUN(EGG_CYGWIN, [dnl
460 AC_CYGWIN
461 if test ! "x${CYGWIN}" = "x"
462 then
463 AC_DEFINE(CYGWIN_HACKS)dnl
464 fi
465 ])dnl
466
467
468 dnl EGG_EXEEXT()
469 dnl
470 dnl Test for executable suffix and define eggdrop's executable name
471 dnl accordingly.
472 AC_DEFUN(EGG_EXEEXT, [dnl
473 EGGEXEC=eggdrop
474 AC_EXEEXT
475 if test ! "x${EXEEXT}" = "x"
476 then
477 EGGEXEC=eggdrop${EXEEXT}
478 fi
479 AC_SUBST(EGGEXEC)dnl
480 ])dnl
481
482
483 dnl EGG_TCL_ARG_WITH()
484 dnl
485 AC_DEFUN(EGG_TCL_ARG_WITH, [dnl
486 # oohh new configure --variables for those with multiple tcl libs
487 AC_ARG_WITH(tcllib, [ --with-tcllib=PATH full path to tcl library], tcllibname=$withval)
488 AC_ARG_WITH(tclinc, [ --with-tclinc=PATH full path to tcl header], tclincname=$withval)
489
490 WARN=0
491 # Make sure either both or neither $tcllibname and $tclincname are set
492 if test ! "x${tcllibname}" = "x"
493 then
494 if test "x${tclincname}" = "x"
495 then
496 WARN=1
497 tcllibname=""
498 TCLLIB=""
499 TCLINC=""
500 fi
501 else
502 if test ! "x${tclincname}" = "x"
503 then
504 WARN=1
505 tclincname=""
506 TCLLIB=""
507 TCLINC=""
508 fi
509 fi
510 if test ${WARN} = 1
511 then
512 cat << 'EOF' >&2
513 configure: warning:
514
515 You must specify both --with-tcllib and --with-tclinc for them to work.
516 configure will now attempt to autodetect both the Tcl library and header...
517
518 EOF
519 fi
520 ])dnl
521
522
523 dnl EGG_TCL_ENV()
524 dnl
525 AC_DEFUN(EGG_TCL_ENV, [dnl
526 WARN=0
527 # Make sure either both or neither $TCLLIB and $TCLINC are set
528 if test ! "x${TCLLIB}" = "x"
529 then
530 if test "x${TCLINC}" = "x"
531 then
532 WARN=1
533 WVAR1=TCLLIB
534 WVAR2=TCLINC
535 TCLLIB=""
536 fi
537 else
538 if test ! "x${TCLINC}" = "x"
539 then
540 WARN=1
541 WVAR1=TCLINC
542 WVAR2=TCLLIB
543 TCLINC=""
544 fi
545 fi
546 if test ${WARN} = 1
547 then
548 cat << EOF >&2
549 configure: warning:
550
551 Environment variable ${WVAR1} was set, but I did not detect ${WVAR2}.
552 Please set both TCLLIB and TCLINC correctly if you wish to use them.
553 configure will now attempt to autodetect both the Tcl library and header...
554
555 EOF
556 fi
557 ])dnl
558
559
560 dnl EGG_TCL_WITH_TCLLIB()
561 dnl
562 AC_DEFUN(EGG_TCL_WITH_TCLLIB, [dnl
563 # Look for Tcl library: if $tcllibname is set, check there first
564 if test ! "x${tcllibname}" = "x"
565 then
566 if test -f "$tcllibname" && test -r "$tcllibname"
567 then
568 TCLLIB=`echo $tcllibname | sed 's%/[[^/]][[^/]]*$%%'`
569 TCLLIBFN=`$BASENAME $tcllibname | cut -c4-`
570 TCLLIBEXT=".`echo $TCLLIBFN | $AWK '{j=split([$]1, i, "."); print i[[j]]}'`"
571 TCLLIBFNS=`$BASENAME $tcllibname $TCLLIBEXT | cut -c4-`
572 else
573 cat << EOF >&2
574 configure: warning:
575
576 The file '$tcllibname' given to option --with-tcllib is not valid.
577 configure will now attempt to autodetect both the Tcl library and header...
578
579 EOF
580 tcllibname=""
581 tclincname=""
582 TCLLIB=""
583 TCLLIBFN=""
584 TCLINC=""
585 TCLINCFN=""
586 fi
587 fi
588 ])dnl
589
590
591 dnl EGG_TCL_WITH_TCLINC()
592 dnl
593 AC_DEFUN(EGG_TCL_WITH_TCLINC, [dnl
594 # Look for Tcl header: if $tclincname is set, check there first
595 if test ! "x${tclincname}" = "x"
596 then
597 if test -f "$tclincname" && test -r "$tclincname"
598 then
599 TCLINC=`echo $tclincname | sed 's%/[[^/]][[^/]]*$%%'`
600 TCLINCFN=`$BASENAME $tclincname`
601 else
602 cat << EOF >&2
603 configure: warning:
604
605 The file '$tclincname' given to option --with-tclinc is not valid.
606 configure will now attempt to autodetect both the Tcl library and header...
607
608 EOF
609 tcllibname=""
610 tclincname=""
611 TCLLIB=""
612 TCLLIBFN=""
613 TCLINC=""
614 TCLINCFN=""
615 fi
616 fi
617 ])dnl
618
619
620 dnl EGG_TCL_FIND_LIBRARY()
621 dnl
622 AC_DEFUN(EGG_TCL_FIND_LIBRARY, [dnl
623 # Look for Tcl library: if $TCLLIB is set, check there first
624 if test "x${TCLLIBFN}" = "x"
625 then
626 if test ! "x${TCLLIB}" = "x"
627 then
628 if test -d "${TCLLIB}"
629 then
630 for tcllibfns in $tcllibnames
631 do
632 for tcllibext in $tcllibextensions
633 do
634 if test -r "$TCLLIB/lib$tcllibfns$tcllibext"
635 then
636 TCLLIBFN=$tcllibfns$tcllibext
637 TCLLIBEXT=$tcllibext
638 TCLLIBFNS=$tcllibfns
639 break 2
640 fi
641 done
642 done
643 fi
644 if test "x${TCLLIBFN}" = "x"
645 then
646 cat << 'EOF' >&2
647 configure: warning:
648
649 Environment variable TCLLIB was set, but incorrect.
650 Please set both TCLLIB and TCLINC correctly if you wish to use them.
651 configure will now attempt to autodetect both the Tcl library and header...
652
653 EOF
654 TCLLIB=""
655 TCLLIBFN=""
656 TCLINC=""
657 TCLINCFN=""
658 fi
659 fi
660 fi
661 ])dnl
662
663
664 dnl EGG_TCL_FIND_HEADER()
665 dnl
666 AC_DEFUN(EGG_TCL_FIND_HEADER, [dnl
667 # Look for Tcl header: if $TCLINC is set, check there first
668 if test "x${TCLINCFN}" = "x"
669 then
670 if test ! "x${TCLINC}" = "x"
671 then
672 if test -d "${TCLINC}"
673 then
674 for tclheaderfn in $tclheadernames
675 do
676 if test -r "$TCLINC/$tclheaderfn"
677 then
678 TCLINCFN=$tclheaderfn
679 break
680 fi
681 done
682 fi
683 if test "x${TCLINCFN}" = "x"
684 then
685 cat << 'EOF' >&2
686 configure: warning:
687
688 Environment variable TCLINC was set, but incorrect.
689 Please set both TCLLIB and TCLINC correctly if you wish to use them.
690 configure will now attempt to autodetect both the Tcl library and header...
691
692 EOF
693 TCLLIB=""
694 TCLLIBFN=""
695 TCLINC=""
696 TCLINCFN=""
697 fi
698 fi
699 fi
700 ])dnl
701
702
703 dnl EGG_TCL_CHECK_LIBRARY()
704 dnl
705 AC_DEFUN(EGG_TCL_CHECK_LIBRARY, [dnl
706 AC_MSG_CHECKING(for Tcl library)
707
708 # Attempt autodetect for $TCLLIBFN if it's not set
709 if test ! "x${TCLLIBFN}" = "x"
710 then
711 AC_MSG_RESULT(using $TCLLIB/lib$TCLLIBFN)
712 else
713 for tcllibfns in $tcllibnames
714 do
715 for tcllibext in $tcllibextensions
716 do
717 for tcllibpath in $tcllibpaths
718 do
719 if test -r "$tcllibpath/lib$tcllibfns$tcllibext"
720 then
721 AC_MSG_RESULT(found $tcllibpath/lib$tcllibfns$tcllibext)
722 TCLLIB=$tcllibpath
723 TCLLIBFN=$tcllibfns$tcllibext
724 TCLLIBEXT=$tcllibext
725 TCLLIBFNS=$tcllibfns
726 break 3
727 fi
728 done
729 done
730 done
731 fi
732
733 # Show if $TCLLIBFN wasn't found
734 if test "x${TCLLIBFN}" = "x"
735 then
736 AC_MSG_RESULT(not found)
737 fi
738 AC_SUBST(TCLLIB)dnl
739 AC_SUBST(TCLLIBFN)dnl
740 ])dnl
741
742
743 dnl EGG_TCL_CHECK_HEADER()
744 dnl
745 AC_DEFUN(EGG_TCL_CHECK_HEADER, [dnl
746 AC_MSG_CHECKING(for Tcl header)
747
748 # Attempt autodetect for $TCLINCFN if it's not set
749 if test ! "x${TCLINCFN}" = "x"
750 then
751 AC_MSG_RESULT(using $TCLINC/$TCLINCFN)
752 else
753 for tclheaderpath in $tclheaderpaths
754 do
755 for tclheaderfn in $tclheadernames
756 do
757 if test -r "$tclheaderpath/$tclheaderfn"
758 then
759 AC_MSG_RESULT(found $tclheaderpath/$tclheaderfn)
760 TCLINC=$tclheaderpath
761 TCLINCFN=$tclheaderfn
762 break 2
763 fi
764 done
765 done
766 # FreeBSD hack ...
767 if test "x${TCLINCFN}" = "x"
768 then
769 for tcllibfns in $tcllibnames
770 do
771 for tclheaderpath in $tclheaderpaths
772 do
773 for tclheaderfn in $tclheadernames
774 do
775 if test -r "$tclheaderpath/$tcllibfns/$tclheaderfn"
776 then
777 AC_MSG_RESULT(found $tclheaderpath/$tcllibfns/$tclheaderfn)
778 TCLINC=$tclheaderpath/$tcllibfns
779 TCLINCFN=$tclheaderfn
780 break 3
781 fi
782 done
783 done
784 done
785 fi
786 fi
787
788 # Show if $TCLINCFN wasn't found
789 if test "x${TCLINCFN}" = "x"
790 then
791 AC_MSG_RESULT(not found)
792 fi
793 AC_SUBST(TCLINC)dnl
794 AC_SUBST(TCLINCFN)dnl
795 ])dnl
796
797
798 dnl EGG_CACHE_UNSET(CACHE-ID)
799 dnl
800 dnl Unsets a certain cache item. Typically called before using
801 dnl the AC_CACHE_*() macros.
802 AC_DEFUN(EGG_CACHE_UNSET, [dnl
803 unset $1
804 ])
805
806
807 dnl EGG_TCL_DETECT_CHANGE()
808 dnl
809 dnl Detect whether the tcl system has changed since our last
810 dnl configure run. Set egg_tcl_changed accordingly.
811 dnl
812 dnl Tcl related feature and version checks should re-run their
813 dnl checks as soon as egg_tcl_changed is set to "yes".
814 AC_DEFUN(EGG_TCL_DETECT_CHANGE, [dnl
815 AC_MSG_CHECKING(whether the tcl system has changed)
816 egg_tcl_changed=yes
817 egg_tcl_id="${TCLLIB}:${TCLLIBFN}:${TCLINC}:${TCLINCFN}"
818 if test "${egg_tcl_id}" != ":::"; then
819 egg_tcl_cached=yes
820 AC_CACHE_VAL(egg_cv_var_tcl_id, [dnl
821 egg_cv_var_tcl_id="$egg_tcl_id"
822 egg_tcl_cached=no
823 ])
824 if test "${egg_tcl_cached}" = "yes"; then
825 if test "x${egg_cv_var_tcl_id}" = "x${egg_tcl_id}"; then
826 egg_tcl_changed=no
827 else
828 egg_cv_var_tcl_id="$egg_tcl_id"
829 fi
830 fi
831 fi
832 if test "$egg_tcl_changed" = "yes"; then
833 AC_MSG_RESULT(yes)
834 else
835 AC_MSG_RESULT(no)
836 fi
837 ])
838
839
840 dnl EGG_TCL_CHECK_VERSION()
841 dnl
842 AC_DEFUN(EGG_TCL_CHECK_VERSION, [dnl
843 # Both TCLLIBFN & TCLINCFN must be set, or we bail
844 TCL_FOUND=0
845 if test "x${TCLLIBFN}" != "x" && test "x${TCLINCFN}" != "x"
846 then
847 TCL_FOUND=1
848
849 # Check Tcl's version
850 if test "$egg_tcl_changed" = "yes"; then
851 EGG_CACHE_UNSET(egg_cv_var_tcl_version)
852 fi
853 AC_MSG_CHECKING(for Tcl version)
854 AC_CACHE_VAL(egg_cv_var_tcl_version, [
855 egg_cv_var_tcl_version=`grep TCL_VERSION $TCLINC/$TCLINCFN | head -1 | $AWK '{gsub(/\"/, "", [$]3); print [$]3}'`
856 ])
857
858 if test ! "x${egg_cv_var_tcl_version}" = "x"
859 then
860 AC_MSG_RESULT($egg_cv_var_tcl_version)
861 else
862 AC_MSG_RESULT(not found)
863 TCL_FOUND=0
864 fi
865
866 # Check Tcl's patch level (if avaliable)
867 if test "$egg_tcl_changed" = "yes"; then
868 EGG_CACHE_UNSET(egg_cv_var_tcl_patch_level)
869 fi
870 AC_MSG_CHECKING(for Tcl patch level)
871 AC_CACHE_VAL(egg_cv_var_tcl_patch_level, [
872 eval "egg_cv_var_tcl_patch_level=`grep TCL_PATCH_LEVEL $TCLINC/$TCLINCFN | head -1 | $AWK '{gsub(/\"/, "", [$]3); print [$]3}'`"
873 ])
874
875 if test ! "x${egg_cv_var_tcl_patch_level}" = "x"
876 then
877 AC_MSG_RESULT($egg_cv_var_tcl_patch_level)
878 else
879 egg_cv_var_tcl_patch_level="unknown"
880 AC_MSG_RESULT(unknown)
881 fi
882 fi
883
884 # Check if we found Tcl's version
885 if test $TCL_FOUND = 0
886 then
887 cat << 'EOF' >&2
888 configure: error:
889
890 I can't find Tcl on this system.
891
892 Eggdrop requires Tcl to compile. If you already have Tcl installed
893 on this system, and I just wasn't looking in the right place for it,
894 set the environment variables TCLLIB and TCLINC so I will know where
895 to find 'libtcl.a' (or 'libtcl.so') and 'tcl.h' (respectively). Then
896 run 'configure' again.
897
898 Read the README file if you don't know what Tcl is or how to get it
899 and install it.
900
901 EOF
902 exit 1
903 fi
904 ])dnl
905
906
907 dnl EGG_TCL_CHECK_PRE70()
908 dnl
909 AC_DEFUN(EGG_TCL_CHECK_PRE70, [dnl
910 # Is this version of Tcl too old for us to use ?
911 TCL_VER_PRE70=`echo $egg_cv_var_tcl_version | $AWK '{split([$]1, i, "."); if (i[[1]] < 7) print "yes"; else print "no"}'`
912 if test "x$TCL_VER_PRE70" = "xyes"
913 then
914 cat << EOF >&2
915 configure: error:
916
917 Your Tcl version is much too old for eggdrop to use.
918 I suggest you download and complie a more recent version.
919 The most reliable current version is $tclrecommendver and
920 can be downloaded from $tclrecommendsite
921
922 EOF
923 exit 1
924 fi
925 ])dnl
926
927
928 dnl EGG_TCL_CHECK_PRE75()
929 dnl
930 AC_DEFUN(EGG_TCL_CHECK_PRE75, [dnl
931 # Are we using a pre 7.5 Tcl version ?
932 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"}'`
933 if test "x${TCL_VER_PRE75}" = "xyes"
934 then
935 AC_DEFINE(HAVE_PRE7_5_TCL)dnl
936 fi
937 ])dnl
938
939
940 dnl EGG_TCL_TESTLIBS()
941 dnl
942 AC_DEFUN(EGG_TCL_TESTLIBS, [dnl
943 # Setup TCL_TESTLIBS for Tcl library tests
944 if test ! "x${TCLLIBEXT}" = "x.a"
945 then
946 TCL_TESTLIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB $LIBS"
947 else
948 if test ! "x${tcllibname}" = "x"
949 then
950 TCL_TESTLIBS="$TCLLIB/lib$TCLLIBFN $EGG_MATH_LIB $LIBS"
951 else
952 TCL_TESTLIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB $LIBS"
953 fi
954 fi
955 if test "x${ac_cv_lib_pthread_pthread_mutex_init}" = "xyes"; then
956 TCL_TESTLIBS="-lpthread $TCL_TESTLIBS"
957 else
958 if text "x${ac_cv_lib_pthreads_pthread_mutex_init}" = "xyes"; then
959 TCL_TESTLIBS="-lpthreads $TCL_TESTLIBS"
960 fi
961 fi
962 ])dnl
963
964
965 dnl EGG_TCL_CHECK_FREE()
966 dnl
967 AC_DEFUN(EGG_TCL_CHECK_FREE, [dnl
968 # Check for Tcl_Free()
969 if test "$egg_tcl_changed" = "yes"; then
970 EGG_CACHE_UNSET(egg_cv_var_tcl_free)
971 fi
972 AC_CACHE_CHECK(if Tcl library has Tcl_Free, [egg_cv_var_tcl_free], [
973 ac_save_LIBS="$LIBS"
974 LIBS="$TCL_TESTLIBS"
975 cat > conftest.$ac_ext << EOF
976 #include "confdefs.h"
977 char Tcl_Free();
978
979 int main() {
980 Tcl_Free();
981 return 0;
982 }
983 EOF
984 if { (eval echo configure: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}
985 then
986 rm -rf conftest*
987 egg_cv_var_tcl_free=yes
988 else
989 echo "configure: failed program was:" >&5
990 cat conftest.$ac_ext >&5
991 rm -rf conftest*
992 egg_cv_var_tcl_free=no
993 fi
994 rm -f conftest*
995 LIBS="$ac_save_LIBS"
996 ])
997
998 if test "x${egg_cv_var_tcl_free}" = "xyes"
999 then
1000 AC_DEFINE(HAVE_TCL_FREE)dnl
1001 fi
1002 ])dnl
1003
1004
1005 dnl EGG_TCL_ENABLE_THREADS()
1006 dnl
1007 AC_DEFUN(EGG_TCL_ENABLE_THREADS, [dnl
1008 AC_ARG_ENABLE(tcl-threads,
1009 [ --disable-tcl-threads Disable threaded tcl support if detected. (Ignore this
1010 option unless you know what you are doing)],
1011 enable_tcl_threads=$enableval,
1012 enable_tcl_threads=yes)
1013 ])dnl
1014
1015
1016 dnl EGG_TCL_CHECK_THREADS()
1017 dnl
1018 AC_DEFUN(EGG_TCL_CHECK_THREADS, [dnl
1019 # Check for TclpFinalizeThreadData()
1020 if test "$egg_tcl_changed" = "yes"; then
1021 EGG_CACHE_UNSET(egg_cv_var_tcl_threaded)
1022 fi
1023 AC_CACHE_CHECK(if Tcl library is threaded, egg_cv_var_tcl_threaded, [
1024 ac_save_LIBS="$LIBS"
1025 LIBS="$TCL_TESTLIBS"
1026 cat > conftest.$ac_ext << EOF
1027 #include "confdefs.h"
1028 char TclpFinalizeThreadData();
1029
1030 int main() {
1031 TclpFinalizeThreadData();
1032 return 0;
1033 }
1034 EOF
1035 if { (eval echo configure: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}
1036 then
1037 rm -rf conftest*
1038 egg_cv_var_tcl_threaded=yes
1039 else
1040 echo "configure: failed program was:" >&5
1041 cat conftest.$ac_ext >&5
1042 rm -rf conftest*
1043 egg_cv_var_tcl_threaded=no
1044 fi
1045 rm -f conftest*
1046 LIBS="$ac_save_LIBS"
1047 ])
1048
1049 if test "x${egg_cv_var_tcl_threaded}" = "xyes"
1050 then
1051 if test "x$enable_tcl_threads" = "xno"
1052 then
1053
1054 cat << 'EOF' >&2
1055 configure: warning:
1056
1057 You have disabled threads support on a system with a threaded Tcl library.
1058 Tcl features that rely on scheduled events may not function properly.
1059
1060 EOF
1061 else
1062 AC_DEFINE(HAVE_TCL_THREADS)dnl
1063 fi
1064
1065 # Add -lpthread to $LIBS if we have it
1066 if test "x${ac_cv_lib_pthread_pthread_mutex_init}" = "xyes"; then
1067 LIBS="-lpthread $LIBS"
1068 else
1069 if text "x${ac_cv_lib_pthreads_pthread_mutex_init}" = "xyes"; then
1070 TCL_TESTLIBS="-lpthreads $TCL_TESTLIBS"
1071 fi
1072 fi
1073 fi
1074 ])dnl
1075
1076
1077 dnl EGG_TCL_LIB_REQS()
1078 dnl
1079 AC_DEFUN(EGG_TCL_LIB_REQS, [dnl
1080 if test ! "x${TCLLIBEXT}" = "x.a"
1081 then
1082 TCL_REQS="$TCLLIB/lib$TCLLIBFN"
1083 TCL_LIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB"
1084 else
1085
1086 # Set default make as static for unshared Tcl library
1087 if test ! "$DEFAULT_MAKE" = "static"
1088 then
1089 cat << 'EOF' >&2
1090 configure: warning:
1091
1092 Your Tcl library is not a shared lib.
1093 configure will now set default make type to static...
1094
1095 EOF
1096 DEFAULT_MAKE=static
1097 AC_SUBST(DEFAULT_MAKE)dnl
1098 fi
1099
1100 # Are we using a pre 7.4 Tcl version ?
1101 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"}'`
1102 if test "x${TCL_VER_PRE74}" = "xno"
1103 then
1104
1105 # Was the --with-tcllib option given ?
1106 if test ! "x${tcllibname}" = "x"
1107 then
1108 TCL_REQS="$TCLLIB/lib$TCLLIBFN"
1109 TCL_LIBS="$TCLLIB/lib$TCLLIBFN $EGG_MATH_LIB"
1110 else
1111 TCL_REQS="$TCLLIB/lib$TCLLIBFN"
1112 TCL_LIBS="-L$TCLLIB -l$TCLLIBFNS $EGG_MATH_LIB"
1113 fi
1114 else
1115 cat << EOF >&2
1116 configure: warning:
1117
1118 Your Tcl version ($egg_cv_var_tcl_version) is older then 7.4.
1119 There are known problems, but we will attempt to work around them.
1120
1121 EOF
1122 TCL_REQS="libtcle.a"
1123 TCL_LIBS="-L`pwd` -ltcle $EGG_MATH_LIB"
1124 fi
1125 fi
1126 AC_SUBST(TCL_REQS)dnl
1127 AC_SUBST(TCL_LIBS)dnl
1128 ])dnl
1129
1130
1131 dnl EGG_FUNC_DLOPEN()
1132 dnl
1133 AC_DEFUN(EGG_FUNC_DLOPEN, [dnl
1134 if test $NEED_DL = 1 && test "x${ac_cv_func_dlopen}" = "xno"
1135 then
1136 if test "$LINUX" = "yes"
1137 then
1138 cat << 'EOF' >&2
1139 configure: warning:
1140
1141 Since you are on a Linux system, this has a known problem...
1142 I know a kludge for it,
1143 EOF
1144
1145 if test -r "/lib/libdl.so.1"
1146 then
1147 cat << 'EOF' >&2
1148 and you seem to have it, so we'll do that...
1149
1150 EOF
1151 AC_DEFINE(HAVE_DLOPEN)dnl
1152 LIBS="/lib/libdl.so.1 $LIBS"
1153 else
1154 cat << 'EOF' >&2
1155 which you DON'T seem to have... doh!
1156 perhaps you may still have the stuff lying around somewhere
1157 if you work out where it is, add it to your XLIBS= lines
1158 and #define HAVE_DLOPEN in config.h
1159
1160 we'll proceed on anyway, but you probably won't be able
1161 to 'make eggdrop' but you might be able to make the
1162 static bot (I'll default your make to this version).
1163
1164 EOF
1165 DEFAULT_MAKE=static
1166 fi
1167 else
1168 cat << 'EOF' >&2
1169 configure: warning:
1170
1171 You don't seem to have libdl anywhere I can find it, this will
1172 prevent you from doing dynamic modules, I'll set your default
1173 make to static linking.
1174
1175 EOF
1176 DEFAULT_MAKE=static
1177 fi
1178 fi
1179 ])dnl
1180
1181
1182 dnl EGG_SUBST_EGGVERSION()
1183 dnl
1184 AC_DEFUN(EGG_SUBST_EGGVERSION, [dnl
1185 EGGVERSION=`grep 'char.egg_version' ${srcdir}/src/main.c | $AWK '{gsub(/(\"|\;)/, "", [$]4); print [$]4}'`
1186 egg_version_num=`echo ${EGGVERSION} | $AWK 'BEGIN { FS = "."; } { printf("%d%02d%02d", [$]1, [$]2, [$]3); }'`
1187 AC_SUBST(EGGVERSION)dnl
1188 AC_DEFINE_UNQUOTED(EGG_VERSION, $egg_version_num)dnl
1189 ])dnl
1190
1191
1192 dnl EGG_SUBST_DEST()
1193 dnl
1194 AC_DEFUN(EGG_SUBST_DEST, [dnl
1195 if test "x$DEST" = "x"
1196 then
1197 DEST=\${prefix}
1198 fi
1199 AC_SUBST(DEST)dnl
1200 ])dnl
1201
1202
1203 dnl EGG_SUBST_MOD_UPDIR()
1204 dnl
1205 dnl Since module's Makefiles aren't generated by configure, some
1206 dnl paths in src/mod/Makefile.in take care of them. For correct
1207 dnl path "calculation", we need to keep absolute paths in mind
1208 dnl (which don't need a "../" pre-pended).
1209 AC_DEFUN(EGG_SUBST_MOD_UPDIR, [dnl
1210 case "$srcdir" in
1211 [[\\/]]* | ?:[[\\/]]* ) MOD_UPDIR="" ;;
1212 * ) MOD_UPDIR="../" ;;
1213 esac
1214 AC_SUBST(MOD_UPDIR)dnl
1215 ])dnl
1216
1217
1218 dnl EGG_REPLACE_IF_CHANGED(FILE-NAME, CONTENTS-CMDS, INIT-CMDS)
1219 dnl
1220 dnl Replace FILE-NAME if the newly created contents differs from the existing
1221 dnl file contents. Otherwise leave the file allone. This avoids needless
1222 dnl recompiles.
1223 dnl
1224 define(EGG_REPLACE_IF_CHANGED, [dnl
1225 AC_OUTPUT_COMMANDS([
1226 egg_replace_file=$1
1227 echo "creating $1"
1228 $2
1229 if test -f ${egg_replace_file} && cmp -s conftest.out ${egg_replace_file}
1230 then
1231 echo "$1 is unchanged"
1232 else
1233 mv conftest.out ${egg_replace_file}
1234 fi
1235 rm -f conftest.out], [$3])dnl
1236 ])dnl
1237
1238
1239 dnl EGG_TCL_LUSH()
1240 dnl
1241 AC_DEFUN(EGG_TCL_LUSH, [dnl
1242 EGG_REPLACE_IF_CHANGED(lush.h, [
1243 cat > conftest.out <<EGGEOF
1244 /* Ignore me but do not erase me. I am a kludge. */
1245
1246 #include "${egg_tclinc}/${egg_tclincfn}"
1247 EGGEOF], [egg_tclinc=${TCLINC}; egg_tclincfn=${TCLINCFN}])dnl
1248 ])dnl
1249
1250
1251 dnl EGG_CATCH_MAKEFILE_REBUILD()
1252 dnl
1253 AC_DEFUN(EGG_CATCH_MAKEFILE_REBUILD, [dnl
1254 AC_OUTPUT_COMMANDS([
1255 if test -f .modules; then
1256 ${ac_given_srcdir}/misc/modconfig --top_srcdir=${ac_given_srcdir} Makefile
1257 fi])
1258 ])dnl
1259
1260 dnl EGG_SAVE_PARAMETERS()
1261 dnl
1262 AC_DEFUN(EGG_SAVE_PARAMETERS, [dnl
1263 dnl Normally, we shouldn't use this level as it's not intended for this
1264 dnl type of code, but there's no other way to run it before the main
1265 dnl parameter loop in configure.
1266 AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl
1267 egg_ac_parameters="[$]*"
1268 AC_DIVERT_POP()dnl to NORMAL
1269 AC_SUBST(egg_ac_parameters)dnl
1270 ])dnl

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23