diff options
author | Daniel Dragan <bulk88@hotmail.com> | 2013-01-30 18:44:50 -0500 |
---|---|---|
committer | Karl Williamson <public@khwilliamson.com> | 2013-03-12 22:20:13 -0600 |
commit | 61b311ca7a099d3f94a7ae94452bbdd59acb5c57 (patch) | |
tree | d45dd8d7a7ad8c92f8d5f33f5dc1c9c25faa7f20 /makedef.pl | |
parent | bcd0b0c96c2e965b19018c437e5ee85ca9e1f0cf (diff) | |
download | perl-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.pl | 16 |
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 |