mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-10 01:48:00 +00:00
'perl -w' safety in mkfiles.pl.
[originally from svn r8958]
This commit is contained in:
parent
a6957f606b
commit
5cd0fe8ed8
96
mkfiles.pl
96
mkfiles.pl
@ -1,4 +1,4 @@
|
|||||||
#!/usr/bin/env perl
|
#!/usr/bin/env perl -w
|
||||||
#
|
#
|
||||||
# Cross-platform Makefile generator.
|
# Cross-platform Makefile generator.
|
||||||
#
|
#
|
||||||
@ -42,12 +42,21 @@ $project_name = "project"; # this is a good enough default
|
|||||||
%groups = (); # maps group name to listref of objects/resources
|
%groups = (); # maps group name to listref of objects/resources
|
||||||
|
|
||||||
while (<IN>) {
|
while (<IN>) {
|
||||||
# Skip comments (unless the comments belong, for example because
|
|
||||||
# they're part of a diversion).
|
|
||||||
next if /^\s*#/ and !defined $divert;
|
|
||||||
|
|
||||||
chomp;
|
chomp;
|
||||||
split;
|
@_ = split;
|
||||||
|
|
||||||
|
# If we're gathering help text, keep doing so.
|
||||||
|
if (defined $divert) {
|
||||||
|
if ((defined $_[0]) && $_[0] eq "!end") {
|
||||||
|
$divert = undef;
|
||||||
|
} else {
|
||||||
|
${$divert} .= "$_\n";
|
||||||
|
}
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
# Skip comments and blank lines.
|
||||||
|
next if /^\s*#/ or scalar @_ == 0;
|
||||||
|
|
||||||
if ($_[0] eq "!begin" and $_[1] eq "help") { $divert = \$help; next; }
|
if ($_[0] eq "!begin" and $_[1] eq "help") { $divert = \$help; next; }
|
||||||
if ($_[0] eq "!end") { $divert = undef; next; }
|
if ($_[0] eq "!end") { $divert = undef; next; }
|
||||||
if ($_[0] eq "!name") { $project_name = $_[1]; next; }
|
if ($_[0] eq "!name") { $project_name = $_[1]; next; }
|
||||||
@ -60,6 +69,7 @@ while (<IN>) {
|
|||||||
$sect = $_[2] ? $_[2] : "end";
|
$sect = $_[2] ? $_[2] : "end";
|
||||||
$divert = \($makefile_extra{$_[1]}->{$sect});
|
$divert = \($makefile_extra{$_[1]}->{$sect});
|
||||||
} else {
|
} else {
|
||||||
|
$dummy = '';
|
||||||
$divert = \$dummy;
|
$divert = \$dummy;
|
||||||
}
|
}
|
||||||
next;
|
next;
|
||||||
@ -121,7 +131,7 @@ close IN;
|
|||||||
foreach $i (@prognames) {
|
foreach $i (@prognames) {
|
||||||
($prog, $type) = split ",", $i;
|
($prog, $type) = split ",", $i;
|
||||||
# Strip duplicate object names.
|
# Strip duplicate object names.
|
||||||
$prev = undef;
|
$prev = '';
|
||||||
@list = grep { $status = ($prev ne $_); $prev=$_; $status }
|
@list = grep { $status = ($prev ne $_); $prev=$_; $status }
|
||||||
sort @{$programs{$i}};
|
sort @{$programs{$i}};
|
||||||
$programs{$i} = [@list];
|
$programs{$i} = [@list];
|
||||||
@ -169,7 +179,6 @@ foreach $i (@prognames) {
|
|||||||
while (scalar @scanlist > 0) {
|
while (scalar @scanlist > 0) {
|
||||||
$file = shift @scanlist;
|
$file = shift @scanlist;
|
||||||
next if defined $further{$file}; # skip if we've already done it
|
next if defined $further{$file}; # skip if we've already done it
|
||||||
$resource = ($file =~ /\.rc$/ ? 1 : 0);
|
|
||||||
$further{$file} = [];
|
$further{$file} = [];
|
||||||
$dirfile = &findfile($file);
|
$dirfile = &findfile($file);
|
||||||
open IN, "$dirfile" or die "unable to open source file $file\n";
|
open IN, "$dirfile" or die "unable to open source file $file\n";
|
||||||
@ -198,7 +207,7 @@ foreach $i (keys %depends) {
|
|||||||
while (scalar @scanlist > 0) {
|
while (scalar @scanlist > 0) {
|
||||||
$file = shift @scanlist;
|
$file = shift @scanlist;
|
||||||
foreach $j (@{$further{$file}}) {
|
foreach $j (@{$further{$file}}) {
|
||||||
if ($dep{$j} != 1) {
|
if (!$dep{$j}) {
|
||||||
$dep{$j} = 1;
|
$dep{$j} = 1;
|
||||||
push @{$depends{$i}}, $j;
|
push @{$depends{$i}}, $j;
|
||||||
push @scanlist, $j;
|
push @scanlist, $j;
|
||||||
@ -225,10 +234,16 @@ sub mfval($) {
|
|||||||
|
|
||||||
# Utility routines while writing out the Makefiles.
|
# Utility routines while writing out the Makefiles.
|
||||||
|
|
||||||
|
sub def {
|
||||||
|
my ($x) = shift @_;
|
||||||
|
return (defined $x) ? $x : "";
|
||||||
|
}
|
||||||
|
|
||||||
sub dirpfx {
|
sub dirpfx {
|
||||||
my ($path) = shift @_;
|
my ($path) = shift @_;
|
||||||
my ($sep) = shift @_;
|
my ($sep) = shift @_;
|
||||||
my $ret = "", $i;
|
my $ret = "";
|
||||||
|
my $i;
|
||||||
|
|
||||||
while (($i = index $path, $sep) >= 0 ||
|
while (($i = index $path, $sep) >= 0 ||
|
||||||
($j = index $path, "/") >= 0) {
|
($j = index $path, "/") >= 0) {
|
||||||
@ -244,14 +259,17 @@ sub dirpfx {
|
|||||||
|
|
||||||
sub findfile {
|
sub findfile {
|
||||||
my ($name) = @_;
|
my ($name) = @_;
|
||||||
my $dir;
|
my $dir = '';
|
||||||
my $i;
|
my $i;
|
||||||
my $outdir = undef;
|
my $outdir = undef;
|
||||||
unless (defined $findfilecache{$name}) {
|
unless (defined $findfilecache{$name}) {
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach $dir (@srcdirs) {
|
foreach $dir (@srcdirs) {
|
||||||
$outdir = $dir, $i++ if -f "$dir$name";
|
if (-f "$dir$name") {
|
||||||
$outdir=~s/^\.\///;
|
$outdir = $dir;
|
||||||
|
$i++;
|
||||||
|
$outdir =~ s/^\.\///;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
die "multiple instances of source file $name\n" if $i > 1;
|
die "multiple instances of source file $name\n" if $i > 1;
|
||||||
$findfilecache{$name} = (defined $outdir ? $outdir . $name : undef);
|
$findfilecache{$name} = (defined $outdir ? $outdir . $name : undef);
|
||||||
@ -263,6 +281,7 @@ sub objects {
|
|||||||
my ($prog, $otmpl, $rtmpl, $ltmpl, $prefix, $dirsep) = @_;
|
my ($prog, $otmpl, $rtmpl, $ltmpl, $prefix, $dirsep) = @_;
|
||||||
my @ret;
|
my @ret;
|
||||||
my ($i, $x, $y);
|
my ($i, $x, $y);
|
||||||
|
($otmpl, $rtmpl, $ltmpl) = map { defined $_ ? $_ : "" } ($otmpl, $rtmpl, $ltmpl);
|
||||||
@ret = ();
|
@ret = ();
|
||||||
foreach $i (@{$programs{$prog}}) {
|
foreach $i (@{$programs{$prog}}) {
|
||||||
$x = "";
|
$x = "";
|
||||||
@ -284,6 +303,7 @@ sub special {
|
|||||||
my ($prog, $suffix) = @_;
|
my ($prog, $suffix) = @_;
|
||||||
my @ret;
|
my @ret;
|
||||||
my ($i, $x, $y);
|
my ($i, $x, $y);
|
||||||
|
($otmpl, $rtmpl, $ltmpl) = map { defined $_ ? $_ : "" } ($otmpl, $rtmpl, $ltmpl);
|
||||||
@ret = ();
|
@ret = ();
|
||||||
foreach $i (@{$programs{$prog}}) {
|
foreach $i (@{$programs{$prog}}) {
|
||||||
if (substr($i, (length $i) - (length $suffix)) eq $suffix) {
|
if (substr($i, (length $i) - (length $suffix)) eq $suffix) {
|
||||||
@ -295,7 +315,8 @@ sub special {
|
|||||||
|
|
||||||
sub splitline {
|
sub splitline {
|
||||||
my ($line, $width, $splitchar) = @_;
|
my ($line, $width, $splitchar) = @_;
|
||||||
my ($result, $len);
|
my $result = "";
|
||||||
|
my $len;
|
||||||
$len = (defined $width ? $width : 76);
|
$len = (defined $width ? $width : 76);
|
||||||
$splitchar = (defined $splitchar ? $splitchar : '\\');
|
$splitchar = (defined $splitchar ? $splitchar : '\\');
|
||||||
while (length $line > $len) {
|
while (length $line > $len) {
|
||||||
@ -311,7 +332,8 @@ sub splitline {
|
|||||||
sub deps {
|
sub deps {
|
||||||
my ($otmpl, $rtmpl, $prefix, $dirsep, $mftyp, $depchar, $splitchar) = @_;
|
my ($otmpl, $rtmpl, $prefix, $dirsep, $mftyp, $depchar, $splitchar) = @_;
|
||||||
my ($i, $x, $y);
|
my ($i, $x, $y);
|
||||||
my @deps, @ret;
|
my @deps;
|
||||||
|
my @ret;
|
||||||
@ret = ();
|
@ret = ();
|
||||||
$depchar ||= ':';
|
$depchar ||= ':';
|
||||||
foreach $i (sort keys %depends) {
|
foreach $i (sort keys %depends) {
|
||||||
@ -380,7 +402,7 @@ if (defined $makefiles{'cygwin'}) {
|
|||||||
"#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\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";
|
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
|
||||||
# gcc command line option is -D not /D
|
# gcc command line option is -D not /D
|
||||||
($_ = $help) =~ s/([=" ])\/D/\1-D/gs;
|
($_ = $help) =~ s/([=" ])\/D/$1-D/gs;
|
||||||
print $_;
|
print $_;
|
||||||
print
|
print
|
||||||
"\n".
|
"\n".
|
||||||
@ -464,7 +486,7 @@ if (defined $makefiles{'borland'}) {
|
|||||||
"#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\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";
|
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
|
||||||
# bcc32 command line option is -D not /D
|
# bcc32 command line option is -D not /D
|
||||||
($_ = $help) =~ s/([=" ])\/D/\1-D/gs;
|
($_ = $help) =~ s/([=" ])\/D/$1-D/gs;
|
||||||
print $_;
|
print $_;
|
||||||
print
|
print
|
||||||
"\n".
|
"\n".
|
||||||
@ -497,7 +519,7 @@ if (defined $makefiles{'borland'}) {
|
|||||||
print "\n\n";
|
print "\n\n";
|
||||||
foreach $p (&prognames("G:C")) {
|
foreach $p (&prognames("G:C")) {
|
||||||
($prog, $type) = split ",", $p;
|
($prog, $type) = split ",", $p;
|
||||||
$objstr = &objects($p, "X.obj", "X.res", undef);
|
$objstr = &objects($p, "X.obj", "X.res", undef);
|
||||||
print &splitline("$prog.exe: " . $objstr . " $prog.rsp"), "\n";
|
print &splitline("$prog.exe: " . $objstr . " $prog.rsp"), "\n";
|
||||||
my $ap = ($type eq "G") ? "-aa" : "-ap";
|
my $ap = ($type eq "G") ? "-aa" : "-ap";
|
||||||
print "\tilink32 $ap -Gn -L\$(BCB)\\lib \@$prog.rsp\n\n";
|
print "\tilink32 $ap -Gn -L\$(BCB)\\lib \@$prog.rsp\n\n";
|
||||||
@ -917,7 +939,7 @@ if (defined $makefiles{'gtk'}) {
|
|||||||
"#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\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";
|
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
|
||||||
# gcc command line option is -D not /D
|
# gcc command line option is -D not /D
|
||||||
($_ = $help) =~ s/([=" ])\/D/\1-D/gs;
|
($_ = $help) =~ s/([=" ])\/D/$1-D/gs;
|
||||||
print $_;
|
print $_;
|
||||||
print
|
print
|
||||||
"\n".
|
"\n".
|
||||||
@ -962,7 +984,7 @@ if (defined $makefiles{'gtk'}) {
|
|||||||
"mandir=\$(prefix)/man\n".
|
"mandir=\$(prefix)/man\n".
|
||||||
"man1dir=\$(mandir)/man1\n".
|
"man1dir=\$(mandir)/man1\n".
|
||||||
"\n".
|
"\n".
|
||||||
$makefile_extra{'gtk'}->{'vars'} .
|
&def($makefile_extra{'gtk'}->{'vars'}) .
|
||||||
"\n".
|
"\n".
|
||||||
".SUFFIXES:\n".
|
".SUFFIXES:\n".
|
||||||
"\n".
|
"\n".
|
||||||
@ -974,7 +996,7 @@ if (defined $makefiles{'gtk'}) {
|
|||||||
$objstr = &objects($p, "X.o", undef, undef);
|
$objstr = &objects($p, "X.o", undef, undef);
|
||||||
print &splitline($prog . ": " . $objstr), "\n";
|
print &splitline($prog . ": " . $objstr), "\n";
|
||||||
$libstr = &objects($p, undef, undef, "-lX");
|
$libstr = &objects($p, undef, undef, "-lX");
|
||||||
print &splitline("\t\$(CC)" . $mw . " -o \$@ " .
|
print &splitline("\t\$(CC) -o \$@ " .
|
||||||
$objstr . " \$(${type}LDFLAGS) $libstr", 69), "\n\n";
|
$objstr . " \$(${type}LDFLAGS) $libstr", 69), "\n\n";
|
||||||
}
|
}
|
||||||
foreach $d (&deps("X.o", undef, $dirpfx, "/", "gtk")) {
|
foreach $d (&deps("X.o", undef, $dirpfx, "/", "gtk")) {
|
||||||
@ -1004,7 +1026,7 @@ if (defined $makefiles{'unix'}) {
|
|||||||
"#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\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";
|
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
|
||||||
# gcc command line option is -D not /D
|
# gcc command line option is -D not /D
|
||||||
($_ = $help) =~ s/([=" ])\/D/\1-D/gs;
|
($_ = $help) =~ s/([=" ])\/D/$1-D/gs;
|
||||||
print $_;
|
print $_;
|
||||||
print
|
print
|
||||||
"\n".
|
"\n".
|
||||||
@ -1029,7 +1051,7 @@ if (defined $makefiles{'unix'}) {
|
|||||||
"mandir=\$(prefix)/man\n".
|
"mandir=\$(prefix)/man\n".
|
||||||
"man1dir=\$(mandir)/man1\n".
|
"man1dir=\$(mandir)/man1\n".
|
||||||
"\n".
|
"\n".
|
||||||
$makefile_extra{'unix'}->{'vars'} .
|
&def($makefile_extra{'unix'}->{'vars'}) .
|
||||||
"\n".
|
"\n".
|
||||||
".SUFFIXES:\n".
|
".SUFFIXES:\n".
|
||||||
"\n".
|
"\n".
|
||||||
@ -1041,7 +1063,7 @@ if (defined $makefiles{'unix'}) {
|
|||||||
$objstr = &objects($p, "X.o", undef, undef);
|
$objstr = &objects($p, "X.o", undef, undef);
|
||||||
print &splitline($prog . ": " . $objstr), "\n";
|
print &splitline($prog . ": " . $objstr), "\n";
|
||||||
$libstr = &objects($p, undef, undef, "-lX");
|
$libstr = &objects($p, undef, undef, "-lX");
|
||||||
print &splitline("\t\$(CC)" . $mw . " -o \$@ " .
|
print &splitline("\t\$(CC) -o \$@ " .
|
||||||
$objstr . " \$(${type}LDFLAGS) $libstr", 69), "\n\n";
|
$objstr . " \$(${type}LDFLAGS) $libstr", 69), "\n\n";
|
||||||
}
|
}
|
||||||
foreach $d (&deps("X.o", undef, $dirpfx, "/", "unix")) {
|
foreach $d (&deps("X.o", undef, $dirpfx, "/", "unix")) {
|
||||||
@ -1054,7 +1076,7 @@ if (defined $makefiles{'unix'}) {
|
|||||||
print &splitline("\t\$(CC) \$(COMPAT) \$(CFLAGS) \$(XFLAGS) -c $d->{deps}->[0]\n");
|
print &splitline("\t\$(CC) \$(COMPAT) \$(CFLAGS) \$(XFLAGS) -c $d->{deps}->[0]\n");
|
||||||
}
|
}
|
||||||
print "\n";
|
print "\n";
|
||||||
print $makefile_extra{'unix'}->{'end'};
|
print &def($makefile_extra{'unix'}->{'end'});
|
||||||
print "\nclean:\n".
|
print "\nclean:\n".
|
||||||
"\trm -f *.o". (join "", map { " $_" } &progrealnames("U")) . "\n";
|
"\trm -f *.o". (join "", map { " $_" } &progrealnames("U")) . "\n";
|
||||||
print "\nFORCE:\n";
|
print "\nFORCE:\n";
|
||||||
@ -1071,7 +1093,7 @@ if (defined $makefiles{'ac'}) {
|
|||||||
"#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\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";
|
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
|
||||||
# gcc command line option is -D not /D
|
# gcc command line option is -D not /D
|
||||||
($_ = $help) =~ s/([=" ])\/D/\1-D/gs;
|
($_ = $help) =~ s/([=" ])\/D/$1-D/gs;
|
||||||
print $_;
|
print $_;
|
||||||
print
|
print
|
||||||
"\n".
|
"\n".
|
||||||
@ -1092,7 +1114,7 @@ if (defined $makefiles{'ac'}) {
|
|||||||
"mandir=\@mandir\@\n".
|
"mandir=\@mandir\@\n".
|
||||||
"man1dir=\$(mandir)/man1\n".
|
"man1dir=\$(mandir)/man1\n".
|
||||||
"\n".
|
"\n".
|
||||||
$makefile_extra{'gtk'}->{'vars'} .
|
&def($makefile_extra{'gtk'}->{'vars'}) .
|
||||||
"\n".
|
"\n".
|
||||||
".SUFFIXES:\n".
|
".SUFFIXES:\n".
|
||||||
"\n".
|
"\n".
|
||||||
@ -1106,7 +1128,7 @@ if (defined $makefiles{'ac'}) {
|
|||||||
$objstr = &objects($p, "X.o", undef, undef);
|
$objstr = &objects($p, "X.o", undef, undef);
|
||||||
print &splitline($prog . ": " . $objstr), "\n";
|
print &splitline($prog . ": " . $objstr), "\n";
|
||||||
$libstr = &objects($p, undef, undef, "-lX");
|
$libstr = &objects($p, undef, undef, "-lX");
|
||||||
print &splitline("\t\$(CC)" . $mw . " -o \$@ " .
|
print &splitline("\t\$(CC) -o \$@ " .
|
||||||
$objstr . " \$(${type}LDFLAGS) $libstr", 69), "\n\n";
|
$objstr . " \$(${type}LDFLAGS) $libstr", 69), "\n\n";
|
||||||
}
|
}
|
||||||
foreach $d (&deps("X.o", undef, $dirpfx, "/", "gtk")) {
|
foreach $d (&deps("X.o", undef, $dirpfx, "/", "gtk")) {
|
||||||
@ -1137,7 +1159,7 @@ if (defined $makefiles{'mpw'}) {
|
|||||||
"# This file was created by `mkfiles.pl' from the `Recipe' file.\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";
|
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
|
||||||
# MPW command line option is -d not /D (FIXME further massaging?)
|
# MPW command line option is -d not /D (FIXME further massaging?)
|
||||||
($_ = $help) =~ s/([=" ])\/D/\1-d /gs;
|
($_ = $help) =~ s/([=" ])\/D/$1-d /gs;
|
||||||
print $_;
|
print $_;
|
||||||
print "\n\n".
|
print "\n\n".
|
||||||
"ROptions = `Echo \"{VER}\" | StreamEdit -e \"1,\$ replace /=(\xc5)\xa81\xb0/ 'STR=\xb6\xb6\xb6\xb6\xb6\"' \xa81 '\xb6\xb6\xb6\xb6\xb6\"'\"`".
|
"ROptions = `Echo \"{VER}\" | StreamEdit -e \"1,\$ replace /=(\xc5)\xa81\xb0/ 'STR=\xb6\xb6\xb6\xb6\xb6\"' \xa81 '\xb6\xb6\xb6\xb6\xb6\"'\"`".
|
||||||
@ -1279,7 +1301,7 @@ if (defined $makefiles{'lcc'}) {
|
|||||||
"#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\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";
|
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
|
||||||
# lcc command line option is -D not /D
|
# lcc command line option is -D not /D
|
||||||
($_ = $help) =~ s/([=" ])\/D/\1-D/gs;
|
($_ = $help) =~ s/([=" ])\/D/$1-D/gs;
|
||||||
print $_;
|
print $_;
|
||||||
print
|
print
|
||||||
"\n".
|
"\n".
|
||||||
@ -1304,7 +1326,7 @@ if (defined $makefiles{'lcc'}) {
|
|||||||
($prog, $type) = split ",", $p;
|
($prog, $type) = split ",", $p;
|
||||||
$objstr = &objects($p, "X.obj", "X.res", undef);
|
$objstr = &objects($p, "X.obj", "X.res", undef);
|
||||||
print &splitline("$prog.exe: " . $objstr ), "\n";
|
print &splitline("$prog.exe: " . $objstr ), "\n";
|
||||||
$subsystemtype = undef;
|
$subsystemtype = '';
|
||||||
if ($type eq "G") { $subsystemtype = "-subsystem windows"; }
|
if ($type eq "G") { $subsystemtype = "-subsystem windows"; }
|
||||||
my $libss = "shell32.lib wsock32.lib ws2_32.lib winspool.lib winmm.lib imm32.lib";
|
my $libss = "shell32.lib wsock32.lib ws2_32.lib winspool.lib winmm.lib imm32.lib";
|
||||||
print &splitline("\tlcclnk $subsystemtype -o $prog.exe $objstr $libss");
|
print &splitline("\tlcclnk $subsystemtype -o $prog.exe $objstr $libss");
|
||||||
@ -1348,7 +1370,7 @@ if (defined $makefiles{'osx'}) {
|
|||||||
"#\n# This file was created by `mkfiles.pl' from the `Recipe' file.\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";
|
"# DO NOT EDIT THIS FILE DIRECTLY; edit Recipe or mkfiles.pl instead.\n";
|
||||||
# gcc command line option is -D not /D
|
# gcc command line option is -D not /D
|
||||||
($_ = $help) =~ s/([=" ])\/D/\1-D/gs;
|
($_ = $help) =~ s/([=" ])\/D/$1-D/gs;
|
||||||
print $_;
|
print $_;
|
||||||
print
|
print
|
||||||
"CC = \$(TOOLPATH)gcc\n".
|
"CC = \$(TOOLPATH)gcc\n".
|
||||||
@ -1385,7 +1407,7 @@ if (defined $makefiles{'osx'}) {
|
|||||||
print &splitline("${prog}.app/Contents/MacOS/$prog: ".
|
print &splitline("${prog}.app/Contents/MacOS/$prog: ".
|
||||||
"${prog}.app/Contents/MacOS " . $objstr), "\n";
|
"${prog}.app/Contents/MacOS " . $objstr), "\n";
|
||||||
$libstr = &objects($p, undef, undef, "-lX");
|
$libstr = &objects($p, undef, undef, "-lX");
|
||||||
print &splitline("\t\$(CC)" . $mw . " \$(MLDFLAGS) -o \$@ " .
|
print &splitline("\t\$(CC) \$(MLDFLAGS) -o \$@ " .
|
||||||
$objstr . " $libstr", 69), "\n\n";
|
$objstr . " $libstr", 69), "\n\n";
|
||||||
}
|
}
|
||||||
foreach $p (&prognames("U")) {
|
foreach $p (&prognames("U")) {
|
||||||
@ -1393,10 +1415,10 @@ if (defined $makefiles{'osx'}) {
|
|||||||
$objstr = &objects($p, "X.o", undef, undef);
|
$objstr = &objects($p, "X.o", undef, undef);
|
||||||
print &splitline($prog . ": " . $objstr), "\n";
|
print &splitline($prog . ": " . $objstr), "\n";
|
||||||
$libstr = &objects($p, undef, undef, "-lX");
|
$libstr = &objects($p, undef, undef, "-lX");
|
||||||
print &splitline("\t\$(CC)" . $mw . " \$(ULDFLAGS) -o \$@ " .
|
print &splitline("\t\$(CC) \$(ULDFLAGS) -o \$@ " .
|
||||||
$objstr . " $libstr", 69), "\n\n";
|
$objstr . " $libstr", 69), "\n\n";
|
||||||
}
|
}
|
||||||
foreach $d (&deps("X.o", undef, $dirpfx, "/")) {
|
foreach $d (&deps("X.o", undef, $dirpfx, "/", "osx")) {
|
||||||
if ($forceobj{$d->{obj_orig}}) {
|
if ($forceobj{$d->{obj_orig}}) {
|
||||||
printf("%s: FORCE\n", $d->{obj});
|
printf("%s: FORCE\n", $d->{obj});
|
||||||
} else {
|
} else {
|
||||||
@ -1410,10 +1432,10 @@ if (defined $makefiles{'osx'}) {
|
|||||||
print "\t\$(CC) -x objective-c \$(COMPAT) \$(FWHACK) \$(CFLAGS) \$(XFLAGS) -c \$<\n";
|
print "\t\$(CC) -x objective-c \$(COMPAT) \$(FWHACK) \$(CFLAGS) \$(XFLAGS) -c \$<\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
print "\n".$makefile_extra{'osx'}->{'end'};
|
print "\n".&def($makefile_extra{'osx'}->{'end'});
|
||||||
print "\nclean:\n".
|
print "\nclean:\n".
|
||||||
"\trm -f *.o *.dmg". (join "", map { " $_" } &progrealnames("U")) . "\n".
|
"\trm -f *.o *.dmg". (join "", map { " $_" } &progrealnames("U")) . "\n".
|
||||||
"\trm -rf *.app\n";
|
"\trm -rf *.app\n".
|
||||||
"\n".
|
"\n".
|
||||||
"FORCE:\n";
|
"FORCE:\n";
|
||||||
select STDOUT; close OUT;
|
select STDOUT; close OUT;
|
||||||
|
Loading…
Reference in New Issue
Block a user