X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/puzzles/blobdiff_plain/a96edf8a0e738a28e2a3d9bb40dcf4d88ca649bb..209ab5a7857fecdaf484ef2f2dd19377aadc57d3:/mkfiles.pl diff --git a/mkfiles.pl b/mkfiles.pl index 8af1939..b805dbe 100755 --- a/mkfiles.pl +++ b/mkfiles.pl @@ -51,6 +51,7 @@ while () { if ($_[0] eq "!name") { $project_name = $_[1]; next; } if ($_[0] eq "!srcdir") { push @srcdirs, $_[1]; next; } if ($_[0] eq "!makefile" and &mfval($_[1])) { $makefiles{$_[1]}=$_[2]; next;} + if ($_[0] eq "!specialobj" and &mfval($_[1])) { $specialobj{$_[1]}->{$_[2]} = 1; next;} if ($_[0] eq "!begin") { if (&mfval($_[1])) { $divert = \$makefile_extra{$_[1]}; @@ -299,6 +300,7 @@ sub deps { @ret = (); $depchar ||= ':'; foreach $i (sort keys %depends) { + next if $specialobj{$mftyp}->{$i}; if ($i =~ /^(.*)\.(res|rsrc)/) { next if !defined $rtmpl; $y = $1; @@ -874,11 +876,17 @@ if (defined $makefiles{'gtk'}) { "# You can define this path to point at your tools if you need to\n". "# TOOLPATH = /opt/gcc/bin\n". "CC = \$(TOOLPATH)cc\n". + "# You can manually set this to `gtk-config' or `pkg-config gtk+-1.2'\n". + "# (depending on what works on your system) if you want to enforce\n". + "# building with GTK 1.2, or you can set it to `pkg-config gtk+-2.0'\n". + "# if you want to enforce 2.0. The default is to try 2.0 and fall back\n". + "# to 1.2 if it isn't found.\n". + "GTK_CONFIG = sh -c 'pkg-config gtk+-2.0 \$\$0 2>/dev/null || gtk-config \$\$0'\n". "\n". &splitline("CFLAGS = -O2 -Wall -Werror -g " . (join " ", map {"-I$dirpfx$_"} @srcdirs) . - " `gtk-config --cflags`")."\n". - "XLDFLAGS = `gtk-config --libs`\n". + " `\$(GTK_CONFIG) --cflags`")."\n". + "XLDFLAGS = `\$(GTK_CONFIG) --libs`\n". "ULDFLAGS =#\n". "INSTALL=install\n", "INSTALL_PROGRAM=\$(INSTALL)\n", @@ -1128,9 +1136,12 @@ if (defined $makefiles{'osx'}) { print "CC = \$(TOOLPATH)gcc\n". "\n". - &splitline("CFLAGS = -O2 -Wall -Werror -g -DMAC_OS_X " . + &splitline("CFLAGS = -O2 -Wall -Werror -g " . (join " ", map {"-I$dirpfx$_"} @srcdirs))."\n". "LDFLAGS = -framework Cocoa\n". + &splitline("all:" . join "", map { " $_" } &progrealnames("MX")) . + "\n" . + $makefile_extra{'osx'} . "\n". ".SUFFIXES: .o .c .m\n". "\n". @@ -1139,7 +1150,6 @@ if (defined $makefiles{'osx'}) { ".m.o:\n". "\t\$(CC) -x objective-c \$(COMPAT) \$(FWHACK) \$(XFLAGS) \$(CFLAGS) -c \$<\n". "\n"; - print &splitline("all:" . join "", map { " $_" } &progrealnames("MX")); print "\n\n"; foreach $p (&prognames("MX")) { ($prog, $type) = split ",", $p; @@ -1159,6 +1169,7 @@ if (defined $makefiles{'osx'}) { print "${prog}.app/Contents/Info.plist: ${prog}.app/Contents/Resources $infoplist\n\tcp $infoplist \$\@\n"; $targets .= " ${prog}.app/Contents/Info.plist"; } + $targets .= " \$(${prog}_extra)"; print &splitline("${prog}: $targets", 69) . "\n\n"; print &splitline("${prog}.app/Contents/MacOS/$prog: ". "${prog}.app/Contents/MacOS " . $objstr), "\n"; @@ -1170,10 +1181,8 @@ if (defined $makefiles{'osx'}) { print &splitline(sprintf("%s: %s", $d->{obj}, join " ", @{$d->{deps}})), "\n"; } - print "\n"; - print $makefile_extra{'osx'}; print "\nclean:\n". - "\trm -f *.o\n". + "\trm -f *.o *.dmg\n". "\trm -rf *.app\n"; select STDOUT; close OUT; }