richter 00/07/07 09:28:56
Modified: . Tag: Embperl2 Changes.pod MANIFEST Makefile.PL
README TODO epdom.c
Added: . Tag: Embperl2 README.v2
Log:
Embperl 2
Revision Changes Path
No revision
No revision
1.115.2.11 +5 -3 embperl/Changes.pod
Index: Changes.pod
===================================================================
RCS file: /home/cvs/embperl/Changes.pod,v
retrieving revision 1.115.2.10
retrieving revision 1.115.2.11
diff -u -r1.115.2.10 -r1.115.2.11
--- Changes.pod 2000/06/27 05:31:35 1.115.2.10
+++ Changes.pod 2000/07/07 16:28:54 1.115.2.11
@@ -19,7 +19,7 @@
4 executing
5 outputing
Since steps 1-3 has only to take place for the first time a file
- is processed, Embperl is about 25-100% faster the Embperl 1.x.
+ is processed, Embperl is about 25-50% faster the Embperl 1.x.
(Embperl 1.x has also precompiled the Perl code, but Embperl
goes much further and stores also a precompiled structure of
the document)
@@ -43,8 +43,10 @@
<option value="foo"> and <option>foo</option> are the same
- Embperl now converts not only array ref, but also hashs refs
(e.g. href="[+ { a => 1, b => 2, c => 3 } +]") inside a url
- to a=1&b=2&c=3.
-
+ to a=1&b=2&c=3.
+ - test.pl can take a bunch of new options for debugging.
+ See make test TESTARGS="-?".
+
=head1 1.3b4_dev -- That's what currently under developement
1.41.2.5 +1 -0 embperl/MANIFEST
Index: MANIFEST
===================================================================
RCS file: /home/cvs/embperl/MANIFEST,v
retrieving revision 1.41.2.4
retrieving revision 1.41.2.5
diff -u -r1.41.2.4 -r1.41.2.5
--- MANIFEST 2000/07/07 15:39:35 1.41.2.4
+++ MANIFEST 2000/07/07 16:28:54 1.41.2.5
@@ -9,6 +9,7 @@
Embperl/Mail.pm
EmbperlLogo.gif
README
+README.v2
TODO
Faq.pod
CVS.pod
1.28.2.11 +937 -937 embperl/Makefile.PL
Index: Makefile.PL
===================================================================
RCS file: /home/cvs/embperl/Makefile.PL,v
retrieving revision 1.28.2.10
retrieving revision 1.28.2.11
diff -u -r1.28.2.10 -r1.28.2.11
--- Makefile.PL 2000/06/30 21:26:50 1.28.2.10
+++ Makefile.PL 2000/07/07 16:28:54 1.28.2.11
@@ -1,938 +1,938 @@
-#
-# Building Makefile for Embperl
-#
-# (C) 1997-1999 G.Richter ([EMAIL PROTECTED]) / ECOS
-#
-#
-
-
-use ExtUtils::MakeMaker;
-use Cwd qw {abs_path cwd} ;
-use Config ;
-use File::Basename ;
-
-
-$win32 = ($Config{osname} =~ /win32/i) ;
-$aix = ($Config{osname} =~ /aix/i);
-$dynlib = {};
-print "\nRunning on Win 32\n" if ($win32) ;
-
-## ----------------------------------------------------------------------------
-
-
-
-%neededmodules =
- (
- 'mod_perl.c' => { name => 'perl_module',
- path => ['$apache_src/modules/perl/libperl.so',
'$EPBINDIR/modules/libperl.so'],
- win32path => ['$mpdll', '$mpdll/apachemoduleperl.dll',
'$EPBINDIR/modules/apachemoduleperl.dll'],
- file => 'libperl.so',
- win32file => 'apachemoduleperl.dll',
- },
- 'mod_dir.c' => { name => 'dir_module',
- path => ['$apache_src/modules/standard/mod_dir.so',
'$EPBINDIR/modules/mod_dir.so'],
- win32path =>
['$apache_src/modules/standard/apachemoduledir.dll',
'$EPBINDIR/modules/apachemoduledir.dll'],
- file => 'mod_dir.so',
- win32file => 'apachemoduledir.dll',
- },
-
- 'mod_env.c' => { name => 'env_module',
- path => ['$apache_src/modules/standard/mod_env.so',
'$EPBINDIR/modules/mod_env.so'],
- win32path =>
['$apache_src/modules/standard/apachemoduleenv.dll',
'$EPBINDIR/modules/apachemoduleenv.dll'],
- file => 'mod_env.so',
- win32file => 'apachemoduleenv.dll',
- },
-
- 'mod_mime.c' => { name => 'mime_module',
- path => ['$apache_src/modules/standard/mod_mime.so',
'$EPBINDIR/modules/mod_mime.so'],
- win32path =>
['$apache_src/modules/standard/apachemodulemime.dll',
'$EPBINDIR/modules/apachemodulemime.dll'],
- file => 'mod_mime.so',
- win32file => 'apachemodulemime.dll',
- },
-
- 'mod_alias.c' => { name => 'alias_module',
- path => ['$apache_src/modules/standard/mod_alias.so',
'$EPBINDIR/modules/mod_alias.so'],
- win32path =>
['$apache_src/modules/standard/apachemodulealias.dll',
'$EPBINDIR/modules/apachemodulealias.dll'],
- file => 'mod_alias.so',
- win32file => 'apachemodulealias.dll',
- },
-
- 'mod_cgi.c' => { name => 'cgi_module',
- path => ['$apache_src/modules/standard/mod_cgi.so',
'$EPBINDIR/modules/mod_cgi.so'],
- win32path =>
['$apache_src/modules/standard/apachemodulecgi.dll',
'$EPBINDIR/modules/apachemodulecgi.dll'],
- file => 'mod_cgi.so',
- win32file => 'apachemodulecgi.dll',
- },
-
- 'mod_actions.c' => { name => 'action_module',
- path => ['$apache_src/modules/standard/mod_actions.so',
'$EPBINDIR/modules/mod_actions.so'],
- win32path =>
['$apache_src/modules/standard/apachemoduleactions.dll',
'$EPBINDIR/modules/apachemoduleactions.dll'],
- file => 'mod_actions.so',
- win32file => 'apachemoduleactions.dll',
- },
-
-
- ) ;
-
-
-
-
-## ----------------------------------------------------------------------------
-
-
-sub MY::test_via_harness
- {
- my ($txt) = shift -> MM::test_via_harness (@_) ;
- $txt =~ s/PERL_DL_NONLAZY=1/PERL_DL_NONLAZY=0/ ;
- #$txt =~ s/\$\(FULLPERL\)/\$\(FULLPERL\) \-T / ;
- $txt =~ s/\$\(FULLPERL\)/SET PATH=\$\(PATH\)\;$EPHTTPDDLL\n\t\$\(FULLPERL\)/
if ($win32) ;
- return $txt ;
- }
-
-sub MY::test_via_script
- {
- my ($txt) = shift -> MM::test_via_script (@_) ;
- $txt =~ s/PERL_DL_NONLAZY=1/PERL_DL_NONLAZY=0/ ;
- #$txt =~ s/\$\(FULLPERL\)/\$\(FULLPERL\) \-T / ;
- $txt =~ s/\$\(FULLPERL\)/SET PATH=\$\(PATH\)\;$EPHTTPDDLL\n\t\$\(FULLPERL\)/
if ($win32) ;
-
- $txt =~ s/\$\(TEST_FILE\)/\$(TEST_FILE) \$(TESTARGS)/g ;
-
- return $txt ;
- }
-
-
-sub MY::test
-
- {
- my ($txt) = shift -> MM::test (@_) ;
-
-
- $txt .= qq{
-
-testdbinit : pure_all
-\t\@echo set args -I\$(INST_ARCHLIB) -I\$(INST_LIB) -I\$(PERL_ARCHLIB)
-I\$(PERL_LIB) \$(TEST_FILE) \$(TESTARGS) > dbinitembperl
-
-testdbbreak : pure_all
-\t\@echo set args -I\$(INST_ARCHLIB) -I\$(INST_LIB) -I\$(PERL_ARCHLIB)
-I\$(PERL_LIB) \$(TEST_FILE) --dbgbreak \$(TESTARGS) > dbinitembperl
-\t\@echo r >> dbinitembperl
-
-
-testddd : testdbinit
-\tPERL_DL_NONLAZY=0 ddd -x dbinitembperl \$(FULLPERL)
-
-testgdb : testdbinit
-\tPERL_DL_NONLAZY=0 gdb -x dbinitembperl \$(FULLPERL)
-
-testdddb : testdbbreak
-\tPERL_DL_NONLAZY=0 ddd -x dbinitembperl \$(FULLPERL)
-
-testgdbb : testdbbreak
-\tPERL_DL_NONLAZY=0 gdb -x dbinitembperl \$(FULLPERL)
-
-
-} ;
-
+#
+# Building Makefile for Embperl
+#
+# (C) 1997-1999 G.Richter ([EMAIL PROTECTED]) / ECOS
+#
+#
+
+
+use ExtUtils::MakeMaker;
+use Cwd qw {abs_path cwd} ;
+use Config ;
+use File::Basename ;
+
+
+$win32 = ($Config{osname} =~ /win32/i) ;
+$aix = ($Config{osname} =~ /aix/i);
+$dynlib = {};
+print "\nRunning on Win 32\n" if ($win32) ;
+
+## ----------------------------------------------------------------------------
+
+
+
+%neededmodules =
+ (
+ 'mod_perl.c' => { name => 'perl_module',
+ path => ['$apache_src/modules/perl/libperl.so',
'$EPBINDIR/modules/libperl.so'],
+ win32path => ['$mpdll', '$mpdll/apachemoduleperl.dll',
'$EPBINDIR/modules/apachemoduleperl.dll'],
+ file => 'libperl.so',
+ win32file => 'apachemoduleperl.dll',
+ },
+ 'mod_dir.c' => { name => 'dir_module',
+ path => ['$apache_src/modules/standard/mod_dir.so',
'$EPBINDIR/modules/mod_dir.so'],
+ win32path =>
['$apache_src/modules/standard/apachemoduledir.dll',
'$EPBINDIR/modules/apachemoduledir.dll'],
+ file => 'mod_dir.so',
+ win32file => 'apachemoduledir.dll',
+ },
+
+ 'mod_env.c' => { name => 'env_module',
+ path => ['$apache_src/modules/standard/mod_env.so',
'$EPBINDIR/modules/mod_env.so'],
+ win32path =>
['$apache_src/modules/standard/apachemoduleenv.dll',
'$EPBINDIR/modules/apachemoduleenv.dll'],
+ file => 'mod_env.so',
+ win32file => 'apachemoduleenv.dll',
+ },
+
+ 'mod_mime.c' => { name => 'mime_module',
+ path => ['$apache_src/modules/standard/mod_mime.so',
'$EPBINDIR/modules/mod_mime.so'],
+ win32path =>
['$apache_src/modules/standard/apachemodulemime.dll',
'$EPBINDIR/modules/apachemodulemime.dll'],
+ file => 'mod_mime.so',
+ win32file => 'apachemodulemime.dll',
+ },
+
+ 'mod_alias.c' => { name => 'alias_module',
+ path => ['$apache_src/modules/standard/mod_alias.so',
'$EPBINDIR/modules/mod_alias.so'],
+ win32path =>
['$apache_src/modules/standard/apachemodulealias.dll',
'$EPBINDIR/modules/apachemodulealias.dll'],
+ file => 'mod_alias.so',
+ win32file => 'apachemodulealias.dll',
+ },
+
+ 'mod_cgi.c' => { name => 'cgi_module',
+ path => ['$apache_src/modules/standard/mod_cgi.so',
'$EPBINDIR/modules/mod_cgi.so'],
+ win32path =>
['$apache_src/modules/standard/apachemodulecgi.dll',
'$EPBINDIR/modules/apachemodulecgi.dll'],
+ file => 'mod_cgi.so',
+ win32file => 'apachemodulecgi.dll',
+ },
+
+ 'mod_actions.c' => { name => 'action_module',
+ path => ['$apache_src/modules/standard/mod_actions.so',
'$EPBINDIR/modules/mod_actions.so'],
+ win32path =>
['$apache_src/modules/standard/apachemoduleactions.dll',
'$EPBINDIR/modules/apachemoduleactions.dll'],
+ file => 'mod_actions.so',
+ win32file => 'apachemoduleactions.dll',
+ },
+
+
+ ) ;
+
+
+
+
+## ----------------------------------------------------------------------------
+
+
+sub MY::test_via_harness
+ {
+ my ($txt) = shift -> MM::test_via_harness (@_) ;
+ $txt =~ s/PERL_DL_NONLAZY=1/PERL_DL_NONLAZY=0/ ;
+ #$txt =~ s/\$\(FULLPERL\)/\$\(FULLPERL\) \-T / ;
+ $txt =~ s/\$\(FULLPERL\)/SET PATH=\$\(PATH\)\;$EPHTTPDDLL\n\t\$\(FULLPERL\)/
if ($win32) ;
+ return $txt ;
+ }
+
+sub MY::test_via_script
+ {
+ my ($txt) = shift -> MM::test_via_script (@_) ;
+ $txt =~ s/PERL_DL_NONLAZY=1/PERL_DL_NONLAZY=0/ ;
+ #$txt =~ s/\$\(FULLPERL\)/\$\(FULLPERL\) \-T / ;
+ $txt =~ s/\$\(FULLPERL\)/SET PATH=\$\(PATH\)\;$EPHTTPDDLL\n\t\$\(FULLPERL\)/
if ($win32) ;
+
+ $txt =~ s/\$\(TEST_FILE\)/\$(TEST_FILE) \$(TESTARGS)/g ;
+
+ return $txt ;
+ }
+
+
+sub MY::test
+
+ {
+ my ($txt) = shift -> MM::test (@_) ;
+
+
+ $txt .= qq{
+
+testdbinit : pure_all
+\t\@echo set args -I\$(INST_ARCHLIB) -I\$(INST_LIB) -I\$(PERL_ARCHLIB)
-I\$(PERL_LIB) \$(TEST_FILE) \$(TESTARGS) > dbinitembperl
+
+testdbbreak : pure_all
+\t\@echo set args -I\$(INST_ARCHLIB) -I\$(INST_LIB) -I\$(PERL_ARCHLIB)
-I\$(PERL_LIB) \$(TEST_FILE) --dbgbreak \$(TESTARGS) > dbinitembperl
+\t\@echo r >> dbinitembperl
+
+
+testddd : testdbinit
+\tPERL_DL_NONLAZY=0 ddd -x dbinitembperl \$(FULLPERL)
+
+testgdb : testdbinit
+\tPERL_DL_NONLAZY=0 gdb -x dbinitembperl \$(FULLPERL)
+
+testdddb : testdbbreak
+\tPERL_DL_NONLAZY=0 ddd -x dbinitembperl \$(FULLPERL)
+
+testgdbb : testdbbreak
+\tPERL_DL_NONLAZY=0 gdb -x dbinitembperl \$(FULLPERL)
+
+
+} ;
+
$txt =~ s/\r\n/\n/g ; # make doesn't like \r\n!
-
-
- return $txt ;
- }
-
-
-
-sub MY::xs_c
- {
- my ($txt) = shift -> MM::xs_c (@_) ;
- $txt =~ s/\&\&/\n\t/ if ($win32) ;
- return $txt ;
- }
-
-sub MY::dist_test
- {
- my $self = shift ;
-
- my $txt = $self -> MM::dist_test (@_) ;
- $txt =~ s/-I\$\(PERL_ARCHLIB\) -I\$\(PERL_LIB\)// ;
- $txt =~ s/\$\(PERL\)/\$\(PERLDT\)/ ;
-
- $main::perlbinpath = $self -> {FULLPERL} ;
-
- return $txt ;
- }
-
-sub MY::cflags
- {
- my $self = shift ;
-
- my $txt = $self -> MM::cflags (@_) ;
- $txt =~ s/CCFLAGS\s*=/CCFLAGS = $ccdebug / ;
-
- return $txt ;
- }
-
-
-
-## ----------------------------------------------------------------------------
-
-sub GetString
- {
- my ($prompt, $default) = @_ ;
-
- printf ("%s [%s]", $prompt, $default) ;
- chop ($_ = <STDIN>) ;
- if (!/^\s*$/)
- {return $_ ;}
- else
- {
- if ($_ eq "")
- {return $default ;}
- else
- { return "" ; }
-
- }
- }
-
-## ----------------------------------------------------------------------------
-
-sub GetYesNo
- {
- my ($prompt, $default) = @_ ;
- my ($value) ;
-
- do
- {
- $value = lc (GetString ($prompt . "(y/n)", ($default?"y":"n"))) ;
- }
- until (($value cmp "j") == 0 || ($value cmp "y") == 0 || ($value cmp "n" ) ==
0) ;
-
- return ($value cmp "n") != 0 ;
- }
-
-
-## ----------------------------------------------------------------------------
-
-sub search_config
-
- {
- my ($key, $path) = @_ ;
-
-
- open FH, $path or return undef ;
-
- while (<FH>)
- {
- return $1 if (/^$key\s*=\s*(.*?)$/) ;
- }
-
- close FH ;
- return undef ;
- }
-
-## ----------------------------------------------------------------------------
-
-
-sub cnvpath
-
- {
- my $path = shift ;
-
- $path =~ s/\//\\/g if ($win32) ;
-
- return $path ;
- }
-
-## ----------------------------------------------------------------------------
-
-
-sub start
-
- {
- my ($cmd) = @_ ;
-
-
- $cmd =~ s/\//\\/g if ($win32) ;
-
-
- open FH, "$cmd|" or die "\nCannot start $cmd\nPlease make sure you have build
Apache and mod_perl before makeing Embperl\n" ;
-
- my @x = <FH> or die "\nCannot start $cmd\nPlease make sure you have build
Apache and mod_perl before makeing Embperl\n" ;
-
- close FH ;
- return @x ;
- }
-
-
-## ----------------------------------------------------------------------------
-
-
-sub start_errcode
-
- {
- my ($cmd) = @_ ;
-
-
- $cmd =~ s/\//\\/g if ($win32) ;
-
-
- open FH, "$cmd|" or return 1 ;
-
- my @x = <FH> ;
-
- #print "@x" ;
-
- my $code = close FH ;
- #print "Code = $code ; ? = $?\n" ;
-
- return $? ;
- }
-
-
-## ----------------------------------------------------------------------------
-#
-# Check if required modules present
-#
-
-
-sub CheckModule
-
- {
- my ($mod, $text) = @_ ;
-
- eval "require $mod" ;
- if ($@)
- {
- print "$mod not installed on this system\n" ;
- print "$text\n" ;
- return undef ;
- }
- else
- {
- my $ver = ${"$mod\:\:VERSION"} ;
- print "Found $mod Version $ver\n" ;
- return $ver ;
- }
- }
-
-
-
-## ----------------------------------------------------------------------------
-#
-# Check if known config
-#
-
-
-$apache = 0 ;
-$b = 0 ;
-
-$ccdebug = '' ;
-$lddebug = '' ;
-
-if ($ARGV[0] eq 'debug')
- {
- if ($win32)
- {
- $ccdebug = '-Zi -W3' ;
- $lddebug = '-debug -map -profile' ;
- }
- else
- {
- $ccdebug = '-g' ;
- $lddebug = '-g' ;
- }
- }
-elsif (defined ($ARGV[0]) && ($ARGV[0] =~ /^\W/))
- {
- $apache = 2 ;
- $b = 1 ;
- $apache_src = shift @ARGV ;
- }
-elsif (defined ($ENV{APACHE_SRC}))
- {
- $apache = 2 ;
- $b = 1 ;
- $apache_src = $ENV{APACHE_SRC} ;
- }
-
-if (!$apache && $apache_src eq '')
- {
- eval 'use Apache::MyConfig' ;
-
- if ($@ eq '')
- {
- $apache_src = $Apache::MyConfig::Setup{Apache_Src} ;
- }
- else
- {
- $apache_src = '' ;
- }
- }
-
-if (!$apache && $apache_src eq '')
- {
- eval 'do "test/conf/config.pl"' ;
-
- $apache_src = $EPAPACHESRC ;
- $loadmodules = $EPMODPERL ;
- }
-
-$base = '..' ;
-
-
-
-$apache = GetYesNo ("Build with support for Apache mod_perl?", 'y') if (!$apache) ;
-
-if ($apache && $apache_src ne '')
- {
- if ($apache_src =~ /^(.*?)\/$/)
- { $apache_src = $1 ; }
-
- if ($apache_src =~ /^(.*?)\/main$/)
- { $apache_src = $1 ; }
-
- if ($apache_src =~ /^(.*?)\/include$/)
- { $apache_src = $1 ; }
-
- if (-e "$apache_src/httpd.h" || -e "$apache_src/main/httpd.h" || -e
"$apache_src/include/httpd.h")
- {
- $b = GetYesNo ("Use $apache_src as Apache source", 'y') if (!$b) ;
- }
- }
-
-while ($apache && !$b)
- {
- print "Searching for Apache sources...\n" ;
- foreach $src_dir ($base,
- "$base/src",
- <$base/apache*/src>,
- <./src>)
- {
- print "Look at $src_dir\n" ;
-
- if (-e "$src_dir/httpd.h" || -e "$src_dir/main/httpd.h" || -e
"$src_dir/include/httpd.h")
- {
- $b = GetYesNo ("Use $src_dir as Apache source", 'y') ;
- if ($b)
- {
- $apache_src = $src_dir ;
- last ;
- }
- }
- }
-
- if ($apache_src =~ /^(.*?)\/$/)
- { $apache_src = $1 ; }
-
- if ($apache_src =~ /^(.*?)\/main$/)
- { $apache_src = $1 ; }
-
- if ($apache_src =~ /^(.*?)\/include$/)
- { $apache_src = $1 ; }
-
-
- if (!$b)
- {
- $base = GetString ("Apache source not found, enter path name or q to quit",
'') ;
- if ($base eq 'q')
- {
- $apache = 0 ;
- }
- else
- {
- $base =~ s/\//\\/g if ($win32) ;
- }
- }
- }
-
-if ($b && $apache && $apache_src ne '')
- {
- $apache_src = abs_path ($apache_src) ;
-
- print "Will use $apache_src for Apache Headers\n" ;
-
- #### look in which subdir the include files resides ####
-
- if (-e "$apache_src/httpd.h")
- {
- $inc_dir = $apache_src ;
- }
- elsif (-e "$apache_src/main/httpd.h")
- {
- $inc_dir = "$apache_src/main" ;
- }
- elsif (-e "$apache_src/include/httpd.h")
- {
- $inc_dir = "$apache_src/include" ;
- }
-
-
- if ($win32)
- {
- $i = "-I. -I$inc_dir -I$apache_src/regex -I$apache_src/os/win32" ;
- if (!-e "$apache_src/CoreR/ApacheCore.lib")
- {
- $o = " $apache_src/CoreD/ApacheCore.lib" ;
- }
- else
- {
- $o = " $apache_src/CoreR/ApacheCore.lib" ;
- }
- }
- else
- {
- $i = "-I$inc_dir -I$apache_src/regex -I$apache_src/os/unix" ;
- $o = '' ;
- }
- $d = "-DAPACHE" ;
-
- }
-else
- {
- $apache = 0 ;
- print "Will build without mod_perl support\n" ;
- $i = '' ;
- $d = '' ;
- $o = '' ;
- }
-
-
-if ($win32 && $apache)
- { # borrowed from mod_perl
- local *FH;
- open FH, ">dirent.h" || die "can't write dirent.h $!";
- print FH <<EOF;
-/* major kludge to workaround conflict(s) between perl's dirent.h and apache's
readdir.h */
-
-#ifdef WIN32
-
-#define _INC_DIRENT
-#define DIR void
-
-#endif
-
-EOF
- close FH;
-
- if ($ENV{APACHE_PERL_DLL})
- {
- $mpdll = $ENV{APACHE_PERL_DLL} ;
- }
- elsif ($EPMODPERL =~ /^LoadModule perl_module (.*?)$/)
- {
- $mpdll = $1 ;
- }
-=pod
- else
- {
- SEARCH:
- {
- for my $drive ('c'..'g')
- {
- for my $p ("program files\\apache\\modules", "apache\\modules")
- {
- last SEARCH if -e ($mpdll = "$drive:\\$p\\apachemoduleperl.dll");
- }
- }
- }
- }
-
- $mpdll .= "\\apachemoduleperl.dll" if (!($mpdll =~ /apachemoduleperl\.dll/i)) ;
- if (!(-f $mpdll))
- {
- require ExtUtils::MakeMaker;
- ExtUtils::MakeMaker->import('prompt');
- $mpdll = prompt("Where is your ApacheModulePerl.dll located ?", $mpdll);
- $mpdll .= "\\apachemoduleperl.dll" if (!($mpdll =~
/apachemoduleperl\.dll/i)) ;
- if (!(-f $mpdll))
- {
- print "$mpdll not found, please make sure Apache and mod_perl are
installed before installing Embperl\n" ;
- exit (1) ;
- }
- }
-
- $mpdll = cnvpath ($mpdll) ;
- $mpdll =~ s/\\\\/\\/g ;
-
- die "Can't find ApacheModulePerl.dll at $mpdll!" if (!(-e $mpdll));
-=cut
-
- }
-
-#
-# Check to see which user to use for httpd tests
-#
-
-$EPPATH = cwd ;
-$EPMODPERL = '' ;
-$EPSTARTUP ='startup.pl' ;
-
-if ($b && $apache)
- {
- $EPPORT = 8531 ;
- if (!$win32)
- {
- $EPUSER = getpwuid($>) || $> ;
- $EPGROUP = getgrgid($)) || $) ;
- if ($EPUSER eq 'root')
- {
- my $nobody = (getpwnam('nobody'))[0] ;
- $EPUSER = $nobody if $nobody ;
- }
-
- if ($EPUSER eq 'root')
- {
- print "Cannot run test httpd as User $EPUSER\n" ;
- $EPUSER = GetString ("User to run httpd", 'nobody') ;
- $EPGROUP = GetString ("Group to run httpd", $EPGROUP) ;
- }
-
- $EPHTTPD = "$apache_src/httpd" ;
- $EPHTTPD = "$apache_src/httpsd" if (!-e $EPHTTPD && -e
"$apache_src/httpsd") ;
-
- if (!-e $EPHTTPD)
- {
- $EPHTTPD = GetString ("Enter path and file to start as httpd",
"$EPHTTPD") ;
- }
-
- $EPMODPERL="" ;
- }
- else
- {
- $EPHTTPD = "$apache_src/ApacheR/Apache.exe" ;
- $EPHTTPDDLL = "$apache_src/CoreR" ;
- if (!-e $EPHTTPD)
- {
- $EPHTTPD = "$apache_src/ApacheD/Apache.exe" ;
- $EPHTTPDDLL = "$apache_src/CoreD" ;
- }
- #$EPMODPERL="LoadModule perl_module $mpdll" ;
- $EPUSER = 'www' ; # dummy value
- $EPGROUP = 'www' ;
- if (!-e $EPHTTPD)
- {
- $EPHTTPD = GetString ("Enter path and file to start as Apache.exe",
"$EPHTTPD") ;
- }
- }
-
-
- ### check the apache version ###
-
- $ENV{PATH} .= ";$EPHTTPDDLL" if ($win32) ;
-
-
- @EPAPACHEVERSION = start ("$EPHTTPD -v") ;
- @modules = start ("$EPHTTPD -l") ;
-
- print "Apache Version $EPAPACHEVERSION[0]" ;
-
- $EPSTRONGHOLD = ($EPAPACHEVERSION[0] =~ /stronghold/i) ;
- $EPAPACHE_SSL = grep (/apache_ssl.c/, @modules) ;
- $EPMOD_SSL = !$EPSTRONGHOLD && grep (/mod_ssl.c/, @modules) ;
-
- $EPBINDIR = dirname ($EPHTTPD) ;
- $EPMODPERL = '' ;
-
- $addmodpath = '' ;
- while (($mod, $opt) = each %neededmodules)
- {
- if (!grep (/$mod/, @modules))
- { # module not linked staticly
- $paths = $win32?$opt->{win32path}:$opt->{path} ;
- $modfile = $win32?$opt->{win32file}:$opt->{file} ;
- $found = 2 ;
- while ($found == 2)
- {
- $found = 0 ;
- if ($addmodpath)
- {
- $path = cnvpath ("$addmodpath/$modfile") ;
- #print "path = $_ -> $path\n" ;
- if (-f $path)
- { ## module fould
- $EPMODPERL .= "\r\nLoadModule $opt->{name} $path" ;
- print " + Load dynamic module $mod\n" ;
- $found = 1 ;
- last ;
- }
- }
- foreach (@$paths)
- {
- $path = cnvpath (eval "\"$_\"") ;
- #print "path = $_ -> $path\n" ;
- if (-f $path)
- { ## module fould
- $EPMODPERL .= "\r\nLoadModule $opt->{name} $path" ;
- print " + Load dynamic module $mod\n" ;
- $found = 1 ;
- last ;
- }
- }
- if (!$found)
- {
- my $w32msg = '' ;
- $w32msg = "\nPlease enter full path including the drive letter!! "
if ($win32) ;
- $addmodpath = GetString ("Library for $mod not found, please enter
path to $modfile $w32msg", "") ;
- $found = 2 ;
- }
- }
- }
- }
-
-
-
-
- $use_dso = 0 ;
- #if (!$win32 && -e "$apache_src/modules/perl/libperl.so" && !grep
(/mod_perl.c/, @modules))
- if (!$win32 && ($EPMODPERL =~ /perl_module/))
- {
- #$EPMODPERL="LoadModule perl_module $apache_src/modules/perl/libperl.so" ;
- #$EPSTARTUP ='startup_dso.pl' ;
- print " + mod_perl was build with USE_DSO\n" ;
- #aixold# $dynlib->{'OTHERLDFLAGS'} = "-bI:mod_perl.exp
-bI:$apache_src/support/httpd.exp" if ($aix);
- $use_dso = 1 ;
- }
-
- require Apache::src;
- $dynlib->{'OTHERLDFLAGS'} = Apache::src->new->otherldflags if (defined
(&Apache::src::otherldflags)) ;
-
-
- if ($EPSTRONGHOLD)
- {
- $i .= " -I$apache_src/../ssl/include" ;
- $d .= " -DSTRONGHOLD" ;
- print " + found Stronghold\n" ;
- }
- elsif ($EPAPACHE_SSL)
- {
- $d .= " -DEPAPACHE_SSL" ;
- print " + found Apache SSL\n" ;
- }
- elsif ($EPMOD_SSL)
- {
- my $sslbase = search_config ('SSL_BASE', "$apache_src/Configuration.apaci")
;
- $sslbase = search_config ('SSL_BASE', "$apache_src/Configuration") if
(!$sslbase) ;
- $i .= " -I$sslbase/include" ;
- print " + found mod_ssl\n" ;
- $EPSSLDISABLE = !start_errcode ("$EPHTTPD -t -f
$EPPATH/test/conf/ssldisable.conf") ;
- }
-
-
-
- if ($EPSTRONGHOLD)
- {
- my $conf = "$apache_src/../conf/httpd.conf";
- if(-e $conf)
- {
- open FH, $conf;
- while(<FH>)
- {
- if(/^StrongholdKey/)
- {
- chomp ;
- $EPSTRONGHOLDKEY = $_;
- last;
- }
- }
- close FH;
- }
- }
- else
- {
- $EPSTRONGHOLDKEY = '' ;
- }
-
-
- print "Test start $EPHTTPD\n" ;
- print "Test httpd will run as user $EPUSER and group $EPGROUP\n" if (!$win32) ;
- print "Test httpd will listen on port $EPPORT\n" ;
- print "Test will use $EPSTRONGHOLDKEY\n" if($EPSTRONGHOLDKEY) ;
-
-
- ### check for required modules ###
-
- if (($MPVer = CheckModule ("mod_perl", "-> Cannot build for mod_perl without
mod_perl installed!!")))
- {
- if ($win32 && $MPVer lt "1.12")
- {
- print "-> Please upgrade to an higher version of mod_perl on Win32\n" ;
- }
- if ($use_dso && $MPVer lt "1.22")
- {
- print "-> You MUST upgrade to mod_perl 1.22 or higher when mod_perl is
build with USE_DSO!!\n" ;
- $EPSTARTUP ='startup_dso.pl' ;
- }
- if ($aix && $MPVer lt "1.22")
- {
- print "-> You MUST upgrade to mod_perl 1.22 or higher to use Embperl on
AIX!!\n" ;
- $EPSTARTUP ='startup_dso.pl' ;
- }
- }
-
- if (CheckModule ("LWP::UserAgent", "-> Cannot test mod_perl and CGI mode"))
- {
- CheckModule ("HTML::HeadParser", "-> Is required by LWP::UserAgent");
- }
-
- $SessVer = CheckModule ("Apache::Session", "-> Disable tests for persistent
data storage") || '' ;
-
- if ($SessVer && !($SessVer >= 1.00))
- {
- if ($SessVer && !($SessVer =~ /0\.17/))
- {
- print "-> Embperl works only with Apache::Session 0.17.x or 1.00 and
higher\n" ;
- print "-> Disable tests for persistent data storage\n" ;
- $SessVer = '0' ;
- }
- }
-
- $SessVer ||= 0 ;
-
- CheckModule ("CGI", "-> File Upload will not work without CGI.pm installed") ;
-
- ### write out test configuration file ###
-
- open FH, ">$EPPATH/test/conf/config.pl" or die "Cannot open
$EPPATH/test/conf/config.pl" ;
- print FH "# This file is automaticly generated by Makefile.PL, do not edit\n" ;
- print FH "\$EPPATH='" . cnvpath($EPPATH) . "' ;\n" ;
- print FH "\$EPUSER='$EPUSER' ;\n" ;
- print FH "\$EPGROUP='$EPGROUP' ;\n" ;
- print FH "\$EPPORT=$EPPORT ;\n" ;
- print FH "\$EPHTTPD='" . cnvpath($EPHTTPD) . "' ;\n" ;
- print FH "\$EPHTTPDDLL='" . cnvpath($EPHTTPDDLL) . "' ;\n" ;
- print FH "\$EPWIN32='$win32' ;\n" ;
- print FH "\$EPAPACHESRC='" . cnvpath($apache_src) . "' ;\n" ;
- print FH "\$EPAPACHE_SSL='" . $EPAPACHE_SSL . "' ;\n" ;
- print FH "\$EPSTRONGHOLD='$EPSTRONGHOLD' ;\n" ;
- print FH "\$EPSSLDISABLE='$EPSSLDISABLE' ;\n" ;
- print FH "\$EPSTRONGHOLDKEY='$EPSTRONGHOLDKEY' ;\n" ;
- print FH "\$EPMODPERL='" . cnvpath($EPMODPERL) . "';\n" ;
- print FH "\$EPSTARTUP='" . cnvpath($EPSTARTUP) . "';\n" ;
- print FH "\$EPAPACHEVERSION='$EPAPACHEVERSION[0]';\n" ;
- print FH "\$EPSESSIONVERSION='$SessVer';\n" ;
- if ($win32)
- {
- print FH "\$EPNULL='nul';\n" ;
- }
- else
- {
- print FH "\$EPNULL='/dev/null';\n" ;
- }
-
-
-
- close FH ;
- }
-else
- {
- ### check for required modules ###
-
- $SessVer = CheckModule ("Apache::Session", "-> Disable tests for persistent
data storage") || '' ;
-
- if ($SessVer && $SessVer lt "0.17")
- {
- print "-> Please upgrade to Apache::Session 0.17 or higher\n" ;
- print "-> Disable tests for persistent data storage\n" ;
- $SessVer = 0 ;
- }
-
- $SessVer ||= 0 ;
-
- ### write out test configuration file ###
-
- open FH, ">$EPPATH/test/conf/config.pl" or die "Cannot open
$EPPATH/test/conf/config.pl" ;
- print FH "# This file is automaticly generated by Makefile.PL, do not edit\n" ;
- print FH "\$EPPATH='$EPPATH' ; \n" ;
- print FH "\$EPHTTPD='' ;\n" ;
- print FH "\$EPWIN32='$win32' ;\n" ;
- print FH "\$EPSESSIONVERSION='$SessVer';\n" ;
- print FH "\$EPSSLDISABLE='$EPSSLDISABLE' ;\n" ;
- close FH ;
- }
-
-# $d .= ' -DPERL_IS_5_6 ' if $] >= 5.006;
-
-if ($win32)
- { # Check for winsock2api
-
- if (open FH, "$inc_dir/../os/win32/os.h")
- {
- my @conf = <FH> ;
- close FH ;
-
- if (grep (/winsock2\.h/, @conf))
- {
- $d .= ' -D_WINSOCK2API_ -D_MSWSOCK_ ' ;
- }
- elsif (open FH, "$inc_dir/ap_config.h")
- {
- @conf = <FH> ;
- close FH ;
-
- if (grep (/winsock2\.h/, @conf))
- {
- $d .= ' -D_WINSOCK2API_ ' ;
- }
- }
- }
- }
-
-$dynlib->{'OTHERLDFLAGS'} .= " $lddebug" ;
-
-
-WriteMakefile(
- 'NAME' => 'HTML::Embperl',
- 'VERSION_FROM' => 'Embperl.pm', # finds $VERSION
- 'OBJECT' => 'Embperl$(OBJ_EXT) epmain$(OBJ_EXT) epio$(OBJ_EXT)
epchar$(OBJ_EXT) epcmd$(OBJ_EXT) epcmd2$(OBJ_EXT) eputil$(OBJ_EXT) epeval$(OBJ_EXT)
epdbg$(OBJ_EXT) epparse$(OBJ_EXT) epdom$(OBJ_EXT) epcomp$(OBJ_EXT)' . $o,
- 'LIBS' => [''],
- 'DEFINE' => "$d \$(DEFS)",
- 'INC' => $i,
- 'MAN3PODS' => {
- 'Embperl.pod' => 'blib/man3/HTML::Embperl.3',
- 'EmbperlD.pod' => 'blib/man3/HTML::EmbperlD.3'
- },
- 'clean' => { FILES => 'dirent.h test/tmp/*' },
- 'dist' => { COMPRESS => 'gzip', SUFFIX => 'gz'},
- 'dynamic_lib' => $dynlib,
-);
-
-
-
-#
-# Change path to perl binary
-#
-
-@bins = ('embpexec.pl','embpexec.bat',
- 'embpcgi.pl', 'embpcgi.test.pl', 'embpcgi.bat', 'embpcgi.test.bat',) ;
-
-
-die "Missing path to perl binary" if (!$perlbinpath) ;
-
-
-foreach $f (@bins)
- {
- unlink "$f.org" ;
- rename $f, "$f.org" or die "Cannot rename $f to $f.org" ;
- open IN, "<$f.org" or die "Cannot open $f.org" ;
- open OUT, ">$f" or die "Cannot open $f" ;
- my $l = 1 ;
- while (<IN>)
- {
- if ($l++ < 10)
- {
- #if ($win32)
- # {
- # s/^\#\!.*?perl.*?\s(.*?)/#!perl $1/ ;
- # }
- #else
- # {
- s/^\#\!.*?perl.*?\s(.*?)/#!$perlbinpath $1/ ;
- # }
- s/^.*?perl.*?\s-x/$perlbinpath -x/ ;
- }
- print OUT $_ ;
- }
- close IN ;
- close OUT ;
- chmod 0755, $f or die "Cannot set executable $f" ;
- }
-
+
+
+ return $txt ;
+ }
+
+
+
+sub MY::xs_c
+ {
+ my ($txt) = shift -> MM::xs_c (@_) ;
+ $txt =~ s/\&\&/\n\t/ if ($win32) ;
+ return $txt ;
+ }
+
+sub MY::dist_test
+ {
+ my $self = shift ;
+
+ my $txt = $self -> MM::dist_test (@_) ;
+ $txt =~ s/-I\$\(PERL_ARCHLIB\) -I\$\(PERL_LIB\)// ;
+ $txt =~ s/\$\(PERL\)/\$\(PERLDT\)/ ;
+
+ $main::perlbinpath = $self -> {FULLPERL} ;
+
+ return $txt ;
+ }
+
+sub MY::cflags
+ {
+ my $self = shift ;
+
+ my $txt = $self -> MM::cflags (@_) ;
+ $txt =~ s/CCFLAGS\s*=/CCFLAGS = $ccdebug / ;
+
+ return $txt ;
+ }
+
+
+
+## ----------------------------------------------------------------------------
+
+sub GetString
+ {
+ my ($prompt, $default) = @_ ;
+
+ printf ("%s [%s]", $prompt, $default) ;
+ chop ($_ = <STDIN>) ;
+ if (!/^\s*$/)
+ {return $_ ;}
+ else
+ {
+ if ($_ eq "")
+ {return $default ;}
+ else
+ { return "" ; }
+
+ }
+ }
+
+## ----------------------------------------------------------------------------
+
+sub GetYesNo
+ {
+ my ($prompt, $default) = @_ ;
+ my ($value) ;
+
+ do
+ {
+ $value = lc (GetString ($prompt . "(y/n)", ($default?"y":"n"))) ;
+ }
+ until (($value cmp "j") == 0 || ($value cmp "y") == 0 || ($value cmp "n" ) ==
0) ;
+
+ return ($value cmp "n") != 0 ;
+ }
+
+
+## ----------------------------------------------------------------------------
+
+sub search_config
+
+ {
+ my ($key, $path) = @_ ;
+
+
+ open FH, $path or return undef ;
+
+ while (<FH>)
+ {
+ return $1 if (/^$key\s*=\s*(.*?)$/) ;
+ }
+
+ close FH ;
+ return undef ;
+ }
+
+## ----------------------------------------------------------------------------
+
+
+sub cnvpath
+
+ {
+ my $path = shift ;
+
+ $path =~ s/\//\\/g if ($win32) ;
+
+ return $path ;
+ }
+
+## ----------------------------------------------------------------------------
+
+
+sub start
+
+ {
+ my ($cmd) = @_ ;
+
+
+ $cmd =~ s/\//\\/g if ($win32) ;
+
+
+ open FH, "$cmd|" or die "\nCannot start $cmd\nPlease make sure you have build
Apache and mod_perl before makeing Embperl\n" ;
+
+ my @x = <FH> or die "\nCannot start $cmd\nPlease make sure you have build
Apache and mod_perl before makeing Embperl\n" ;
+
+ close FH ;
+ return @x ;
+ }
+
+
+## ----------------------------------------------------------------------------
+
+
+sub start_errcode
+
+ {
+ my ($cmd) = @_ ;
+
+
+ $cmd =~ s/\//\\/g if ($win32) ;
+
+
+ open FH, "$cmd|" or return 1 ;
+
+ my @x = <FH> ;
+
+ #print "@x" ;
+
+ my $code = close FH ;
+ #print "Code = $code ; ? = $?\n" ;
+
+ return $? ;
+ }
+
+
+## ----------------------------------------------------------------------------
+#
+# Check if required modules present
+#
+
+
+sub CheckModule
+
+ {
+ my ($mod, $text) = @_ ;
+
+ eval "require $mod" ;
+ if ($@)
+ {
+ print "$mod not installed on this system\n" ;
+ print "$text\n" ;
+ return undef ;
+ }
+ else
+ {
+ my $ver = ${"$mod\:\:VERSION"} ;
+ print "Found $mod Version $ver\n" ;
+ return $ver ;
+ }
+ }
+
+
+
+## ----------------------------------------------------------------------------
+#
+# Check if known config
+#
+
+
+$apache = 0 ;
+$b = 0 ;
+
+$ccdebug = '' ;
+$lddebug = '' ;
+
+if ($ARGV[0] eq 'debug')
+ {
+ if ($win32)
+ {
+ $ccdebug = '-Zi -W3' ;
+ $lddebug = '-debug -map -profile' ;
+ }
+ else
+ {
+ $ccdebug = '-g' ;
+ $lddebug = '-g' ;
+ }
+ }
+elsif (defined ($ARGV[0]) && ($ARGV[0] =~ /^\W/))
+ {
+ $apache = 2 ;
+ $b = 1 ;
+ $apache_src = shift @ARGV ;
+ }
+elsif (defined ($ENV{APACHE_SRC}))
+ {
+ $apache = 2 ;
+ $b = 1 ;
+ $apache_src = $ENV{APACHE_SRC} ;
+ }
+
+if (!$apache && $apache_src eq '')
+ {
+ eval 'use Apache::MyConfig' ;
+
+ if ($@ eq '')
+ {
+ $apache_src = $Apache::MyConfig::Setup{Apache_Src} ;
+ }
+ else
+ {
+ $apache_src = '' ;
+ }
+ }
+
+if (!$apache && $apache_src eq '')
+ {
+ eval 'do "test/conf/config.pl"' ;
+
+ $apache_src = $EPAPACHESRC ;
+ $loadmodules = $EPMODPERL ;
+ }
+
+$base = '..' ;
+
+
+
+$apache = GetYesNo ("Build with support for Apache mod_perl?", 'y') if (!$apache) ;
+
+if ($apache && $apache_src ne '')
+ {
+ if ($apache_src =~ /^(.*?)\/$/)
+ { $apache_src = $1 ; }
+
+ if ($apache_src =~ /^(.*?)\/main$/)
+ { $apache_src = $1 ; }
+
+ if ($apache_src =~ /^(.*?)\/include$/)
+ { $apache_src = $1 ; }
+
+ if (-e "$apache_src/httpd.h" || -e "$apache_src/main/httpd.h" || -e
"$apache_src/include/httpd.h")
+ {
+ $b = GetYesNo ("Use $apache_src as Apache source", 'y') if (!$b) ;
+ }
+ }
+
+while ($apache && !$b)
+ {
+ print "Searching for Apache sources...\n" ;
+ foreach $src_dir ($base,
+ "$base/src",
+ <$base/apache*/src>,
+ <./src>)
+ {
+ print "Look at $src_dir\n" ;
+
+ if (-e "$src_dir/httpd.h" || -e "$src_dir/main/httpd.h" || -e
"$src_dir/include/httpd.h")
+ {
+ $b = GetYesNo ("Use $src_dir as Apache source", 'y') ;
+ if ($b)
+ {
+ $apache_src = $src_dir ;
+ last ;
+ }
+ }
+ }
+
+ if ($apache_src =~ /^(.*?)\/$/)
+ { $apache_src = $1 ; }
+
+ if ($apache_src =~ /^(.*?)\/main$/)
+ { $apache_src = $1 ; }
+
+ if ($apache_src =~ /^(.*?)\/include$/)
+ { $apache_src = $1 ; }
+
+
+ if (!$b)
+ {
+ $base = GetString ("Apache source not found, enter path name or q to quit",
'') ;
+ if ($base eq 'q')
+ {
+ $apache = 0 ;
+ }
+ else
+ {
+ $base =~ s/\//\\/g if ($win32) ;
+ }
+ }
+ }
+
+if ($b && $apache && $apache_src ne '')
+ {
+ $apache_src = abs_path ($apache_src) ;
+
+ print "Will use $apache_src for Apache Headers\n" ;
+
+ #### look in which subdir the include files resides ####
+
+ if (-e "$apache_src/httpd.h")
+ {
+ $inc_dir = $apache_src ;
+ }
+ elsif (-e "$apache_src/main/httpd.h")
+ {
+ $inc_dir = "$apache_src/main" ;
+ }
+ elsif (-e "$apache_src/include/httpd.h")
+ {
+ $inc_dir = "$apache_src/include" ;
+ }
+
+
+ if ($win32)
+ {
+ $i = "-I. -I$inc_dir -I$apache_src/regex -I$apache_src/os/win32" ;
+ if (!-e "$apache_src/CoreR/ApacheCore.lib")
+ {
+ $o = " $apache_src/CoreD/ApacheCore.lib" ;
+ }
+ else
+ {
+ $o = " $apache_src/CoreR/ApacheCore.lib" ;
+ }
+ }
+ else
+ {
+ $i = "-I$inc_dir -I$apache_src/regex -I$apache_src/os/unix" ;
+ $o = '' ;
+ }
+ $d = "-DAPACHE" ;
+
+ }
+else
+ {
+ $apache = 0 ;
+ print "Will build without mod_perl support\n" ;
+ $i = '' ;
+ $d = '' ;
+ $o = '' ;
+ }
+
+
+if ($win32 && $apache)
+ { # borrowed from mod_perl
+ local *FH;
+ open FH, ">dirent.h" || die "can't write dirent.h $!";
+ print FH <<EOF;
+/* major kludge to workaround conflict(s) between perl's dirent.h and apache's
readdir.h */
+
+#ifdef WIN32
+
+#define _INC_DIRENT
+#define DIR void
+
+#endif
+
+EOF
+ close FH;
+
+ if ($ENV{APACHE_PERL_DLL})
+ {
+ $mpdll = $ENV{APACHE_PERL_DLL} ;
+ }
+ elsif ($EPMODPERL =~ /^LoadModule perl_module (.*?)$/)
+ {
+ $mpdll = $1 ;
+ }
+=pod
+ else
+ {
+ SEARCH:
+ {
+ for my $drive ('c'..'g')
+ {
+ for my $p ("program files\\apache\\modules", "apache\\modules")
+ {
+ last SEARCH if -e ($mpdll = "$drive:\\$p\\apachemoduleperl.dll");
+ }
+ }
+ }
+ }
+
+ $mpdll .= "\\apachemoduleperl.dll" if (!($mpdll =~ /apachemoduleperl\.dll/i)) ;
+ if (!(-f $mpdll))
+ {
+ require ExtUtils::MakeMaker;
+ ExtUtils::MakeMaker->import('prompt');
+ $mpdll = prompt("Where is your ApacheModulePerl.dll located ?", $mpdll);
+ $mpdll .= "\\apachemoduleperl.dll" if (!($mpdll =~
/apachemoduleperl\.dll/i)) ;
+ if (!(-f $mpdll))
+ {
+ print "$mpdll not found, please make sure Apache and mod_perl are
installed before installing Embperl\n" ;
+ exit (1) ;
+ }
+ }
+
+ $mpdll = cnvpath ($mpdll) ;
+ $mpdll =~ s/\\\\/\\/g ;
+
+ die "Can't find ApacheModulePerl.dll at $mpdll!" if (!(-e $mpdll));
+=cut
+
+ }
+
+#
+# Check to see which user to use for httpd tests
+#
+
+$EPPATH = cwd ;
+$EPMODPERL = '' ;
+$EPSTARTUP ='startup.pl' ;
+
+if ($b && $apache)
+ {
+ $EPPORT = 8531 ;
+ if (!$win32)
+ {
+ $EPUSER = getpwuid($>) || $> ;
+ $EPGROUP = getgrgid($)) || $) ;
+ if ($EPUSER eq 'root')
+ {
+ my $nobody = (getpwnam('nobody'))[0] ;
+ $EPUSER = $nobody if $nobody ;
+ }
+
+ if ($EPUSER eq 'root')
+ {
+ print "Cannot run test httpd as User $EPUSER\n" ;
+ $EPUSER = GetString ("User to run httpd", 'nobody') ;
+ $EPGROUP = GetString ("Group to run httpd", $EPGROUP) ;
+ }
+
+ $EPHTTPD = "$apache_src/httpd" ;
+ $EPHTTPD = "$apache_src/httpsd" if (!-e $EPHTTPD && -e
"$apache_src/httpsd") ;
+
+ if (!-e $EPHTTPD)
+ {
+ $EPHTTPD = GetString ("Enter path and file to start as httpd",
"$EPHTTPD") ;
+ }
+
+ $EPMODPERL="" ;
+ }
+ else
+ {
+ $EPHTTPD = "$apache_src/ApacheR/Apache.exe" ;
+ $EPHTTPDDLL = "$apache_src/CoreR" ;
+ if (!-e $EPHTTPD)
+ {
+ $EPHTTPD = "$apache_src/ApacheD/Apache.exe" ;
+ $EPHTTPDDLL = "$apache_src/CoreD" ;
+ }
+ #$EPMODPERL="LoadModule perl_module $mpdll" ;
+ $EPUSER = 'www' ; # dummy value
+ $EPGROUP = 'www' ;
+ if (!-e $EPHTTPD)
+ {
+ $EPHTTPD = GetString ("Enter path and file to start as Apache.exe",
"$EPHTTPD") ;
+ }
+ }
+
+
+ ### check the apache version ###
+
+ $ENV{PATH} .= ";$EPHTTPDDLL" if ($win32) ;
+
+
+ @EPAPACHEVERSION = start ("$EPHTTPD -v") ;
+ @modules = start ("$EPHTTPD -l") ;
+
+ print "Apache Version $EPAPACHEVERSION[0]" ;
+
+ $EPSTRONGHOLD = ($EPAPACHEVERSION[0] =~ /stronghold/i) ;
+ $EPAPACHE_SSL = grep (/apache_ssl.c/, @modules) ;
+ $EPMOD_SSL = !$EPSTRONGHOLD && grep (/mod_ssl.c/, @modules) ;
+
+ $EPBINDIR = dirname ($EPHTTPD) ;
+ $EPMODPERL = '' ;
+
+ $addmodpath = '' ;
+ while (($mod, $opt) = each %neededmodules)
+ {
+ if (!grep (/$mod/, @modules))
+ { # module not linked staticly
+ $paths = $win32?$opt->{win32path}:$opt->{path} ;
+ $modfile = $win32?$opt->{win32file}:$opt->{file} ;
+ $found = 2 ;
+ while ($found == 2)
+ {
+ $found = 0 ;
+ if ($addmodpath)
+ {
+ $path = cnvpath ("$addmodpath/$modfile") ;
+ #print "path = $_ -> $path\n" ;
+ if (-f $path)
+ { ## module fould
+ $EPMODPERL .= "\r\nLoadModule $opt->{name} $path" ;
+ print " + Load dynamic module $mod\n" ;
+ $found = 1 ;
+ last ;
+ }
+ }
+ foreach (@$paths)
+ {
+ $path = cnvpath (eval "\"$_\"") ;
+ #print "path = $_ -> $path\n" ;
+ if (-f $path)
+ { ## module fould
+ $EPMODPERL .= "\r\nLoadModule $opt->{name} $path" ;
+ print " + Load dynamic module $mod\n" ;
+ $found = 1 ;
+ last ;
+ }
+ }
+ if (!$found)
+ {
+ my $w32msg = '' ;
+ $w32msg = "\nPlease enter full path including the drive letter!! "
if ($win32) ;
+ $addmodpath = GetString ("Library for $mod not found, please enter
path to $modfile $w32msg", "") ;
+ $found = 2 ;
+ }
+ }
+ }
+ }
+
+
+
+
+ $use_dso = 0 ;
+ #if (!$win32 && -e "$apache_src/modules/perl/libperl.so" && !grep
(/mod_perl.c/, @modules))
+ if (!$win32 && ($EPMODPERL =~ /perl_module/))
+ {
+ #$EPMODPERL="LoadModule perl_module $apache_src/modules/perl/libperl.so" ;
+ #$EPSTARTUP ='startup_dso.pl' ;
+ print " + mod_perl was build with USE_DSO\n" ;
+ #aixold# $dynlib->{'OTHERLDFLAGS'} = "-bI:mod_perl.exp
-bI:$apache_src/support/httpd.exp" if ($aix);
+ $use_dso = 1 ;
+ }
+
+ require Apache::src;
+ $dynlib->{'OTHERLDFLAGS'} = Apache::src->new->otherldflags if (defined
(&Apache::src::otherldflags)) ;
+
+
+ if ($EPSTRONGHOLD)
+ {
+ $i .= " -I$apache_src/../ssl/include" ;
+ $d .= " -DSTRONGHOLD" ;
+ print " + found Stronghold\n" ;
+ }
+ elsif ($EPAPACHE_SSL)
+ {
+ $d .= " -DEPAPACHE_SSL" ;
+ print " + found Apache SSL\n" ;
+ }
+ elsif ($EPMOD_SSL)
+ {
+ my $sslbase = search_config ('SSL_BASE', "$apache_src/Configuration.apaci")
;
+ $sslbase = search_config ('SSL_BASE', "$apache_src/Configuration") if
(!$sslbase) ;
+ $i .= " -I$sslbase/include" ;
+ print " + found mod_ssl\n" ;
+ $EPSSLDISABLE = !start_errcode ("$EPHTTPD -t -f
$EPPATH/test/conf/ssldisable.conf") ;
+ }
+
+
+
+ if ($EPSTRONGHOLD)
+ {
+ my $conf = "$apache_src/../conf/httpd.conf";
+ if(-e $conf)
+ {
+ open FH, $conf;
+ while(<FH>)
+ {
+ if(/^StrongholdKey/)
+ {
+ chomp ;
+ $EPSTRONGHOLDKEY = $_;
+ last;
+ }
+ }
+ close FH;
+ }
+ }
+ else
+ {
+ $EPSTRONGHOLDKEY = '' ;
+ }
+
+
+ print "Test start $EPHTTPD\n" ;
+ print "Test httpd will run as user $EPUSER and group $EPGROUP\n" if (!$win32) ;
+ print "Test httpd will listen on port $EPPORT\n" ;
+ print "Test will use $EPSTRONGHOLDKEY\n" if($EPSTRONGHOLDKEY) ;
+
+
+ ### check for required modules ###
+
+ if (($MPVer = CheckModule ("mod_perl", "-> Cannot build for mod_perl without
mod_perl installed!!")))
+ {
+ if ($win32 && $MPVer lt "1.12")
+ {
+ print "-> Please upgrade to an higher version of mod_perl on Win32\n" ;
+ }
+ if ($use_dso && $MPVer lt "1.22")
+ {
+ print "-> You MUST upgrade to mod_perl 1.22 or higher when mod_perl is
build with USE_DSO!!\n" ;
+ $EPSTARTUP ='startup_dso.pl' ;
+ }
+ if ($aix && $MPVer lt "1.22")
+ {
+ print "-> You MUST upgrade to mod_perl 1.22 or higher to use Embperl on
AIX!!\n" ;
+ $EPSTARTUP ='startup_dso.pl' ;
+ }
+ }
+
+ if (CheckModule ("LWP::UserAgent", "-> Cannot test mod_perl and CGI mode"))
+ {
+ CheckModule ("HTML::HeadParser", "-> Is required by LWP::UserAgent");
+ }
+
+ $SessVer = CheckModule ("Apache::Session", "-> Disable tests for persistent
data storage") || '' ;
+
+ if ($SessVer && !($SessVer >= 1.00))
+ {
+ if ($SessVer && !($SessVer =~ /0\.17/))
+ {
+ print "-> Embperl works only with Apache::Session 0.17.x or 1.00 and
higher\n" ;
+ print "-> Disable tests for persistent data storage\n" ;
+ $SessVer = '0' ;
+ }
+ }
+
+ $SessVer ||= 0 ;
+
+ CheckModule ("CGI", "-> File Upload will not work without CGI.pm installed") ;
+
+ ### write out test configuration file ###
+
+ open FH, ">$EPPATH/test/conf/config.pl" or die "Cannot open
$EPPATH/test/conf/config.pl" ;
+ print FH "# This file is automaticly generated by Makefile.PL, do not edit\n" ;
+ print FH "\$EPPATH='" . cnvpath($EPPATH) . "' ;\n" ;
+ print FH "\$EPUSER='$EPUSER' ;\n" ;
+ print FH "\$EPGROUP='$EPGROUP' ;\n" ;
+ print FH "\$EPPORT=$EPPORT ;\n" ;
+ print FH "\$EPHTTPD='" . cnvpath($EPHTTPD) . "' ;\n" ;
+ print FH "\$EPHTTPDDLL='" . cnvpath($EPHTTPDDLL) . "' ;\n" ;
+ print FH "\$EPWIN32='$win32' ;\n" ;
+ print FH "\$EPAPACHESRC='" . cnvpath($apache_src) . "' ;\n" ;
+ print FH "\$EPAPACHE_SSL='" . $EPAPACHE_SSL . "' ;\n" ;
+ print FH "\$EPSTRONGHOLD='$EPSTRONGHOLD' ;\n" ;
+ print FH "\$EPSSLDISABLE='$EPSSLDISABLE' ;\n" ;
+ print FH "\$EPSTRONGHOLDKEY='$EPSTRONGHOLDKEY' ;\n" ;
+ print FH "\$EPMODPERL='" . cnvpath($EPMODPERL) . "';\n" ;
+ print FH "\$EPSTARTUP='" . cnvpath($EPSTARTUP) . "';\n" ;
+ print FH "\$EPAPACHEVERSION='$EPAPACHEVERSION[0]';\n" ;
+ print FH "\$EPSESSIONVERSION='$SessVer';\n" ;
+ if ($win32)
+ {
+ print FH "\$EPNULL='nul';\n" ;
+ }
+ else
+ {
+ print FH "\$EPNULL='/dev/null';\n" ;
+ }
+
+
+
+ close FH ;
+ }
+else
+ {
+ ### check for required modules ###
+
+ $SessVer = CheckModule ("Apache::Session", "-> Disable tests for persistent
data storage") || '' ;
+
+ if ($SessVer && $SessVer lt "0.17")
+ {
+ print "-> Please upgrade to Apache::Session 0.17 or higher\n" ;
+ print "-> Disable tests for persistent data storage\n" ;
+ $SessVer = 0 ;
+ }
+
+ $SessVer ||= 0 ;
+
+ ### write out test configuration file ###
+
+ open FH, ">$EPPATH/test/conf/config.pl" or die "Cannot open
$EPPATH/test/conf/config.pl" ;
+ print FH "# This file is automaticly generated by Makefile.PL, do not edit\n" ;
+ print FH "\$EPPATH='$EPPATH' ; \n" ;
+ print FH "\$EPHTTPD='' ;\n" ;
+ print FH "\$EPWIN32='$win32' ;\n" ;
+ print FH "\$EPSESSIONVERSION='$SessVer';\n" ;
+ print FH "\$EPSSLDISABLE='$EPSSLDISABLE' ;\n" ;
+ close FH ;
+ }
+
+# $d .= ' -DPERL_IS_5_6 ' if $] >= 5.006;
+
+if ($win32)
+ { # Check for winsock2api
+
+ if (open FH, "$inc_dir/../os/win32/os.h")
+ {
+ my @conf = <FH> ;
+ close FH ;
+
+ if (grep (/winsock2\.h/, @conf))
+ {
+ $d .= ' -D_WINSOCK2API_ -D_MSWSOCK_ ' ;
+ }
+ elsif (open FH, "$inc_dir/ap_config.h")
+ {
+ @conf = <FH> ;
+ close FH ;
+
+ if (grep (/winsock2\.h/, @conf))
+ {
+ $d .= ' -D_WINSOCK2API_ ' ;
+ }
+ }
+ }
+ }
+
+$dynlib->{'OTHERLDFLAGS'} .= " $lddebug" ;
+
+
+WriteMakefile(
+ 'NAME' => 'HTML::Embperl',
+ 'VERSION_FROM' => 'Embperl.pm', # finds $VERSION
+ 'OBJECT' => 'Embperl$(OBJ_EXT) epmain$(OBJ_EXT) epio$(OBJ_EXT)
epchar$(OBJ_EXT) epcmd$(OBJ_EXT) epcmd2$(OBJ_EXT) eputil$(OBJ_EXT) epeval$(OBJ_EXT)
epdbg$(OBJ_EXT) epparse$(OBJ_EXT) epdom$(OBJ_EXT) epcomp$(OBJ_EXT)' . $o,
+ 'LIBS' => [''],
+ 'DEFINE' => "$d \$(DEFS)",
+ 'INC' => $i,
+ 'MAN3PODS' => {
+ 'Embperl.pod' => 'blib/man3/HTML::Embperl.3',
+ 'EmbperlD.pod' => 'blib/man3/HTML::EmbperlD.3'
+ },
+ 'clean' => { FILES => 'dirent.h test/tmp/*' },
+ 'dist' => { COMPRESS => 'gzip', SUFFIX => 'gz'},
+ 'dynamic_lib' => $dynlib,
+);
+
+
+
+#
+# Change path to perl binary
+#
+
+@bins = ('embpexec.pl','embpexec.bat',
+ 'embpcgi.pl', 'embpcgi.test.pl', 'embpcgi.bat', 'embpcgi.test.bat',) ;
+
+
+die "Missing path to perl binary" if (!$perlbinpath) ;
+
+
+foreach $f (@bins)
+ {
+ unlink "$f.org" ;
+ rename $f, "$f.org" or die "Cannot rename $f to $f.org" ;
+ open IN, "<$f.org" or die "Cannot open $f.org" ;
+ open OUT, ">$f" or die "Cannot open $f" ;
+ my $l = 1 ;
+ while (<IN>)
+ {
+ if ($l++ < 10)
+ {
+ #if ($win32)
+ # {
+ # s/^\#\!.*?perl.*?\s(.*?)/#!perl $1/ ;
+ # }
+ #else
+ # {
+ s/^\#\!.*?perl.*?\s(.*?)/#!$perlbinpath $1/ ;
+ # }
+ s/^.*?perl.*?\s-x/$perlbinpath -x/ ;
+ }
+ print OUT $_ ;
+ }
+ close IN ;
+ close OUT ;
+ chmod 0755, $f or die "Cannot set executable $f" ;
+ }
+
1.19.2.1 +9 -0 embperl/README
Index: README
===================================================================
RCS file: /home/cvs/embperl/README,v
retrieving revision 1.19
retrieving revision 1.19.2.1
diff -u -r1.19 -r1.19.2.1
--- README 2000/05/02 06:47:10 1.19
+++ README 2000/07/07 16:28:54 1.19.2.1
@@ -9,6 +9,15 @@
WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+*** IMPORTANT NOTE ***
+
+This is the A L P H A version of Embperl 2.x. I have done a lot of
+testing, but there are surely some errors left. The documentaion
+has _not_ been updated. It's very important to read the README.v2
+to see what has changed, what is working and what isn't so far.
+
+**********************
+
OVERVIEW
1.90.2.10 +1 -21 embperl/TODO
Index: TODO
===================================================================
RCS file: /home/cvs/embperl/TODO,v
retrieving revision 1.90.2.9
retrieving revision 1.90.2.10
diff -u -r1.90.2.9 -r1.90.2.10
--- TODO 2000/06/14 11:48:58 1.90.2.9
+++ TODO 2000/07/07 16:28:55 1.90.2.10
@@ -7,12 +7,8 @@
- @param -> @_
-- make optUndefToEmptyValue default [Steve Willer]
-
- whitespace intention [Todd Eigenshink]
-- make checkbox and option work without value attribute
-
- used named subroutines for debugging [Ert Dredge]
- use ap_r.. instead of ap_b... ?
@@ -21,8 +17,6 @@
- gzip output [Andreas Koenig]
-- custom html tags
-
- url rewriting for session id
- disableHTMLScan inside <script>
@@ -43,8 +37,6 @@
- url escape <input src>
-- allow null bytes in output [ARnel Estanisloa 4.12.99]
-
- handle input image (add field.x/y to %idat) [Pierre Etchemaite 13.12.99]
- make multifiled delimiter \t configurabel [Jean-Philippe FAUVELLE 13.12.99]
@@ -57,7 +49,7 @@
- send last modified header if no perl in the doc [Christain Gilmore 23.02.00]
-- turn off all perl processin [Kee Hinckley 22.03.00]
+- turn off all perl processing [Kee Hinckley 22.03.00]
- accpect \0 as separator for multiple with same name in %fdat (as CGI->Vars)
[Ilia Lobsanov 8.4.00]
@@ -74,29 +66,17 @@
- errorright output
-- [* *] inside if [Vasco Chita 1.5.99]
-
- use Embperl Module later than startup -> cleanup fails on first request
-- StackFree in offline mode
-
- SIG DIE missing message arg [Alex Schmelkin 24.8.99]
- norm path before chdir on win32
-- requrie in [! !] Blocks? [Jens Alm 22.9.99]
-
-- don�t find end of href inside of [+ +] [James Sheridan-Peters 29.11.99]
-
- contrib from Ken Hinckley 2.12.99
-- perl 5.6 [Matthias Ulrichs 06.3.2000]
-
- var cleanup of in imported subs [Lai Yiu Fai 14.3.00]
- using outputfile inside a outputfile crashs
-
-- define _MSWSOCK_ with apache 1.3.12 [Randy Kobes 23.3.00]
Docs
----
1.1.2.51 +3 -3 embperl/Attic/epdom.c
Index: epdom.c
===================================================================
RCS file: /home/cvs/embperl/Attic/epdom.c,v
retrieving revision 1.1.2.50
retrieving revision 1.1.2.51
diff -u -r1.1.2.50 -r1.1.2.51
--- epdom.c 2000/07/07 15:39:38 1.1.2.50
+++ epdom.c 2000/07/07 16:28:55 1.1.2.51
@@ -443,7 +443,7 @@
{
int n ;
- lprintf (pCurrReq, "delete string %s (#%d)\n", Ndx2String (nNdx), nNdx) ;
+ /* lprintf (pCurrReq, "delete string %s (#%d)\n", Ndx2String (nNdx), nNdx) ; */
hv_delete (pStringTableHash, HeKEY (pHE), HeKLEN(pHE), 0) ;
pStringTableArray[nNdx] = NULL ;
n = ArrayAdd (&pFreeStringsNdx, 1) ;
@@ -611,7 +611,7 @@
tNodeData * pNode = NodePad_selfFirstChild (pDomTree,pPad) ;
int nOffset ;
- lprintf (pCurrReq, "delete typ=%d Pad xNdx=%d\n", pPad -> nType, pPad ->
xNdx) ;
+ /* lprintf (pCurrReq, "delete typ=%d Pad xNdx=%d\n", pPad -> nType, pPad
-> xNdx) ; */
while (pNode)
{
@@ -630,7 +630,7 @@
}
pAttr++ ;
}
- lprintf (pCurrReq, "delete typ=%d Node xNdx=%d\n", pNode -> nType,
pNode -> xNdx) ;
+ /* lprintf (pCurrReq, "delete typ=%d Node xNdx=%d\n", pNode -> nType,
pNode -> xNdx) ; */
pDomTree -> pLookup[pNode -> xNdx] = NULL ;
if (pNode -> nText)
NdxStringFree (pNode -> nText) ;
No revision
No revision
1.1.2.1 +95 -0 embperl/Attic/README.v2
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]