1AC_INIT(modules/c/src/apache2/mod_caucho.c) 2AC_PREFIX_DEFAULT(`pwd`) 3AC_CONFIG_AUX_DIR(automake) 4 5dnl Get os info 6AC_CANONICAL_SYSTEM 7 8AM_INIT_AUTOMAKE(resin, 3.1.1) 9 10FULL_VERSION="Resin $VERSION -- `date`" 11AC_SUBST(FULL_VERSION) 12 13dnl Checks for programs. 14AC_PROG_CC 15AC_PROG_LD 16AC_PROG_EGREP 17 18dnl Checks for poll.h 19AC_CHECK_HEADER(sys/poll.h, [ CFLAGS="$CFLAGS -DPOLL" ]) 20dnl Checks for epoll.h 21AC_CHECK_HEADER(sys/epoll.h, [ CFLAGS="$CFLAGS -DEPOLL" ]) 22 23AC_PROG_LIBTOOL 24# 25# libtool stuff 26# 27if test -z "${LTFLAGS}"; then 28 LTFLAGS="--silent" 29fi 30 31LIBTOOL_SCRIPT="`pwd`/libtool" 32LIBTOOL="${LIBTOOL_SCRIPT} ${LTFLAGS}" 33libtoolversion=`${SHELL} ${LIBTOOL_SCRIPT} --version` 34case $libtoolversion in 35 *1.4*) 36 SH_LIBTOOL="${LIBTOOL_SCRIPT}" 37 SHLTCFLAGS="-prefer-pic" 38 LTCFLAGS="-prefer-non-pic -static" 39 ;; 40 *) 41 SH_LIBTOOL="${SHELL} ${LIBTOOL_SCRIPT} ${LTFLAGS}" 42 SHLTCFLAGS="" 43 LTCFLAGS="" 44 ;; 45esac 46 47AC_SUBST(LTFLAGS) 48AC_SUBST(LIBTOOL_SCRIPT) 49AC_SUBST(LIBTOOL) 50AC_SUBST(SH_LIBTOOL) 51AC_SUBST(LTCFLAGS) 52AC_SUBST(EGREP) 53 54INCLUDES="" 55plugins=common 56LIBEXEC=libexec 57 58AC_SUBST(plugins) 59AC_SUBST(LIBEXEC) 60dnl should be unnecessary 61AC_SUBST(LD) 62 63ACLOCAL=aclocal 64AUTOMAKE=automake 65AC_SUBST(ACLOCAL) 66AC_SUBST(AUTOMAKE) 67 68# 69# additional CFLAGS 70# 71# for solaris 72CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS" 73 74# 75# --with-apache-src 76# 77AC_ARG_WITH(apache-src, 78[ --with-apache-src=DIR Apache src static compilation 79], [ 80apache_src=${withval} 81 82if test -d "${apache_src}/modules"; then 83 a=b 84elif test -d "${apache_src}/src/modules"; then 85 apache_src=${apache_src}/src 86else 87 AC_MSG_ERROR([Can't find valid Apache source ${apache_src}]) 88fi 89 90echo "using Apache source in ${apache_src}" 91 92mkdir ${apache_src}/modules/caucho 2> /dev/null 93cp modules/c/src/common/*.c ${apache_src}/modules/caucho 94cp modules/c/src/common/*.h ${apache_src}/modules/caucho 95cp modules/c/src/apache/*.c ${apache_src}/modules/caucho 96 97cat > ${apache_src}/modules/caucho/Makefile.tmpl <<'END' 98LIB=libcaucho.a 99OBJS=mod_caucho.o stream.o config.o registry.o memory.o 100 101OBJS_PIC=mod_caucho.lo stream.lo config.lo registry.lo memory.lo 102 103$(OBJS) $(OBJS_PIC): Makefile 104 105all: lib 106 107lib: $(LIB) 108 109libcaucho.a: $(OBJS) 110 rm -f $@ 111 ar cr $@ $(OBJS) 112 $(RANLIB) $@ 113 114libcaucho.o: $(OBJS) 115 $(LD) $(LDFLAGS) -r -o $@ $(OBJS) 116 117libcaucho.so: $(OBJS_PIC) 118 rm -f $@ 119 $(LD_SHLIB) $(LDFLAGS_SHLIB) -o $@ $(OBJS_PIC) $(LIBS_SHLIB) 120 121.SUFFIXES: .o .lo 122 123.c.o: 124 $(CC) -c $(INCLUDES) $(CFLAGS) $< 125 126.c.lo: 127 $(CC) -c $(INCLUDES) $(CFLAGS) $(CFLAGS_SHLIB) $< && mv $*.o $*.lo 128 129# DO NOT REMOVE 130mod_caucho.o: cse.h 131mod_caucho.lo: cse.h 132stream.o: cse.h 133stream.lo: cse.h 134config.o: cse.h 135config.lo: cse.h 136registry.o: cse.h 137registry.lo: cse.h 138memory.o: cse.h 139memory.lo: cse.h 140 141END 142 143cat > ${apache_src}/modules/caucho/Makefile.libdir <<'END' 144# dummy 145END 146 147#grep caucho ${apache_src}/src/Configuration.tmpl >/dev/null 2>/dev/null 148#if test "$?" -ne 0; then 149# cat >> ${apache_src}/src/Configuration.tmpl <<'END' 150## mod_caucho incorporates Resin into Apache. 151# 152## AddModule modules/caucho/libcaucho.a 153#END 154#fi 155 156]) 157# 158# --with-apache 159# 160AC_ARG_WITH(apache, 161[ --with-apache=DIR the Apache root directory 162], [ 163apache_dir=${withval} 164 165if test "${apache_dir}" = "yes"; then 166 apache_dir=/usr/local/apache 167fi 168 169if test ! -d "${apache_dir}"; then 170 AC_MSG_ERROR([--with-apache=${apache_dir} is not a valid Apache directory]) 171fi 172 173apache=1 174]) 175 176# 177# --with-apxs 178# 179AC_ARG_WITH(apxs, 180[ --with-apxs=PATH the Apache configuration utility 181], [ 182apxs=${withval} 183 184if test "${apxs}" = "yes"; then 185 apxs=apxs 186fi 187 188apache=1 189]) 190 191# 192# --with-apache-eapi 193# 194AC_ARG_WITH(apache-eapi, 195[ --with-apache-eapi=DIR Apache eapi support 196], [ 197apache_eapi=${withval} 198]) 199 200# 201# --with-apache-include 202# 203AC_ARG_WITH(apache-include, 204[ --with-apache-include=DIR the Apache include directory 205], [ 206apache_include=${withval} 207 208if test "${apache_include}" = "yes"; then 209 apache_include= 210fi 211 212apache=1 213]) 214 215# 216# --with-apache-libexec 217# 218AC_ARG_WITH(apache-libexec, 219[ --with-apache-libexec=DIR the Apache module directory 220], [ 221apache_libexec=${withval} 222 223if test "${apache_libexec}" = "yes"; then 224 apache_libexec= 225fi 226 227apache=1 228]) 229 230# 231# --with-apache-conf 232# 233AC_ARG_WITH(apache-conf, 234[ --with-apache-conf=DIR the Apache configuration 235], [ 236apache_conf=${withval} 237 238if test "${apache_conf}" = "yes"; then 239 apache_conf= 240fi 241 242apache=1 243]) 244 245apache_cflags= 246 247# 248# --with-apache-cflags 249# 250AC_ARG_WITH(apache-cflags, 251[ --with-apache-cflags=flags flags for compiling mod_caucho 252], [ 253apache_cflags=${withval} 254 255apache=1 256]) 257 258# 259# check that apxs is okay 260# 261if test -n "${apxs}"; then 262 ${apxs} -q PREFIX >/dev/null 2>/dev/null 263 if test "$?" -ne 0; then 264 AC_MSG_ERROR(bad apxs ${apxs}) 265 fi 266elif test -x "${apache_bin}/apxs"; then 267 apxs=${apache_bin}/apxs 268elif test -x "${apache_dir}/bin/apxs"; then 269 apxs=${apache_dir}/bin/apxs 270elif test -x "${apache_dir}/sbin/apxs"; then 271 apxs=${apache_dir}/sbin/apxs 272elif test -x "/sbin/apxs"; then 273 apxs=/sbin/apxs 274elif test -x "/usr/sbin/apxs"; then 275 apxs=/usr/sbin/apxs 276fi 277 278# 279# heuristics for finding the Apache include directory 280# 281if test -z "${apache_include}" -a -n "${apxs}"; then 282 apache_include=`${apxs} -q INCLUDEDIR` 283fi 284 285if test -z "${apache_include}" -a -r "${apache_dir}/include/httpd.h"; then 286 apache_include=${apache_dir}/include 287fi 288 289if test -n "${apache_include}"; then 290 APACHE_INC="-I${apache_include}" 291fi 292 293# 294# deal with stronghold 295# 296if test -z "${apache_include}" -a -r "${apache_dir}/src/include/httpd.h"; then 297 apache_include=${apache_dir}/src/include 298 299 APACHE_INC="-I${apache_dir}/src/include" 300 APACHE_INC="-I${apache_dir}/ssl/include $APACHE_INC" 301 APACHE_INC="-I${apache_dir}/src/os/unix $APACHE_INC" 302fi 303 304if test -n "$apache" -a ! -r ${apache_include}/httpd.h; then 305 AC_MSG_ERROR([Can't find Apache include directory ${apache_include}]) 306fi 307 308# 309# heuristics for finding the Apache bin directory 310# 311if test -n "${apache_bin}"; then 312 a=b 313elif test -x "${apxs}"; then 314 apache_bin=`${apxs} -q SBINDIR` 315 apache_exe="${apache_bin}/`${apxs} -q TARGET`" 316elif test -n "${apache_dir}"; then 317 apache_bin="${apache_dir}/bin" 318fi 319 320if test -n "${apache_exe}"; then 321 a=b; 322elif test -z "${apache_bin}"; then 323 a=b; 324elif test -x "${apache_bin}/httpd"; then 325 apache_exe="${apache_bin}/httpd" 326elif test -x "${apache_bin}/apache"; then 327 apache_exe="${apache_bin}/apache" 328elif test -x "${apache_bin}/httpd2"; then 329 apache_exe="${apache_bin}/httpd2" 330elif test -x "${apache_bin}/apache2"; then 331 apache_exe="${apache_bin}/apache2" 332fi 333 334if test -n "${apache_exe}" -a ! -x "${apache_exe}"; then 335 AC_MSG_ERROR([Can't find Apache binary in directory ${apache_exe}]) 336fi 337 338# 339# heuristics for finding the Apache module directory 340# 341if test -z "${apache_libexec}" -a -n "${apxs}"; then 342 apache_libexec=`${apxs} -q LIBEXECDIR` 343fi 344 345if test -z "${apache_libexec}" -a -d "${apache_dir}/libexec"; then 346 apache_libexec=${apache_dir}/libexec 347fi 348 349if test -z "${apache_libexec}" -a -d "${apache_dir}/modules"; then 350 apache_libexec=${apache_dir}/modules 351fi 352 353if test -n "$apache" -a ! -d "${apache_libexec}"; then 354 AC_MSG_ERROR([Can't find Apache module directory ${apache_libexec}]) 355fi 356 357# 358# Heuristics for finding the Apache configuration directory 359# 360 361if test -z "${apache_conf}" -a -n "${apxs}"; then 362 apache_confdir=`${apxs} -q SYSCONFDIR` 363 364 if test -r "${apache_confdir}"/httpd.conf; then 365 apache_conf=${apache_confdir}/httpd.conf 366 elif test -r "${apache_confdir}"/apache.conf; then 367 apache_conf=${apache_confdir}/apache.conf 368 elif test -r "${apache_confdir}"/apache2.conf; then 369 apache_conf=${apache_confdir}/apache2.conf 370 elif test -r "${apache_confdir}"/httpsd.conf; then 371 apache_conf=${apache_confdir}/httpsd.conf 372 fi 373fi 374 375if test -z "${apache_conf}" -a -r "${apache_dir}/conf/httpd.conf"; then 376 apache_conf=${apache_dir}/conf/httpd.conf 377fi 378 379if test -z "${apache_conf}" -a -r "${apache_dir}/etc/httpd.conf"; then 380 apache_conf=${apache_dir}/etc/httpd.conf 381fi 382 383if test -n "$apache" -a ! -r "${apache_conf}"; then 384 AC_MSG_ERROR([Can't find Apache module configuration ${apache_conf}]) 385fi 386 387# 388# check for apr 389# 390if test -x "${apxs}"; then 391 apr_bin=`${apxs} -q APR_BINDIR 2> /dev/null` 392 if test -x "${apr_bin}/apr-config"; then 393 apr_inc=`"${apr_bin}/apr-config" --includes` 394 APACHE_INC="${APACHE_INC} ${apr_inc}" 395 elif test -x "${apr_bin}/apr-1-config"; then 396 apr_inc=`"${apr_bin}/apr-1-config" --includes` 397 APACHE_INC="${APACHE_INC} ${apr_inc}" 398 fi 399fi 400 401# 402# Apache CFLAGS 403# 404 405if test -z "$apache_cflags" -a -x "${apxs}"; then 406 if test -x "${apr_bin}/apr-config"; then 407 apache_cflags="$apache_cflags `${apr_bin}/apr-config --cppflags`" 408 apache_cflags="$apache_cflags `${apr_bin}/apr-config --cflags`" 409 elif test -x "${apr_bin}/apr-1-config"; then 410 apache_cflags="$apache_cflags `${apr_bin}/apr-1-config --cppflags`" 411 apache_cflags="$apache_cflags `${apr_bin}/apr-1-config --cflags`" 412 else 413 apache_cflags="`${apxs} -q CFLAGS`" 414 fi 415 fi 416 417if test -z "$apache_cflags" -a -x "${apache_exe}"; then 418 flags=`${apache_exe} -V | grep EAPI` 419 if test -n "$flags"; then 420 apache_cflags=-DEAPI 421 fi 422fi 423 424if test -z "$apache_dir" -a -x "${apxs}"; then 425 apache_dir=`${apxs} -q PREFIX` 426fi 427 428AC_SUBST(APACHE_INC) 429AC_SUBST(apache_libexec) 430AC_SUBST(apache_conf) 431AC_SUBST(apache_dir) 432AC_SUBST(apache_cflags) 433# 434# fill in compilation stuff 435# 436SO=so 437 438is_gcc=`${CC} -v 2>&1 | grep gcc` 439is_gnu_ld=`${LD} -v 2>&1 | grep GNU` 440 441# 442# Use apxs if it's available 443# 444if test -z "${LD_SHLIB}"; then 445 if test -n "${apxs}"; then 446 CFLAGS_SHLIB=`${apxs} -q CFLAGS_SHLIB` 447 LD_SHLIB=`${apxs} -q LD_SHLIB` 448 LDFLAGS_SHLIB=`${apxs} -q LDFLAGS_SHLIB` 449 LIBS_SHLIB=`${apxs} -q LIBS_SHLIB` 450 451 echo "Using shared library flags from ${apxs}" 452 fi 453fi 454# 455# --with-java-home 456# 457AC_ARG_WITH(java-home, 458[ --with-java-home=DIR java home 459], [ 460JAVA_HOME=${withval} 461]) 462 463if test -z "$JAVA_HOME"; then 464 java=`which java 2>/dev/null` 465 if test $? = "0"; then 466 while test -h "$java" 467 do 468 head=`dirname $java` 469 tail=`/bin/ls -l $java | awk '{ print $NF; }'` 470 if test -f "$tail"; then 471 java=$tail 472 else 473 java=$head/$tail 474 fi 475 done 476 477 javabin=`dirname $java` 478 JAVA_HOME=`cd $javabin/..; pwd` 479 480 # we're in $JAVA_HOME/jre 481 if test -f "$JAVA_HOME/lib/rt.jar"; then 482 JAVA_HOME=`cd $JAVA_HOME/..; pwd` 483 elif test -d "/usr/java"; then 484 JAVA_HOME=/usr/java 485 elif test -f "/System/Library/Frameworks/JavaVM.framework"; then 486 JAVA_HOME="/System/Library/Frameworks/JavaVM.framework" 487 fi 488 elif test -d "/usr/java"; then 489 JAVA_HOME=/usr/java 490 elif test -f "/System/Library/Frameworks/JavaVM.framework"; then 491 JAVA_HOME="/System/Library/Frameworks/JavaVM.framework" 492 fi 493fi 494 495echo $ac_n "checking for JAVA_HOME... $JAVA_HOME" 496 497if test ! -d "$JAVA_HOME"; then 498 AC_MSG_ERROR([Can't find valid JAVA_HOME ${JAVA_HOME}]) 499fi 500 501AC_SUBST(JAVA_HOME) 502# 503# Resin home 504# 505resin_home=`pwd` 506AC_SUBST(resin_home) 507 508 509# 510# 64bit heuristics 511# 512echo -n "checking if Java is 64-bit... " 513 514tmpname="/tmp/java$$.out" 515 516$JAVA_HOME/bin/java -version 2> $tmpname 517grep "64-Bit" $tmpname 1> /dev/null 518if test "$?" = "0"; then 519 b64_jni=true 520fi 521 522grep "amd64-64" $tmpname 1> /dev/null 523if test "$?" = "0"; then 524 b64_jni=true 525fi 526 527grep "x86_64" $tmpname 1> /dev/null 528if test "$?" = "0"; then 529 b64_jni=true 530fi 531 532$JAVA_HOME/bin/sparcv9/java -version 2> $tmpname 533grep "64-Bit" $tmpname 1> /dev/null 534 535if test "$?" = "0"; then 536 b64_jni=true 537fi 538 539$JAVA_HOME/bin/amd64/java -version 2> $tmpname 540grep "64-Bit" $tmpname 1> /dev/null 541 542if test "$?" = "0"; then 543 b64_jni=true 544fi 545 546# Require user to use --enable-64bit if the version is optional 547# in the javac 548# 549#$JAVA_HOME/bin/java -d64 -version 2> $tmpname 550#grep "64-Bit" $tmpname 1> /dev/null 551 552#if test "$?" = "0"; then 553# b64_jni=true 554#fi 555 556if test -n "$b64_jni"; then 557 echo "yes" 558else 559 echo "no" 560fi 561 562rm -f $tmpname 563 564# 565# --enable-64bit 566# 567AC_ARG_ENABLE(64bit, 568[ --enable-64bit Enable 64 bit], 569[case "${enableval}" in 570 yes) b64=true ;; 571 no) b64=""; b64_jni="" ;; 572 *) AC_MSG_ERROR(bad value ${enableval} for --enable-64bit) ;; 573 esac],[]) 574 575if test -n "${b64}"; then 576 b64_jni=true 577fi 578 579if test -n "${b64_jni}"; then 580 CFLAGS="$CFLAGS -DB64" 581 LIBEXEC=libexec64 582fi 583 584# 585# --enable-lfs 586# 587AC_ARG_ENABLE(lfs, 588[ --enable-lfs Enable large file source support], 589[case "${enableval}" in 590 yes) lfs=true ;; 591 no) lfs="";; 592 *) AC_MSG_ERROR(bad value ${enableval} for --enable-lfs) ;; 593 esac],[]) 594 595if test -n "${lfs}"; then 596 CFLAGS_JNI="$CFLAGS_JNI -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64" 597fi 598 599# 600# fill in based on known configurations 601# 602if test -z "${LD_SHLIB}"; then 603 LD_SHLIB=${LD} 604 CFLAGS_SHLIB="-fpic" 605 LDFLAGS_SHLIB="-shared" 606 607 case "$target_os" in 608 linux*) 609 LD_SHLIB=${CC} 610 611 if test -n "$b64"; then 612 CFLAGS="$CFLAGS -m64 -fPIC" 613 LDFLAGS_SHLIB="-shared -fPIC" 614 fi 615 if test -n "$b64_jni"; then 616 CFLAGS_JNI="$CFLAGS_JNI -m64 -fPIC" 617 LDFLAGS_SHLIB="-shared -fPIC" 618 fi 619 ;; 620 621 *solaris*) 622 if test -n "$is_gcc"; then 623 CFLAGS_SHLIB="-fPIC" 624 625 if test -n "$b64"; then 626 CFLAGS="$CFLAGS -m64" 627 fi 628 if test -n "$b64_jni"; then 629 CFLAGS_JNI="$CFLAGS_JNI -m64" 630 fi 631 else 632 CFLAGS_SHLIB="-KPIC" 633 634 if test -n "$b64"; then 635 CFLAGS="$CFLAGS -xarch=v9" 636 fi 637 if test -n "$b64_jni"; then 638 CFLAGS_JNI="$CFLAGS_JNI -xarch=v9" 639 fi 640 fi 641 642 if test -n "$is_gnu_ld"; then 643 LDFLAGS_SHLIB="-shared" 644 else 645 LDFLAGS_SHLIB="-G -fPIC" 646 fi 647 648 if test -n "$b64"; then 649 LDFLAGS_SHLIB="$LDFLAGS_SHLIB -m64" 650 fi 651 ;; 652 653 darwin*) 654 CFLAGS_SHLIB="-DSHARED_MODULE" 655 LD_SHLIB=${CC} 656 LDFLAGS_SHLIB="-dynamiclib -undefined suppress -flat_namespace" 657 if test -n "$b64"; then 658 CFLAGS="$CFLAGS -arch x86_64" 659 LDFLAGS_SHLIB="$LDFLAGS_SHLIB -arch x86_64" 660 fi 661 if test -n "$b64_jni"; then 662 CFLAGS_JNI="$CFLAGS_JNI -arch x86_64" 663 LDFLAGS_SHLIB="$LDFLAGS_SHLIB -arch x86_64" 664 fi 665 ;; 666 667 *freebsd*) 668 CFLAGS="$CFLAGS -fPIC" 669 ;; 670 671 *aix*) 672 if test -z "$is_gcc"; then 673 CFLAGS_SHLIB="-bexpall" 674 else 675 CFLAGS_SHLIB="-fpic" 676 fi 677 LDFLAGS_SHLIB="" 678 ;; 679 680 *hpux*) 681 if test -z "$is_gcc"; then 682 CFLAGS_SHLIB="+z" 683 else 684 CFLAGS_SHLIB="-fpic" 685 fi 686 LDFLAGS_SHLIB="-b" 687 ;; 688 esac 689 690 case "$target_cpu" in 691 x86_64) 692 if test -z "$b64_jni"; then 693 CFLAGS_JNI="$CFLAGS_JNI -m32" 694 LDFLAGS_SHLIB="$LDFLAGS_SHLIB -melf_i386" 695 fi 696 ;; 697 esac 698fi 699 700case "$target_os" in 701 linux*) 702 CFLAGS="$CFLAGS -DHAS_SOCK_TIMEOUT" 703 ;; 704 darwin*) 705 CFLAGS="$CFLAGS -DHAS_SOCK_TIMEOUT" 706 ;; 707esac 708 709if test -z "$apache"; then 710 a=b 711elif test -r "${apache_include}/apr_thread_mutex.h" \ 712 -o -n "${apr_inc}" \ 713 -o -r "${apache_confdir}/apache2.conf"; then 714 echo "Using Apache 2.0 configuration ${apache_conf}" 715 716 plugins="$plugins apache2" 717elif test -n "${apache_include}/ap.h"; then 718 echo "Using Apache 1.3 configuration ${apache_conf}" 719 720 plugins="$plugins apache1" 721else 722 AC_MSG_ERROR([Can't find valid Apache directory ${apache_inc}]) 723fi 724 725if test -n "$apache_cflags"; then 726 echo "Using Apache CFLAGS: $apache_cflags" 727fi 728 729# 730# Using Perl if it's available. 731# 732PERL=`which perl` 733if test -z "${LD_SHLIB}"; then 734 if test -z "${LD_SHLIB}" -a "x`$PERL -V:dlsrc 2>/dev/null | grep dlopen`" != "x"; then 735 PCC="`$PERL -V:cc | cut -d\' -f2`" 736 if test "${PCC}" = "${CC}"; then 737 CFLAGS_SHLIB="`$PERL -V:cccdlflags | cut -d\' -f2`" 738 LDFLAGS_SHLIB="`$PERL -V:lddlflags | cut -d\' -f2`" 739 LD_SHLIB="`$PERL -V:ld | cut -d\' -f2`" 740 741 has_clflags=1 742 743 echo "Using shared library flags from Perl" 744 fi 745 fi 746fi 747 748#if test -z "${LD_SHLIB}"; then 749# AC_MSG_ERROR([Can't determine compilation flags.]); 750#fi 751 752# 753# OS which can handle the Resin launcher 754# 755resin_pro_plugin= 756if test -r "modules/c/src/resin/Makefile.in"; then 757 resin_pro_plugin="resin" 758fi 759 760resin_ssl_plugin= 761if test -r "modules/c/src/resinssl/Makefile.in"; then 762 resin_ssl_plugin="resinssl" 763fi 764 765resin_plugin= 766 767case "$target_cpu" in 768 i?86) 769 CPU=i386 770 resin_plugin="$resin_pro_plugin $resin_ssl_plugin" 771 CFLAGS_JNI="$CFLAGS_JNI -D_FILE_OFFSET_BITS=64" 772 ;; 773 774 sparc*) 775 if test -n "${b64_jni}"; then 776 CPU=sparcv9 777 else 778 CPU=sparc 779 fi 780 resin_plugin="$resin_pro_plugin $resin_ssl_plugin" 781 ;; 782 783 x86_64) 784 CPU=$target_cpu 785 resin_plugin="$resin_pro_plugin $resin_ssl_plugin" 786 CFLAGS_JNI="$CFLAGS_JNI -D_FILE_OFFSET_BITS=64" 787 ;; 788 789 *) 790 CPU=$target_cpu 791 ;; 792esac 793 794case "$target_os" in 795 linux*) 796 jni_os=linux 797 PROXY_LIBS="-lpthread -lc" 798 ;; 799 800 *solaris*) 801 jni_os=solaris 802 CFLAGS="$CFLAGS -D__SOLARIS__" 803 PROXY_LIBS='-lnsl -lsocket -lthread' 804 ;; 805 806 *freebsd*) 807 PROXY_LIBS='-lpthread' 808 jni_os=freebsd 809 810 tmp=`ldd $JAVA_HOME/bin/java | sed 's/.*=>//' | grep -c libc_r` 811 tmp=$tmp `ldd $JAVA_HOME/bin/java | sed 's/.*=>//' | grep -c libpthread` 812 tmp=$tmp `ldd $JAVA_HOME/bin/java | sed 's/.*=>//' | grep -c libthr` 813 814 case "$tmp" in 815 100) 816 PROXY_LIBS='-lc_r'; 817 ;; 818 010) 819 PROXY_LIBS='-lpthread'; 820 ;; 821 001) 822 PROXY_LIBS='-lthr'; 823 ;; 824 *) 825 PROXY_LIBS='-lpthread' 826 echo "Using -lpthread as default" 827 ;; 828 esac 829 ;; 830 831 *darwin*) 832 LD=gcc 833 SO=jnilib 834 resin_plugin="$resin_pro_plugin $resin_ssl_plugin" 835 ;; 836 837 *hpux*) 838 if test -r "$JAVA_HOME/include/hpux/jni_md.h"; then 839 jni_os=hpux 840 else 841 jni_os=hp-ux 842 fi 843 ;; 844 845 *aix*) 846 jni_os=aix 847 ;; 848esac 849 850AC_SUBST(CPU) 851AC_SUBST(OS) 852AC_SUBST(SO) 853AC_SUBST(CFLAGS) 854AC_SUBST(CFLAGS_SHLIB) 855AC_SUBST(LD_SHLIB) 856AC_SUBST(LDFLAGS_SHLIB) 857AC_SUBST(LIBS_SHLIB) 858AC_SUBST(PROXY_LIBS) 859AC_SUBST(SSL_LIBS) 860 861# 862# --with-jni-include 863# 864AC_ARG_WITH(jni-include, 865[ --with-jni-include="-Idir -Idir" jni include string 866], [ 867JNI_INCLUDE=${withval} 868JNI="yes" 869]) 870 871# 872# --enable-jni 873# 874AC_ARG_ENABLE(jni, 875[ --enable-jni Turn on jni], 876[case "${enableval}" in 877 yes) JNI=true ;; 878 no) JNI="" ;; 879 *) AC_MSG_ERROR(bad value ${enableval} for --enable-jni) ;; 880 esac],[JNI=""]) 881 882if test -n "$JNI_INCLUDE"; then 883 JNI=yes 884elif test -r "$JAVA_HOME/include/jni_md.h"; then 885 JNI_INCLUDE="-I$JAVA_HOME/include" 886 JNI=yes 887 echo "checking for JNI in $JAVA_HOME/include ... found" 888elif test -r "$JAVA_HOME/include/$jni_os/jni_md.h"; then 889 JNI_INCLUDE="-I$JAVA_HOME/include -I$JAVA_HOME/include/$jni_os" 890 JNI=yes 891 echo "checking for JNI in $JAVA_HOME/include/$jni_os ... found" 892elif test -r "/System/Library/Frameworks/JavaVM.framework/Headers/jni_md.h"; then 893 # Darwin 894 echo "checking for JNI in /System/Library/Frameworks/JavaVM.framework/Headers ... found" 895 JNI_INCLUDE="-I/System/Library/Frameworks/JavaVM.framework/Headers" 896 JNI=yes 897elif test -r "$JAVA_HOME/../Headers/jni_md.h"; then 898 # Darwin 899 echo "checking for JNI in $JAVA_HOME/../Headers ... found" 900 JNI_INCLUDE="-I$JAVA_HOME/../Headers" 901 JNI=yes 902elif test -r "$JAVA_HOME/include/jni.h"; then 903 JNI_INCLUDE="-I$JAVA_HOME/include" 904 JNI=yes 905 echo "checking for JNI in $JAVA_HOME/include ... found" 906else 907 JNI="" 908 AC_MSG_WARN([Can't find JNI directory ${JAVA_HOME}/include/$jni_os]) 909fi 910 911if test -r "$JAVA_HOME/include/jvmti.h"; then 912 echo "Using JVMTI for class reloading" 913 914 CFLAGS="$CFLAGS -DHAS_JVMTI" 915elif test -r "$JAVA_HOME/../Headers/jvmti.h"; then 916 echo "Using JVMTI for class reloading" 917 918 CFLAGS="$CFLAGS -DHAS_JVMTI" 919fi 920 921if test -r "$JAVA_HOME/include/jvmdi.h"; then 922 echo "Using JVMDI for class reloading" 923 924 CFLAGS="$CFLAGS -DHAS_JVMDI" 925elif test -r "$JAVA_HOME/../Headers/jvmdi.h"; then 926 echo "Using JVMDI for class reloading" 927 928 CFLAGS="$CFLAGS -DHAS_JVMDI" 929fi 930 931if test -n "$JNI"; then 932 plugins="$plugins $resin_plugin resin_os" 933else 934 echo "Can't JNI include files in JAVA_HOME: $JAVA_HOME" 935fi 936 937AC_SUBST(JNI) 938AC_SUBST(JNI_INCLUDE) 939 940# 941# --enable-ssl 942# 943AC_ARG_ENABLE(ssl, 944[ --enable-ssl Turn on ssl], 945[case "${enableval}" in 946 yes) ENABLE_SSL=true ;; 947 no) ENABLE_SSL="false" ;; 948 *) AC_MSG_ERROR(bad value ${enableval} for --enable-ssl) ;; 949 esac],[ENABLE_SSL=""]) 950 951# 952# --with-openssl 953# 954AC_ARG_WITH(openssl, 955[ --with-openssl=DIR Openssl directory 956], [ 957OPENSSL=${withval} 958OPENSSL_INCLUDE=${OPENSSL}/include 959OPENSSL_LIB=${OPENSSL}/lib 960]) 961 962# 963# --with-openssl-include 964# 965AC_ARG_WITH(openssl-include, 966[ --with-openssl-include=DIR Openssl include directory 967], [ 968OPENSSL_INCLUDE=${withval} 969 970if test ! -r "${OPENSSL_INCLUDE}/openssl/ssl23.h"; then 971 AC_MSG_ERROR([Can't find valid OpenSSL include ${OPENSSL_INCLUDE}]) 972fi 973]) 974 975# 976# --with-openssl-lib 977# 978AC_ARG_WITH(openssl-lib, 979[ --with-openssl-lib=DIR Openssl lib directory 980], [ 981OPENSSL_LIB=${withval} 982 983if test ! -r "${OPENSSL_LIB}/libssl.a" -a \ 984 ! -r "${OPENSSL_LIB}/libssl.dylib" -a \ 985 ! -r "${OPENSSL_LIB}/libssl.so"; then 986 AC_MSG_ERROR([Can't find valid OpenSSL library ${OPENSSL_LIB}]) 987fi 988]) 989 990if test "${ENABLE_SSL}" = false; then 991 foo=bar 992elif test -n "${OPENSSL_INCLUDE}"; then 993 foo=bar 994elif test -r ${OPENSSL}/include/openssl/ssl23.h; then 995 OPENSSL_INCLUDE=${OPENSSL}/include 996elif test -r /usr/include/openssl/ssl23.h; then 997 OPENSSL_INCLUDE=/usr/include 998elif test -r /usr/local/include/openssl/ssl23.h; then 999 OPENSSL_INCLUDE=/usr/local/include 1000elif test -r /usr/local/ssl/include/openssl/ssl23.h; then 1001 OPENSSL_INCLUDE=/usr/local/ssl/include 1002fi 1003 1004if test "${ENABLE_SSL}" = false; then 1005 foo=bar 1006 1007elif test -n "${OPENSSL_LIB}"; then 1008 foo=bar 1009 1010elif test -n "${b64_jni}" -a -r /lib64/libcrypto.so; then 1011 OPENSSL_LIB=/lib64 1012elif test -n "${b64_jni}" -a -r /usr/lib64/libcrypto.so; then 1013 OPENSSL_LIB=/usr/lib64 1014 1015elif test -r /lib/libcrypto.so; then 1016 OPENSSL_LIB=/lib 1017elif test -r /lib/libcrypto.dylib; then 1018 OPENSSL_LIB=/lib 1019 1020elif test -r /usr/lib/libcrypto.so; then 1021 OPENSSL_LIB=/usr/lib 1022elif test -r /usr/lib/libcrypto.dylib; then 1023 OPENSSL_LIB=/usr/lib 1024 1025elif test -r /usr/local/ssl/lib/libcrypto.so; then 1026 OPENSSL_LIB=/usr/local/ssl/lib 1027elif test -r /usr/local/ssl/lib/libcrypto.dylib; then 1028 OPENSSL_LIB=/usr/local/ssl/lib 1029elif test -r ${OPENSSL}/lib/libcrypto.a; then 1030 OPENSSL_LIB=${OPENSSL}/lib 1031elif test -r /usr/local/ssl/lib/libcrypto.a; then 1032 OPENSSL_LIB=/usr/local/ssl/lib 1033elif test -r /usr/local/lib/libssl.a; then 1034 OPENSSL_LIB=/usr/local/lib 1035elif test -r /usr/lib/libssl.a; then 1036 OPENSSL_LIB=/usr/lib 1037fi 1038 1039if test -z "${OPENSSL_INCLUDE}"; then 1040 foo=bar 1041elif test -r "${OPENSSL_LIB}/libssl.so"; then 1042 SSL_LIBS="${SSL_LIBS} -lssl" 1043elif test -r "${OPENSSL_LIB}/libssl.dylib"; then 1044 SSL_LIBS="${SSL_LIBS} -lssl" 1045elif test -r "${OPENSSL_LIB}/libssl3.so"; then 1046 SSL_LIBS="${SSL_LIBS} -lssl3" 1047elif test -r "${OPENSSL_LIB}/libssl3.dylib"; then 1048 SSL_LIBS="${SSL_LIBS} -lssl3" 1049elif test -r "${OPENSSL_LIB}/libssl.a"; then 1050 SSL_LIBS="${SSL_LIBS} ${OPENSSL_LIB}/libssl.a" 1051elif test -r "${OPENSSL_LIB}/libssl3.a"; then 1052 SSL_LIBS="${SSL_LIBS} ${OPENSSL_LIB}/libssl3.a" 1053else 1054 # probably an error 1055 SSL_LIBS="${SSL_LIBS} -lssl" 1056fi 1057 1058if test -z "${OPENSSL_INCLUDE}"; then 1059 foo=bar 1060elif test -r "${OPENSSL_LIB}/libcrypto.so"; then 1061 SSL_LIBS="${SSL_LIBS} -lcrypto" 1062elif test -r "${OPENSSL_LIB}/libcrypto.dylib"; then 1063 SSL_LIBS="${SSL_LIBS} -lcrypto" 1064elif test -r "${OPENSSL_LIB}/libcrypto.a"; then 1065 SSL_LIBS="${SSL_LIBS} ${OPENSSL_LIB}/libcrypto.a" 1066else 1067 # probably an error 1068 SSL_LIBS="${SSL_LIBS} -lcrypto" 1069fi 1070 1071SSL_OBJ=ssl_stub.o 1072 1073if test "${ENABLE_SSL}" = false; then 1074 echo "Openssl is not enabled" 1075elif test -z "${OPENSSL_INCLUDE}"; then 1076 echo "Openssl library was not found" 1077#elif test ! -r "${OPENSSL_LIB}/libcrypto.so" -a \ 1078# ! -r "${OPENSSL_LIB}/libcrypto.dylib" -a \ 1079# ! -r "${OPENSSL_LIB}/libcrypto.a" ; then 1080# AC_MSG_ERROR([Can't find valid OpenSSL library in ${OPENSSL_LIB}]) 1081elif test ! -r "${OPENSSL_INCLUDE}/openssl/ssl23.h"; then 1082 AC_MSG_ERROR([Can't find valid OpenSSL include in ${OPENSSL_INCLUDE}]) 1083else 1084 echo "Using openssl include in ... ${OPENSSL_INCLUDE}" 1085 echo "Using openssl lib in ... ${OPENSSL_LIB}" 1086 echo "Using openssl libraries in ... ${SSL_LIBS}" 1087 1088 if test -x "${apache_dir}/bin/httpd"; then 1089 apache_ssl=`${apache_dir}/bin/httpd -l 2>&1 | grep ssl` 1090 if test -n "$apache_ssl"; then 1091 CFLAGS="$CFLAGS -DOPENSSL" 1092 echo "Enabling ssl for mod_caucho" 1093 fi 1094 elif test -x "${apache_dir}/bin/httpd2"; then 1095 apache_ssl=`${apache_dir}/bin/httpd2 -l 2>&1 | grep ssl` 1096 if test -n "$apache_ssl"; then 1097 CFLAGS="$CFLAGS -DOPENSSL" 1098 echo "Enabling ssl for mod_caucho" 1099 fi 1100 fi 1101 1102 if test -r "${OPENSSL_INCLUDE}/openssl/engine.h"; then 1103 CFLAGS_OPENSSL="$OPENSSL_CFLAGS -DSSL_ENGINE" 1104 fi 1105 1106 if test -n "${OPENSSL_INCLUDE}"; then 1107 INCLUDES="$INCLUDES -I${OPENSSL_INCLUDE}" 1108 fi 1109 SSL_OBJ=ssl.o 1110 if test -n "${OPENSSL_LIB}"; then 1111 LDFLAGS_SHLIB="${LDFLAGS_SHLIB} -L${OPENSSL_LIB}" 1112 fi 1113 # PROXY_LIBS="$PROXY_LIBS ${OPENSSL_LIB}/libssl.a ${OPENSSL_LIB}/libcrypto.a" 1114fi 1115 1116if test -d /usr/kerberos/include; then 1117 INCLUDES="$INCLUDES -I/usr/kerberos/include" 1118fi 1119 1120# 1121# test the open ssl 1122# 1123if test -n "${OPENSSL_LIB}"; then 1124cat >conftest.$ac_ext <<_ACEOF 1125#include <openssl/ssl.h> 1126#include <openssl/rsa.h> 1127#include <openssl/err.h> 1128 1129int main(int argc, char **argv) 1130{ 1131 SSLeay_add_ssl_algorithms(); 1132 SSL_load_error_strings(); 1133 1134#if OPENSSL_VERSION_NUMBER >= 0x00907000L 1135 if (0) 1136 ERR_print_errors_cb(0, 0); 1137#endif 1138 1139 return 0; 1140} 1141_ACEOF 1142 1143${CC} -o conftest ${CFLAGS_OPENSSL} ${CFLAGS} ${INCLUDES} conftest.$ac_ext -L${OPENSSL_LIB} ${SSL_LIBS} ${PROXY_LIBS} 1>/dev/null 2>/dev/null 1144 1145if test "$?" != 0; then 1146 ${CC} -o conftest ${CFLAGS_OPENSSL} ${CFLAGS} ${INCLUDES} conftest.$ac_ext -L${OPENSSL_LIB} ${SSL_LIBS} ${PROXY_LIBS} 1147 1148 AC_MSG_WARN(Can't compile SSL. Check compilation flags: ${CC} ${CFLAGS_OPENSSL} ${CFLAGS} ${INCLUDES} -L${OPENSSL_LIB} ${SSL_LIBS} ${PROXY_LIBS}) 1149 1150 resin_ssl_plugin="" 1151else 1152 ./conftest 1153 1154 if test "$?" != 0; then 1155 AC_MSG_WARN(Can't execute SSL. Check that load version in the library path: ${LD_LIBRARY_PATH} matches the expected version.) 1156 fi 1157fi 1158 1159rm -f conftest conftest.$ac_ext 1160fi 1161 1162AC_SUBST(INCLUDES) 1163AC_SUBST(CFLAGS_OPENSSL) 1164AC_SUBST(CFLAGS_JNI) 1165AC_SUBST(SSL_OBJ) 1166 1167PERL="perl" 1168# 1169# --with-perl 1170# 1171AC_ARG_WITH(perl, 1172[ --with-perl=DIR Perl binary location 1173], [ 1174PERL=${withval} 1175]) 1176 1177AC_SUBST(PERL) 1178 1179# 1180# --enable-debug 1181# 1182AC_ARG_ENABLE(debug, 1183[ --enable-debug Turn on debugging], 1184[case "${enableval}" in 1185 yes) debug=true ;; 1186 no) debug=false ;; 1187 *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; 1188 esac],[debug=false]) 1189 1190if test "$debug" = true; then 1191 CFLAGS="$CFLAGS -DDEBUG -Wall" 1192 HARDCORE_CFLAGS="$HARDCORE_CFLAGS -DDEBUG" 1193fi 1194 1195AC_OUTPUT([ 1196Makefile 1197modules/c/src/Makefile 1198modules/c/src/common/Makefile 1199modules/c/src/apache1/Makefile 1200modules/c/src/apache2/Makefile 1201modules/c/src/resin_os/Makefile 1202contrib/init.resin 1203], []) 1204 1205if test -n "${resin_pro_plugin}"; then 1206 AC_OUTPUT([ 1207 modules/c/src/resin/Makefile 1208 modules/c/src/resinssl/Makefile 1209 ]) 1210fi 1211