I still haven't managed to get the WinCE port building via bob, but

I should at least check in what I've got.

[originally from svn r7542]
This commit is contained in:
Simon Tatham
2007-05-06 09:54:34 +00:00
parent 61395a5141
commit 6da8849110
2 changed files with 103 additions and 0 deletions

View File

@ -43,6 +43,41 @@ delegate windows
return puzzles/Output/setup.exe
enddelegate
# Build the Pocket PC binaries and CAB.
#
# NOTE: This part of the build script requires the Windows delegate
# server to have the cabwiz program on its PATH. This will
# typically be at
#
# C:\Program Files\Windows CE Tools\WCE420\POCKET PC 2003\Tools
#
# but it might not be if you've installed it somewhere else, or
# have a different version.
#
# NOTE ALSO: This part of the build is commented out, for the
# moment, because cabwiz does unhelpful things when run from within
# a bob delegate process (or, more generally, when run from any
# terminal-based remote login to a Windows machine, including
# Cygwin opensshd and Windows Telnet). The symptom is that cabwiz
# just beeps and sits there. Until I figure out how to build the
# .cab from an automated process (and I'm willing to consider silly
# approaches such as a third-party CAB generator), I don't think I
# can sensibly enable this build.
#in puzzles do perl wceinf.pl wingames.lst > puzzles.inf
#delegate windows
# in puzzles do cmd /c 'wcearmv4 & nmake -f Makefile.wce clean'
# in puzzles do cmd /c 'wcearmv4 & nmake -f Makefile.wce VER=-DREVISION=$(revision)'
# # Nasty piece of sh here which saves the return code from cabwiz,
# # outputs its errors and/or warnings, and then propagates the
# # return code back to bob. If only cabwiz could output to
# # standard error LIKE EVERY OTHER COMMAND-LINE UTILITY IN THE
# # WORLD, I wouldn't have to do this.
# in puzzles do cat puzzles.inf
# in puzzles do cmd /c 'wcearmv4 & bash -c cabwiz puzzles.inf /err cabwiz.err /cpu ARMV4'; a=$$?; cat cabwiz.err; exit $$a
# return puzzles/puzzles.armv4.cab
#enddelegate
# Build the help file and the HTML docs.
in puzzles do make -f Makefile.doc clean # remove CHM-target HTML
in puzzles do make -f Makefile.doc # and rebuild help file...
@ -84,6 +119,9 @@ deliver puzzles/puzzles.hlp $@
deliver puzzles/puzzles.cnt $@
deliver puzzles/puzzles.zip $@
deliver puzzles/Output/setup.exe puzzles-r$(revision)-installer.exe
# deliver puzzles/puzzles.armv4.cab $@ # (not built at the moment)
# This one isn't in the puzzles subdir, because makedist.sh left it
# one level up.
deliver puzzles*.tar.gz $@

65
wceinf.pl Normal file
View File

@ -0,0 +1,65 @@
#!/usr/bin/perl
# Perl script to generate a .INF file for building a Pocket PC .CAB
# archive of Puzzles. This has to be scripted so that it can read
# wingames.lst and automatically adjust to the current available
# set of puzzles.
# Usage:
#
# $ ./wceinf.pl wingames.lst > puzzles.inf
$lst = shift @ARGV;
open LST, "<", $lst;
while (<LST>) {
chomp;
split /:/;
push @exes, $_[0];
$names{$_[0]} = $_[1];
}
close LST;
print '[Version]'."\n";
print 'Signature = "$Windows NT$" ; required as-is'."\n";
print 'Provider = "Simon Tatham" ; full app name will be "<Provider> <AppName>"'."\n";
print 'CESignature = "$Windows CE$" ; required as-is'."\n";
print ''."\n";
print '[CEStrings]'."\n";
print 'AppName = "Puzzle Collection" ; full app name will be "<Provider> <AppName>"'."\n";
print 'InstallDir = %CE8%\%AppName% ; "\Program Files\Games\Puzzle Collection" (default install directory)'."\n";
print ''."\n";
print '[CEDevice.x86]'."\n";
print 'ProcessorType = 686'."\n";
print ''."\n";
print '[CEDevice.ARM]'."\n";
print 'ProcessorType = 2577'."\n";
print ''."\n";
print '[SourceDisksNames.x86] ; CPU-dependent files'."\n";
print '2 = ,"x86 Files",,.'."\n";
print ''."\n";
print '[SourceDisksNames.ARMV4] ; CPU-dependent files'."\n";
print '2 = ,"ARM Files",,.'."\n";
print ''."\n";
print '[SourceDisksFiles]'."\n";
for $exe (@exes) {
print $exe.' = 2'."\n";
}
print ''."\n";
print '[DefaultInstall]'."\n";
print 'CopyFiles = PuzzleFiles'."\n";
print 'CEShortcuts = Links'."\n";
print ''."\n";
print '[DestinationDirs]'."\n";
print 'PuzzleFiles = 0, %InstallDir%'."\n";
print 'Links = 0, %CE14%\Puzzles'."\n";
print ''."\n";
print ';File copy list.'."\n";
print '[PuzzleFiles]'."\n";
for $exe (@exes) {
print $exe."\n";
}
print ''."\n";
print '[Links]'."\n";
for $exe (@exes) {
print '"'.$names{$exe}.'",0,'.$exe."\n";
}