mirror of
git://git.tartarus.org/simon/puzzles.git
synced 2025-04-22 16:32:13 -07:00
Michael Schierl's patch to compile the puzzles as Java applets using
NestedVM. Wow! [originally from svn r8064]
This commit is contained in:
55
mkfiles.pl
55
mkfiles.pl
@ -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'}, "/");
|
||||
|
Reference in New Issue
Block a user