You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apreq-dev@httpd.apache.org by Joe Schaefer <jo...@sunstarsys.com> on 2006/03/07 18:16:01 UTC

Re: [PATCH] 2.2.x + apreq

Joe Schaefer <jo...@sunstarsys.com> writes:

> Joe Schaefer <jo...@sunstarsys.com> writes:
>
>> Here's a patch against the 2.2.x branch of httpd (you need to
>> apply the svn:externals properties manually).  With it I can
>> build mod_apreq (no 2) statically or dynamically.  Haven't tested
>> it at all yet tho.
>
> Here's a better patch against httpd/branches/2.2.x which gives the 
> correct linkages on *nix.

And here's a better patch against httpd/branches/2.2.x which installs
cleanly, and

    1) renames apreq_module_apache2.h to mod_apreq2.h
    2) renames the "apreq_module" struct in mod_apreq2 to "apreq2_module"
       (to match the LoadModule pattern of the other httpd modules)


Index: Makefile.in
===================================================================
--- Makefile.in	(revision 383931)
+++ Makefile.in	(working copy)
@@ -180,6 +180,7 @@
 	$(srcdir)/os/$(OS_DIR)/os.h \
 	$(srcdir)/server/mpm/$(MPM_SUBDIR_NAME)/*.h \
 	$(srcdir)/modules/aaa/mod_auth.h \
+	$(srcdir)/modules/apreq/mod_apreq2.h \
 	$(srcdir)/modules/database/mod_dbd.h \
 	$(srcdir)/modules/dav/main/mod_dav.h \
 	$(srcdir)/modules/filters/mod_include.h \
Index: server/Makefile.in
===================================================================
--- server/Makefile.in	(revision 383931)
+++ server/Makefile.in	(working copy)
@@ -32,6 +32,7 @@
 
 EXPORT_DIRS = $(top_srcdir)/include $(top_srcdir)/os/$(OS_DIR) $(top_srcdir)/modules/http
 EXPORT_DIRS_APR = $(APR_INCLUDEDIR) $(APU_INCLUDEDIR)
+EXPORT_DIRS_APREQ = $(APREQ_INCLUDEDIR)
 
 # If export_files is a dependency here, but we remove it during this stage,
 # when exports.c is generated, make will not detect that export_files is no
@@ -61,6 +62,9 @@
 	for dir in $(EXPORT_DIRS_APR); do \
 	    (ls $$dir/ap[ru].h $$dir/ap[ru]_*.h >> $$tmp 2>/dev/null); \
 	done; \
+	for dir in $(EXPORT_DIRS_APREQ); do \
+	    (ls $$dir/apreq.h $$dir/apreq_*.h >> $$tmp 2>/dev/null); \
+	done; \
 	sort -u $$tmp > $@; \
 	rm -f $$tmp
 

Property changes on: modules
___________________________________________________________________
Name: svn:externals
   + apreq  https://svn.apache.org/repos/asf/httpd/apreq/branches/apr-build-system/mod_apreq/apache2



Property changes on: srclib
___________________________________________________________________
Name: svn:externals
   + apreq  https://svn.apache.org/repos/asf/httpd/apreq/branches/apr-build-system/libapreq


Index: configure.in
===================================================================
--- configure.in	(revision 383931)
+++ configure.in	(working copy)
@@ -16,6 +16,7 @@
 sinclude(build/apr_common.m4)
 sinclude(build/find_apr.m4)
 sinclude(build/find_apu.m4)
+sinclude(build/find_apreq.m4)
 sinclude(acinclude.m4)
 
 dnl XXX we can't just use AC_PREFIX_DEFAULT because that isn't subbed in
@@ -120,6 +121,30 @@
 APU_VERSION=`$apu_config --version`
 APU_CONFIG="$APU_BINDIR/apu-`echo ${APU_VERSION} | sed 's,\..*,,'`-config"
 
+echo $ac_n "${nl}Configuring Apache HTTP Server Request library ...${nl}"
+
+APR_FIND_APREQ("$srcdir/srclib/apreq", "./srclib/apreq", 1, 1)
+
+if test "$apreq_found" = "no"; then
+  AC_MSG_ERROR([APREQ not found.  Please read the documentation.])
+fi
+
+if test "$apreq_found" = "reconfig"; then
+  APR_SUBDIR_CONFIG(srclib/apreq,
+                    [--with-apr=$apr_config --with-apr-util=$apu_config --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir],
+                    [--enable-layout=*|\'--enable-layout=*])
+  dnl We must be the last to build and the first to be cleaned
+  AP_BUILD_SRCLIB_DIRS="$AP_BUILD_SRCLIB_DIRS apreq"
+  AP_CLEAN_SRCLIB_DIRS="apreq $AP_CLEAN_SRCLIB_DIRS"
+fi
+
+APR_ADDTO(LDFLAGS, `$apreq_config --ldflags`)
+APREQ_BINDIR=`$apreq_config --bindir`
+APREQ_INCLUDEDIR=`$apreq_config --includedir`
+APREQ_VERSION=`$apreq_config --library-version`
+APREQ_CONFIG="$APREQ_BINDIR/apreq`echo ${APREQ_VERSION} | sed 's,\..*,,'`-config"
+
+
 dnl In case we picked up CC and CPP from APR, get that info into the
 dnl config cache so that PCRE uses it.  Otherwise, CC and CPP used for
 dnl PCRE and for our config tests will be whatever PCRE determines.
@@ -190,6 +215,7 @@
 # directories.
 APR_ADDTO(INCLUDES, `$apr_config --includes`)
 APR_ADDTO(INCLUDES, `$apu_config --includes`)
+APR_ADDTO(INCLUDES, `$apreq_config --includes`)
 
 echo $ac_n "${nl}Applying OS-specific hints for httpd ...${nl}"
 
@@ -564,7 +590,7 @@
   AC_DEFINE_UNQUOTED(AP_SUEXEC_UMASK, 0$withval, [umask for suexec'd process] ) ] )
 
 dnl APR should go after the other libs, so the right symbols can be picked up
-AP_LIBS="$AP_LIBS `$apu_config --link-libtool --libs` `$apr_config --link-libtool --libs`"
+AP_LIBS="$AP_LIBS `$apu_config --link-libtool --libs` `$apr_config --link-libtool --libs` `$apreq_config --link-libtool --libs`"
 APACHE_SUBST(AP_LIBS)
 APACHE_SUBST(AP_BUILD_SRCLIB_DIRS)
 APACHE_SUBST(AP_CLEAN_SRCLIB_DIRS)
Index: build/make_nw_export.awk
===================================================================
--- build/make_nw_export.awk	(revision 383931)
+++ build/make_nw_export.awk	(working copy)
@@ -37,8 +37,8 @@
 	}
 }
 
-/^[ \t]*AP([RU]|_CORE)?_DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ {
-    sub("[ \t]*AP([RU]|_CORE)?_DECLARE[^(]*[(][^)]*[)][ \t]*", "")
+/^[ \t]*AP([RU]|_CORE|REQ)?_DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ {
+    sub("[ \t]*AP([RU]|_CORE|REQ)?_DECLARE[^(]*[(][^)]*[)][ \t]*", "")
     sub("[(].*", "")
     sub("([^ ]* (^([ \t]*[(])))+", "")
 
@@ -79,7 +79,7 @@
     next
 }
 
-/^[ \t]*(extern[ \t]+)?AP[RU]?_DECLARE_DATA .*;$/ {
+/^[ \t]*(extern[ \t]+)?AP([RU]|REQ)?_DECLARE_DATA .*;$/ {
        varname = $NF;
        gsub( /[*;]/, "", varname);
        gsub( /\[.*\]/, "", varname);
Index: build/make_exports.awk
===================================================================
--- build/make_exports.awk	(revision 383931)
+++ build/make_exports.awk	(working copy)
@@ -90,8 +90,8 @@
     }
 }
 
-/^[ \t]*AP[RU]?_(CORE_)?DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ {
-    sub("[ \t]*AP[RU]?_(CORE_)?DECLARE[^(]*[(][^)]*[)][ \t]*", "")
+/^[ \t]*AP([RU]|REQ)?_(CORE_)?DECLARE[^(]*[(][^)]*[)]([^ ]* )*[^(]+[(]/ {
+    sub("[ \t]*AP([RU]|REQ)?_(CORE_)?DECLARE[^(]*[(][^)]*[)][ \t]*", "")
     sub("[(].*", "")
     sub("([^ ]* (^([ \t]*[(])))+", "")
 
Index: build/make_var_export.awk
===================================================================
--- build/make_var_export.awk	(revision 383931)
+++ build/make_var_export.awk	(working copy)
@@ -17,7 +17,7 @@
 # Based on apr's make_export.awk, which is
 # based on Ryan Bloom's make_export.pl
 
-/^#[ \t]*if(def)? (AP[RU]?_|!?defined).*/ {
+/^#[ \t]*if(def)? (AP([RU]|REQ)?_|!?defined).*/ {
 	if (old_filename != FILENAME) {
 		if (old_filename != "") printf("%s", line)
 		macro_no = 0
@@ -63,7 +63,7 @@
 	}
 }
 
