configure.in
上传用户:gzpyjq
上传日期:2013-01-31
资源大小:1852k
文件大小:20k
源码类别:

手机WAP编程

开发平台:

WINDOWS

  1. dnl configure.in -- main autoconf macro definition file
  2. dnl
  3. dnl Process this file with autoconf to produce a configure script.
  4. dnl This file is part of the Kannel WAP and SMS gateway project.
  5. dnl initialization
  6. AC_PREREQ(2.13)
  7. AC_INIT(gw/alt_charsets.h)
  8. AC_CONFIG_HEADER(config.h)
  9. AC_SUBST(SHELL)
  10. AC_CONFIG_AUX_DIR(.)
  11. AC_SET_TERMINAL_SEQUENCES()
  12. dnl Check gateway version number.
  13. VERSION=`head -1 VERSION`
  14. if test "x$VERSION" = "xcvs"; then
  15.   AC_MSG_CHECKING([cvs checkout date])
  16.   AC_CVS_DATE(CVS_DATE)
  17.   AC_MSG_RESULT([$CVS_DATE])
  18.   VERSION="$VERSION-$CVS_DATE"
  19. fi
  20. AC_DEFINE_UNQUOTED(GW_NAME, "Kannel")
  21. AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
  22. AC_SUBST(VERSION)
  23. AC_CONFIG_SECTION([Configuring for Kannel gateway version $VERSION])
  24. dnl Solaris pkgadd support definitions
  25. PKGADD_PKG="KANNELgateway"
  26. PKGADD_NAME="Kannel - WAP and SMS gateway"
  27. PKGADD_VENDOR="www.kannel.org"
  28. AC_SUBST(PKGADD_PKG)
  29. AC_SUBST(PKGADD_NAME)
  30. AC_SUBST(PKGADD_VENDOR)
  31. dnl Target installation directory for documentation
  32. AC_SUBST(docdir)
  33. docdir='${prefix}/share/doc/kannel'
  34. dnl Checks system type.
  35. AC_CONFIG_SECTION([Running system checks])
  36. AC_CANONICAL_HOST
  37. dnl Apply system specific rules.
  38. dnl Executable extension for systems that need one, i.e. Cygwin
  39. dnl Set the LIBTOOL to be used to create libs
  40. EXE_EXT=""
  41. LIBTOOL="ar rc"
  42. case "$host" in
  43.   *-sun-solaris*) 
  44.     CFLAGS="$CFLAGS -DSunOS=1"
  45.     ;;
  46.   *-cygwin*)
  47.     EXE_EXT=".exe"
  48.     ;;
  49.   *apple-darwin*) 
  50.     CFLAGS="$CFLAGS -DDARWIN=1" 
  51.     LIBTOOL="libtool -static -o" 
  52. esac
  53. AC_SUBST(EXE_EXT)
  54. AC_SUBST(LIBTOOL)
  55. AC_ARG_WITH(cflags,
  56. [  --with-cflags=FLAGS     use FLAGS for CFLAGS],
  57. CFLAGS="$CFLAGS $withval")
  58. AC_ARG_WITH(libs,
  59. [  --with-libs=FLAGS       use FLAGS for extra libraries],
  60. LIBS="$LIBS $withval")
  61. dnl Checks for programs.
  62. AC_PROG_CC
  63. AC_PROG_INSTALL
  64. AC_PROG_RANLIB
  65. AC_PROG_YACC
  66. AC_PROG_LEX
  67. AC_PATH_PROG(CONVERT, convert)
  68. AC_PATH_PROG(PERL, perl)
  69. dnl Checks for libraries.
  70. AC_CHECK_LIB(m, log)
  71. AC_CHECK_LIB(socket, accept)
  72. AC_CHECK_LIB(nsl, inet_ntoa)
  73. AC_CHECK_LIB(resolv, inet_ntop)
  74. AC_CHECK_LIB(bind, inet_ntop)
  75. AC_CHECK_LIB(pthread, pthread_exit)
  76. if test -z "$pthread"; then
  77. AC_CHECK_LIB(c_r, pthread_exit, [LIBS="$LIBS -lc_r"])
  78. fi
  79. dnl Checks for header files.
  80. AC_HEADER_STDC
  81. AC_CHECK_HEADERS(sys/ioctl.h sys/time.h sys/types.h unistd.h sys/poll.h)
  82. AC_CHECK_HEADERS(pthread.h getopt.h syslog.h)
  83. dnl Checks for typedefs, structures, and compiler characteristics.
  84. AC_TRY_COMPILE(, [char *func = __FUNCTION__;], 
  85.             AC_DEFINE(HAVE___FUNCTION__))
  86. AC_TRY_COMPILE(, [char *func = __func__;], 
  87.             AC_DEFINE(HAVE___FUNC__))
  88. dnl Checks for library functions.
  89. AC_CHECK_FUNCS(gettimeofday select socket strdup getopt_long)
  90. AC_CHECK_FUNC(getopt, , LIBOBJS="$LIBOBJS utils/attgetopt.o")
  91. AC_SUBST(LIBOBJS)
  92. dnl Extra feature checks
  93. dnl GW_HAVE_TYPE_FROM(HDRNAME, TYPE, HAVENAME, DESCRIPTION)
  94. AC_DEFUN(GW_HAVE_TYPE_FROM, [
  95. AC_CACHE_CHECK([for $2 in <$1>], gw_cv_type_$3,
  96. AC_TRY_COMPILE([#ifdef HAVE_SYS_TYPES_H
  97. #include <sys/types.h>
  98. #endif
  99. #include <$1>
  100. ], [$2 foo;],
  101. gw_cv_type_$3=yes, gw_cv_type_$3=no))
  102. if test $gw_cv_type_$3 = yes; then
  103. AC_DEFINE($3, 1, $4)
  104. fi
  105. ])
  106. dnl GW_HAVE_FUNC_FROM(HDRNAME, FUNC, HAVENAME, DESCRIPTION)
  107. AC_DEFUN(GW_HAVE_FUNC_FROM, [
  108. AC_CACHE_CHECK([for $2 in <$1>], gw_cv_func_$3,
  109. AC_TRY_COMPILE([#include <$1>], [void *foo = $2;],
  110. gw_cv_func_$3=yes, gw_cv_func_$3=no))
  111. if test $gw_cv_func_$3 = yes; then
  112. AC_DEFINE($3, 1, $4)
  113. fi
  114. ])
  115. GW_HAVE_TYPE_FROM(sys/socket.h,
  116. socklen_t,
  117. HAVE_SOCKLEN_T,
  118. [Defined if there is a socklen_t in <sys/socket.h>])
  119. GW_HAVE_FUNC_FROM(stdio.h, getopt, HAVE_GETOPT_IN_STDIO_H,
  120.             [Does <stdio.h> declare getopt()?])
  121. GW_HAVE_FUNC_FROM(unistd.h, getopt, HAVE_GETOPT_IN_UNISTD_H,
  122.             [Does <unistd.h> declare getopt()?])
  123. dnl Misfeature checks
  124. AC_CONFIG_SECTION([Checking POSIX threads support])
  125. AC_MSG_CHECKING(for working pthreads)
  126. AC_TRY_RUN([#include <pthread.h>
  127. #include <unistd.h>
  128. int pid;
  129. void testpid(void* foo);
  130. int main(void){
  131.     pthread_t child;
  132.     pid=getpid();
  133.     pthread_create(&child,NULL,(void*)testpid,NULL);
  134.     pthread_join(child,NULL);
  135.     return 0;
  136. }
  137. void testpid(void* foo){
  138.     int mypid=getpid();
  139.     if(mypid!=pid){
  140.         /* Pthreads states that all threads should have the same PID
  141.          * we dont!
  142.          */
  143.         exit(1);
  144.     }else{
  145.         exit(0);
  146.     }
  147. }
  148. ],echo yes , echo no ;CFLAGS="$CFLAGS -DBROKEN_PTHREADS=1", echo  Cross compiling - assuming they work)
  149. dnl Check if we have libxml2 installed and which version it is.
  150. dnl Kannel requires currently at least version 2.2.5 of libxml2.
  151. AC_CONFIG_SECTION([Checking for libxml2 support])
  152. xml_ver_required="2.2.5"
  153. AC_PATH_PROGS(XML_CONFIG, xml2-config xml-config, no)
  154. if test "$XML_CONFIG" = "no"; then
  155.   AC_MSG_ERROR([You MUST have the libxml2 (aka gnome-xml) library installed])
  156. else
  157.   AC_MSG_CHECKING([libxml version])
  158.   xml_version=`$XML_CONFIG --version`
  159.   AC_MSG_RESULT([$xml_version])
  160.   AC_CHECK_VERSION($xml_version, $xml_ver_required, 
  161.   [ LIBS="$LIBS `$XML_CONFIG --libs`"
  162.     CFLAGS="$CFLAGS `$XML_CONFIG --cflags`"
  163.   ],[
  164.     AC_MSG_ERROR([libxml2 version $xml_version is too old. You need at least $xml_ver_required])
  165.   ])
  166. fi
  167.                                        
  168. dnl DocBook stuff
  169. AC_CONFIG_SECTION([Configuring DocBook support])
  170. AC_CHECK_PROG(JADE, jade, jade, :)
  171. AC_CHECK_PROG(JADETEX, jadetex, jadetex, :)
  172. AC_CHECK_PROG(PDFJADETEX, pdfjadetex, pdfjadetex, :)
  173. AC_CHECK_PROG(DVIPS, dvips, dvips, :)
  174. AC_CHECK_PROG(FIG2DEV, fig2dev, fig2dev, :)
  175. AC_CHECK_PROG(CONVERT, convert, convert, :)
  176. AC_SUBST(HTML_DSL)
  177. found=""
  178. for loc in /usr /usr/local; do
  179.   if test "x$found" = "x" ; then 
  180.     for file in ${loc}/lib/sgml/stylesheet/dsssl/docbook/nwalsh/html/docbook.dsl 
  181. ${loc}/lib/sgml/stylesheets/nwalsh-modular/html/docbook.dsl 
  182. ${loc}/share/sgml/docbook/dsssl-stylesheets-1.59/html/docbook.dsl 
  183. ${loc}/share/sgml/docbook/dsssl-stylesheets/html/docbook.dsl 
  184.         ${loc}/share/sgml/docbook/dsssl/modular/html/docbook.dsl ; do
  185.       if test "x$found" = "x" ; then 
  186. AC_CHECK_FILE($file,HTML_DSL=$file; found=1)
  187.       fi
  188.     done
  189.   fi
  190. done
  191. AC_SUBST(TEX_DSL)
  192. found=""
  193. for loc in /usr /usr/local; do
  194.   if test "x$found" = "x" ; then 
  195.     for file in ${loc}/lib/sgml/stylesheet/dsssl/docbook/nwalsh/print/docbook.dsl 
  196. ${loc}/lib/sgml/stylesheets/nwalsh-modular/print/docbook.dsl 
  197. ${loc}/share/sgml/docbook/dsssl-stylesheets-1.59/print/docbook.dsl 
  198. ${loc}/share/sgml/docbook/dsssl-stylesheets/print/docbook.dsl 
  199.         ${loc}/share/sgml/docbook/dsssl/modular/print/docbook.dsl ; do
  200.       if test "x$found" = "x" ; then 
  201. AC_CHECK_FILE($file,TEX_DSL=$file; found=1)
  202.       fi
  203.     done
  204.   fi    
  205. done
  206. dnl Implement --enable-warnings option.
  207. AC_ARG_ENABLE(warnings,
  208. [  --enable-warnings       enable compilation warnings (default: disabled)], [
  209.   echo enabling compilation warnings
  210.   if test -n "$GCC"; then
  211.     CFLAGS="$CFLAGS -Wall"
  212.     CFLAGS="$CFLAGS -Wmissing-prototypes"
  213.     CFLAGS="$CFLAGS -Wmissing-declarations"
  214.     CFLAGS="$CFLAGS -Wnested-externs"
  215.     CFLAGS="$CFLAGS -Winline"
  216.     #CFLAGS="$CFLAGS -Wstrict-prototypes"
  217.     #CFLAGS="$CFLAGS -Wredundant-decls"
  218.     #CFLAGS="$CFLAGS -Wconversion"
  219.   fi
  220. ])
  221. dnl Implement --enable-docs option.
  222. AC_SUBST(DOCSTARGET)
  223. if test "x$HTML_DSL" = "x" -o "x$TEX_DSL" = "x"
  224. then
  225. DOCSTARGET="no-docs"
  226. else
  227. DOCSTARGET="docs"
  228. fi
  229. AC_ARG_ENABLE(docs,
  230. [  --enable-docs           enable building of documentation (default: enabled)], [
  231.   if test "$enableval" = "yes"
  232.   then
  233.       DOCSTARGET="docs"
  234.   else
  235.       DOCSTARGET="no-docs"
  236.   fi
  237. ])
  238. case "$DOCSTARGET" in
  239. no-docs) AC_MSG_RESULT(Not building documentation.) ;;
  240. docs) AC_MSG_RESULT(Documentation will be built as well.) ;;
  241. esac
  242. dnl Implement --enable-drafts option.
  243. AC_SUBST(DOCDRAFTS)
  244. DOCDRAFTS="IGNORE"
  245. AC_ARG_ENABLE(drafts,
  246. [  --enable-drafts         enable building of documentation drafts (default: disabled)], [
  247.   if test "$enableval" = "yes"
  248.   then
  249.       DOCDRAFTS="INCLUDE"
  250.   else
  251.       DOCDRAFTS="IGNORE"
  252.   fi
  253. ])
  254. if test "x$DOCSTARGET" = "xdocs"
  255. then
  256.     case "$DOCDRAFTS" in
  257.     INCLUDE) AC_MSG_RESULT(Documentation will include drafts.) ;;
  258.     esac
  259. fi
  260. AC_CONFIG_SECTION([Configuring parameters])
  261. dnl Implement --with-suffix=version option.
  262. SUFFIX=""
  263. AC_ARG_WITH(suffix,
  264. [  --with-suffix           set suffix for binaries (default: -$VERSION)], [
  265.   if test "x$withval" != "x" ; then
  266.    SUFFIX=$withval
  267.   fi
  268. ])
  269. dnl Implement --enable-suffix option.
  270. AC_ARG_ENABLE(suffix,
  271. [  --enable-suffix         enable suffix for binaries (default: disabled)], [
  272.   if test "$enableval" = "yes" ; then
  273.     SUFFIX="-$VERSION"
  274.   else
  275.     SUFFIX=""
  276.   fi
  277. ])
  278. if test "x$SUFFIX" != "x" ; then
  279.   AC_MSG_CHECKING(whether to append suffix to binary)
  280.   AC_MSG_RESULT($SUFFIX)
  281. fi
  282. AC_DEFINE_UNQUOTED(SUFFIX, "$SUFFIX")
  283. AC_SUBST(SUFFIX)
  284. dnl Implement --with-defaults=speed/debug option.
  285. AC_ARG_WITH(defaults,
  286. [  --with-defaults         set default configure options: speed/debug (default: native malloc + assertions)
  287.                           this will set assertion checking and malloc wrapper accordingly
  288.   speed = native malloc + no assertions
  289.   debug = checking malloc + assertions], [
  290.   case "$withval" in
  291.   speed) assertiondefault=no
  292.          mallocdefault=native
  293.          ;;
  294.   debug) assertiondefault=yes
  295.          mallocdefault=check
  296.          ;;
  297.   *) echo "unknown --with-defaults parameter $withval"
  298.      exit 1
  299.      ;;
  300.   esac
  301. ], [
  302.   dnl defaults to native malloc but with assertions
  303.   assertiondefault=yes
  304.   mallocdefault=native
  305. ])
  306. dnl Implement --with-malloc=[native|check|slow] option.
  307. AC_MSG_CHECKING(which malloc to use)
  308. AC_ARG_WITH(malloc,
  309. [  --with-malloc           select malloc wrapper to use: native/check/slow (default: native)], [
  310.   case "$withval" in
  311.   native) AC_DEFINE(USE_GWMEM_NATIVE)
  312.           AC_MSG_RESULT(native malloc)
  313.           ;;
  314.   check) AC_DEFINE(USE_GWMEM_CHECK)
  315.          AC_MSG_RESULT(checking malloc)
  316.          ;;
  317.   slow) AC_DEFINE(USE_GWMEM_SLOW)
  318.         AC_MSG_RESULT(slow malloc)
  319. ;;
  320.   *) echo "Unknown malloc wrapper $withval. Oops."; exit 1 ;;
  321.   esac
  322. ], [
  323.   case "$mallocdefault" in
  324.   check) AC_DEFINE(USE_GWMEM_CHECK)
  325.      AC_MSG_RESULT(checking malloc)
  326.      ;;
  327.   slow) AC_DEFINE(USE_GWMEM_SLOW)
  328.         AC_MSG_RESULT(slow malloc)
  329. ;;
  330.   *) AC_DEFINE(USE_GWMEM_NATIVE)
  331.           AC_MSG_RESULT(native malloc)
  332.           ;;
  333.   esac
  334. ])
  335. dnl Implement --disable-assertions option.
  336. AC_ARG_ENABLE(assertions,
  337. [  --disable-assertions    turn off assertion checking], [
  338.   if test "$enableval" = "no"
  339.   then
  340.     echo disabling assertion checking
  341.     AC_DEFINE(NO_GWASSERT)
  342.   fi
  343. ], [
  344.   if test "$assertiondefault" = "no"
  345.   then
  346.     echo disabling assertion checking
  347.     AC_DEFINE(NO_GWASSERT)
  348.   fi
  349. ])
  350. dnl Implement the --enable-pam option.
  351. AC_ARG_ENABLE(pam,
  352. [  --enable-pam           enable pam authentication (default: disabled)], [
  353.     if test "$enableval" = "yes"
  354.     then
  355. AC_CHECK_LIB(pam, pam_end)
  356. AC_CHECK_LIB(dl,main)
  357. AC_CHECK_HEADERS(security/pam_appl.h)
  358. PAMTARGET="pam"
  359.     else
  360. PAMTARGET="no-pam"
  361.     fi
  362. ])
  363. case "$PAMTARGET" in
  364. no-pam) echo pam authentication is disabled. ;;
  365. pam) echo pam authentication is enabled. ;;
  366. esac
  367. dnl Implement --enable-debug option.
  368. AC_ARG_ENABLE(debug,
  369. [  --enable-debug   enable non-reentrant debugging for wmls compiler (default: disabled)], [
  370.   echo enabling WMLScript compiler debugging
  371.   if test -n "$GCC"; then
  372.     CFLAGS="$CFLAGS -Wall"
  373.   fi
  374.   AC_DEFINE(WS_DEBUG)
  375. ])
  376. dnl Implement --enable-localtime option.
  377. AC_ARG_ENABLE(localtime,
  378. [  --enable-localtime   log file time stamps in local time, not GMT (default: enabled)], [
  379.   if test "$enableval" = yes; then
  380.       echo enabling local time
  381.       AC_DEFINE(LOG_TIMESTAMP_LOCALTIME)
  382.   fi
  383. ],[
  384.   echo enabling local time
  385.   AC_DEFINE(LOG_TIMESTAMP_LOCALTIME)
  386. ])
  387. dnl --enable-mutex-stats option.
  388. AC_ARG_ENABLE(mutex-stats,
  389. [  --enable-mutex-stats    produce information about lock contention], [
  390.   if test "$enableval" = yes; then
  391.       AC_DEFINE(MUTEX_STATS)
  392.   fi
  393. ])
  394. dnl --enable-cookies option.
  395. AC_ARG_ENABLE(cookies,
  396. [  --enable-cookies        enable cookie support for WSP (default: disabled)], [
  397.   if test "$enableval" = yes; then
  398.       AC_DEFINE(ENABLE_COOKIES)
  399.   fi
  400. ])
  401. dnl --enable-start-stop-daemon option.
  402. AC_ARG_ENABLE(start-stop-daemon,
  403. [  --enable-start-stop-daemon  compile the start-stop-daemon program], [
  404.   if test "$enableval" = yes; then
  405.      STARTSTOPDAEMONSRC="utils/start-stop-daemon.c"
  406.   fi
  407. ])
  408. AC_SUBST(STARTSTOPDAEMONSRC)
  409. dnl Implement the --with-ssl option. 
  410. AC_CONFIG_SECTION([Configuring OpenSSL support])
  411. AC_ARG_WITH(ssl,
  412. [  --with-ssl[=DIR]        where to look for OpenSSL libs and header files
  413.                           DIR points to the installation [/usr/local/ssl]],
  414. [ if test -d "$withval"; then 
  415.     ssllib="$withval/lib"; 
  416.     sslinc="$withval/include"
  417.   else
  418.     AC_MSG_ERROR(Unable to find OpenSSL libs and/or directories at $withval)
  419.   fi
  420. ])
  421. dnl Implement --enable-ssl option.
  422. AC_MSG_CHECKING([whether to compile with SSL support])
  423. AC_ARG_ENABLE(ssl,
  424. [  --enable-ssl            enable SSL client and server support (default: enabled)], [
  425.   if test "$enableval" = no ; then
  426.     AC_MSG_RESULT(disabled)
  427.     ssl=no
  428.   else
  429.     ssl=yes
  430.   fi
  431. ],[
  432.   ssl=yes
  433. ])
  434. if test "$ssl" = "yes" ; then
  435.   dnl test only if --with-ssl has not been used
  436.   if test "x$ssllib" = "x" && test "x$sslinc" = "x"; then
  437.     for loc in /usr/lib /usr/local/ssl/lib /usr/local/openssl/lib; do 
  438.       if test -f "$loc/libssl.a"; then
  439.         ssllib="$loc"
  440.       fi
  441.     done
  442.     for loc in /usr/include/ssl /usr/include/openssl /usr/local/ssl/include 
  443.                /usr/local/openssl/include; do
  444.       if test -d "$loc"; then
  445.         sslinc="$loc"
  446.       fi
  447.     done
  448.   fi
  449.   AC_MSG_RESULT(trying $ssllib $sslinc)
  450. fi
  451. dnl Implement the SSL library checking routine. 
  452. dnl This will define HAVE_LIBSSL in config.h
  453. if test "x$ssllib" != "x" && test "x$sslinc" != "x"; then
  454.   CFLAGS="$CFLAGS -I$sslinc"
  455.   LIBS="$LIBS -L$ssllib"
  456.   AC_PATH_PROG(OPENSSL, openssl, no)
  457.   if test "$OPENSSL" = "yes"; then
  458.     AC_MSG_CHECKING([openssl version])
  459.     openssl_version=`$OPENSSL version | awk '{print $2}'`
  460.     AC_MSG_RESULT([$openssl_version])
  461.   fi
  462.   AC_CHECK_LIB(crypto, CRYPTO_lock,
  463.   [ LIBS="$LIBS -lcrypto"
  464.     AC_CHECK_LIB(ssl, SSL_library_init,
  465.     [ AC_CHECK_LIB(ssl, SSL_connect)
  466.       AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h 
  467.                        openssl/pem.h openssl/ssl.h openssl/err.h)
  468.       AC_MSG_CHECKING(whether the OpenSSL library is multithread-enabled)
  469.       AC_TRY_RUN([ 
  470.         #define OPENSSL_THREAD_DEFINES
  471.         #include <openssl/opensslconf.h>
  472.         int main(void) {
  473.         #if defined(THREADS)
  474.           exit(0);
  475.         #else
  476.           exit(1);
  477.         #endif
  478.         }
  479.       ], [
  480.         AC_MSG_RESULT(yes)
  481.         AC_DEFINE(HAVE_LIBSSL)
  482.         LIBS="$LIBS -lssl"
  483.         AC_MSG_CHECKING([whether to compile with SSL support])
  484. AC_MSG_RESULT(yes)
  485.       ], [
  486.         AC_ARG_ENABLE(ssl-thread-test,
  487.         [  --disable-ssl-thread-test  disable the multithread test for the OpenSSL library
  488.                           this will force to continue even if the test fails],
  489.         [ if test "$enableval" = no ; then
  490.             AC_MSG_RESULT([no, continue forced])
  491.           fi
  492.         ], [
  493.           AC_MSG_RESULT(no)
  494.           AC_MSG_ERROR(Either get a multithread-enabled SSL or configure with --disable-ssl)
  495.         ])
  496.       ], echo "Cross-compiling; make sure your SSL library is multithread-enabled"
  497.       )
  498.     ])
  499.   ])
  500. fi
  501. AC_CONFIG_SECTION([Configuring DB support])
  502. dnl Implement the --with-mysql option. 
  503. AC_ARG_WITH(mysql,
  504. [  --with-mysql[=DIR]      where to look for MySQL libs and header files
  505.                           DIR points to the installation [/usr/local/mysql]],
  506. [ if test -d "$withval"; then 
  507.     mysqlloc="$withval"; 
  508.   else
  509.     AC_MSG_ERROR(Unable to find MySQL libs and/or directories at $withval)
  510.   fi
  511. ])
  512. dnl Implement the --enable-mysql option. This will set HAVE_MYSQL in config.h
  513. dnl accordingly and enable the usage of the libmysqlclient routines.
  514. AC_MSG_CHECKING([whether to compile with MySQL support])
  515. AC_ARG_ENABLE(mysql,
  516. [  --enable-mysql          enable MySQL storage (default: disabled)], [
  517.   if test "$enableval" != yes ; then
  518.     AC_MSG_RESULT(disabled)
  519. else
  520.   dnl test only if --with-mysql has not been used
  521.   if test "x$mysqlloc" = "x" ; then
  522.     AC_MSG_RESULT(searching)
  523.     AC_PATH_PROGS(MYSQL_CONFIG, mysql_config, no)
  524.     dnl check for MySQL 4.x style mysql_config information
  525.     if test "$MYSQL_CONFIG" = "no"; then
  526.       dnl mysql-3.x style 
  527.       found=""
  528.       for loc in /usr /usr/local ; do 
  529.         if test "x$found" = "x" ; then 
  530.           AC_MSG_CHECKING([for MySQL client support in])
  531.           AC_MSG_RESULT($loc)
  532.           AC_CHECK_FILE("$loc/include/mysql/mysql.h", 
  533.             [CFLAGS="$CFLAGS -I$loc/include/mysql"; LIBS="$LIBS -L$loc/lib/mysql -lmysqlclient"]; found=1,
  534.             [AC_CHECK_FILE("$loc/include/mysql.h", 
  535.               [CFLAGS="$CFLAGS -I$loc/include"; LIBS="$LIBS -L$loc/lib -lmysqlclient"]; found=1
  536.              )]
  537.           )
  538. fi
  539.       done
  540.       if test "x$found" != "x1" ; then 
  541.         AC_MSG_ERROR(Unable to find mysql.h)
  542.       fi
  543.     else
  544.       dnl mysql-4.x style 
  545.       AC_MSG_CHECKING([mysql version])
  546.       mysql_version=`$MYSQL_CONFIG --version`
  547.       AC_MSG_RESULT([$mysql_version])
  548.       LIBS="$LIBS `$MYSQL_CONFIG --libs`"
  549.       CFLAGS="$CFLAGS `$MYSQL_CONFIG --cflags`"
  550.     fi
  551.   else
  552.       AC_MSG_RESULT(searching in $mysqlloc)
  553.       AC_CHECK_FILE("$mysqlloc/include/mysql/mysql.h", 
  554.         [CFLAGS="$CFLAGS -I$mysqlloc/include/mysql"; LIBS="$LIBS -L$mysqlloc/lib/mysql -lmysqlclient"],
  555.         [AC_CHECK_FILE("$mysqlloc/include/mysql.h", 
  556.           [CFLAGS="$CFLAGS -I$mysqlloc/include"; LIBS="$LIBS -L$mysqlloc/lib -lmysqlclient"],
  557.           [AC_MSG_ERROR(Unable to find mysql.h under $mysqlloc)]
  558.          )]
  559.       )
  560.   fi
  561.   AC_CHECK_HEADERS(mysql/mysql.h mysql/mysql_com.h mysql/mysql_version.h)
  562.   AC_CHECK_LIB(mysqlclient, mysql_init) 
  563.   AC_DEFINE(HAVE_MYSQL)
  564.   AC_MSG_CHECKING([whether to compile with MySQL support])
  565.   AC_MSG_RESULT(yes)
  566.   MYSQL="yes"
  567.   fi
  568. ],[
  569.   AC_MSG_RESULT(disabled)
  570. ])
  571. dnl Implement the --enable-sdb option. This will set HAVE_SDB in config.h
  572. dnl accordingly and enable the usage of the libsdb routines.
  573. AC_MSG_CHECKING([whether to compile with LibSDB support])
  574. AC_ARG_ENABLE(sdb,
  575. [  --enable-sdb            enable LibSDB storage (default: disabled)], [
  576.   if test "$enableval" != yes; then
  577.     AC_MSG_RESULT(disabled)
  578.   else
  579.     AC_MSG_RESULT(searching)
  580.     AC_PATH_PROGS(SDB_CONFIG, sdb-config, no)
  581.     if test "$SDB_CONFIG" = "no"; then
  582.       AC_MSG_ERROR(Unable to find sdb-config in path for SDB support)
  583.     else
  584.       AC_MSG_CHECKING([sdb version])
  585.       sdb_version=`$SDB_CONFIG --version`
  586.       AC_MSG_RESULT([$sdb_version])
  587.       LIBS="$LIBS `$SDB_CONFIG --libs`"
  588.       CFLAGS="$CFLAGS `$SDB_CONFIG --cflags`"
  589.       AC_CHECK_HEADERS(sdb.h)
  590.       dnl AC_CHECK_LIB(sdb, sdb_init, [LIBS="`$SDB_CONFIG --libs`"]) 
  591.       AC_CHECK_FUNCS(sdb_init)
  592.       AC_DEFINE(HAVE_SDB)
  593.       AC_DEFINE_UNQUOTED(LIBSDB_VERSION, "$sdb_version")
  594.       SDB="yes"
  595.     fi
  596.   fi
  597. ],[
  598.   AC_MSG_RESULT(disabled)
  599. ])
  600. dnl Implement the --with-dlr option.
  601. dnl Checks which external DLR storage should be used. 
  602. AC_ARG_WITH(dlr,
  603. [  --with-dlr[=TYPE]       select DLR storage to use: internal/mysql/sdb (default: internal)], 
  604. [ AC_CONFIG_SECTION([Configuring DLR support]) 
  605.   AC_MSG_CHECKING([for DLR storage type])
  606.   AC_MSG_RESULT($withval)
  607.   case "$withval" in
  608.   internal)
  609.     ;;
  610.   mysql)
  611.     if test "$MYSQL" != "yes"; then
  612.       AC_MSG_ERROR(Option --with-dlr=mysql requires MySQL client support)
  613.     else
  614.       AC_DEFINE(DLR_MYSQL)
  615.     fi
  616.     ;;
  617.   sdb)
  618.     if test "$SDB" != "yes"; then
  619.       AC_MSG_ERROR(Option --with-dlr=sdb requires SDB support)
  620.     else
  621.       AC_DEFINE(DLR_SDB)
  622.     fi
  623.     ;;
  624.   *) 
  625.     AC_MSG_ERROR(Unknown DLR storage support!)
  626.     exit 1 
  627.     ;;
  628.   esac
  629. ])
  630. dnl Implement the --with-wtls option.
  631. dnl Check to see if we should include WTLS support, and which library to use.
  632. AC_ARG_WITH(wtls,
  633. [  --with-wtls[=TYPE]      select WTLS version to use: openssl/baltimore], 
  634. [ AC_CONFIG_SECTION([Configuring WTLS support]) 
  635.   AC_MSG_CHECKING([for WTLS library])
  636.   AC_MSG_RESULT($withval)
  637.   case "$withval" in
  638.   openssl) 
  639.   OLDLIBS="$LIBS"
  640. LIBS="$LIBS -L/usr/local/ssl/lib -lcrypto"
  641.     AC_CHECK_LIB(crypto, RSA_new,
  642.     [ AC_CHECK_HEADERS(openssl/objects.h openssl/rc5.h, 
  643.         AC_DEFINE(HAVE_WTLS_OPENSSL),
  644.         AC_MSG_WARN(OpenSSL installation seems to lack RC5 algorithm!)
  645.       )
  646. ])
  647. ;;
  648.   baltimore) 
  649.     AC_MSG_ERROR(This WTLS library is yet not supported!)
  650.     ;;
  651.   *) 
  652.     AC_MSG_ERROR(Unknown WTLS libary support!)
  653.     exit 1 
  654.     ;;
  655.   esac
  656. ])
  657. dnl Final Output
  658. AC_CONFIG_SECTION([Generating output files]) 
  659. AC_OUTPUT(Makefile)