Home | History | Annotate | Download | only in clearsilver
      1 dnl Process this file with autoconf to produce a configure script.
      2 AC_INIT(cgi/cgi.c)
      3 AC_CONFIG_HEADER(cs_config.h)
      4 
      5 dnl Checks for programs.
      6 AC_PROG_CC
      7 AC_PROG_CPP
      8 AC_PROG_LN_S
      9 AC_CHECK_PROGS(AR, ar aal, ar)
     10 AC_PROG_RANLIB
     11 
     12 AC_PROG_MAKE_SET
     13 AC_PROG_INSTALL
     14 
     15 dnl Checks for Neotonic Paths
     16 AC_MSG_CHECKING(for Neotonic Paths)
     17 if test -d /neo/opt/include; then
     18   AC_MSG_RESULT(found)
     19   CPPFLAGS="$CPPFLAGS -I/neo/opt/include"
     20   LDFLAGS="$LDFLAGS -L/neo/opt/lib"
     21 else
     22   AC_MSG_RESULT(not found)
     23 fi
     24 
     25 dnl Checks for header files.
     26 AC_HEADER_DIRENT
     27 AC_HEADER_STDC
     28 AC_HEADER_SYS_WAIT
     29 AC_CHECK_HEADERS(fcntl.h stdarg.h varargs.h limits.h strings.h sys/ioctl.h sys/time.h unistd.h features.h)
     30 
     31 dnl Checks for typedefs, structures, and compiler characteristics.
     32 AC_C_CONST
     33 AC_TYPE_MODE_T
     34 AC_TYPE_OFF_T
     35 AC_TYPE_PID_T
     36 AC_TYPE_SIZE_T
     37 AC_HEADER_TIME
     38 AC_STRUCT_TM
     39 AC_STRUCT_TIMEZONE
     40 
     41 dnl Checks for library functions.
     42 AC_TYPE_SIGNAL
     43 AC_FUNC_STRFTIME
     44 AC_FUNC_VPRINTF
     45 AC_FUNC_WAIT3
     46 AC_CHECK_FUNCS(gettimeofday mktime putenv strerror strspn strtod strtol strtoul)
     47 AC_CHECK_FUNCS(random rand drand48)
     48 
     49 dnl Checks for libraries.
     50 EXTRA_UTL_OBJS=
     51 EXTRA_UTL_SRC=
     52 cs_cv_wdb=no
     53 AC_ARG_ENABLE(apache, [  --disable-wdb Disables building of wdb],
     54   [if test $enableval = no; then
     55      AC_MSG_RESULT(Disabling wdb code)
     56    else
     57      AC_SEARCH_LIBS(db_open, db db2, [cs_cv_wdb=yes])
     58      if test $cs_cv_wdb = yes; then
     59        AC_DEFINE(HAVE_DB2)
     60        EXTRA_UTL_SRC="$EXTRA_UTL_SRC wdb.c"
     61      fi
     62    fi])
     63 
     64 dnl Check for locks
     65 AC_CHECK_FUNC(lockf, [
     66   AC_DEFINE(HAVE_LOCKF)
     67   EXTRA_UTL_SRC="$EXTRA_UTL_SRC ulocks.c rcfs.c"
     68 
     69   cs_cv_pthread=no
     70   AC_CHECK_HEADER(pthread.h, [cs_cv_pthread=yes])
     71   if test $cs_cv_pthread = yes; then
     72     AC_DEFINE(HAVE_PTHREADS)
     73     EXTRA_UTL_SRC="$EXTRA_UTL_SRC skiplist.c dict.c"
     74   fi
     75 ])
     76 
     77 AC_MINGW32()
     78 if test "x$MINGW32" = "xyes"; then
     79   CPPFLAGS="$CPPFLAGS -D__WINDOWS_GCC__"
     80   USE_MINGW32="USE_MINGW32 = 1"
     81 else
     82   EXTRA_UTL_SRC="$EXTRA_UTL_SRC filter.c neo_net.c neo_server.c"
     83 fi
     84 
     85 dnl Check for snprintf and vsnprintf
     86 cs_cv_snprintf=no
     87 SNPRINTFOBJS=""
     88 AC_CHECK_FUNC(snprintf, [AC_DEFINE(HAVE_SNPRINTF)], [cs_cv_snprintf=yes])
     89 AC_CHECK_FUNC(vsnprintf, [AC_DEFINE(HAVE_VSNPRINTF)], [cs_cv_snprintf=yes])
     90 if test $cs_cv_snprintf = yes; then
     91   EXTRA_UTL_OBJS="$EXTRA_UTL_OBJS snprintf.o"
     92 fi
     93 
     94 
     95 dnl Check for missing re-entrant functions
     96 cs_cv_missing=no
     97 cs_cv_need_reentrant=no
     98 dnl copied from libcurl
     99 AC_CHECK_FUNCS(localtime_r, [
    100   AC_MSG_CHECKING(whether localtime_r is declared)
    101   AC_EGREP_CPP(localtime_r,[
    102 #include <time.h>],[
    103     AC_DEFINE(HAVE_LOCALTIME_R)
    104     AC_MSG_RESULT(yes)],[
    105     AC_MSG_RESULT(no)
    106     AC_MSG_CHECKING(whether localtime_r with -D_REENTRANT is declared)
    107     AC_EGREP_CPP(localtime_r,[
    108 #define _REENTRANT
    109 #include <time.h>],[
    110       cs_cv_need_reentrant=yes
    111       AC_MSG_RESULT(yes)],[
    112       cs_cv_missing=yes
    113       AC_MSG_RESULT(no)])])], [cs_cv_missing=yes])
    114 
    115 AC_CHECK_FUNCS(gmtime_r, [
    116   AC_MSG_CHECKING(whether gmtime_r is declared)
    117   AC_EGREP_CPP(gmtime_r,[
    118 #include <time.h>],[
    119     AC_DEFINE(HAVE_GMTIME_R)
    120     AC_MSG_RESULT(yes)],[
    121     AC_MSG_RESULT(no)
    122     AC_MSG_CHECKING(whether gmtime_r with -D_REENTRANT is declared)
    123     AC_EGREP_CPP(gmtime_r,[
    124 #define _REENTRANT
    125 #include <time.h>],[
    126       cs_cv_need_reentrant=yes
    127       AC_MSG_RESULT(yes)],[
    128       cs_cv_missing=yes
    129       AC_MSG_RESULT(no)])])], [cs_cv_missing=yes])
    130 
    131 AC_CHECK_FUNCS(strtok_r, [
    132   AC_MSG_CHECKING(whether strtok_r is declared)
    133   AC_EGREP_CPP(strtok_r,[
    134 #include <string.h>],[
    135     AC_DEFINE(HAVE_STRTOK_R)
    136     AC_MSG_RESULT(yes)],[
    137     AC_MSG_RESULT(no)
    138     AC_MSG_CHECKING(whether strtok_r with -D_REENTRANT is declared)
    139     AC_EGREP_CPP(strtok_r,[
    140 #define _REENTRANT
    141 #include <string.h>],[
    142       cs_cv_need_reentrant=yes
    143       AC_MSG_RESULT(yes)],[
    144       cs_cv_missing=yes
    145       AC_MSG_RESULT(no)])])], [cs_cv_missing=yes])
    146 
    147 AC_CHECK_FUNC(mkstemp, [AC_DEFINE(HAVE_MKSTEMP)], [cs_cv_missing=yes])
    148 if test $cs_cv_missing = yes; then
    149   EXTRA_UTL_OBJS="$EXTRA_UTL_OBJS missing.o"
    150 fi
    151 if test $cs_cv_need_reentrant = yes; then
    152   CPPFLAGS="$CPPFLAGS -D_REENTRANT"
    153 fi
    154 
    155 cs_cv_regex=yes
    156 AC_CHECK_FUNC(regexec, [AC_DEFINE(HAVE_REGEX)], [cs_cv_regex=no])
    157 if test $cs_cv_regex = no; then
    158   CPPFLAGS="$CPPFLAGS -I\$(NEOTONIC_ROOT)/util/regex"
    159   EXTRA_UTL_SRC="$EXTRA_UTL_SRC regex/regex.c"
    160 fi
    161 
    162 cs_cv_compression=yes
    163 AC_CHECK_LIB(z, deflate, [cs_cv_compression=yes], [cs_cv_compression=no])
    164 AC_ARG_ENABLE(compression, [  --disable-compression		Disables HTML Compression support],
    165   [if test $enableval = no; then
    166      cs_cv_compression=no;
    167      AC_MSG_RESULT(Disabling HTML Compression support)
    168    fi])
    169 
    170 if test $cs_cv_compression = yes; then
    171   AC_DEFINE(HTML_COMPRESSION)
    172   LIBS="$LIBS -lz"
    173 fi
    174 
    175 AC_ARG_ENABLE(remote-debugger, [  --enable-remote-debugger	Enables remote X CGI debugging],
    176   [if test $enableval = yes; then
    177      AC_DEFINE(ENABLE_REMOTE_DEBUG)
    178      AC_MSG_RESULT(Enabling CGI X Remote debugger)
    179    fi])
    180 
    181 dnl Check for Apache apxs
    182 cs_cv_apache=yes
    183 AC_ARG_ENABLE(apache, [  --disable-apache		Disables building of apache 1.3.x module],
    184   [if test $enableval = no; then
    185      cs_cv_apache=no;
    186      AC_MSG_RESULT(Disabling Apache 1.3.x Module)
    187    fi])
    188 AC_ARG_WITH(apache, [  --with-apache=path		Set location of Apache installation], [cs_cv_apache_path="$withval"], [cs_cv_apache_path=])
    189 
    190 if test $cs_cv_apache = yes; then
    191   AC_MSG_CHECKING(for apache apxs)
    192   apxs_path=no
    193   apache_search_path="$cs_cv_apache_path /neo/opt /usr/local /usr"
    194   for path in $apache_search_path; do
    195     if test -x $path/httpd/bin/apxs; then
    196       apxs_path=$path/httpd/bin/apxs
    197       httpd_path=$path/httpd/bin/httpd
    198       break
    199     fi
    200     if test -x $path/httpd/sbin/apxs; then
    201       apxs_path=$path/httpd/sbin/apxs
    202       httpd_path=$path/httpd/sbin/httpd
    203       break
    204     fi
    205     if test -x $path/bin/apxs; then
    206       apxs_path=$path/bin/apxs
    207       httpd_path=$path/bin/httpd
    208       break
    209     fi
    210     if test -x $path/sbin/apxs; then
    211       apxs_path=$path/sbin/apxs
    212       httpd_path=$path/sbin/httpd
    213       break
    214     fi
    215   done
    216   if test "x$apxs_path" = "xno"; then
    217     AC_MSG_RESULT(not found)
    218   else
    219     AC_MSG_RESULT(found $apxs_path)
    220     AC_MSG_CHECKING(for apache 1.3.x)
    221     changequote(<<, >>)dnl
    222     apache_version="`$httpd_path -v | grep 'Server version' | sed -e 's/.*Apache\/\([0-9]*\.[0-9]*\.[0-9]*\).*/\1/'`"
    223     apache_major_version=`echo $apache_version | sed -e 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
    224     apache_minor_version=`echo $apache_version | sed -e 's/.*\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
    225     changequote([, ])dnl
    226     if test "$apache_major_version" = "1" -a "$apache_minor_version" = "3"; then
    227       AC_MSG_RESULT(found $apache_version)
    228       APXS_PATH="$apxs_path"
    229       BUILD_WRAPPERS="$BUILD_WRAPPERS mod_ecs"
    230     else
    231       AC_MSG_RESULT(found $apache_version - disabling module build)
    232     fi
    233   fi
    234 fi
    235 
    236 dnl Check for Python library/includes
    237 cs_cv_python=yes
    238 AC_ARG_ENABLE(python, [  --disable-python		Disables building of python module],
    239   [if test $enableval = no; then
    240      cs_cv_python=no;
    241      AC_MSG_RESULT(Disabling python module)
    242    fi])
    243 AC_ARG_WITH(python, [  --with-python=path		Set location of Python Interpreter], [cs_cv_python_path="$withval"], [cs_cv_python_path=no])
    244 
    245 if test $cs_cv_python = yes; then
    246   AC_MSG_CHECKING(for python includes)
    247   python_inc=no
    248   python_lib=no
    249   python_search_path="/neo/opt /usr/local /usr /c"
    250   python_versions="2.4 2.3 2.2 2.1 2.0 1.5 24 23 22 21 20 15"
    251   if test $cs_cv_python_path != "no" -a -x $cs_cv_python_path; then
    252     python_bin=$cs_cv_python_path
    253     vers=`$python_bin -c "import sys; print sys.version[[:3]]"`
    254     py_inst_dir=`$python_bin -c "import sys; print sys.exec_prefix"`
    255     python_inc=$py_inst_dir/include/python$vers
    256     python_lib="-L$py_inst_dir/lib/python$vers/config -lpython$vers"
    257     python_site=$py_inst_dir/lib/python$vers/site-packages
    258   else
    259     for vers in $python_versions; do
    260       for path in $python_search_path; do
    261         if test -x $path/bin/python$vers; then
    262 	  python_bin=$path/bin/python$vers
    263 	  major_vers=`echo $vers | cut -b 1`
    264 	  if test $major_vers -ge 2; then
    265 	      python_base=`$python_bin -c "import sys, os; print os.path.dirname([[x for x in sys.path if x.find('site-packages') != -1]][[0]])"`
    266 	  else
    267 	      python_base=`$python_bin -c "import site, os; print os.path.dirname(site.sitedirs[[0]])"`
    268 	  fi
    269 	  if test -d $python_base; then
    270 	      python_lib="-L$python_base/config -lpython$vers"
    271 	      python_site=$python_base/site-packages
    272 	  fi
    273 	fi
    274 	if test -f $path/include/python$vers/Python.h; then
    275 	  python_inc=$path/include/python$vers
    276         fi
    277 	if test "x$python_lib" = "xno"; then
    278 	    if test -d $path/lib/python$vers; then
    279 	      python_lib="-L$path/lib/python$vers/config -lpython$vers"
    280 	      python_site=$path/lib/python$vers/site-packages
    281 	    fi
    282 	    if test -d $path/lib64/python$vers; then
    283 	      python_lib="-L$path/lib64/python$vers/config -lpython$vers"
    284 	      python_site=$path/lib64/python$vers/site-packages
    285 	    fi
    286 	fi
    287 	dnl This is currently special cased mostly for Windows
    288 	dnl installs, but we only use python_lib for windows anyways
    289 	if test -f $path/python$vers/include/Python.h; then
    290 	  python_inc=$path/python$vers/include
    291 	  python_lib="-L$path/python$vers/libs -lpython$vers"
    292 	  python_site=$path/python$vers/Lib/site-packages
    293 	  break 2
    294 	fi
    295 	if test "x$python_inc" != "xno" -a "x$python_lib" != "xno"; then
    296 	  break 2
    297 	fi
    298       done
    299     done
    300   fi
    301   if test "x$python_inc" = "xno"; then
    302     AC_MSG_RESULT(not found)
    303     PYTHON=
    304     PYTHON_INC=
    305     PYTHON_LIB=
    306     PYTHON_SITE=
    307   else
    308     AC_MSG_RESULT(found $python_inc)
    309     PYTHON=$python_bin
    310     PYTHON_INC="-I$python_inc"
    311     PYTHON_LIB=$python_lib
    312     if test "x$PYTHON_SITE" = "x"; then
    313 	PYTHON_SITE=$python_site
    314     fi
    315     BUILD_WRAPPERS="$BUILD_WRAPPERS python"
    316   fi
    317 fi
    318 
    319 dnl Check for Perl binary
    320 cs_cv_perl=yes
    321 AC_ARG_ENABLE(perl, [  --disable-perl		Disables building of perl module],
    322   [if test $enableval = no; then
    323      cs_cv_perl=no;
    324      AC_MSG_RESULT(Disabling perl module)
    325    fi])
    326 AC_ARG_WITH(perl, [  --with-perl=path		Set location of Perl binary], [cs_cv_perl_path="$withval"], [cs_cv_perl_path=no])
    327 
    328 if test $cs_cv_perl = yes; then
    329   AC_MSG_CHECKING(for perl >= 5.006)
    330   perl_path=no
    331   perl_search_path="/neo/opt /usr/local /usr"
    332   if test $cs_cv_perl_path != "no" -a -x $cs_cv_perl_path; then
    333     perl_path=$cs_cv_perl_path
    334   else
    335     for path in $perl_search_path; do
    336       if test -x $path/bin/perl; then
    337 	require_error=`$path/bin/perl -e 'require 5.006' 2>&1`
    338 	if test "x$require_error" = "x"; then
    339 	  perl_path=$path/bin/perl
    340 	  break
    341 	fi
    342       fi
    343     done
    344   fi
    345   if test "x$perl_path" = "xno"; then
    346     AC_MSG_RESULT(not found)
    347     PERL=
    348   else
    349     AC_MSG_RESULT(found $perl_path)
    350     PERL="$perl_path"
    351     BUILD_WRAPPERS="$BUILD_WRAPPERS perl"
    352   fi
    353 fi
    354 
    355 dnl Check for Ruby binary
    356 cs_cv_ruby=yes
    357 AC_ARG_ENABLE(ruby, [  --disable-ruby		Disables building of ruby module],
    358   [if test $enableval = no; then
    359      cs_cv_ruby=no;
    360      AC_MSG_RESULT(Disabling ruby module)
    361    fi])
    362 AC_ARG_WITH(ruby, [  --with-ruby=path		Set location of Ruby binary], [cs_cv_ruby_path="$withval"], [cs_cv_ruby_path=no])
    363 
    364 if test $cs_cv_ruby = yes; then
    365   AC_MSG_CHECKING(for ruby)
    366   ruby_path=no
    367   ruby_search_path="/neo/opt /usr/local /usr"
    368   if test $cs_cv_ruby_path != "no" -a -x $cs_cv_ruby_path; then
    369     ruby_path=$cs_cv_ruby_path
    370   else
    371     for path in $ruby_search_path; do
    372       if test -x $path/bin/ruby; then
    373 	ruby_path=$path/bin/ruby
    374 	break
    375       fi
    376     done
    377   fi
    378   if test "x$ruby_path" = "xno"; then
    379     AC_MSG_RESULT(not found)
    380     RUBY=
    381   else
    382     AC_MSG_RESULT(found $ruby_path)
    383     RUBY="$ruby_path"
    384     BUILD_WRAPPERS="$BUILD_WRAPPERS ruby"
    385   fi
    386 fi
    387 
    388 dnl Check for Java library/includes
    389 cs_cv_java=yes
    390 AC_ARG_ENABLE(java, [  --disable-java		Disables building of java module],
    391   [if test $enableval = no; then
    392      cs_cv_java=no;
    393      AC_MSG_RESULT(Disabling java module)
    394    fi])
    395 AC_ARG_WITH(java, [  --with-java=path		Set location of J2SDK], [cs_cv_java_path="$withval"], [cs_cv_java_path=no])
    396 
    397 if test $cs_cv_java = yes; then
    398   AC_MSG_CHECKING(for j2sdk path)
    399   java_path=no
    400   if test $cs_cv_java_path != "no" -a -d $cs_cv_java_path; then
    401     java_path=$cs_cv_java_path
    402   else
    403     java_search_path="/neo/opt /usr/local /usr /usr/lib"
    404     for path in $java_search_path; do
    405       if test -d $path/java/j2sdk; then
    406 	java_path=$path/java/j2sdk
    407 	break
    408       fi
    409       if test -d $path/j2sdk; then
    410 	java_path=$path/j2sdk
    411 	break
    412       fi
    413       possible="$path/java/j2sdk*"
    414       for pos_path in $possible; do
    415 	if test -d $pos_path; then
    416 	  java_path=$pos_path
    417 	  break 2
    418 	fi
    419       done
    420       possible="$path/j2sdk*"
    421       for pos_path in $possible; do
    422 	if test -d $pos_path; then
    423 	  java_path=$pos_path
    424 	  break 2
    425 	fi
    426       done
    427     done
    428   fi
    429   if test "x$java_path" = "xno"; then
    430     AC_MSG_RESULT(not found)
    431     JAVA_PATH=
    432     JAVA_INCLUDE_PATH=
    433   else
    434     AC_MSG_RESULT(found $java_path)
    435     JAVA_PATH="$java_path"
    436     JAVAC="$java_path/bin/javac"
    437     _ACJNI_JAVAC=$JAVAC
    438     AC_JNI_INCLUDE_DIR
    439     for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
    440     do
    441 	JAVA_INCLUDE_PATH="$JAVA_INCLUDE_PATH -I$JNI_INCLUDE_DIR"
    442     done
    443     BUILD_WRAPPERS="$BUILD_WRAPPERS java-jni"
    444   fi
    445 fi
    446 
    447 dnl Check for C# library/includes
    448 cs_cv_csharp=yes
    449 AC_ARG_ENABLE(csharp, [  --disable-csharp	Disables building of csharp module],
    450   [if test $enableval = no; then
    451      cs_cv_csharp=no;
    452      AC_MSG_RESULT(Disabling csharp module)
    453    fi])
    454 AC_ARG_WITH(csharp, [  --with-csharp=path	Set location of csharp], [cs_cv_csharp_path="$withval"], [cs_cv_csharp_path=no])
    455 if test $cs_cv_csharp = yes; then
    456   AC_MSG_CHECKING(for csharp path)
    457   csharp_path=no
    458   if test $cs_cv_csharp_path != "no" -a -d $cs_cv_csharp_path; then
    459     csharp_path=$cs_cv_csharp_path
    460   else
    461     csharp_search_path="/neo/opt /usr/local /usr"
    462     for path in $csharp_search_path; do
    463       if test -f $path/bin/mcs; then
    464 	csharp_path=$path
    465 	break
    466       fi
    467     done
    468   fi
    469   if test "x$csharp_path" = "xno"; then
    470     AC_MSG_RESULT(not found)
    471     CSHARP_PATH=
    472   else
    473     AC_MSG_RESULT(found $csharp_path/bin/mcs)
    474     CSHARP_PATH="$csharp_path"
    475     BUILD_WRAPPERS="$BUILD_WRAPPERS dso csharp"
    476   fi
    477 fi
    478 
    479 AC_ARG_ENABLE(gettext, [  --enable-gettext	Enables gettext message translation],
    480   [if test $enableval = yes; then
    481      dnl Check for gettext
    482      AC_CHECK_FUNC(gettext, [
    483        cs_cv_libintl=no
    484        AC_CHECK_HEADER(libintl.h, [cs_cv_libintl=yes])
    485        if test $cs_cv_libintl = yes; then
    486          AC_DEFINE(ENABLE_GETTEXT)
    487          AC_MSG_RESULT(Enabling gettext message translation)
    488        else
    489          AC_MSG_RESULT(not found)
    490        fi
    491      ])
    492    fi])
    493 
    494 
    495 AC_SUBST(RANLIB)
    496 AC_SUBST(AR)
    497 AC_SUBST(USE_MINGW32)
    498 AC_SUBST(APXS_PATH)
    499 AC_SUBST(PERL)
    500 AC_SUBST(RUBY)
    501 AC_SUBST(BUILD_WRAPPERS)
    502 AC_SUBST(JAVA_PATH)
    503 AC_SUBST(JAVA_INCLUDE_PATH)
    504 AC_SUBST(PYTHON)
    505 AC_SUBST(PYTHON_INC)
    506 AC_SUBST(PYTHON_LIB)
    507 AC_SUBST(PYTHON_SITE)
    508 AC_SUBST(EXTRA_UTL_SRC)
    509 AC_SUBST(EXTRA_UTL_OBJS)
    510 AC_SUBST(CSHARP_PATH)
    511 
    512 AC_OUTPUT(rules.mk)
    513