You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by Justin Erenkrantz <je...@ebuilt.com> on 2001/10/01 08:53:38 UTC
[PATCH] mod_webapp build cleanups...
I finally got a chance to build mod_webapp from j-t-c with Apache 2.0.
Looks good and is quite easy to do. Only problem is that we aren't
handling directories properly. If you do the examples webapp, you
see a link to:
http://localhost:8080/examples/servlets/
Going there results in a bad response (actually nothing returned!),
but
http://localhost:8080/examples/servlets/index.html
works. I'm not terribly sure if httpd or Tomcat should be handling
this case (i.e. redirecting or handling DirectoryIndex-type semantics).
Somebody isn't handling it and that's not good.
You will find attached a patch that cleans up some of the build
process in j-t-c so that it works with Apache 2.0 cleanly and
fixes some tpyos and formatting quirks.
The only questionable thing is that lib/libwebapp.a isn't built by
libtool. The simple straightforward ar and ranlib should work fine,
but it may not work on all systems. When linking mod_webapp.lo with
libwebapp.a, libtool emits a warning. It may be worth it to try and
use APR's libtool to compile and link all of the files in lib (this
would produce lib/libwebapp.la).
Enjoy. Oh, and Pier, thanks for dinner. =-) This is my
payback... -- justin
Index: webapp/Makefile.in
===================================================================
RCS file: /home/cvspublic/jakarta-tomcat-connectors/webapp/Makefile.in,v
retrieving revision 1.20
diff -u -r1.20 Makefile.in
--- webapp/Makefile.in 2001/09/17 05:06:27 1.20
+++ webapp/Makefile.in 2001/10/01 06:39:24
@@ -107,6 +107,12 @@
apache-1.3-clean:
@$(MAKE) template MFLG="$(MAKEFLAGS)" MDIR="apache-1.3" MTGT="clean"
+apache-2.0-build:
+ @$(MAKE) template MFLG="$(MAKEFLAGS)" MDIR="apache-2.0" MTGT="build"
+
+apache-2.0-clean:
+ @$(MAKE) template MFLG="$(MAKEFLAGS)" MDIR="apache-2.0" MTGT="clean"
+
template:
@ { \
$(ECHO) "" ; \
Index: webapp/configure.in
===================================================================
RCS file: /home/cvspublic/jakarta-tomcat-connectors/webapp/configure.in,v
retrieving revision 1.39
diff -u -r1.39 configure.in
--- webapp/configure.in 2001/09/17 05:07:01 1.39
+++ webapp/configure.in 2001/10/01 06:39:24
@@ -177,7 +177,7 @@
dnl Upd vars: N/A
dnl -------------------------------------------------------------------------
AC_ARG_WITH(tomcat,
- [ --with-tomcat[=DIR] path of a Tomcat 4.0 distribution. (DIR defaults
+ [ --with-tomcat[=DIR] path of a Tomcat 4.0 distribution. (DIR defaults
to \"/usr/local/tomcat\"). Not required and ignored
when the --enable-java option is not specified.],
[
@@ -241,7 +241,7 @@
AC_MSG_CHECKING([for C API documentation])
AC_ARG_ENABLE(apidocs-c,
[ --enable-apidocs-c[=PERL]
- enbale generation of C API documentation using
+ enable generation of C API documentation using
ScanDoc (PERL is the name of the Perl interpreter
used to run ScanDoc. If not specified this is
looked up in your current path).],
@@ -302,7 +302,7 @@
AC_MSG_CHECKING([for Java API documentation])
AC_ARG_ENABLE(apidocs-java,
[ --enable-apidocs-java[=JAVADOC]
- enbale generation of Java API documentation using
+ enable generation of Java API documentation using
JavaDoc (If JAVADOC is not set its value will be
discovered by \"--enable-java\").],
[
@@ -347,10 +347,10 @@
dnl Upd vars: APR_SRCDIR
dnl --------------------------------------------------------------------------
AC_ARG_WITH(apr,
- [ --with-apr[=DIR] path of an APR (Apache Portable Runtime) source
+ [ --with-apr[=DIR] path of an APR (Apache Portable Runtime) source
distribution or CVS snapshot. (DIR defaults to
- \"./apr\"). Not required and ignored when the
- --with-apxs2 option is specified.],
+ \"./apr\"). Not required and ignored when an
+ Apache 2.0 apxs is specified (--with-apxs).],
[
case "${withval}" in
""|"yes"|"YES"|"true"|"TRUE")
@@ -382,7 +382,7 @@
dnl --------------------------------------------------------------------------
AC_MSG_CHECKING([for Apache apxs])
AC_ARG_WITH(apxs,
- [ --with-apxs[=FILE] build a shared Apache module. If FILE was not
+ [ --with-apxs[=FILE] build a shared Apache module. If FILE was not
specified, then APXS will be searched within the
current PATH. The Apache server version (1.3 or 2.0)
will be automatically detected.],
@@ -425,7 +425,7 @@
dnl Upd vars: APR_CFGFLG APR_VARFIL APR_LIBDIR APR_INCDIR
dnl -----------------------------------------------------
MODULE="apache-2.0"
- local_prefix="`apxs -q PREFIX`"
+ local_prefix="`${APXS} -q PREFIX`"
APR_CFGFLG=""
APR_VARFIL="${local_prefix}/lib/APRVARS"
APR_LIBDIR="${local_prefix}/lib"
Index: webapp/apache-2.0/Makefile.in
===================================================================
RCS file: /home/cvspublic/jakarta-tomcat-connectors/webapp/apache-2.0/Makefile.in,v
retrieving revision 1.2
diff -u -r1.2 Makefile.in
--- webapp/apache-2.0/Makefile.in 2001/08/31 10:26:24 1.2
+++ webapp/apache-2.0/Makefile.in 2001/10/01 06:39:24
@@ -65,10 +65,11 @@
MODULE = mod_webapp.la
all: $(MODULE)
+build: $(MODULE)
mod_webapp.la: mod_webapp.c
@$(ECHO) Compiling and Linking Apache 2.0 WebApp Module
- $(APXS) -I../include -c ../lib/libwebapp.la mod_webapp.c
+ $(APXS) -I../include -c ../lib/libwebapp.a mod_webapp.c
install: mod_webapp.la
$(APXS) -i mod_webapp.la
Re: [PATCH] mod_webapp build cleanups...
Posted by jean-frederic clere <jf...@fujitsu-siemens.com>.
Justin Erenkrantz wrote:
>
> I finally got a chance to build mod_webapp from j-t-c with Apache 2.0.
> Looks good and is quite easy to do. Only problem is that we aren't
> handling directories properly. If you do the examples webapp, you
> see a link to:
>
> http://localhost:8080/examples/servlets/
>
> Going there results in a bad response (actually nothing returned!),
> but
>
> http://localhost:8080/examples/servlets/index.html
>
> works. I'm not terribly sure if httpd or Tomcat should be handling
> this case (i.e. redirecting or handling DirectoryIndex-type semantics).
> Somebody isn't handling it and that's not good.
I have fixed it (The port handling was wrong).
>
> You will find attached a patch that cleans up some of the build
> process in j-t-c so that it works with Apache 2.0 cleanly and
> fixes some tpyos and formatting quirks.
I have committed the patch (it builds better with it ;-)).
>
> The only questionable thing is that lib/libwebapp.a isn't built by
> libtool. The simple straightforward ar and ranlib should work fine,
> but it may not work on all systems. When linking mod_webapp.lo with
> libwebapp.a, libtool emits a warning. It may be worth it to try and
> use APR's libtool to compile and link all of the files in lib (this
> would produce lib/libwebapp.la).
>
> Enjoy. Oh, and Pier, thanks for dinner. =-) This is my
> payback... -- justin
>
> Index: webapp/Makefile.in
> ===================================================================
> RCS file: /home/cvspublic/jakarta-tomcat-connectors/webapp/Makefile.in,v
> retrieving revision 1.20
> diff -u -r1.20 Makefile.in
> --- webapp/Makefile.in 2001/09/17 05:06:27 1.20
> +++ webapp/Makefile.in 2001/10/01 06:39:24
> @@ -107,6 +107,12 @@
> apache-1.3-clean:
> @$(MAKE) template MFLG="$(MAKEFLAGS)" MDIR="apache-1.3" MTGT="clean"
>
> +apache-2.0-build:
> + @$(MAKE) template MFLG="$(MAKEFLAGS)" MDIR="apache-2.0" MTGT="build"
> +
> +apache-2.0-clean:
> + @$(MAKE) template MFLG="$(MAKEFLAGS)" MDIR="apache-2.0" MTGT="clean"
> +
> template:
> @ { \
> $(ECHO) "" ; \
> Index: webapp/configure.in
> ===================================================================
> RCS file: /home/cvspublic/jakarta-tomcat-connectors/webapp/configure.in,v
> retrieving revision 1.39
> diff -u -r1.39 configure.in
> --- webapp/configure.in 2001/09/17 05:07:01 1.39
> +++ webapp/configure.in 2001/10/01 06:39:24
> @@ -177,7 +177,7 @@
> dnl Upd vars: N/A
> dnl -------------------------------------------------------------------------
> AC_ARG_WITH(tomcat,
> - [ --with-tomcat[=DIR] path of a Tomcat 4.0 distribution. (DIR defaults
> + [ --with-tomcat[=DIR] path of a Tomcat 4.0 distribution. (DIR defaults
> to \"/usr/local/tomcat\"). Not required and ignored
> when the --enable-java option is not specified.],
> [
> @@ -241,7 +241,7 @@
> AC_MSG_CHECKING([for C API documentation])
> AC_ARG_ENABLE(apidocs-c,
> [ --enable-apidocs-c[=PERL]
> - enbale generation of C API documentation using
> + enable generation of C API documentation using
> ScanDoc (PERL is the name of the Perl interpreter
> used to run ScanDoc. If not specified this is
> looked up in your current path).],
> @@ -302,7 +302,7 @@
> AC_MSG_CHECKING([for Java API documentation])
> AC_ARG_ENABLE(apidocs-java,
> [ --enable-apidocs-java[=JAVADOC]
> - enbale generation of Java API documentation using
> + enable generation of Java API documentation using
> JavaDoc (If JAVADOC is not set its value will be
> discovered by \"--enable-java\").],
> [
> @@ -347,10 +347,10 @@
> dnl Upd vars: APR_SRCDIR
> dnl --------------------------------------------------------------------------
> AC_ARG_WITH(apr,
> - [ --with-apr[=DIR] path of an APR (Apache Portable Runtime) source
> + [ --with-apr[=DIR] path of an APR (Apache Portable Runtime) source
> distribution or CVS snapshot. (DIR defaults to
> - \"./apr\"). Not required and ignored when the
> - --with-apxs2 option is specified.],
> + \"./apr\"). Not required and ignored when an
> + Apache 2.0 apxs is specified (--with-apxs).],
> [
> case "${withval}" in
> ""|"yes"|"YES"|"true"|"TRUE")
> @@ -382,7 +382,7 @@
> dnl --------------------------------------------------------------------------
> AC_MSG_CHECKING([for Apache apxs])
> AC_ARG_WITH(apxs,
> - [ --with-apxs[=FILE] build a shared Apache module. If FILE was not
> + [ --with-apxs[=FILE] build a shared Apache module. If FILE was not
> specified, then APXS will be searched within the
> current PATH. The Apache server version (1.3 or 2.0)
> will be automatically detected.],
> @@ -425,7 +425,7 @@
> dnl Upd vars: APR_CFGFLG APR_VARFIL APR_LIBDIR APR_INCDIR
> dnl -----------------------------------------------------
> MODULE="apache-2.0"
> - local_prefix="`apxs -q PREFIX`"
> + local_prefix="`${APXS} -q PREFIX`"
> APR_CFGFLG=""
> APR_VARFIL="${local_prefix}/lib/APRVARS"
> APR_LIBDIR="${local_prefix}/lib"
> Index: webapp/apache-2.0/Makefile.in
> ===================================================================
> RCS file: /home/cvspublic/jakarta-tomcat-connectors/webapp/apache-2.0/Makefile.in,v
> retrieving revision 1.2
> diff -u -r1.2 Makefile.in
> --- webapp/apache-2.0/Makefile.in 2001/08/31 10:26:24 1.2
> +++ webapp/apache-2.0/Makefile.in 2001/10/01 06:39:24
> @@ -65,10 +65,11 @@
> MODULE = mod_webapp.la
>
> all: $(MODULE)
> +build: $(MODULE)
>
> mod_webapp.la: mod_webapp.c
> @$(ECHO) Compiling and Linking Apache 2.0 WebApp Module
> - $(APXS) -I../include -c ../lib/libwebapp.la mod_webapp.c
> + $(APXS) -I../include -c ../lib/libwebapp.a mod_webapp.c
>
> install: mod_webapp.la
> $(APXS) -i mod_webapp.la
Re: [PATCH] mod_webapp build cleanups...
Posted by jean-frederic clere <jf...@fujitsu-siemens.com>.
Justin Erenkrantz wrote:
>
> I finally got a chance to build mod_webapp from j-t-c with Apache 2.0.
> Looks good and is quite easy to do. Only problem is that we aren't
> handling directories properly. If you do the examples webapp, you
> see a link to:
>
> http://localhost:8080/examples/servlets/
>
> Going there results in a bad response (actually nothing returned!),
> but
>
> http://localhost:8080/examples/servlets/index.html
>
> works. I'm not terribly sure if httpd or Tomcat should be handling
> this case (i.e. redirecting or handling DirectoryIndex-type semantics).
> Somebody isn't handling it and that's not good.
There should be a redirect... And it worked in the past ;-(
>
> You will find attached a patch that cleans up some of the build
> process in j-t-c so that it works with Apache 2.0 cleanly and
> fixes some tpyos and formatting quirks.
>
> The only questionable thing is that lib/libwebapp.a isn't built by
> libtool. The simple straightforward ar and ranlib should work fine,
> but it may not work on all systems. When linking mod_webapp.lo with
> libwebapp.a, libtool emits a warning. It may be worth it to try and
> use APR's libtool to compile and link all of the files in lib (this
> would produce lib/libwebapp.la).
I remember that it was a little more than a warning: it tries to use
libwebapp.so and we did not install it.
I will try to retest it with the actual state.
>
> Enjoy. Oh, and Pier, thanks for dinner. =-) This is my
> payback... -- justin
>
> Index: webapp/Makefile.in
> ===================================================================
> RCS file: /home/cvspublic/jakarta-tomcat-connectors/webapp/Makefile.in,v
> retrieving revision 1.20
> diff -u -r1.20 Makefile.in
> --- webapp/Makefile.in 2001/09/17 05:06:27 1.20
> +++ webapp/Makefile.in 2001/10/01 06:39:24
> @@ -107,6 +107,12 @@
> apache-1.3-clean:
> @$(MAKE) template MFLG="$(MAKEFLAGS)" MDIR="apache-1.3" MTGT="clean"
>
> +apache-2.0-build:
> + @$(MAKE) template MFLG="$(MAKEFLAGS)" MDIR="apache-2.0" MTGT="build"
> +
> +apache-2.0-clean:
> + @$(MAKE) template MFLG="$(MAKEFLAGS)" MDIR="apache-2.0" MTGT="clean"
> +
> template:
> @ { \
> $(ECHO) "" ; \
> Index: webapp/configure.in
> ===================================================================
> RCS file: /home/cvspublic/jakarta-tomcat-connectors/webapp/configure.in,v
> retrieving revision 1.39
> diff -u -r1.39 configure.in
> --- webapp/configure.in 2001/09/17 05:07:01 1.39
> +++ webapp/configure.in 2001/10/01 06:39:24
> @@ -177,7 +177,7 @@
> dnl Upd vars: N/A
> dnl -------------------------------------------------------------------------
> AC_ARG_WITH(tomcat,
> - [ --with-tomcat[=DIR] path of a Tomcat 4.0 distribution. (DIR defaults
> + [ --with-tomcat[=DIR] path of a Tomcat 4.0 distribution. (DIR defaults
> to \"/usr/local/tomcat\"). Not required and ignored
> when the --enable-java option is not specified.],
> [
> @@ -241,7 +241,7 @@
> AC_MSG_CHECKING([for C API documentation])
> AC_ARG_ENABLE(apidocs-c,
> [ --enable-apidocs-c[=PERL]
> - enbale generation of C API documentation using
> + enable generation of C API documentation using
> ScanDoc (PERL is the name of the Perl interpreter
> used to run ScanDoc. If not specified this is
> looked up in your current path).],
> @@ -302,7 +302,7 @@
> AC_MSG_CHECKING([for Java API documentation])
> AC_ARG_ENABLE(apidocs-java,
> [ --enable-apidocs-java[=JAVADOC]
> - enbale generation of Java API documentation using
> + enable generation of Java API documentation using
> JavaDoc (If JAVADOC is not set its value will be
> discovered by \"--enable-java\").],
> [
> @@ -347,10 +347,10 @@
> dnl Upd vars: APR_SRCDIR
> dnl --------------------------------------------------------------------------
> AC_ARG_WITH(apr,
> - [ --with-apr[=DIR] path of an APR (Apache Portable Runtime) source
> + [ --with-apr[=DIR] path of an APR (Apache Portable Runtime) source
> distribution or CVS snapshot. (DIR defaults to
> - \"./apr\"). Not required and ignored when the
> - --with-apxs2 option is specified.],
> + \"./apr\"). Not required and ignored when an
> + Apache 2.0 apxs is specified (--with-apxs).],
> [
> case "${withval}" in
> ""|"yes"|"YES"|"true"|"TRUE")
> @@ -382,7 +382,7 @@
> dnl --------------------------------------------------------------------------
> AC_MSG_CHECKING([for Apache apxs])
> AC_ARG_WITH(apxs,
> - [ --with-apxs[=FILE] build a shared Apache module. If FILE was not
> + [ --with-apxs[=FILE] build a shared Apache module. If FILE was not
> specified, then APXS will be searched within the
> current PATH. The Apache server version (1.3 or 2.0)
> will be automatically detected.],
> @@ -425,7 +425,7 @@
> dnl Upd vars: APR_CFGFLG APR_VARFIL APR_LIBDIR APR_INCDIR
> dnl -----------------------------------------------------
> MODULE="apache-2.0"
> - local_prefix="`apxs -q PREFIX`"
> + local_prefix="`${APXS} -q PREFIX`"
> APR_CFGFLG=""
> APR_VARFIL="${local_prefix}/lib/APRVARS"
> APR_LIBDIR="${local_prefix}/lib"
> Index: webapp/apache-2.0/Makefile.in
> ===================================================================
> RCS file: /home/cvspublic/jakarta-tomcat-connectors/webapp/apache-2.0/Makefile.in,v
> retrieving revision 1.2
> diff -u -r1.2 Makefile.in
> --- webapp/apache-2.0/Makefile.in 2001/08/31 10:26:24 1.2
> +++ webapp/apache-2.0/Makefile.in 2001/10/01 06:39:24
> @@ -65,10 +65,11 @@
> MODULE = mod_webapp.la
>
> all: $(MODULE)
> +build: $(MODULE)
>
> mod_webapp.la: mod_webapp.c
> @$(ECHO) Compiling and Linking Apache 2.0 WebApp Module
> - $(APXS) -I../include -c ../lib/libwebapp.la mod_webapp.c
> + $(APXS) -I../include -c ../lib/libwebapp.a mod_webapp.c
>
> install: mod_webapp.la
> $(APXS) -i mod_webapp.la