richter 01/05/16 23:41:25
Modified: . Tag: Embperl2c Embperl.pm Makefile.PL embperl.h
test.pl
Log:
Embperl 2 - Makefile.PL fixes for apache_1.3.19 on win32
Revision Changes Path
No revision
No revision
1.118.4.41 +26 -4 embperl/Embperl.pm
Index: Embperl.pm
===================================================================
RCS file: /home/cvs/embperl/Embperl.pm,v
retrieving revision 1.118.4.40
retrieving revision 1.118.4.41
diff -u -r1.118.4.40 -r1.118.4.41
--- Embperl.pm 2001/05/16 14:04:23 1.118.4.40
+++ Embperl.pm 2001/05/17 06:41:24 1.118.4.41
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: Embperl.pm,v 1.118.4.40 2001/05/16 14:04:23 richter Exp $
+# $Id: Embperl.pm,v 1.118.4.41 2001/05/17 06:41:24 richter Exp $
#
###################################################################################
@@ -39,6 +39,7 @@
$packno
@cleanups
+ @cleanupfuncs
$LogOutputFileno
%LogFileColors
@@ -202,6 +203,7 @@
use constant rcArgStackOverflow => 23 ;
use constant rcArrayError => 11 ;
use constant rcCannotUsedRecursive => 19 ;
+use constant rcCleanupErr => 50 ;
use constant rcCmdNotFound => 7 ;
use constant rcElseWithoutIf => 4 ;
use constant rcEndifWithoutIf => 3 ;
@@ -970,6 +972,11 @@
$r -> SetupSession ($req_rec, $Inputfile) ;
+ if (!($r -> SubReq))
+ {
+ @cleanups = () ;
+ @cleanupfuncs = () ;
+ }
{
local $SIG{__WARN__} = \&Warn ;
@@ -1300,15 +1307,22 @@
{
my %seen ;
my $package ;
+ my $func ;
+ local $^W = 0 ;
if (!$ENV{EMBPERL_EP1COMPAT})
{
$seen{''} = 1 ;
$seen{'dbgShowCleanup'} = 1 ;
+ $Debugflags = dbgShowCleanup if ($cleanups[0] eq 'dbgShowCleanup') ;
+ foreach $func (@cleanupfuncs)
+ {
+ eval { &$func ; } ;
+ logerror (rcCleanupErr, "Error during cleanup function: $@") if ($@) ;
+ }
foreach $package (@cleanups)
{
- $Debugflags = dbgShowCleanup if ($package eq 'dbgShowCleanup') ;
next if ($seen{$package}) ;
if ($Debugflags & dbgShowCleanup)
@@ -1317,7 +1331,7 @@
}
$seen{$package} = 1 ;
eval { ClearSymtab ($package, $Debugflags) ; } ;
- print LOG "[$$]CUP: Error: $@\n" if ($@) ;
+ logerror (rcCleanupErr, $@) if ($@) ;
}
}
else
@@ -1326,7 +1340,6 @@
my $glob ;
my $val ;
my $key ;
- local $^W = 0 ;
my $Debugflags ;
my $packfile ;
my %addcleanup ;
@@ -1682,6 +1695,15 @@
return 0 ;
}
+
+#######################################################################################
+
+sub RegisterCleanup
+
+ {
+ push @cleanupfuncs, $_[0] ;
+ }
+
#######################################################################################
1.31.4.15 +62 -62 embperl/Makefile.PL
Index: Makefile.PL
===================================================================
RCS file: /home/cvs/embperl/Makefile.PL,v
retrieving revision 1.31.4.14
retrieving revision 1.31.4.15
diff -u -r1.31.4.14 -r1.31.4.15
--- Makefile.PL 2001/05/16 06:45:21 1.31.4.14
+++ Makefile.PL 2001/05/17 06:41:25 1.31.4.15
@@ -28,56 +28,49 @@
'mod_perl.c' => { name => 'perl_module',
path => ['$apache_src/modules/perl/libperl.so',
'$EPBINDIR/modules/libperl.so', '$apache_src/mod_perl.so'],
win32path => ['$mpdll', '$mpdll/apachemoduleperl.dll',
'$mpdll/mod_perl.so', '$EPBINDIR/modules/apachemoduleperl.dll',
'$EPBINDIR/modules/mod_perl.so'],
- file => 'libperl.so',
+ file => ['libperl.so', 'apachemoduleperl.dll',
'mod_perl.so'],
filetext => 'libperl.so or mod_perl.so',
- win32file => 'apachemoduleperl.dll',
win32filetext => 'ApacheModulePerl.dll or mod_perl.so',
},
'mod_dir.c' => { name => 'dir_module',
path => ['$apache_src/modules/standard/mod_dir.so',
'$EPBINDIR/modules/mod_dir.so', '$apache_src/mod_dir.so'],
win32path =>
['$apache_src/modules/standard/apachemoduledir.dll',
'$EPBINDIR/modules/apachemoduledir.dll', '$EPBINDIR/modules/mod_dir.so'],
- file => 'mod_dir.so',
- win32file => 'apachemoduledir.dll',
+ file => ['mod_dir.so', 'apachemoduledir.dll'],
win32filetext => 'ApacheModuleDir.dll or mod_dir.so',
},
'mod_env.c' => { name => 'env_module',
path => ['$apache_src/modules/standard/mod_env.so',
'$EPBINDIR/modules/mod_env.so', '$apache_src/mod_env.so'],
win32path =>
['$apache_src/modules/standard/apachemoduleenv.dll',
'$EPBINDIR/modules/apachemoduleenv.dll', '$EPBINDIR/modules/mod_env.so'],
- file => 'mod_env.so',
- win32file => 'apachemoduleenv.dll',
+ file => ['mod_env.so', 'apachemoduleenv.dll'],
win32filetext => 'ApacheModuleEnv.dll or mod_env.so',
},
'mod_mime.c' => { name => 'mime_module',
path => ['$apache_src/modules/standard/mod_mime.so',
'$EPBINDIR/modules/mod_mime.so', '$apache_src/mod_mime.so'],
win32path =>
['$apache_src/modules/standard/apachemodulemime.dll',
'$EPBINDIR/modules/apachemodulemime.dll', '$EPBINDIR/modules/mod_mime.so'],
- file => 'mod_mime.so',
- win32file => 'apachemodulemime.dll',
+ file => ['mod_mime.so', 'apachemodulemime.dll'],
win32filetext => 'ApacheModuleMime.dll or mod_mime.so',
},
'mod_alias.c' => { name => 'alias_module',
path => ['$apache_src/modules/standard/mod_alias.so',
'$EPBINDIR/modules/mod_alias.so', '$apache_src/mod_alias.so'],
win32path =>
['$apache_src/modules/standard/apachemodulealias.dll',
'$EPBINDIR/modules/apachemodulealias.dll', '$EPBINDIR/modules/mod_alias.so'],
- file => 'mod_alias.so',
- win32file => 'apachemodulealias.dll',
+ file => ['mod_alias.so', 'apachemodulealias.dll'],
win32filetext => 'ApacheModuleAlias.dll or mod_alias.so',
},
'mod_cgi.c' => { name => 'cgi_module',
path => ['$apache_src/modules/standard/mod_cgi.so',
'$EPBINDIR/modules/mod_cgi.so', '$apache_src/mod_cgi.so'],
win32path =>
['$apache_src/modules/standard/apachemodulecgi.dll',
'$EPBINDIR/modules/apachemodulecgi.dll', '$EPBINDIR/modules/mod_cgi.so'],
- file => 'mod_cgi.so',
- win32file => 'apachemodulecgi.dll',
+ file => ['mod_cgi.so', 'apachemodulecgi.dll'],
win32filetext => 'ApacheModuleCgi.dll or mod_cgi.so',
},
'mod_actions.c' => { name => 'action_module',
path => ['$apache_src/modules/standard/mod_actions.so',
'$EPBINDIR/modules/mod_actions.so', '$apache_src/mod_actions.so'],
win32path =>
['$apache_src/modules/standard/apachemoduleactions.dll',
'$EPBINDIR/modules/apachemoduleactions.dll', '$EPBINDIR/modules/mod_actions.so'],
- file => 'mod_actions.so',
- win32file => 'apachemoduleactions.dll',
+ file => ['mod_actions.so','apachemoduleactions.dll'],
win32filetext => 'ApacheModuleActions.dll or mod_actions.so',
},
@@ -95,7 +88,7 @@
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) ;
+ $txt =~ s/\$\(FULLPERL\)/SET PATH=\$\(PATH\)\;$EPENVPATH\n\t\$\(FULLPERL\)/ if
($win32) ;
return $txt ;
}
@@ -104,7 +97,7 @@
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/\$\(FULLPERL\)/SET PATH=\$\(PATH\)\;$EPENVPATH\n\t\$\(FULLPERL\)/ if
($win32) ;
$txt =~ s/\$\(TEST_FILE\)/\$(TEST_FILE) \$(TESTARGS)/g ;
@@ -529,22 +522,41 @@
if ($win32)
{
$i = "-I. -I\"$inc_dir\" -I\"$apache_src/regex\"
-I\"$apache_src/os/win32\"" ;
- if (-e "$apache_src/libexec/ApacheCore.lib")
- {
- $o = " \"$apache_src/libexec/ApacheCore.lib\"" ;
- }
- elsif (-e "$apache_src/../libexec/ApacheCore.lib")
+
+ foreach ($EPHTTPDDLL,
+ "$apache_src/libexec",
+ "$apache_src/../libexec",
+ "$apache_src/CoreD",
+ "$apache_src/CoreR",
+ "$apache_src/Debug",
+ "$apache_src/Release")
{
- $o = " \"$apache_src/../libexec/ApacheCore.lib\"" ;
- }
- elsif (!-e "$apache_src/CoreD/ApacheCore.lib")
+ if (-e "$_/ApacheCore.lib")
+ {
+ $EPHTTPDDLL = $_ ;
+ $o = " \"$_/ApacheCore.lib\"" ;
+ last ;
+ }
+ }
+
+ if (!$o)
{
- $o = " \"$apache_src/CoreR/ApacheCore.lib\"" ;
- }
- else
- {
- $o = " \"$apache_src/CoreD/ApacheCore.lib\"" ;
- }
+ my $oo ;
+ while (1)
+ {
+ $oo = GetString ("ApacheCore.lib not found, please enter path", $o)
;
+ $oo .= '/ApacheCore.lib' if ($oo !~ /\.lib$/i) ;
+ if (-e $oo)
+ {
+ $oo =~ s#\\#/#g ;
+ $oo =~ s#//#/#g ;
+ $EPHTTPDDLL = $1 if ($o =~ /^(.*)\//) ;
+ $o = " \"$oo\"" ;
+ last ;
+ }
+ }
+ }
+
}
else
{
@@ -632,24 +644,7 @@
}
else
{
- $EPHTTPD = "$apache_src/Apache.exe" ;
- $EPHTTPDDLL = "$apache_src" ;
- if (!-e $EPHTTPD)
- {
- $EPHTTPD = "$apache_src/../Apache.exe" ;
- $EPHTTPDDLL = "$apache_src/.." ;
- }
- if (!-e $EPHTTPD)
- {
- $EPHTTPD = "$apache_src/ApacheD/Apache.exe" ;
- $EPHTTPDDLL = "$apache_src/CoreD" ;
- }
- if (!-e $EPHTTPD)
- {
- $EPHTTPD = "$apache_src/ApacheR/Apache.exe" ;
- $EPHTTPDDLL = "$apache_src/CoreR" ;
- }
- #$EPMODPERL="LoadModule perl_module $mpdll" ;
+ $EPHTTPD = "$EPHTTPDDLL/Apache.exe" ;
$EPUSER = 'www' ; # dummy value
$EPGROUP = 'www' ;
if (!-e $EPHTTPD)
@@ -661,8 +656,8 @@
### check the apache version ###
- $ENV{PATH} .= ";$EPHTTPDDLL" if ($win32) ;
-
+ $EPENVPATH =
";$EPHTTPDDLL;$EPHTTPDDLL/../os/win32/release;$EPHTTPDDLL/../os/win32/debug" ;
+ $ENV{PATH} .= $EPENVPATH if ($win32) ;
@EPAPACHEVERSION = start ("$EPHTTPD -v") ;
@modules = start ("$EPHTTPD -l") ;
@@ -686,21 +681,25 @@
$modfile = $win32?$opt->{win32file}:$opt->{file} ;
$modfiletext = ($win32?$opt->{win32filetext}:$opt->{filetext}) || $modfile
;
$found = 2 ;
- while ($found == 2)
+ searchmod:
+ 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 ($path)\n" ;
- $found = 1 ;
- last ;
- }
- }
+ foreach $modfile (@{$opt->{file}})
+ {
+ $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 ($path)\n" ;
+ $found = 1 ;
+ last searchmod ;
+ }
+ }
+ }
foreach (@$paths)
{
$path = cnvpath (eval "\"$_\"") ;
@@ -715,7 +714,7 @@
}
if (!$found && $loadmodules)
{
- if ($loadmodules =~ /LoadModule $opt->{name} (.*?)$/)
+ if ($loadmodules =~ /LoadModule $opt->{name} \"(.*?)\"$/)
{
$path = $1 ;
if (-f $path)
@@ -913,6 +912,7 @@
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 "\$EPENVPATH='$EPENVPATH' ; \n" ;
print FH "\$EPHTTPD='' ;\n" ;
print FH "\$EPWIN32='$win32' ;\n" ;
print FH "\$EPSESSIONVERSION='$SessVer';\n" ;
1.19.4.5 +3 -3 embperl/embperl.h
Index: embperl.h
===================================================================
RCS file: /home/cvs/embperl/embperl.h,v
retrieving revision 1.19.4.4
retrieving revision 1.19.4.5
diff -u -r1.19.4.4 -r1.19.4.5
--- embperl.h 2001/03/27 11:52:03 1.19.4.4
+++ embperl.h 2001/05/17 06:41:25 1.19.4.5
@@ -10,7 +10,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: embperl.h,v 1.19.4.4 2001/03/27 11:52:03 richter Exp $
+# $Id: embperl.h,v 1.19.4.5 2001/05/17 06:41:25 richter Exp $
#
###################################################################################*/
@@ -71,8 +71,8 @@
rcUnclosedCmd,
rcNotAllowed,
rcNotHashRef,
- rcTagMismatch
-
+ rcTagMismatch,
+ rcCleanupErr
} ;
1.70.4.60 +4 -3 embperl/test.pl
Index: test.pl
===================================================================
RCS file: /home/cvs/embperl/test.pl,v
retrieving revision 1.70.4.59
retrieving revision 1.70.4.60
diff -u -r1.70.4.59 -r1.70.4.60
--- test.pl 2001/05/16 14:04:32 1.70.4.59
+++ test.pl 2001/05/17 06:41:25 1.70.4.60
@@ -11,7 +11,7 @@
# IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
# WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
-# $Id: test.pl,v 1.70.4.59 2001/05/16 14:04:32 richter Exp $
+# $Id: test.pl,v 1.70.4.60 2001/05/17 06:41:25 richter Exp $
#
###################################################################################
@@ -1914,8 +1914,9 @@
if ($EPWIN32)
{
- $ENV{PATH} .= ";$EPHTTPDDLL" if ($EPWIN32) ;
- $ENV{PERL_STARTUP_DONE} = 1 ;
+ #$ENV{PATH} .=
";$EPHTTPDDLL;$EPHTTPDDLL\\..\\os\\win32\\release;$EPHTTPDDLL\\..\\os\\win32\\debug"
if ($EPWIN32) ;
+
+ $ENV{PERL_STARTUP_DONE} = 1 ;
$EPAPACHEVERSION =~ m#Apache/1\.3\.(\d+) # ;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]