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
+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 $config_args in
+ *DEBUGGING*)
+ dllname="${dllname}"d
+ ;;
+esac
+# added -mms-bitfields to be able to link to MSVC win32 bitfields libs
+# (4 byte instead of 2 byte alignment)
$spitshell >>Makefile <<!GROK!THIS!
LIBPERL = $libperl
DLLNAME= $dllname
CLDFLAGS= -L$addtopath $ldflags
LDDLFLAGS = --shared -L$addtopath $ldflags
+CCFLAGS=$ccflags -mms-bitfields
PLDLFLAGS =
CAT = $cat
AWK = $awk
if ($Is_Cygwin) {
$perldll = $libperl;
- my $v_e_r_s = $ver; $v_e_r_s =~ tr/./_/;
+ my $v_e_r_s = substr($ver,0,-2); $v_e_r_s =~ tr/./_/;
$perldll =~ s/(\..*)?$/$v_e_r_s.$dlext/;
$perldll =~ s/^lib/cyg/;
} else {
# Install library files.
my ($do_installarchlib, $do_installprivlib) = (0, 0);
+my $vershort = $Is_Cygwin ? substr($ver,0,-2) : $ver;
mkpath($installprivlib, $verbose, 0777);
mkpath($installarchlib, $verbose, 0777);
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, '.');
# ($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.
}
}
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
}