Michael Schierl's patch to compile the puzzles as Java applets using

NestedVM. Wow!

[originally from svn r8064]
This commit is contained in:
Simon Tatham
2008-06-10 20:35:17 +00:00
parent 2066ddabd6
commit dd85394bf6
7 changed files with 1107 additions and 5 deletions

View File

@ -284,7 +284,7 @@ sub mfval($) {
# Returns true if the argument is a known makefile type. Otherwise,
# prints a warning and returns false;
if (grep { $type eq $_ }
("vc","vcproj","cygwin","borland","lcc","gtk","mpw","osx","wce")) {
("vc","vcproj","cygwin","borland","lcc","gtk","mpw","nestedvm","osx","wce")) {
return 1;
}
warn "$.:unknown makefile type '$type'\n";
@ -1348,6 +1348,59 @@ if (defined $makefiles{'lcc'}) {
select STDOUT; close OUT;
}
if (defined $makefiles{'nestedvm'}) {
$mftyp = 'nestedvm';
$dirpfx = &dirpfx($makefiles{'nestedvm'}, "/");
##-- NestedVM makefile
open OUT, ">$makefiles{'nestedvm'}"; select OUT;
print
"# Makefile for $project_name under NestedVM.\n".
"#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\n".
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
# gcc command line option is -D not /D
($_ = $help) =~ s/=\/D/=-D/gs;
print $_;
print
"\n".
"# This path points at the nestedvm root directory\n".
"NESTEDVM = /opt/nestedvm\n".
"# You can define this path to point at your tools if you need to\n".
"TOOLPATH = \$(NESTEDVM)/upstream/install/bin\n".
"CC = \$(TOOLPATH)/mips-unknown-elf-gcc\n".
"\n".
&splitline("CFLAGS = -O2 -Wall -Werror -DSLOW_SYSTEM -g " .
(join " ", map {"-I$dirpfx$_"} @srcdirs))."\n".
"\n";
print &splitline("all:" . join "", map { " $_.jar" } &progrealnames("X"));
print "\n\n";
foreach $p (&prognames("X")) {
($prog, $type) = split ",", $p;
$objstr = &objects($p, "X.o", undef, undef);
$objstr =~ s/gtk\.o/nestedvm\.o/g;
print &splitline($prog . ".mips: " . $objstr), "\n";
$libstr = &objects($p, undef, undef, "-lX");
print &splitline("\t\$(CC)" . $mw . " \$(${type}LDFLAGS) -o \$@ " .
$objstr . " $libstr -lm", 69), "\n\n";
}
foreach $d (&deps("X.o", undef, $dirpfx, "/")) {
$oobjs = $d->{obj};
$ddeps= join " ", @{$d->{deps}};
$oobjs =~ s/gtk/nestedvm/g;
$ddeps =~ s/gtk/nestedvm/g;
print &splitline(sprintf("%s: %s", $oobjs, $ddeps)),
"\n";
$deflist = join "", map { " -D$_" } @{$d->{defs}};
print "\t\$(CC) \$(COMPAT) \$(FWHACK) \$(CFLAGS) \$(XFLAGS)$deflist" .
" -c \$< -o \$\@\n";
}
print "\n";
print $makefile_extra{'nestedvm'};
print "\nclean:\n".
"\trm -rf *.o *.mips *.class *.html *.jar org applet.manifest\n";
select STDOUT; close OUT;
}
if (defined $makefiles{'osx'}) {
$mftyp = 'osx';
$dirpfx = &dirpfx($makefiles{'osx'}, "/");