dougm       01/03/26 08:17:13

  Modified:    .        00README_FIRST Makefile.PL
               lib/ModPerl BuildOptions.pm
               pod      modperl_dev.pod
  Log:
  MP_GENERATE_XS option to generate xs code from checked-in tables, since C::Scan 
doesnt work on some platforms
  
  Revision  Changes    Path
  1.13      +3 -16     modperl-2.0/00README_FIRST
  
  Index: 00README_FIRST
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/00README_FIRST,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- 00README_FIRST    2001/03/05 04:27:29     1.12
  +++ 00README_FIRST    2001/03/26 16:17:00     1.13
  @@ -28,22 +28,9 @@
   % make
   % make install
   
  -build the parsed structure and function tables:
  -
  -NOTE: requires C::Scan 0.75, which at the moment is unreleased, there
  -is a working copy here: http://perl.apache.org/~dougm/Scan.pm
  -
  -NOTE: source_scan.pl is a HEAVY process, do not be alarmed
  -should be run each time you update your httpd-2.0 tree
  -
  -% perl util/source_scan.pl apxs $apache_prefix/bin/apxs
  -
  -generate xs code from the tables:
  -
  -% perl util/xs_generate.pl
  -
   #build libmodperl.so and extension .so's
  -% perl Makefile.PL MP_USE_DSO=1 MP_APXS=$apache_prefix/bin/apxs && make
  +% perl Makefile.PL MP_GENERATE_XS=1 MP_USE_DSO=1 \
  +MP_APXS=$apache_prefix/bin/apxs && make
   
   as for httpd.conf, mine looks something like so at the moment:
   
  @@ -66,4 +53,4 @@
   much is the same as 1.x, but plenty is different at the moment.
   there will be a compat layer in the future.
   
  ---dougm 03/04/01
  +--dougm 03/26/01
  
  
  
  1.27      +22 -0     modperl-2.0/Makefile.PL
  
  Index: Makefile.PL
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/Makefile.PL,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- Makefile.PL       2001/03/05 04:11:01     1.26
  +++ Makefile.PL       2001/03/26 16:17:01     1.27
  @@ -57,6 +57,8 @@
   
       #ModPerl::MM will use Apache::BuildConfig in subdir/Makefile.PL's
       $build->save;
  +
  +    generate_xs($httpd_version) if $build->{MP_GENERATE_XS};
   }
   
   sub post_configure {
  @@ -78,6 +80,26 @@
       }
   
       $build->save;
  +}
  +
  +sub generate_xs {
  +    my $httpd_version = shift;
  +
  +    my $tables_version =
  +      $httpd_version =~ /-dev$/ ? 'current' : $httpd_version;
  +
  +    my $tables_dir = "xs/tables/$tables_version";
  +    unshift @INC, $tables_dir;
  +
  +    print "generating XS code using $tables_dir...\n";
  +
  +    require ModPerl::WrapXS;
  +
  +    my $xs = ModPerl::WrapXS->new;
  +
  +    $xs->generate;
  +
  +    shift @INC;
   }
   
   sub echo_cmd {
  
  
  
  1.6       +1 -0      modperl-2.0/lib/ModPerl/BuildOptions.pm
  
  Index: BuildOptions.pm
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/lib/ModPerl/BuildOptions.pm,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- BuildOptions.pm   2001/03/04 19:41:57     1.5
  +++ BuildOptions.pm   2001/03/26 16:17:06     1.6
  @@ -147,3 +147,4 @@
   APXS            Path to apxs
   XS_GLUE_DIR     Directories containing extension glue
   INCLUDE_DIR     Add directories to search for header files
  +GENERATE_XS     Generate XS code based on httpd version
  
  
  
  1.10      +17 -0     modperl-2.0/pod/modperl_dev.pod
  
  Index: modperl_dev.pod
  ===================================================================
  RCS file: /home/cvs/modperl-2.0/pod/modperl_dev.pod,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- modperl_dev.pod   2001/03/26 13:37:08     1.9
  +++ modperl_dev.pod   2001/03/26 16:17:10     1.10
  @@ -46,6 +46,10 @@
   
   Accept default values for all would-be prompts
   
  +=item MP_GENERATE_XS
  +
  +Generate xs code from parsed source headers in I<xs/tables/$httpd_version>.
  +
   =item MP_USE_DSO
   
   Build mod_perl as a DSO
  @@ -103,6 +107,19 @@
     % ./configure --with-mpm=threaded
     % make
   
  +=head2 Howto generate source tables
  +
  +All mod_perl-2.0 xs code is generated from parsed header files.  While
  +in pre-release mode, a version of these tables will be checked in to
  +I<xs/tables/current>.  Should you wish to update these tables, here's
  +how:
  +
  +NOTE: requires C::Scan 0.75, which at the moment is unreleased, there
  +is a working copy here: http://perl.apache.org/~dougm/Scan.pm
  +
  +NOTE: source_scan.pl is a HEAVY process, do not be alarmed.
  +
  +% perl util/source_scan.pl apxs $apache_prefix/bin/apxs
   
   =head1 mod_perl configuration directives
   
  
  
  

Reply via email to