difforig perl-5.10.0/installperl perl-5.10.0/lib/ExtUtils/t/Embed.t perl-5.10.0/cygwin/Makefile.SHs perl-5.10.0/Makefile.SH

2008-05-02  Reini Urban <rurban@x-ray.at>

diff -ub perl-5.10.0/installperl.orig perl-5.10.0/installperl
--- perl-5.10.0/installperl.orig	2007-12-18 10:47:07.000000000 +0000
+++ perl-5.10.0/installperl	2008-05-01 16:43:58.578125000 +0000
@@ -281,10 +281,17 @@
     my $perldll;
 
     if ($Is_Cygwin) {
-	$perldll = $libperl;
-	my $v_e_r_s = $ver; $v_e_r_s =~ tr/./_/;
-	$perldll =~ s/(\..*)?$/$v_e_r_s.$dlext/;
-	$perldll =~ s/^lib/cyg/;
+        # get DLLNAME from GNUMakefile
+        my $cmdline = "perl -ne 'm/^DLLNAME=\\s*(.*)\$/ && print \$1' GNUMakefile";
+	$perldll = `$cmdline`;
+	unless ($perldll) {
+	  $perldll = $libperl;
+	  my $v_e_r_s = $ver; $v_e_r_s =~ s/\.\d+$//; $v_e_r_s =~ tr/./_/;
+	  $perldll =~ s/(\..*)?$/$v_e_r_s.$dlext/;
+	  $perldll =~ s/^lib/cyg/;
+	} else {
+	  $perldll .= '.dll';
+	}
     } else {
 	$perldll = 'perl510.' . $dlext;
     }
@@ -367,6 +374,7 @@
 # Install library files.
 
 my ($do_installarchlib, $do_installprivlib) = (0, 0);
+my $vershort = substr($ver,0,-2);
 
 mkpath($installprivlib, $verbose, 0777);
 mkpath($installarchlib, $verbose, 0777);
@@ -376,7 +384,7 @@
 if (chdir "lib") {
     $do_installarchlib = ! samepath($installarchlib, '.');
     $do_installprivlib = ! samepath($installprivlib, '.');
-    $do_installprivlib = 0 if $versiononly && !($installprivlib =~ m/\Q$ver/);
+    $do_installprivlib = 0 if $versiononly && !($installprivlib =~ m/\Q$vershort/);
 
     if ($do_installarchlib || $do_installprivlib) {
 	find(\&installlib, '.');
@@ -569,7 +577,7 @@
 # ($installprivlib/pods for cygwin).
 
 my $pod = ($Is_Cygwin || $Is_Darwin || $Is_VMS || $Is_W32) ? 'pods' : 'pod';
-if ( !$versiononly || ($installprivlib =~ m/\Q$ver/)) {
+if ( !$versiononly || ($installprivlib =~ m/\Q$vershort/)) {
     mkpath("${installprivlib}/$pod", $verbose, 0777);
 
     # If Perl 5.003's perldiag.pod is there, rename it.
diff -ub perl-5.10.0/lib/ExtUtils/t/Embed.t.orig perl-5.10.0/lib/ExtUtils/t/Embed.t
--- perl-5.10.0/lib/ExtUtils/t/Embed.t.orig	2007-12-18 10:47:07.000000000 +0000
+++ perl-5.10.0/lib/ExtUtils/t/Embed.t	2008-05-01 16:43:58.578125000 +0000
@@ -106,7 +106,7 @@
     }
    }
    elsif ($^O eq 'cygwin') { # Cygwin needs the shared libperl copied
-     my $v_e_r_s = $Config{version};
+     my $v_e_r_s = substr($Config{version},0,-2);
      $v_e_r_s =~ tr/./_/;
      system("cp ../cygperl$v_e_r_s.dll ./");    # for test 1
    }
diff -ub perl-5.10.0/cygwin/Makefile.SHs.orig perl-5.10.0/cygwin/Makefile.SHs
--- perl-5.10.0/cygwin/Makefile.SHs.orig	2007-12-18 10:47:07.000000000 +0000
+++ perl-5.10.0/cygwin/Makefile.SHs	2008-05-02 07:04:45.921875000 +0000
@@ -1,10 +1,12 @@
+# -*- shell-script -*-
 # This file is read by Makefile.SH to produce rules for $(LIBPERL) (and
 # some additional rules as well).
 
 # Rerun `sh Makefile.SH; make depend' after making any change.
 
 # Additional rules supported: libperl.a (for static linking),
-# ld2 and perlld removed
+# ld2 and perlld removed. 
+# DynaLoader.o added to libperl
 #
 
 #! /bin/sh
@@ -34,14 +36,27 @@
 libperl=`echo $libperl|sed -e s,\\\..*,,`
 linklibperl=-l`echo $libperl|sed -e s,^lib,,`
 vers=`echo $version|tr '.' '_'`
-dllname=`echo $libperl|sed -e s,^lib,cyg,`$vers
+# strip minor version number
+dllname=`echo $libperl|sed -e s,^lib,cyg,``echo $vers|sed -e s,_[0-9]$,,`
+# append "d" suffix to -DDEBUGGING build: cygperl5_10d.dll
+case "$ccflags" in
+  *-DDEBUGGING*)
+      dllname="${dllname}"d
+      ;;
+esac
+# append "-nt" suffix to -Uusethreads build: cygperl5_10-nt.dll
+case "$usethreads" in
+  undef)
+      dllname="${dllname}"-nt
+      ;;
+esac
 
 $spitshell >>Makefile <<!GROK!THIS!
 LIBPERL = $libperl
