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