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]

Reply via email to