Text::Markdown::Discount
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1693 lines
33 KiB

  1. # @(#) configure.inc 1.42@(#)
  2. # Copyright (c) 1999-2007 David Parsons. All rights reserved.
  3. #
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions
  6. # are met:
  7. # 1. Redistributions of source code must retain the above copyright
  8. # notice, this list of conditions and the following disclaimer.
  9. # 2. Redistributions in binary form must reproduce the above copyright
  10. # notice, this list of conditions and the following disclaimer in
  11. # the documentation and/or other materials provided with the
  12. # distribution.
  13. # 3. My name may not be used to endorse or promote products derived
  14. # from this software without specific prior written permission.
  15. #
  16. # THIS SOFTWARE IS PROVIDED BY DAVID PARSONS ``AS IS'' AND ANY
  17. # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  18. # THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  19. # PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DAVID
  20. # PARSONS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  21. # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
  22. # TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  23. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  24. # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  25. # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  26. # IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  27. # THE POSSIBILITY OF SUCH DAMAGE.
  28. #
  29. #
  30. # this preamble code is executed when this file is sourced and it picks
  31. # interesting things off the command line.
  32. #
  33. ac_default_path="/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"
  34. ac_standard="--src=DIR where the source lives (.)
  35. --prefix=DIR where to install the final product (/usr/local)
  36. --execdir=DIR where to put executables (prefix/bin)
  37. --sbindir=DIR where to put static executables (prefix/sbin)
  38. --confdir=DIR where to put configuration information (/etc)
  39. --libdir=DIR where to put libraries (prefix/lib)
  40. --libexecdir=DIR where to put private executables
  41. --mandir=DIR where to put manpages"
  42. __fail=exit
  43. if dirname B/A 2>/dev/null >/dev/null; then
  44. __ac_dirname() {
  45. dirname "$1"
  46. }
  47. else
  48. __ac_dirname() {
  49. echo "$1" | sed -e 's:/[^/]*$::'
  50. }
  51. fi
  52. __remove() {
  53. if [ \( -x "$1" \) -a "$__MACOS_DSYM" ]; then
  54. rm -rf "$1".dSYM
  55. fi
  56. rm -f "$@"
  57. }
  58. ac_progname=$0
  59. ac_configure_command=
  60. Q=\'
  61. for x in "$@"; do
  62. ac_configure_command="$ac_configure_command $Q$x$Q"
  63. done
  64. # ac_configure_command="$*"
  65. __d=`__ac_dirname "$ac_progname"`
  66. if [ "$__d" = "$ac_progname" ]; then
  67. AC_SRCDIR=`pwd`
  68. else
  69. AC_SRCDIR=`cd $__d;pwd`
  70. fi
  71. __ac_dir() {
  72. if test -d "$1"; then
  73. (cd "$1";pwd)
  74. else
  75. echo "$1";
  76. fi
  77. }
  78. #
  79. # echo w/o newline
  80. #
  81. echononl()
  82. {
  83. ${ac_echo:-echo} "${@}$ac_echo_nonl"
  84. }
  85. #
  86. # log something to the terminal and to a logfile.
  87. #
  88. LOG () {
  89. echo "$@"
  90. echo "$@" 1>&5
  91. }
  92. #
  93. # log something to the terminal without a newline, and to a logfile with
  94. # a newline
  95. #
  96. LOGN () {
  97. echononl "$@" 1>&5
  98. echo "$@"
  99. }
  100. #
  101. # log something to the terminal
  102. #
  103. TLOG () {
  104. echo "$@" 1>&5
  105. }
  106. #
  107. # log something to the terminal, no newline
  108. #
  109. TLOGN () {
  110. echononl "$@" 1>&5
  111. }
  112. #
  113. # AC_CONTINUE tells configure not to bomb if something fails, but to
  114. # continue blithely along
  115. #
  116. AC_CONTINUE () {
  117. __fail="return"
  118. }
  119. #
  120. # generate a .o file from sources
  121. #
  122. __MAKEDOTO() {
  123. AC_PROG_CC
  124. if $AC_CC -c -o ngc$$.o "$@" $AC_LIBS 2>ngc$$.err; then
  125. __remove ngc$$.o ngc$$.err
  126. TLOG " (found)"
  127. return 0
  128. fi
  129. __remove ngc$$.o
  130. TLOG " (not found)"
  131. echo "test failed: command was $AC_CC -c -o ngc$$.o" "$@" $AC_LIBS
  132. echo "output:"
  133. cat ngc$$.err
  134. __remove ngc$$.err
  135. echo "offending sources:"
  136. for x in "$@"; do
  137. echo "$x:"
  138. cat $x
  139. done
  140. return 1
  141. }
  142. #
  143. # Emulate gnu autoconf's AC_CHECK_HEADERS() function
  144. #
  145. AC_CHECK_HEADERS () {
  146. echo "/* AC_CHECK_HEADERS */" > ngc$$.c
  147. for hdr in $*; do
  148. echo "#include <$hdr>" >> ngc$$.c
  149. done
  150. echo "main() { }" >> ngc$$.c
  151. LOGN "looking for header $hdr"
  152. if __MAKEDOTO ngc$$.c; then
  153. AC_DEFINE 'HAVE_'`echo $hdr | $AC_UPPERCASE | tr './' '_'` 1
  154. rc=0
  155. else
  156. rc=1
  157. fi
  158. __remove ngc$$.c
  159. return $rc
  160. }
  161. #
  162. # emulate GNU autoconf's AC_CHECK_FUNCS function
  163. #
  164. AC_CHECK_FUNCS () {
  165. AC_PROG_CC
  166. B=`echo "$1" | sed -e 's/(.*)//'`
  167. case "$B" in
  168. "$1") F="$1()" ;;
  169. *) F="$1" ;;
  170. esac
  171. shift
  172. __remove ngc$$.c
  173. while [ "$1" ]; do
  174. echo "#include <$1>" >> ngc$$.c
  175. shift
  176. done
  177. cat >> ngc$$.c << EOF
  178. main()
  179. {
  180. $F;
  181. }
  182. EOF
  183. LOGN "looking for the $B function"
  184. if $AC_CC -o ngc$$ ngc$$.c $LIBS; then
  185. AC_DEFINE `echo ${2:-HAVE_$B} | $AC_UPPERCASE` 1
  186. TLOG " (found)"
  187. rc=0
  188. else
  189. echo "offending command was:"
  190. cat ngc$$.c
  191. echo "$AC_CC -o ngc$$ ngc$$.c $LIBS"
  192. TLOG " (not found)"
  193. rc=1
  194. fi
  195. __remove ngc$$ ngc$$.c
  196. return $rc
  197. }
  198. #
  199. # check to see if some structure exists
  200. #
  201. # usage: AC_CHECK_STRUCT structure {include ...}
  202. #
  203. AC_CHECK_STRUCT () {
  204. struct=$1
  205. shift
  206. __remove ngc$$.c
  207. for include in $*; do
  208. echo "#include <$include>" >> ngc$$.c
  209. done
  210. cat >> ngc$$.c << EOF
  211. main()
  212. {
  213. struct $struct foo;
  214. }
  215. EOF
  216. LOGN "looking for struct $struct"
  217. if __MAKEDOTO ngc$$.c; then
  218. AC_DEFINE HAVE_STRUCT_`echo ${struct} | $AC_UPPERCASE`
  219. rc=0
  220. else
  221. rc=1
  222. fi
  223. __remove ngc$$.c
  224. return $rc
  225. }
  226. #
  227. # check to see if some type exists
  228. #
  229. # usage: AC_CHECK_TYPE type {include ...}
  230. #
  231. AC_CHECK_TYPE () {
  232. type=$1
  233. shift
  234. __remove ngc$$.c
  235. for include in $*; do
  236. echo "#include <$include>" >> ngc$$.c
  237. done
  238. cat >> ngc$$.c << EOF
  239. main()
  240. {
  241. $type foo;
  242. }
  243. EOF
  244. LOGN "looking for $type type"
  245. if __MAKEDOTO ngc$$.c; then
  246. AC_DEFINE HAVE_TYPE_`echo ${type} | $AC_UPPERCASE`
  247. rc=0
  248. else
  249. rc=1
  250. fi
  251. __remove ngc$$.c
  252. return $rc
  253. }
  254. #
  255. # check to see if some structure contains a field
  256. #
  257. # usage: AC_CHECK_FIELD structure field {include ...}
  258. #
  259. AC_CHECK_FIELD () {
  260. struct=$1
  261. field=$2
  262. shift 2
  263. __remove ngc$$.c
  264. for include in $*;do
  265. echo "#include <$include>" >> ngc$$.c
  266. done
  267. cat >> ngc$$.c << EOF
  268. main()
  269. {
  270. struct $struct foo;
  271. foo.$field;
  272. }
  273. EOF
  274. LOGN "checking that struct $struct has a $field field"
  275. if __MAKEDOTO ngc$$.c; then
  276. AC_DEFINE HAVE_`echo ${struct}_$field | $AC_UPPERCASE`
  277. rc=0
  278. else
  279. rc=1
  280. fi
  281. __remove ngc$$.c
  282. return $rc
  283. }
  284. #
  285. # check that the C compiler works
  286. #
  287. AC_PROG_CC () {
  288. test "$AC_CC" && return 0
  289. cat > ngc$$.c << \EOF
  290. #include <stdio.h>
  291. main()
  292. {
  293. puts("hello, sailor");
  294. }
  295. EOF
  296. TLOGN "checking the C compiler"
  297. unset AC_CFLAGS AC_LDFLAGS
  298. if [ "$CC" ] ; then
  299. AC_CC="$CC"
  300. elif [ "$WITH_PATH" ]; then
  301. AC_CC=`acLookFor cc`
  302. elif [ "`acLookFor cc`" ]; then
  303. # don't specify the full path if the user is looking in their $PATH
  304. # for a C compiler.
  305. AC_CC=cc
  306. fi
  307. # finally check for POSIX c89
  308. test "$AC_CC" || AC_CC=`acLookFor c89`
  309. if [ ! "$AC_CC" ]; then
  310. TLOG " (no C compiler found)"
  311. $__fail 1
  312. fi
  313. echo "checking out the C compiler"
  314. unset __MACOS_DSYM
  315. $AC_CC -o ngc$$ ngc$$.c
  316. status=$?
  317. test -d ngc$$.dSYM && __MACOS_DSYM=1
  318. TLOGN " ($AC_CC)"
  319. if [ $status -eq 0 ]; then
  320. if $AC_CC -v 2>&1 | grep 'gcc version' >/dev/null; then
  321. TLOG " oh ick, it looks like gcc"
  322. IS_BROKEN_CC=T
  323. else
  324. TLOG " ok"
  325. fi
  326. # check that the CFLAGS and LDFLAGS aren't bogus
  327. unset AC_CFLAGS AC_LDFLAGS
  328. if [ "$CFLAGS" ]; then
  329. test "$CFLAGS" && echo "validating CFLAGS=${CFLAGS}"
  330. if $AC_CC $CFLAGS -o ngc$$.o ngc$$.c ; then
  331. AC_CFLAGS=${CFLAGS:-"-g"}
  332. test "$CFLAGS" && echo "CFLAGS=\"${CFLAGS}\" are okay"
  333. elif [ "$CFLAGS" ]; then
  334. echo "ignoring bogus CFLAGS=\"${CFLAGS}\""
  335. fi
  336. else
  337. AC_CFLAGS=-g
  338. fi
  339. if [ "$LDFLAGS" ]; then
  340. test "$LDFLAGS" && echo "validating LDFLAGS=${LDFLAGS}"
  341. if $AC_CC $LDFLAGS -o ngc$$ ngc$$.o; then
  342. AC_LDFLAGS=${LDFLAGS:-"-g"}
  343. test "$LDFLAGS" && TLOG "LDFLAGS=\"${LDFLAGS}\" are okay"
  344. elif [ "$LDFLAGS" ]; then
  345. TLOG "ignoring bogus LDFLAGS=\"${LDFLAGS}\""
  346. fi
  347. else
  348. AC_LDFLAGS=${CFLAGS:-"-g"}
  349. fi
  350. else
  351. AC_FAIL " does not compile code properly"
  352. fi
  353. AC_SUB 'CC' "$AC_CC"
  354. __remove ngc$$ ngc$$.c ngc$$.o
  355. return $status
  356. }
  357. #
  358. # acLookFor actually looks for a program, without setting anything.
  359. #
  360. acLookFor () {
  361. path=${AC_PATH:-$ac_default_path}
  362. case "X$1" in
  363. X-[rx]) __mode=$1
  364. shift
  365. ;;
  366. *) __mode=-x
  367. ;;
  368. esac
  369. oldifs="$IFS"
  370. for program in $*; do
  371. IFS=":"
  372. for x in $path; do
  373. if [ $__mode $x/$program -a -f $x/$program ]; then
  374. echo $x/$program
  375. break 2
  376. fi
  377. done
  378. done
  379. IFS="$oldifs"
  380. unset __mode
  381. }
  382. #
  383. # check that a program exists and set its path
  384. #
  385. MF_PATH_INCLUDE () {
  386. SYM=$1; shift
  387. case X$1 in
  388. X-[rx]) __mode=$1
  389. shift
  390. ;;
  391. *) unset __mode
  392. ;;
  393. esac
  394. TLOGN "looking for $1"
  395. DEST=`acLookFor $__mode $*`
  396. __sym=`echo "$SYM" | $AC_UPPERCASE`
  397. if [ "$DEST" ]; then
  398. TLOG " ($DEST)"
  399. echo "$1 is $DEST"
  400. AC_MAK $SYM
  401. AC_DEFINE PATH_$__sym \""$DEST"\"
  402. AC_SUB $__sym "$DEST"
  403. eval CF_$SYM=$DEST
  404. return 0
  405. else
  406. #AC_SUB $__sym ''
  407. echo "$1 is not found"
  408. TLOG " (not found)"
  409. return 1
  410. fi
  411. }
  412. #
  413. # AC_INIT starts the ball rolling
  414. #
  415. # After AC_INIT, fd's 1 and 2 point to config.log
  416. # and fd 5 points to what used to be fd 1
  417. #
  418. AC_INIT () {
  419. __config_files="config.cmd config.sub config.h config.mak config.log"
  420. rm -f $__config_files
  421. __cwd=`pwd`
  422. exec 5>&1 1>$__cwd/config.log 2>&1
  423. AC_CONFIGURE_FOR=__AC_`echo $1 | sed -e 's/\..$//' | $AC_UPPERCASE | tr ' ' '_'`_D
  424. # check to see whether to use echo -n or echo ...\c
  425. #
  426. echo -n hello > $$
  427. echo world >> $$
  428. if grep "helloworld" $$ >/dev/null; then
  429. ac_echo="echo -n"
  430. echo "[echo -n] works"
  431. else
  432. ac_echo="echo"
  433. echo 'hello\c' > $$
  434. echo 'world' >> $$
  435. if grep "helloworld" $$ >/dev/null; then
  436. ac_echo_nonl='\c'
  437. echo "[echo ...\\c] works"
  438. fi
  439. fi
  440. rm -f $$
  441. LOG "Configuring for [$1]"
  442. cat > $__cwd/config.h << EOF
  443. /*
  444. * configuration for $1${2:+" ($2)"}, generated `date`
  445. * by ${LOGNAME:-`whoami`}@`hostname`
  446. */
  447. #ifndef $AC_CONFIGURE_FOR
  448. #define $AC_CONFIGURE_FOR 1
  449. EOF
  450. unset __share
  451. if [ -d $AC_PREFIX/share/man ]; then
  452. for t in 1 2 3 4 5 6 7 8 9; do
  453. if [ -d $AC_PREFIX/share/man/man$t ]; then
  454. __share=/share
  455. elif [ -d $AC_PREFIX/share/man/cat$t ]; then
  456. __share=/share
  457. fi
  458. done
  459. else
  460. __share=
  461. fi
  462. if [ -d $AC_PREFIX/libexec ]; then
  463. __libexec=libexec
  464. else
  465. __libexec=lib
  466. fi
  467. AC_PREFIX=${AC_PREFIX:-/usr/local}
  468. AC_EXECDIR=${AC_EXECDIR:-$AC_PREFIX/bin}
  469. AC_SBINDIR=${AC_SBINDIR:-$AC_PREFIX/sbin}
  470. AC_LIBDIR=${AC_LIBDIR:-$AC_PREFIX/lib}
  471. AC_MANDIR=${AC_MANDIR:-$AC_PREFIX$__share/man}
  472. AC_LIBEXEC=${AC_LIBEXEC:-$AC_PREFIX/$__libexec}
  473. AC_CONFDIR=${AC_CONFDIR:-/etc}
  474. AC_PATH=${WITH_PATH:-$PATH}
  475. AC_PROG_CPP
  476. AC_PROG_INSTALL
  477. ac_os=`uname -s`
  478. _os=`echo $ac_os | $AC_UPPERCASE | sed -e 's/[^A-Z0-9_].*$//'`
  479. AC_DEFINE OS_$_os 1
  480. eval OS_${_os}=1
  481. unset _os
  482. }
  483. #
  484. # AC_LIBRARY checks to see if a given library exists and contains the
  485. # given function.
  486. # usage: AC_LIBRARY function library [alternate ...]
  487. #
  488. AC_LIBRARY() {
  489. SRC=$1
  490. shift
  491. __acllibs=
  492. __aclhdrs=
  493. for x in "$@"; do
  494. case X"$x" in
  495. X-l*) __acllibs="$__acllibs $x" ;;
  496. *) __aclhdrs="$__aclhdrs $x" ;;
  497. esac
  498. done
  499. # first see if the function can be found in any of the
  500. # current libraries
  501. AC_QUIET AC_CHECK_FUNCS $SRC $__aclhdrs && return 0
  502. # then search through the list of libraries
  503. __libs="$LIBS"
  504. for x in $__acllibs; do
  505. LIBS="$__libs $x"
  506. if AC_QUIET AC_CHECK_FUNCS $SRC $__aclhdrs; then
  507. AC_LIBS="$AC_LIBS $x"
  508. return 0
  509. fi
  510. done
  511. return 1
  512. }
  513. #
  514. # AC_PROG_LEX checks to see if LEX exists, and if it's lex or flex.
  515. #
  516. AC_PROG_LEX() {
  517. TLOGN "looking for lex "
  518. DEST=`acLookFor lex`
  519. if [ "$DEST" ]; then
  520. AC_MAK LEX
  521. AC_DEFINE PATH_LEX \"$DEST\"
  522. AC_SUB 'LEX' "$DEST"
  523. echo "lex is $DEST"
  524. else
  525. DEST=`acLookFor flex`
  526. if [ "$DEST" ]; then
  527. AC_MAK FLEX
  528. AC_DEFINE 'LEX' \"$DEST\"
  529. AC_SUB 'LEX', "$DEST"
  530. echo "lex is $DEST"
  531. else
  532. AC_SUB LEX ''
  533. echo "neither lex or flex found"
  534. TLOG " (not found)"
  535. return 1
  536. fi
  537. fi
  538. if AC_LIBRARY yywrap -ll -lfl; then
  539. TLOG "($DEST)"
  540. return 0
  541. fi
  542. TLOG "(no lex library found)"
  543. return 1
  544. }
  545. #
  546. # AC_PROG_YACC checks to see if YACC exists, and if it's bison or
  547. # not.
  548. #
  549. AC_PROG_YACC () {
  550. TLOGN "looking for yacc "
  551. DEST=`acLookFor yacc`
  552. if [ "$DEST" ]; then
  553. AC_MAK YACC
  554. AC_DEFINE PATH_YACC \"$DEST\"
  555. AC_SUB 'YACC' "$DEST"
  556. TLOG "($DEST)"
  557. echo "yacc is $DEST"
  558. else
  559. DEST=`acLookFor bison`
  560. if [ "$DEST" ]; then
  561. AC_MAK BISON
  562. AC_DEFINE 'YACC' \"$DEST\"
  563. AC_SUB 'YACC' "$DEST -y"
  564. echo "yacc is $DEST -y"
  565. TLOG "($DEST -y)"
  566. else
  567. AC_SUB 'YACC' ''
  568. echo "neither yacc or bison found"
  569. TLOG " (not found)"
  570. return 1
  571. fi
  572. fi
  573. return 0
  574. }
  575. #
  576. # AC_PROG looks for a program
  577. #
  578. AC_PROG () {
  579. PN=`basename $1 | $AC_UPPERCASE | tr -dc $AC_UPPER_PAT`
  580. if set | grep -v PROG_$PN >/dev/null; then
  581. TLOGN "looking for $1"
  582. DEST=`acLookFor $1`
  583. if [ "$DEST" ]; then
  584. eval PROG_$PN="$DEST"
  585. AC_SUB $PN $DEST
  586. TLOG " ($DEST)"
  587. return 0
  588. fi
  589. AC_SUB $PN true
  590. TLOG " (not found)"
  591. return 1
  592. fi
  593. }
  594. #
  595. # AC_PROG_LN_S checks to see if ln exists, and, if so, if ln -s works
  596. #
  597. AC_PROG_LN_S () {
  598. test "$AC_FIND_PROG" || AC_PROG_FIND
  599. test "$AC_FIND_PROG" || return 1
  600. TLOGN "looking for \"ln -s\""
  601. DEST=`acLookFor ln`
  602. if [ "$DEST" ]; then
  603. rm -f /tmp/b$$
  604. $DEST -s /tmp/a$$ /tmp/b$$
  605. if [ "`$AC_FIND_PROG /tmp/b$$ -type l -print`" ]; then
  606. TLOG " ($DEST)"
  607. echo "$DEST exists, and ln -s works"
  608. PROG_LN_S="$DEST -s"
  609. AC_SUB 'LN_S' "$DEST -s"
  610. rm -f /tmp/b$$
  611. else
  612. AC_SUB 'LN_S' ''
  613. TLOG " ($DEST exists, but -s does not seem to work)"
  614. echo "$DEST exists, but ln -s doesn't seem to work"
  615. rm -f /tmp/b$$
  616. return 1
  617. fi
  618. else
  619. AC_SUB 'LN_S' ''
  620. echo "ln not found"
  621. TLOG " (not found)"
  622. return 1
  623. fi
  624. }
  625. #
  626. # AC_PROG_FIND looks for the find program and sets the FIND environment
  627. # variable
  628. #
  629. AC_PROG_FIND () {
  630. if test -z "$AC_FIND_PROG"; then
  631. MF_PATH_INCLUDE FIND find
  632. rc=$?
  633. AC_FIND_PROG=$DEST
  634. return $rc
  635. fi
  636. return 0
  637. }
  638. #
  639. # AC_PROG_AWK looks for the awk program and sets the AWK environment
  640. # variable
  641. #
  642. AC_PROG_AWK () {
  643. if test -z "$AC_AWK_PROG"; then
  644. MF_PATH_INCLUDE AWK awk
  645. rc=$?
  646. AC_AWK_PROG=$DEST
  647. return $rc
  648. fi
  649. return 0
  650. }
  651. #
  652. # AC_PROG_SED looks for the sed program and sets the SED environment
  653. # variable
  654. #
  655. AC_PROG_SED () {
  656. if test -z "$AC_SED_PROG"; then
  657. MF_PATH_INCLUDE SED sed
  658. rc=$?
  659. AC_SED_PROG=$DEST
  660. return $rc
  661. fi
  662. return 0
  663. }
  664. #
  665. # AC_HEADER_SYS_WAIT looks for sys/wait.h
  666. #
  667. AC_HEADER_SYS_WAIT () {
  668. AC_CHECK_HEADERS sys/wait.h || return 1
  669. }
  670. #
  671. # AC_TYPE_PID_T checks to see if the pid_t type exists
  672. #
  673. AC_TYPE_PID_T () {
  674. AC_CHECK_TYPE pid_t sys/types.h
  675. return $?
  676. }
  677. #
  678. # AC_C_CONST checks to see if the compiler supports the const keyword
  679. #
  680. AC_C_CONST () {
  681. cat > ngc$$.c << EOF
  682. const char me=1;
  683. EOF
  684. LOGN "checking for \"const\" keyword"
  685. if __MAKEDOTO ngc$$.c; then
  686. rc=0
  687. else
  688. AC_DEFINE 'const' '/**/'
  689. rc=1
  690. fi
  691. __remove ngc$$.c
  692. return $rc
  693. }
  694. #
  695. # AC_C_VOLATILE checks to see if the compiler supports the volatile keyword
  696. #
  697. AC_C_VOLATILE () {
  698. echo 'f() { volatile char me=1; }' > ngc$$.c
  699. LOGN "checking for \"volatile\" keyword"
  700. if __MAKEDOTO ngc$$.c; then
  701. rc=0
  702. else
  703. AC_DEFINE 'volatile' '/**/'
  704. rc=1
  705. fi
  706. __remove ngc$$.c
  707. return $rc
  708. }
  709. #
  710. # AC_C_INLINE checks to see if compiler supports the inline keyword
  711. #
  712. AC_C_INLINE() {
  713. echo 'inline int foo() { return 1; }' > ngc$$.c
  714. LOGN 'Checking for "inline" keyword'
  715. if __MAKEDOTO ngc$$.c; then
  716. rc=0
  717. else
  718. AC_DEFINE inline '/**/'
  719. rc=1
  720. fi
  721. __remove ngc$$.c
  722. return $rc
  723. }
  724. #
  725. # AC_SCALAR_TYPES checks to see if the compiler can generate 2 and 4 byte ints.
  726. #
  727. AC_SCALAR_TYPES () {
  728. cat > ngc$$.c << EOF
  729. #include <stdio.h>
  730. #include <string.h>
  731. int pound_define = 1;
  732. void
  733. say(char *w, char *v)
  734. {
  735. printf(pound_define ? "#define %s %s\n"
  736. : "s:@%s@:%s:g\n", w, v);
  737. }
  738. void
  739. main(argc, argv)
  740. char **argv;
  741. {
  742. unsigned long v_long;
  743. unsigned int v_int;
  744. unsigned short v_short;
  745. if ( argc > 1 && strcmp(argv[1], "sub") == 0 )
  746. pound_define = 0;
  747. if (sizeof v_long == 4)
  748. say("DWORD", "unsigned long");
  749. else if (sizeof v_int == 4)
  750. say("DWORD", "unsigned int");
  751. else
  752. exit(1);
  753. if (sizeof v_int == 2)
  754. say("WORD", "unsigned int");
  755. else if (sizeof v_short == 2)
  756. say("WORD", "unsigned short");
  757. else
  758. exit(2);
  759. say("BYTE", "unsigned char");
  760. exit(0);
  761. }
  762. EOF
  763. rc=1
  764. LOGN "defining WORD & DWORD scalar types"
  765. if $AC_CC ngc$$.c -o ngc$$; then
  766. while [ "$1" ]; do
  767. case "$1" in
  768. sub)if ./ngc$$ sub >> $__cwd/config.sub; then
  769. rc=0
  770. fi;;
  771. *) if ./ngc$$ >> $__cwd/config.h; then
  772. rc=0
  773. fi ;;
  774. esac
  775. shift
  776. done
  777. if [ "$rc" != 0 ]; then
  778. if ./ngc$$ >> $__cwd/config.h; then
  779. rc=1
  780. fi
  781. fi
  782. fi
  783. __remove ngc$$ ngc$$.c
  784. case "$rc" in
  785. 0) TLOG "" ;;
  786. *) AC_FAIL " ** FAILED **" ;;
  787. esac
  788. }
  789. #
  790. # AC_OUTPUT generates makefiles from makefile.in's
  791. #
  792. AC_OUTPUT () {
  793. cd $__cwd
  794. AC_SUB 'LIBS' "$AC_LIBS"
  795. AC_SUB 'CONFIGURE_FILES' "$__config_files"
  796. AC_SUB 'GENERATED_FILES' "$*"
  797. AC_SUB 'CFLAGS' "$AC_CFLAGS"
  798. AC_SUB 'LDFLAGS' "$AC_LDFLAGS"
  799. AC_SUB 'srcdir' "$AC_SRCDIR"
  800. AC_SUB 'prefix' "$AC_PREFIX"
  801. AC_SUB 'exedir' "$AC_EXECDIR"
  802. AC_SUB 'sbindir' "$AC_SBINDIR"
  803. AC_SUB 'libdir' "$AC_LIBDIR"
  804. AC_SUB 'libexec' "$AC_LIBEXEC"
  805. AC_SUB 'confdir' "$AC_CONFDIR"
  806. AC_SUB 'mandir' "$AC_MANDIR"
  807. if echo "$__config_files" | grep -v librarian.sh >/dev/null; then
  808. # write a librarian that works with static libraries
  809. if AC_PROG_LN_S ; then
  810. __dolink=$PROG_LN_S
  811. elif AC_PROG ln; then
  812. __dolink=$PROG_LN
  813. elif AC_PROG cp; then
  814. __dolink=$PROG_CP
  815. else
  816. __dolink=:
  817. fi
  818. AC_PROG ar
  819. AC_PROG ranlib
  820. AC_SUB LD_LIBRARY_PATH HERE
  821. AC
  822. __config_files="$__config_files librarian.sh"
  823. cat > librarian.sh << EOF
  824. #! /bin/sh
  825. #
  826. # Build static libraries, hiding (some) ickiness from the makefile
  827. ACTION=\$1; shift
  828. LIBRARY=\$1; shift
  829. VERSION=\$1; shift
  830. case "\$ACTION" in
  831. make) ${PROG_AR} crv \$LIBRARY.a "\$@"
  832. ${PROG_RANLIB} \$LIBRARY.a
  833. rm -f \$LIBRARY
  834. ${__dolink} \$LIBRARY.a \$LIBRARY
  835. ;;
  836. files) echo "\${LIBRARY}.a"
  837. ;;
  838. install)$PROG_INSTALL -m 644 \${LIBRARY}.a \$1
  839. ;;
  840. esac
  841. EOF
  842. fi
  843. chmod +x librarian.sh
  844. if [ -r config.sub ]; then
  845. test "$AC_SED_PROG" || AC_PROG_SED
  846. test "$AC_SED_PROG" || return 1
  847. echo >> config.h
  848. echo "#endif/* ${AC_CONFIGURE_FOR} */" >> config.h
  849. rm -f config.cmd
  850. Q=\'
  851. cat - > config.cmd << EOF
  852. #! /bin/sh
  853. ${CC:+CC=${Q}${CC}${Q}} ${CFLAGS:+CFLAGS=${Q}${CFLAGS}${Q}} $ac_progname $ac_configure_command
  854. EOF
  855. chmod +x config.cmd
  856. __d=$AC_SRCDIR
  857. for makefile in $*;do
  858. if test -r $__d/${makefile}.in; then
  859. LOG "generating $makefile"
  860. ./config.md `__ac_dirname ./$makefile` 2>/dev/null
  861. $AC_SED_PROG -f config.sub < $__d/${makefile}.in > $makefile
  862. __config_files="$__config_files $makefile"
  863. else
  864. LOG "WARNING: ${makefile}.in does not exist!"
  865. fi
  866. done
  867. unset __d
  868. else
  869. echo
  870. fi
  871. }
  872. #
  873. # AC_CHECK_FLOCK checks to see if flock() exists and if the LOCK_NB argument
  874. # works properly.
  875. #
  876. AC_CHECK_FLOCK() {
  877. AC_CHECK_HEADERS sys/types.h sys/file.h fcntl.h
  878. cat << EOF > ngc$$.c
  879. #include <stdio.h>
  880. #include <sys/file.h>
  881. #include <sys/types.h>
  882. #include <fcntl.h>
  883. main()
  884. {
  885. int x = open("$$.c", O_RDWR, 0666);
  886. int y = open("$$.c", O_RDWR, 0666);
  887. if (flock(x, LOCK_EX) != 0)
  888. exit(1);
  889. if (flock(y, LOCK_EX|LOCK_NB) == 0)
  890. exit(1);
  891. exit(0);
  892. }
  893. EOF
  894. LOGN "checking flock() sanity"
  895. HAS_FLOCK=0
  896. if $AC_CC -o ngc$$ ngc$$.c ; then
  897. if ./flock ; then
  898. LOG " (good)"
  899. HAS_FLOCK=1
  900. AC_DEFINE HAS_FLOCK
  901. else
  902. LOG " (bad)"
  903. fi
  904. else
  905. LOG " (not found)"
  906. fi
  907. __remove ngc$$ ngc$$.c
  908. case "$HAS_FLOCK" in
  909. 0) return 1 ;;
  910. *) return 0 ;;
  911. esac
  912. }
  913. #
  914. # AC_CHECK_RESOLVER finds out whether the berkeley resolver is
  915. # present on this system.
  916. #
  917. AC_CHECK_RESOLVER () {
  918. AC_PROG_CC
  919. TLOGN "looking for the Berkeley resolver library"
  920. __ACR_rc=0
  921. cat > ngc$$.c << EOF
  922. #include <sys/types.h>
  923. #include <netinet/in.h>
  924. #include <arpa/nameser.h>
  925. #include <resolv.h>
  926. main()
  927. {
  928. char bfr[256];
  929. res_init();
  930. res_query("hello", C_IN, T_A, bfr, sizeof bfr);
  931. }
  932. EOF
  933. if $AC_CC -o ngc$$ ngc$$.c; then
  934. TLOG " (found)"
  935. elif $AC_CC -o ngc$$ ngc$$.c -lresolv; then
  936. TLOG " (found, needs -lresolv)"
  937. AC_LIBS="$AC_LIBS -lresolv"
  938. elif $AC_CC -DBIND_8_COMPAT -o ngc$$ ngc$$.c; then
  939. TLOG " (found, needs BIND_8_COMPAT)"
  940. AC_DEFINE BIND_8_COMPAT 1
  941. elif $AC_CC -DBIND_8_COMPAT -o ngc$$ ngc$$.c -lresolv; then
  942. TLOG " (found, needs BIND_8_COMPAT & -lresolv)"
  943. AC_DEFINE BIND_8_COMPAT 1
  944. else
  945. TLOG " (not found)"
  946. __ACR_rc=1
  947. fi
  948. __remove ngc$$ ngc$$.c
  949. return $__ACR_rc
  950. }
  951. #
  952. # AC_CHECK_ALLOCA looks for alloca
  953. #
  954. AC_CHECK_ALLOCA () {
  955. AC_PROG_CC
  956. AC_CHECK_HEADERS stdlib.h
  957. cat - > ngc$$.c << EOF
  958. #if T
  959. # include <alloca.h>
  960. #else
  961. # include <stdlib.h>
  962. #endif
  963. main()
  964. {
  965. alloca(10);
  966. }
  967. EOF
  968. LOGN "looking for the alloca function"
  969. if $AC_CC -DT ngc$$.c -o ngc$$; then
  970. AC_DEFINE 'HAVE_ALLOCA_H' 1
  971. status=0
  972. TLOG " (found in alloca.h)"
  973. elif $AC_CC ngc$$.c -o ngc$$; then
  974. TLOG " (found)"
  975. status=0
  976. else
  977. TLOG " (not found)"
  978. status=1
  979. fi
  980. __remove ngc$$ ngc$$.c
  981. return $status
  982. }
  983. #
  984. # AC_CHECK_BASENAME looks for a copy of basename that does NOT use
  985. # a local static buffer to hold results in.
  986. #
  987. AC_CHECK_BASENAME() {
  988. TLOGN "looking for a reentrant basename "
  989. cat > ngc$$.c << EOF
  990. #include <string.h>
  991. main()
  992. {
  993. char *a = basename("/a/test");
  994. char *b = basename("/a/nother");
  995. return (strcmp(a,b) != 0) ? 0 : 1;
  996. }
  997. EOF
  998. if $AC_CC -o ngc$$ ngc$$.c $LIBS; then
  999. if ngc$$; then
  1000. TLOG "(found)"
  1001. AC_DEFINE 'HAVE_BASENAME' 1
  1002. AC_CHECK_HEADERS libgen.h
  1003. else
  1004. TLOG "(broken)"
  1005. fi
  1006. else
  1007. TLOG "(not found)"
  1008. fi
  1009. __remove ngc$$ ngc$$.c
  1010. }
  1011. #
  1012. # AC_COMPILER_PIC checks for the compiler option to produce position independent
  1013. # code. At the moment we assume gcc semantics.
  1014. #
  1015. AC_COMPILER_PIC () {
  1016. AC_PROG_CC
  1017. LOGN "checking for C compiler option to produce PIC "
  1018. echo "int some_variable = 0;" > ngc$$.c
  1019. if $AC_CC -c -fPIC -o ngc$$ ngc$$.c $LIBS; then
  1020. AC_CFLAGS="$AC_CFLAGS -fPIC"
  1021. LOG "(-fPIC)"
  1022. __rc=0
  1023. else
  1024. LOG "(none)"
  1025. __rc=1
  1026. fi
  1027. __remove ngc$$ ngc$$.c
  1028. return $__rc
  1029. }
  1030. #
  1031. # AC_CC_SHLIBS checks if the C compiler can produce shared libraries
  1032. # and if it can writes a librarian that handles those libraries for us.
  1033. #
  1034. AC_CC_SHLIBS () {
  1035. AC_PROG_CC || AC_FAIL "Need a C compiler to build shared libraries"
  1036. AC_PROG_LN_S || AC_FAIL "Need to be able to make symbolic links for shared libraries"
  1037. AC_PROG_INSTALL || AC_FAIL "Need an install program to install shared libraries"
  1038. LOGN "checking whether the C compiler can build shared libraries "
  1039. echo "int some_variable = 0;" > ngc$$.c
  1040. if $AC_CC $AC_PICFLAG -shared -o ngc$$.so ngc$$.c; then
  1041. AC_SUB LD_LIBRARY_PATH LD_LIBRARY_PATH
  1042. # -Wl option probably works, but be paranoid anyway
  1043. _VFLAGS="$AC_PICFLAG -shared -Wl,-soname,ngc$$.so.1"
  1044. if $AC_CC $_VFLAGS -o ngc$$.so ngc$$.c; then
  1045. USE_SONAME=T
  1046. fi
  1047. LDCONFIG=`AC_PATH=/sbin:/usr/sbin:/usr/local/sbin acLookFor ldconfig`
  1048. __config_files="$__config_files librarian.sh"
  1049. cat > librarian.sh << EOF
  1050. #! /bin/sh
  1051. #
  1052. # Build ELF shared libraries, hiding (some) ickiness from the makefile
  1053. ACTION=\$1; shift
  1054. LIBRARY=\$1; shift
  1055. eval \`awk -F. '{ printf "MAJOR=%d\n", \$1;
  1056. printf "VERSION=%d.%d.%d\n", \$1, \$2, \$3; }' \$1\`
  1057. shift
  1058. LIBNAME=\$LIBRARY.so
  1059. FULLNAME=\$LIBNAME.\$VERSION
  1060. case "\$ACTION" in
  1061. make) FLAGS="$AC_CFLAGS -shared"
  1062. unset VFLAGS
  1063. test "$USE_SONAME" && VFLAGS="-Wl,-soname,\$LIBNAME.\$MAJOR"
  1064. rm -f \$LIBRARY \$LIBNAME \$LIBNAME.\$MAJOR
  1065. if $AC_CC \$FLAGS \$VFLAGS -o \$FULLNAME "\$@"; then
  1066. $PROG_LN_S \$FULLNAME \$LIBRARY
  1067. $PROG_LN_S \$FULLNAME \$LIBNAME
  1068. $PROG_LN_S \$FULLNAME \$LIBNAME.\$MAJOR
  1069. fi
  1070. ;;
  1071. files) echo "\$FULLNAME" "\$LIBNAME" "\$LIBNAME.\$MAJOR"
  1072. ;;
  1073. install)$PROG_INSTALL -c \$FULLNAME "\$1"
  1074. $PROG_LN_S -f \$FULLNAME \$1/\$LIBNAME.\$MAJOR
  1075. $PROG_LN_S -f \$FULLNAME \$1/\$LIBNAME
  1076. test "$LDCONFIG" && $LDCONFIG "\$1"
  1077. ;;
  1078. esac
  1079. EOF
  1080. chmod +x librarian.sh
  1081. LOG "(yes; -shared)"
  1082. __rc=0
  1083. elif $AC_CC $AC_PICFLAG -dynamiclib -o ngc$$.so ngc$$.c; then
  1084. # macosx
  1085. AC_SUB LD_LIBRARY_PATH DYLD_LIBRARY_PATH
  1086. __config_files="$__config_files librarian.sh"
  1087. cat > librarian.sh << EOF
  1088. #! /bin/sh
  1089. #
  1090. # Build MacOS shared libraries, hiding (some) ickiness from the makefile
  1091. ACTION=\$1; shift
  1092. LIBRARY=\$1; shift
  1093. eval \`awk -F. '{ printf "MAJOR=%d\n", \$1;
  1094. printf "VERSION=%d.%d.%d\n", \$1, \$2, \$3; }' \$1\`
  1095. shift
  1096. LIBNAME=\$LIBRARY.dylib
  1097. FULLNAME=\$LIBNAME
  1098. case "\$ACTION" in
  1099. make) FLAGS="$AC_CFLAGS -dynamiclib"
  1100. VFLAGS="-current_version \$VERSION -compatibility_version \$MAJOR"
  1101. rm -f \$LIBRARY
  1102. if $AC_CC \$FLAGS \$VFLAGS -o \$FULLNAME "\$@"; then
  1103. $PROG_LN_S \$FULLNAME \$LIBRARY
  1104. fi
  1105. ;;
  1106. files) echo "\$FULLNAME"
  1107. ;;
  1108. install)$PROG_INSTALL -c \$FULLNAME "\$1"
  1109. ;;
  1110. esac
  1111. EOF
  1112. chmod +x librarian.sh
  1113. LOG "(yes; macos dylib)"
  1114. __rc=0
  1115. else
  1116. LOG "(no)"
  1117. __rc=1
  1118. fi
  1119. __remove ngc$$.so ngc$$.c
  1120. return $__rc
  1121. }
  1122. #
  1123. # AC_PROG_INSTALL finds the install program and guesses whether it's a
  1124. # Berkeley or GNU install program
  1125. #
  1126. AC_PROG_INSTALL () {
  1127. DEST=`acLookFor install`
  1128. LOGN "looking for install"
  1129. unset IS_BSD
  1130. if [ "$DEST" ]; then
  1131. # BSD install or GNU install? Let's find out...
  1132. touch /tmp/a$$
  1133. $DEST /tmp/a$$ /tmp/b$$
  1134. if test -r /tmp/a$$; then
  1135. LOG " ($DEST)"
  1136. else
  1137. IS_BSD=1
  1138. LOG " ($DEST) bsd install"
  1139. fi
  1140. rm -f /tmp/a$$ /tmp/b$$
  1141. else
  1142. DEST=`acLookFor ginstall`
  1143. if [ "$DEST" ]; then
  1144. LOG " ($DEST)"
  1145. else
  1146. DEST="false"
  1147. LOG " (not found)"
  1148. fi
  1149. fi
  1150. if [ "$IS_BSD" ]; then
  1151. PROG_INSTALL="$DEST -c"
  1152. else
  1153. PROG_INSTALL="$DEST"
  1154. fi
  1155. AC_SUB 'INSTALL' "$PROG_INSTALL"
  1156. AC_SUB 'INSTALL_PROGRAM' "$PROG_INSTALL -s -m 755"
  1157. AC_SUB 'INSTALL_DATA' "$PROG_INSTALL -m 444"
  1158. # finally build a little directory installer
  1159. # if mkdir -p works, use that, otherwise use install -d,
  1160. # otherwise build a script to do it by hand.
  1161. # in every case, test to see if the directory exists before
  1162. # making it.
  1163. if mkdir -p $$a/b; then
  1164. # I like this method best.
  1165. __mkdir="mkdir -p"
  1166. rmdir $$a/b
  1167. rmdir $$a
  1168. elif $PROG_INSTALL -d $$a/b; then
  1169. __mkdir="$PROG_INSTALL -d"
  1170. rmdir $$a/b
  1171. rmdir $$a
  1172. fi
  1173. __config_files="$__config_files config.md"
  1174. AC_SUB 'INSTALL_DIR' "$__cwd/config.md"
  1175. echo "#! /bin/sh" > $__cwd/config.md
  1176. echo "# script generated" `date` "by configure.sh" >> $__cwd/config.md
  1177. echo >> $__cwd/config.md
  1178. if [ "$__mkdir" ]; then
  1179. echo "test -d \"\$1\" || $__mkdir \"\$1\"" >> $__cwd/config.md
  1180. echo "exit $?" >> $__cwd/config.md
  1181. else
  1182. cat - >> $__cwd/config.md << \EOD
  1183. pieces=`IFS=/; for x in $1; do echo $x; done`
  1184. dir=
  1185. for x in $pieces; do
  1186. dir="$dir$x"
  1187. mkdir $dir || exit 1
  1188. dir="$dir/"
  1189. done
  1190. exit 0
  1191. EOD
  1192. fi
  1193. chmod +x $__cwd/config.md
  1194. }
  1195. #
  1196. # acCheckCPP is a local that runs a C preprocessor with a given set of
  1197. # compiler options
  1198. #
  1199. acCheckCPP () {
  1200. cat > ngc$$.c << EOF
  1201. #define FOO BAR
  1202. FOO
  1203. EOF
  1204. if $1 $2 ngc$$.c > ngc$$.o; then
  1205. if grep -v '#define' ngc$$.o | grep -s BAR >/dev/null; then
  1206. echo "CPP=[$1], CPPFLAGS=[$2]"
  1207. AC_SUB 'CPP' "$1"
  1208. AC_SUB 'CPPFLAGS' "$2"
  1209. rm ngc$$.c ngc$$.o
  1210. return 0
  1211. fi
  1212. fi
  1213. rm ngc$$.c ngc$$.o
  1214. return 1
  1215. }
  1216. #
  1217. # AC_PROG_CPP checks for cpp, then checks to see which CPPFLAGS are needed
  1218. # to run it as a filter.
  1219. #
  1220. AC_PROG_CPP () {
  1221. if [ "$AC_CPP_PROG" ]; then
  1222. DEST=$AC_CPP_PROG
  1223. else
  1224. __ac_path="$AC_PATH"
  1225. AC_PATH="/lib:/usr/lib:${__ac_path:-$ac_default_path}"
  1226. DEST=`acLookFor cpp`
  1227. AC_PATH="$__ac_path"
  1228. fi
  1229. unset fail
  1230. LOGN "Looking for cpp"
  1231. if [ "$DEST" ]; then
  1232. TLOGN " ($DEST)"
  1233. acCheckCPP $DEST "$CPPFLAGS" || \
  1234. acCheckCPP $DEST -traditional-cpp -E || \
  1235. acCheckCPP $DEST -E || \
  1236. acCheckCPP $DEST -traditional-cpp -pipe || \
  1237. acCheckCPP $DEST -pipe || fail=1
  1238. if [ "$fail" ]; then
  1239. AC_FAIL " (can't run cpp as a pipeline)"
  1240. else
  1241. TLOG " ok"
  1242. return 0
  1243. fi
  1244. fi
  1245. AC_FAIL " (not found)"
  1246. }
  1247. #
  1248. # AC_FAIL spits out an error message, then __fail's
  1249. AC_FAIL() {
  1250. LOG "$*"
  1251. $__fail 1
  1252. }
  1253. #
  1254. # AC_SUB writes a substitution into config.sub
  1255. AC_SUB() {
  1256. ( _subst=`echo $2 | sed -e 's/;/\\;/g'`
  1257. echo "s;@$1@;$_subst;g" ) >> $__cwd/config.sub
  1258. }
  1259. #
  1260. # AC_MAK writes a define into config.mak
  1261. AC_MAK() {
  1262. echo "HAVE_$1 = 1" >> $__cwd/config.mak
  1263. }
  1264. #
  1265. # AC_DEFINE adds a #define to config.h
  1266. AC_DEFINE() {
  1267. echo "#define $1 ${2:-1}" >> $__cwd/config.h
  1268. }
  1269. #
  1270. # AC_INCLUDE adds a #include to config.h
  1271. AC_INCLUDE() {
  1272. echo "#include \"$1\"" >> $__cwd/config.h
  1273. }
  1274. #
  1275. # AC_CONFIG adds a configuration setting to all the config files
  1276. AC_CONFIG() {
  1277. AC_DEFINE "PATH_$1" \""$2"\"
  1278. AC_MAK "$1"
  1279. AC_SUB "$1" "$2"
  1280. }
  1281. #
  1282. # AC_QUIET does something quietly
  1283. AC_QUIET() {
  1284. eval $* 5>/dev/null
  1285. }
  1286. AC_TR=`acLookFor tr`
  1287. if [ "$AC_TR" ]; then
  1288. # try posix-style tr
  1289. ABC=`echo abc | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
  1290. if [ "$ABC" = "ABC" ]; then
  1291. AC_UPPERCASE="$AC_TR abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  1292. AC_UPPER_PAT="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  1293. else
  1294. ABC=`echo abc | tr a-z A-Z`
  1295. if [ "$ABC" = "ABC" ]; then
  1296. AC_UPPERCASE="$AC_TR a-z A-Z"
  1297. AC_UPPER_PAT="A-Z"
  1298. else
  1299. ABC=`echo abc | tr '[a-z]' '[A-Z]'`
  1300. if [ "$ABC" = "ABC" ]; then
  1301. AC_UPPERCASE="$AC_TR '[a-z]' '[A-Z]'"
  1302. AC_UPPER_PAT="'[A-Z]'"
  1303. else
  1304. AC_FAIL "$AC_TR cannot translate lowercase to uppercase"
  1305. return 0
  1306. fi
  1307. fi
  1308. fi
  1309. else
  1310. AC_FAIL "configure requires a functional version of tr"
  1311. fi
  1312. while [ $# -gt 0 ]; do
  1313. unset matched
  1314. case X"$1" in
  1315. X--src|X--srcdir)
  1316. AC_SRCDIR=`__ac_dir "$2"`
  1317. _set_srcdir=1
  1318. shift 2;;
  1319. X--src=*|X--srcdir=*)
  1320. __d=`echo "$1" | sed -e 's/^[^=]*=//'`
  1321. AC_SRCDIR=`__ac_dir "$__d"`
  1322. _set_srcdir=1
  1323. shift 1 ;;
  1324. X--prefix)
  1325. AC_PREFIX=`__ac_dir "$2"`
  1326. _set_prefix=1
  1327. shift 2;;
  1328. X--prefix=*)
  1329. __d=`echo "$1"| sed -e 's/^[^=]*=//'`
  1330. AC_PREFIX=`__ac_dir "$__d"`
  1331. _set_prefix=1
  1332. shift 1;;
  1333. X--confdir)
  1334. AC_CONFDIR=`__ac_dir "$2"`
  1335. _set_confdir=1
  1336. shift 2;;
  1337. X--confdir=*)
  1338. __d=`echo "$1" | sed -e 's/^[^=]*=//'`
  1339. AC_CONFDIR=`__ac_dir "$__d"`
  1340. _set_confdir=1
  1341. shift 1;;
  1342. X--libexec|X--libexecdir)
  1343. AC_LIBEXEC=`__ac_dir "$2"`
  1344. _set_libexec=1
  1345. shift 2;;
  1346. X--libexec=*|X--libexecdir=*)
  1347. __d=`echo "$1" | sed -e 's/^[^=]*=//'`
  1348. AC_LIBEXEC=`__ac_dir "$__d"`
  1349. _set_libexec=1
  1350. shift 1;;
  1351. X--lib|X--libdir)
  1352. AC_LIBDIR=`__ac_dir "$2"`
  1353. _set_libdir=1
  1354. shift 2;;
  1355. X--lib=*|X--libdir=*)
  1356. __d=`echo "$1" | sed -e 's/^[^=]*=//'`
  1357. AC_LIBDIR=`__ac_dir "$__d"`
  1358. _set_libdir=1
  1359. shift 1;;
  1360. X--exec|X--execdir)
  1361. AC_EXECDIR=`__ac_dir "$2"`
  1362. _set_execdir=1
  1363. shift 2;;
  1364. X--exec=*|X--execdir=*)
  1365. __d=`echo "$1" | sed -e 's/^[^=]*=//'`
  1366. AC_EXECDIR=`__ac_dir "$__d"`
  1367. _set_execdir=1
  1368. shift 1;;
  1369. X--sbin|X--sbindir)
  1370. AC_SBINDIR=`__ac_dir "$2"`
  1371. _set_sbindir=1
  1372. shift 2;;
  1373. X--sbin=*|X--sbindir=*)
  1374. __d=`echo "$1" | sed -e 's/^[^=]*=//'`
  1375. AC_SBINDIR=`__ac_dir "$__d"`
  1376. _set_sbindir=1
  1377. shift 1;;
  1378. X--man|X--mandir)
  1379. AC_MANDIR=`__ac_dir "$2"`
  1380. _set_mandir=1
  1381. shift 2;;
  1382. X--man=*|X--mandir=*)
  1383. __d=`echo "$1" | sed -e 's/^[^=]*=//'`
  1384. AC_MANDIR=`__ac_dir "$__d"`
  1385. _set_mandir=1
  1386. shift 1;;
  1387. X--use-*=*)
  1388. _var=`echo "$1"| sed -n 's/^--use-\([A-Za-z][-A-Za-z0-9_]*\)=.*$/\1/p'`
  1389. if [ "$_var" ]; then
  1390. _val=`echo "$1" | sed -e 's/^--use-[^=]*=\(.*\)$/\1/'`
  1391. _v=`echo $_var | $AC_UPPERCASE | tr '-' '_'`
  1392. case X"$_val" in
  1393. X[Yy][Ee][Ss]|X[Tt][Rr][Uu][Ee]) eval USE_${_v}=T ;;
  1394. X[Nn][Oo]|X[Ff][Aa][Ll][Ss][Ee]) eval unset USE_${_v} ;;
  1395. *) echo "Bad value for --use-$_var ; must be yes or no"
  1396. exit 1 ;;
  1397. esac
  1398. else
  1399. echo "Bad option $1. Use --help to show options" 1>&2
  1400. exit 1
  1401. fi
  1402. shift 1 ;;
  1403. X--use-*)
  1404. _var=`echo "$1"|sed -n 's/^--use-\([A-Za-z][-A-Za-z0-9_]*\)$/\1/p'`
  1405. _v=`echo $_var | $AC_UPPERCASE | tr '-' '_'`
  1406. eval USE_${_v}=T
  1407. shift 1;;
  1408. X--with-*=*)
  1409. _var=`echo "$1"| sed -n 's/^--with-\([A-Za-z][-A-Za-z0-9_]*\)=.*$/\1/p'`
  1410. if [ "$_var" ]; then
  1411. _val=`echo "$1" | sed -e 's/^--with-[^=]*=\(.*\)$/\1/'`
  1412. _v=`echo $_var | $AC_UPPERCASE | tr '-' '_'`
  1413. eval WITH_${_v}=\"$_val\"
  1414. else
  1415. echo "Bad option $1. Use --help to show options" 1>&2
  1416. exit 1
  1417. fi
  1418. shift 1 ;;
  1419. X--with-*)
  1420. _var=`echo "$1" | sed -n 's/^--with-\([A-Za-z][A-Za-z0-9_-]*\)$/\1/p'`
  1421. if [ "$_var" ]; then
  1422. _v=`echo $_var | $AC_UPPERCASE | tr '-' '_'`
  1423. eval WITH_${_v}=1
  1424. else
  1425. echo "Bad option $1. Use --help to show options" 1>&2
  1426. exit 1
  1427. fi
  1428. shift 1 ;;
  1429. X--help)
  1430. echo "$ac_standard"
  1431. test "$ac_help" && echo "$ac_help"
  1432. exit 0;;
  1433. *) if [ "$LOCAL_AC_OPTIONS" ]; then
  1434. eval "$LOCAL_AC_OPTIONS"
  1435. else
  1436. ac_error=T
  1437. fi
  1438. if [ "$ac_error" ]; then
  1439. echo "Bad option $1. Use --help to show options" 1>&2
  1440. exit 1
  1441. fi ;;
  1442. esac
  1443. done