-/^[ \t]*(extern[ \t]+)?AP[RU]?_DECLARE_DATA .*;$/ {
+/^[ \t]*(extern[ \t]+)?AP([RU]|REQ)?_DECLARE_DATA .*;$/ {
        varname = $NF;
        gsub( /[*;]/, "", varname);
        gsub( /\[.*\]/, "", varname);
Index: build/config_vars.sh.in
===================================================================
--- build/config_vars.sh.in	(revision 383931)
+++ build/config_vars.sh.in	(working copy)
@@ -30,14 +30,17 @@
 if test -f ${DESTDIR}@APR_CONFIG@; then
    APR_CONFIG=${DESTDIR}@APR_CONFIG@
    APU_CONFIG=${DESTDIR}@APU_CONFIG@
+   APREQ_CONFIG=${DESTDIR}@APREQ_CONFIG@
 else
    APR_CONFIG=@APR_CONFIG@
    APU_CONFIG=@APU_CONFIG@
+   APREQ_CONFIG=@APREQ_CONFIG@
 fi
 
 APR_LIBTOOL="`${APR_CONFIG} --apr-libtool`"
 APR_INCLUDEDIR="`${APR_CONFIG} --includedir`"
 APU_INCLUDEDIR="`${APU_CONFIG} --includedir`"
+APREQ_INCLUDEDIR="`${APREQ_CONFIG} --includedir`"
 
 installbuilddir="@exp_installbuilddir@"
 
@@ -71,5 +74,6 @@
 /^UTIL_LDFLAGS/d
 /^APR_INCLUDEDIR.*$/s,.*,APR_INCLUDEDIR = ${APR_INCLUDEDIR},
 /^APU_INCLUDEDIR.*$/s,.*,APU_INCLUDEDIR = ${APU_INCLUDEDIR},
+/^APREQ_INCLUDEDIR.*$/s,.*,APREQ_INCLUDEDIR = ${APREQ_INCLUDEDIR},
 /^LIBTOOL.*$/s,/[^ ]*/libtool \(.*\),${APR_LIBTOOL} @LTFLAGS@,
 "
Index: buildconf
===================================================================
--- buildconf	(revision 383931)
+++ buildconf	(working copy)
@@ -24,6 +24,7 @@
 
 apr_src_dir="srclib/apr ../apr"
 apu_src_dir="srclib/apr-util ../apr-util"
+apreq_src_dir="srclib/apreq ../apreq"
 
 while test $# -gt 0 
 do
@@ -45,6 +46,12 @@
   ;;
   esac
 
+  case "$1" in
+  --with-apreq=*)
+  apreq_src_dir=$optarg
+  ;;
+  esac
+
   shift
 done
 
@@ -100,6 +107,28 @@
     should_exit=1
 fi
 
+for dir in $apreq_src_dir
+do
+    if [ -f "${dir}/Makefile.in" ]; then
+        echo "found apreq source: ${dir}"
+        apreq_src_dir=$dir
+        apreq_found=1
+        break
+    fi
+done
+
+if [ $apreq_found -lt 1 ]; then
+    echo ""
+    echo "You don't have a copy of the apreq source in srclib/apreq. "
+    echo "Please get one the source using the following instructions, "
+    echo "or specify the location of the source with "
+    echo "--with-apreq=[path to apreq]:"
+    echo ""
+    echo "   svn co http://svn.apache.org/repos/asf/httpd/apreq/branches/2.x srclib/apreq"
+    echo ""
+    should_exit=1
+fi
+
 if [ $should_exit -gt 0 ]; then
     exit 1
 fi
@@ -124,6 +153,7 @@
 apr_configure="$apr_src_dir/configure"
 aprutil_configure="$apu_src_dir/configure"
 pcre_configure="srclib/pcre/configure"
+apreq_configure="$apreq_src_dir/configure"
 config_h_in="include/ap_config_auto.h.in"
 
 cross_compile_warning="warning: AC_TRY_RUN called without default to allow cross compiling"
@@ -150,10 +180,22 @@
 
 apu_src_dir=`cd $apu_src_dir && pwd` 
 
+if [ "$apreq_src_dir" = "srclib/apreq" ]; then
+    echo rebuilding $apreq_configure
+    (cd srclib/apreq && ./buildconf --with-apr=$apr_src_dir --with-apr-util=$apu_src_dir) || {
+        echo "./buildconf failed for apreq" 
+        exit 1
+    }
+    rm -f srclib/apreq/apreq.spec
+fi
+
+apreq_src_dir=`cd $apreq_src_dir && pwd`
+
 echo copying build files
 cp $apr_src_dir/build/config.guess $apr_src_dir/build/config.sub \
    $apr_src_dir/build/PrintPath $apr_src_dir/build/apr_common.m4 \
-   $apr_src_dir/build/find_apr.m4 $apu_src_dir/build/find_apu.m4 build
+   $apr_src_dir/build/find_apr.m4 $apu_src_dir/build/find_apu.m4 \
+   $apreq_src_dir/build/find_apreq.m4 build
 
 # Remove any libtool files so one can switch between libtool 1.3
 # and libtool 1.4 by simply rerunning the buildconf script.
Index: acinclude.m4
===================================================================
--- acinclude.m4	(revision 383931)
+++ acinclude.m4	(working copy)
@@ -97,7 +97,12 @@
   APACHE_SUBST(APU_INCLUDEDIR)
   APACHE_SUBST(APU_VERSION)
   APACHE_SUBST(APU_CONFIG)
+  APACHE_SUBST(APREQ_BINDIR)
+  APACHE_SUBST(APREQ_INCLUDEDIR)
+  APACHE_SUBST(APREQ_VERSION)
+  APACHE_SUBST(APREQ_CONFIG)
 
+
   abs_srcdir="`(cd $srcdir && pwd)`"
 
   echo creating config_vars.mk

-- 
Joe Schaefer