-LLIBPERL= $linklibperl
 DLLNAME= $dllname
 CLDFLAGS= -L$addtopath $ldflags
 LDDLFLAGS = --shared -L$addtopath $ldflags
+CCFLAGS=$ccflags
 PLDLFLAGS = 
 CAT = $cat
 AWK = $awk
@@ -50,21 +65,20 @@
 case "$useshrplib" in
 true)
 	$spitshell >>Makefile <<'!NO!SUBS!'
-cwobj = $(obj)
-
 # override default rule (NB: make croaks!) to force dll usage
 perlmain$(OBJ_EXT): perlmain.c
 	$(CCCMD) $(PLDLFLAGS) -DUSEIMPORTLIB $*.c
 
 # library used to make statically linked executables
-# miniperl is linked against it to avoid libperl.dll locking
-$(LIBPERL)$(LIB_EXT): $& $(cwobj)
-	$(AR) rcu $@ $(cwobj)
+$(LIBPERL)$(LIB_EXT): $& $(obj) $(DYNALOADER)
+	$(AR) rcu $@ $(obj) $(DYNALOADER)
 
 # dll and import library
-$(LIBPERL).dll$(LIB_EXT): $& $(cwobj)
+$(DLLNAME)$(DLSUFFIX) : $(LIBPERL).dll$(LIB_EXT)
+
+$(LIBPERL).dll$(LIB_EXT): $& $(obj) $(DYNALOADER)
 	$(LDLIBPTH) $(CC) $(SHRPLDFLAGS) -o $(DLLNAME)$(DLSUFFIX) -Wl,--out-implib=$@ \
-	$(cwobj) $(libs)
+	  $(obj) $(DYNALOADER) $(libs)
 
 # How to build executables.
 
@@ -74,33 +88,22 @@
 # build problems but that's not obvious to the novice.
 # The Module used here must not depend on Config or any extensions.
 
