/[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.29 - (show annotations) (download)
Fri Oct 27 19:33:28 2000 UTC (18 years, 11 months ago) by fabian
Branch: MAIN
Changes since 1.28: +3 -10 lines
fabian: applied sunos_aclocal_fix patch

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

webmaster@eggheads.org
ViewVC Help
Powered by ViewVC 1.1.23