You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@locus.apache.org on 2000/05/05 22:10:34 UTC

cvs commit: apache-2.0/src/support apxs.in

rbb         00/05/05 13:10:34

  Modified:    .        STATUS
               src      CHANGES configure.in
               src/support apxs.in
  Log:
  Make apxs mostly work for 2.0.  It doesn't add the module to the config
  file yet, but that should be trivial to add back in.
  
  Revision  Changes    Path
  1.60      +1 -4      apache-2.0/STATUS
  
  Index: STATUS
  ===================================================================
  RCS file: /home/cvs/apache-2.0/STATUS,v
  retrieving revision 1.59
  retrieving revision 1.60
  diff -u -r1.59 -r1.60
  --- STATUS	2000/05/04 04:02:10	1.59
  +++ STATUS	2000/05/05 20:10:32	1.60
  @@ -1,5 +1,5 @@
   Apache 2.0 STATUS:
  -Last modified at [$Date: 2000/05/04 04:02:10 $]
  +Last modified at [$Date: 2000/05/05 20:10:32 $]
   
   Release:
   
  @@ -127,9 +127,6 @@
           Status: Manoj has placed an initial version into the 2.0
           repository. Todos include:
             
  -          - a tool to simplfy third-party module building should be
  -            written. Something like apxs
  -
       * Use APR to get rid of more platform dependancies.
           Status: Ryan Bloom <rb...@covalenet.net> is working on this.
   
  
  
  
  1.103     +3 -0      apache-2.0/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/CHANGES,v
  retrieving revision 1.102
  retrieving revision 1.103
  diff -u -r1.102 -r1.103
  --- CHANGES	2000/05/04 04:02:13	1.102
  +++ CHANGES	2000/05/05 20:10:32	1.103
  @@ -1,4 +1,7 @@
   Changes with Apache 2.0a4-dev
  +  *) apxs works in 2.0.
  +     [Ryan Bloom]
  +
     *) Reliable piped logs work in 2.0.
        [Ryan Bloom]
   
  
  
  
  1.43      +4 -1      apache-2.0/src/configure.in
  
  Index: configure.in
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/configure.in,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- configure.in	2000/05/03 02:02:54	1.42
  +++ configure.in	2000/05/05 20:10:32	1.43
  @@ -221,6 +221,9 @@
   progname=$progname
   ])
   
  -AC_OUTPUT($APACHE_OUTPUT_FILES)
  +perlbin=`which perl`
  +AC_SUBST(perlbin)
  +
  +AC_OUTPUT($APACHE_OUTPUT_FILES support/apxs)
   
   
  
  
  
  1.8       +35 -65    apache-2.0/src/support/apxs.in
  
  Index: apxs.in
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/support/apxs.in,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- apxs.in	2000/05/04 19:56:41	1.7
  +++ apxs.in	2000/05/05 20:10:33	1.8
  @@ -1,4 +1,4 @@
  -#!/usr/local/bin/perl
  +#!@perlbin@
   # ====================================================================
   # The Apache Software License, Version 1.1
   #
  @@ -65,19 +65,20 @@
   ##  Configuration
   ##
   
  -my $CFG_TARGET        = '@TARGET@';            # substituted via Makefile.tmpl 
  -my $CFG_CC            = '@CC@';                # substituted via Makefile.tmpl
  -my $CFG_CFLAGS        = '@CFLAGS@';            # substituted via Makefile.tmpl
  -my $CFG_CFLAGS_SHLIB  = '@CFLAGS_SHLIB@';      # substituted via Makefile.tmpl
  -my $CFG_LD_SHLIB      = '@LD_SHLIB@';          # substituted via Makefile.tmpl
  -my $CFG_LDFLAGS_SHLIB = '@LDFLAGS_MOD_SHLIB@'; # substituted via Makefile.tmpl 
  -my $CFG_LIBS_SHLIB    = '@LIBS_SHLIB@';        # substituted via Makefile.tmpl 
  -my $CFG_PREFIX        = '@prefix@';            # substituted via APACI install
  -my $CFG_SBINDIR       = '@sbindir@';           # substituted via APACI install
  -my $CFG_INCLUDEDIR    = '@includedir@';        # substituted via APACI install
  -my $CFG_LIBEXECDIR    = '@libexecdir@';        # substituted via APACI install
  -my $CFG_SYSCONFDIR    = '@sysconfdir@';        # substituted via APACI install
  +my $CFG_TARGET        = '@progname@';
  +my $CFG_CC            = '@CC@';
  +my $CFG_DEFS          = '@DEFS@';
  +my $CFG_CFLAGS        = '@CFLAGS@ @EXTRA_CFLAGS@';
  +my $CFG_PREFIX        = "/home/rbb/apachebin";
  +my $prefix            = "$CFG_PREFIX";
  +my $CFG_EXEC_PREFIX   = "@exec_prefix@";
  +my $exec_prefix       = "$CFG_EXEC_PREFIX";
  +my $CFG_SBINDIR       = "@bindir@";
  +my $CFG_INCLUDEDIR    = "@includedir@";
  +my $CFG_LIBEXECDIR    = "@libexecdir@";
  +my $CFG_SYSCONFDIR    = "@sysconfdir@";
   
  +
   ##
   ##  Cleanup the above stuff
   ##
  @@ -334,11 +335,11 @@
       if ($opt_o eq '') {
           if ($#srcs > -1) {
               $dso_file = $srcs[0];
  -            $dso_file =~ s|\.[^.]+$|.so|;
  +            $dso_file =~ s|\.[^.]+$|.la|;
           }
           elsif ($#objs > -1) {
               $dso_file = $objs[0];
  -            $dso_file =~ s|\.[^.]+$|.so|;
  +            $dso_file =~ s|\.[^.]+$|.la|;
           }
           else {
               $dso_file = "mod_unknown.so";
  @@ -361,39 +362,19 @@
       foreach $opt_D (@opt_D) {
           $opt .= "-D$opt_D ";
       }
  -    my $cflags = "$CFG_CFLAGS $CFG_CFLAGS_SHLIB";
  +    my $cflags = "$CFG_CFLAGS";
       my $s;
       foreach $s (@srcs) {
  -        my $o = $s;
  -        $o =~ s|\.c$|.o|;
  -        push(@cmds, "$CFG_CC $cflags -I$CFG_INCLUDEDIR $opt -c $s");
  -        unshift(@objs, $o);
  -    }
  -
  -    #   create link command
  -    my $cmd = "$CFG_LD_SHLIB $CFG_LDFLAGS_SHLIB -o $dso_file";
  -    my $o;
  -    foreach $o (@objs) {
  -        $cmd .= " $o";
  -    }
  -    $opt = '';
  -    my ($opt_Wl, $opt_L, $opt_l);
  -    foreach $opt_Wl (@opt_W) {
  -		if($CFG_LD_SHLIB ne "gcc") {
  -	        $opt .= " $1" if ($opt_Wl =~ m|^\s*l,(.*)$|);
  -		} else {
  -	        $opt .= " -W$opt_Wl";
  -		}
  -    }
  -    foreach $opt_L (@opt_L) {
  -        $opt .= " -L$opt_L";
  -    }
  -    foreach $opt_l (@opt_l) {
  -        $opt .= " -l$opt_l";
  -    }
  -    $cmd .= $opt;
  -    $cmd .= " $CFG_LIBS_SHLIB";
  -    push(@cmds, $cmd);
  +        my $slo = $s;
  +        $slo =~ s|\.c$|.slo|;
  +        my $lo = $s;
  +        $lo =~ s|\.c$|.lo|;
  +        my $la = $s;
  +        $la =~ s|\.c$|.la|;
  +        push(@cmds, "libtool --silent --mode=compile $CFG_CC $cflags -I$CFG_INCLUDEDIR -I$CFG_INCLUDEDIR/apr $opt -c $s && touch $slo");
  +        push(@cmds, "libtool --silent --mode=link $CFG_CC $cflags -o $la -rpath $CFG_LIBEXECDIR -module -avoid-version $lo");
  +
  +    }
   
       #   execute the commands
       &execute_cmds(@cmds);
  @@ -416,14 +397,14 @@
       my @cmds = ();
       my $f;
       foreach $f (@args) {
  -        if ($f !~ m|\.so$|) {
  +        if ($f !~ m|\.la$|) {
               print STDERR "apxs:Error: file $f is not a shared object\n";
               exit(1);
           }
           my $t = $f;
           $t =~ s|^.+/([^/]+)$|$1|;
           if ($opt_i) {
  -	    push(@cmds, "cp $f $CFG_LIBEXECDIR/$t");
  +	    push(@cmds, "libtool --mode=install cp $f $CFG_LIBEXECDIR/$t");
   	    push(@cmds, "chmod 755 $CFG_LIBEXECDIR/$t");
           }
   
  @@ -538,19 +519,19 @@
   #LIB=-Lmy/lib/dir -lmylib
   
   #   the default target
  -all: mod_%NAME%.so
  +all: mod_%NAME%.la
   
   #   compile the shared object file
  -mod_%NAME%.so: mod_%NAME%.c
  +mod_%NAME%.la: mod_%NAME%.c
   	$(APXS) -c $(DEF) $(INC) $(LIB) mod_%NAME%.c
   
   #   install the shared object file into Apache 
   install: all
  -	$(APXS) -i -a -n '%NAME%' mod_%NAME%.so
  +	$(APXS) -i -a -n '%NAME%' mod_%NAME%.la
   
   #   cleanup
   clean:
  -	-rm -f mod_%NAME%.o mod_%NAME%.so
  +	-rm -f mod_%NAME%.o mod_%NAME%.lo mod_%NAME%.slo mod_%NAME%.la 
   
   #   simple test
   test: reload
  @@ -632,24 +613,13 @@
   
   /* Dispatch list for API hooks */
   module MODULE_VAR_EXPORT %NAME%_module = {
  -    STANDARD_MODULE_STUFF, 
  -    NULL,                  /* module initializer                  */
  +    STANDARD20_MODULE_STUFF, 
       NULL,                  /* create per-dir    config structures */
       NULL,                  /* merge  per-dir    config structures */
       NULL,                  /* create per-server config structures */
       NULL,                  /* merge  per-server config structures */
       NULL,                  /* table of config file commands       */
       %NAME%_handlers,       /* [#8] MIME-typed-dispatched handlers */
  -    NULL,                  /* [#1] URI to filename translation    */
  -    NULL,                  /* [#4] validate user id from request  */
  -    NULL,                  /* [#5] check if the user is ok _here_ */
  -    NULL,                  /* [#3] check access by host address   */
  -    NULL,                  /* [#6] determine MIME type            */
  -    NULL,                  /* [#7] pre-run fixups                 */
  -    NULL,                  /* [#9] log a transaction              */
  -    NULL,                  /* [#2] header parser                  */
  -    NULL,                  /* child_init                          */
  -    NULL,                  /* child_exit                          */
  -    NULL                   /* [#0] post read-request              */
  +    NULL                   /* register hooks                      */
   };
   
  
  
  

Re: cvs commit: apache-2.0/src/support apxs.in

Posted by rb...@covalent.net.
On 5 May 2000 rbb@locus.apache.org wrote:

> rbb         00/05/05 13:10:34
> 
>   Modified:    .        STATUS
>                src      CHANGES configure.in
>                src/support apxs.in
>   Log:
>   Make apxs mostly work for 2.0.  It doesn't add the module to the config
>   file yet, but that should be trivial to add back in.

This works on my machine, and it should work everywhere, but it is
ugly.  Somebody with better perl skills than me should probably take what
I've done and make it cleaner.  :->

Ryan

_______________________________________________________________________________
Ryan Bloom                        	rbb@apache.org
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------


Re: cvs commit: apache-2.0/src/support apxs.in

Posted by Greg Stein <gs...@lyra.org>.
On Fri, 5 May 2000 rbb@covalent.net wrote:
>...
> > >   +my $prefix            = "$CFG_PREFIX";
> > >   +my $CFG_EXEC_PREFIX   = "@exec_prefix@";
> > >   +my $exec_prefix       = "$CFG_EXEC_PREFIX";
> > 
> > Why were the new variables introduced? (rather than keeping CFG_*)
> 
> because the current configure system replaces CFG_BINDIR with something
> along the lines of "${prefix}/bin".  apxs needed a way to resolve the
> "${prefix}"

Gotcha. If I remember to do it after all this tequila :-), then I'm going
to make it a bit clearer:

my $prefix = "@prefix@";
my $CFG_PREFIX = "$prefix";
...

> > >   +        push(@cmds, "libtool --silent --mode=compile $CFG_CC $cflags -I$CFG_INCLUDEDIR -I$CFG_INCLUDEDIR/apr $opt -c $s && touch $slo");
> > >   +        push(@cmds, "libtool --silent --mode=link $CFG_CC $cflags -o $la -rpath $CFG_LIBEXECDIR -module -avoid-version $lo");
> > 
> > Woah... does this mean *users* who are installing a module via apxs need
> > libtool?
> 
> Yep.  Sorry, but I was only going to fight with this stuff for so long.

Wasn't asking you to :-) ... for my own edification...

> > *ponder*
> > 
> > I forget: does anybody that builds Apache (not configure; just build)
> > require libtool?
> 
> Yep.  I got the libtool lines from our build process, so we require
> libtool to build.  We also provide a copy with the tree however.

Ah. Okee dokee.


Happy Cinco de Mayo everybody!

-g

-- 
Greg Stein, http://www.lyra.org/


Re: cvs commit: apache-2.0/src/support apxs.in

Posted by rb...@covalent.net.
> >   +my $CFG_CFLAGS        = '@CFLAGS@ @EXTRA_CFLAGS@';
> >   +my $CFG_PREFIX        = "/home/rbb/apachebin";
> 
> That CFG_PREFIX isn't going to work so well... :-)

Whoops.  I'll fix that asap.

> 
> >   +my $prefix            = "$CFG_PREFIX";
> >   +my $CFG_EXEC_PREFIX   = "@exec_prefix@";
> >   +my $exec_prefix       = "$CFG_EXEC_PREFIX";
> 
> Why were the new variables introduced? (rather than keeping CFG_*)

because the current configure system replaces CFG_BINDIR with something
along the lines of "${prefix}/bin".  apxs needed a way to resolve the
"${prefix}"

> >   +        push(@cmds, "libtool --silent --mode=compile $CFG_CC $cflags -I$CFG_INCLUDEDIR -I$CFG_INCLUDEDIR/apr $opt -c $s && touch $slo");
> >   +        push(@cmds, "libtool --silent --mode=link $CFG_CC $cflags -o $la -rpath $CFG_LIBEXECDIR -module -avoid-version $lo");
> 
> Woah... does this mean *users* who are installing a module via apxs need
> libtool?

Yep.  Sorry, but I was only going to fight with this stuff for so long.

> *ponder*
> 
> I forget: does anybody that builds Apache (not configure; just build)
> require libtool?

Yep.  I got the libtool lines from our build process, so we require
libtool to build.  We also provide a copy with the tree however.

Ryan

_______________________________________________________________________________
Ryan Bloom                        	rbb@apache.org
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------


Re: cvs commit: apache-2.0/src/support apxs.in

Posted by Greg Stein <gs...@lyra.org>.
On 5 May 2000 rbb@locus.apache.org wrote:
>...
>   -my $CFG_TARGET        = '@TARGET@';            # substituted via Makefile.tmpl 
>   -my $CFG_CC            = '@CC@';                # substituted via Makefile.tmpl
>   -my $CFG_CFLAGS        = '@CFLAGS@';            # substituted via Makefile.tmpl
>   -my $CFG_CFLAGS_SHLIB  = '@CFLAGS_SHLIB@';      # substituted via Makefile.tmpl
>   -my $CFG_LD_SHLIB      = '@LD_SHLIB@';          # substituted via Makefile.tmpl
>   -my $CFG_LDFLAGS_SHLIB = '@LDFLAGS_MOD_SHLIB@'; # substituted via Makefile.tmpl 
>   -my $CFG_LIBS_SHLIB    = '@LIBS_SHLIB@';        # substituted via Makefile.tmpl 
>   -my $CFG_PREFIX        = '@prefix@';            # substituted via APACI install
>   -my $CFG_SBINDIR       = '@sbindir@';           # substituted via APACI install
>   -my $CFG_INCLUDEDIR    = '@includedir@';        # substituted via APACI install
>   -my $CFG_LIBEXECDIR    = '@libexecdir@';        # substituted via APACI install
>   -my $CFG_SYSCONFDIR    = '@sysconfdir@';        # substituted via APACI install
>   +my $CFG_TARGET        = '@progname@';
>   +my $CFG_CC            = '@CC@';
>   +my $CFG_DEFS          = '@DEFS@';
>   +my $CFG_CFLAGS        = '@CFLAGS@ @EXTRA_CFLAGS@';
>   +my $CFG_PREFIX        = "/home/rbb/apachebin";

That CFG_PREFIX isn't going to work so well... :-)

>   +my $prefix            = "$CFG_PREFIX";
>   +my $CFG_EXEC_PREFIX   = "@exec_prefix@";
>   +my $exec_prefix       = "$CFG_EXEC_PREFIX";

Why were the new variables introduced? (rather than keeping CFG_*)

>...
>   +        my $slo = $s;
>   +        $slo =~ s|\.c$|.slo|;
>   +        my $lo = $s;
>   +        $lo =~ s|\.c$|.lo|;
>   +        my $la = $s;
>   +        $la =~ s|\.c$|.la|;
>   +        push(@cmds, "libtool --silent --mode=compile $CFG_CC $cflags -I$CFG_INCLUDEDIR -I$CFG_INCLUDEDIR/apr $opt -c $s && touch $slo");
>   +        push(@cmds, "libtool --silent --mode=link $CFG_CC $cflags -o $la -rpath $CFG_LIBEXECDIR -module -avoid-version $lo");

Woah... does this mean *users* who are installing a module via apxs need
libtool?

*ponder*

I forget: does anybody that builds Apache (not configure; just build)
require libtool?


Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/