-miniperl.exe \
-miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) opmini$(OBJ_EXT)
-	$(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(libs)
+miniperl$(EXE_EXT): $& miniperlmain$(OBJ_EXT) $(obj) opmini$(OBJ_EXT)
+	$(LDLIBPTH) $(CC) -o miniperl $(CLDFLAGS) \
+	    `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \
+	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(libs)
 	$(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
 
-perl.exe \
-perl: $& perlmain$(OBJ_EXT) $(LIBPERL).dll$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs
-	$(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
-
-pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL).dll$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs
-	$(SHRPENV) $(LDLIBPTH) purify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
-
-purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL).dll$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs
-	$(SHRPENV) $(LDLIBPTH) purecov $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
-
-quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL).dll$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs
-	$(SHRPENV) $(LDLIBPTH) quantify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+perl$(EXE_EXT): $& perlmain$(OBJ_EXT) $(DLLNAME)$(DLSUFFIX) $(static_ext) ext.libs
+	$(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
 
 !NO!SUBS!
 	;;
 *)
 $spitshell >>Makefile <<'!NO!SUBS!'
-cwobj = $(obj)
-
 # perl library
-$(LIBPERL)$(LIB_EXT): $& $(cwobj)
-	$(AR) rcu $@ $(cwobj)
+$(LIBPERL)$(LIB_EXT): $& $(obj) $(DYNALOADER)
+	$(AR) rcu $@ $(obj) $(DYNALOADER)
 
 # How to build executables.
 
@@ -110,23 +113,14 @@
 # build problems but that's not obvious to the novice.
 # The Module used here must not depend on Config or any extensions.
 
-miniperl.exe \
-miniperl: $& miniperlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) opmini$(OBJ_EXT)
-	$(LDLIBPTH) $(CC) $(CLDFLAGS) -o miniperl miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(LLIBPERL) $(libs)
+miniperl$(EXE_EXT): $& miniperlmain$(OBJ_EXT) $(obj) opmini$(OBJ_EXT)
+	$(LDLIBPTH) $(CC) -o miniperl $(CLDFLAGS) \
+	    `echo $(obj) | sed 's/ op$(OBJ_EXT) / /'` \
+	    miniperlmain$(OBJ_EXT) opmini$(OBJ_EXT) $(libs)
 	$(LDLIBPTH) ./miniperl -w -Ilib -MExporter -e '<?>' || $(MAKE) minitest
 
-perl.exe \
-perl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs
-	$(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) -Wl,-Bstatic $(LLIBPERL) -Wl,-Bdynamic `cat ext.libs` $(libs)
-
-pureperl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs
-	$(SHRPENV) $(LDLIBPTH) purify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o pureperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
-
-purecovperl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs
-	$(SHRPENV) $(LDLIBPTH) purecov $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o purecovperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
-
-quantperl: $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(DYNALOADER) $(static_ext) ext.libs
-	$(SHRPENV) $(LDLIBPTH) quantify $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o quantperl perlmain$(OBJ_EXT) $(DYNALOADER) $(static_ext) $(LLIBPERL) `cat ext.libs` $(libs)
+perl$(EXE_EXT): $& perlmain$(OBJ_EXT) $(LIBPERL)$(LIB_EXT) $(static_ext) ext.libs
+	$(SHRPENV) $(LDLIBPTH) $(CC) $(CLDFLAGS) $(CCDLFLAGS) -o perl perlmain$(OBJ_EXT) $(static_ext) -Wl,-Bstatic $(LLIBPERL) -Wl,-Bdynamic `cat ext.libs` $(libs)
 
 !NO!SUBS!
 	;;
@@ -142,7 +136,6 @@
 #
 $spitshell >>Makefile <<'!NO!SUBS!'
 
-
 !NO!SUBS!
 
 # suid perl is removed - i've never seen suid scripts for win32
diff -ub perl-5.10.0/Makefile.SH.orig perl-5.10.0/Makefile.SH
--- perl-5.10.0/Makefile.SH.orig	2007-12-18 10:47:07.000000000 +0000
+++ perl-5.10.0/Makefile.SH	2008-05-01 16:43:58.609375000 +0000
@@ -1129,7 +1129,6 @@
 	-rmdir lib/threads lib/XS
 	-rmdir lib/CPANPLUS/Dist/Build/t/dummy-*
 	-rmdir lib/CPANPLUS/t/dummy-cpanplus lib/CPANPLUS/t/dummy-localmirror
-	-rm -f cygcrypt-0.dll cygwin1.dll
 	-rm -f lib/ExtUtils/CBuilder/t/libcompilet.dll.a
 	-rm -f lib/ExtUtils/ParseXS/t/libXSTest.dll.a
 

