summaryrefslogtreecommitdiff
path: root/makedef.pl
diff options
context:
space:
mode:
authorDaniel Dragan <bulk88@hotmail.com>2013-01-30 18:44:50 -0500
committerKarl Williamson <public@khwilliamson.com>2013-03-12 22:20:13 -0600
commit61b311ca7a099d3f94a7ae94452bbdd59acb5c57 (patch)
treed45dd8d7a7ad8c92f8d5f33f5dc1c9c25faa7f20 /makedef.pl
parentbcd0b0c96c2e965b19018c437e5ee85ca9e1f0cf (diff)
downloadperl-61b311ca7a099d3f94a7ae94452bbdd59acb5c57.tar.gz
restore building perl5**.dll and perl.exe on WinCE
extension building problems remain but the 2 above files will build be built for WinCE with the following 3 commands, replace the folder name with what you selected for $(MACHINE) in makefile.ce nmake all nmake -f makefile.ce wince-x86-hpc-wce300\perl517.dll nmake -f makefile.ce wince-x86-hpc-wce300\perl.exe makefile.ce: - -debug:full and -pdb:none are obsolete compiler flags, and add -opt:ref:icf, to sync eVC makefile with modern VC's makefile - create a shortcut for easily creating preprocessed (.i) files for debugging on the command line - add new interp .c files that were added over the years - the Dynaloader build process for Win32 was drastically changed in commit 281da5eaa8 , fix to reflect this, a "nmake all" on the Win32 build will create the correct dynaloader .c files for the ce makefile to use later - nothing depended on .\xconfig.h in the ce makefile, so there was an error that it was missing, fix that - rebase the CE perl5**.dll to same as on Win32 makefile, makes debugging/diassembly much easier when the dll is not relocated at runtime - config.sh seems to be a win32 build file, while the script configpm wants a .sh file in \Cross, so change config.sh dependency to that win32/Makefile: - add a preprocess target to easily create .i files for debugging by hand makedef.pl: - read the comments in the script - config.h is Win32 file, not a WinCE file, so use xconfig.h when under WinCE lib/.gitignore - Cross.pm is made during the build process, it shouldn't ever be commited win32/.gitignore - xconfig.h is made during the build process, it shouldn't ever be commited win32/wince.c - identifier isnan is defed to _isnan somewhere, this created an infinite loop when CE perl was run
Diffstat (limited to 'makedef.pl')
-rw-r--r--makedef.pl16
1 files changed, 12 insertions, 4 deletions
diff --git a/makedef.pl b/makedef.pl
index bcfed24d3d..950af858e4 100644
--- a/makedef.pl
+++ b/makedef.pl
@@ -87,9 +87,12 @@ process_cc_flags(@Config{qw(ccflags optimize)})
# the user might have chosen to disable because the canned configs are
# minimal configs that don't include any of those options.
-my @options = sort(Config::bincompat_options(), Config::non_bincompat_options());
-print STDERR "Options: (@options)\n" unless $ARGS{PLATFORM} eq 'test';
-$define{$_} = 1 foreach @options;
+#don't use the host Perl's -V defines for the WinCE Perl
+if($ARGS{PLATFORM} ne 'wince') {
+ my @options = sort(Config::bincompat_options(), Config::non_bincompat_options());
+ print STDERR "Options: (@options)\n" unless $ARGS{PLATFORM} eq 'test';
+ $define{$_} = 1 foreach @options;
+}
my %exportperlmalloc =
(
@@ -101,7 +104,8 @@ my %exportperlmalloc =
my $exportperlmalloc = $ARGS{PLATFORM} eq 'os2';
-open(CFG, '<', 'config.h') || die "Cannot open config.h: $!\n";
+my $config_h = $ARGS{PLATFORM} eq 'wince' ? 'xconfig.h' : 'config.h';
+open(CFG, '<', $config_h) || die "Cannot open $config_h: $!\n";
while (<CFG>) {
$define{$1} = 1 if /^\s*\#\s*define\s+(MYMALLOC|MULTIPLICITY
|SPRINTF_RETURNS_STRLEN
@@ -811,6 +815,10 @@ if ($ARGS{PLATFORM} eq 'win32') {
));
}
+if ($ARGS{PLATFORM} eq 'wince') {
+ ++$skip{'win32_isatty'}; # commit 4342f4d6df is win32-only
+}
+
if ($ARGS{PLATFORM} =~ /^win(?:32|ce)$/) {
try_symbols(qw(
Perl_init_os_extras