aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Tatham <anakin@pobox.com>2013-06-30 10:16:57 +0000
committerSimon Tatham <anakin@pobox.com>2013-06-30 10:16:57 +0000
commitc06792c07609eacf6db0881f62a3391547c77248 (patch)
treef7f0410c28690eb14e63aba2a2ff02ab3343c819
parentb375232d7dc8357e820ec00808749d077c8b06b9 (diff)
downloadpuzzles-c06792c07609eacf6db0881f62a3391547c77248.zip
puzzles-c06792c07609eacf6db0881f62a3391547c77248.tar.gz
puzzles-c06792c07609eacf6db0881f62a3391547c77248.tar.bz2
puzzles-c06792c07609eacf6db0881f62a3391547c77248.tar.xz
Add a mechanism to the automake system to allow 'make install' to only
install the actual games, not the auxiliary binaries or nullgame. [originally from svn r9887]
-rw-r--r--Recipe5
-rw-r--r--blackbox.R2
-rw-r--r--bridges.R2
-rw-r--r--cube.R2
-rw-r--r--dominosa.R2
-rw-r--r--fifteen.R2
-rw-r--r--filling.R2
-rw-r--r--flip.R2
-rw-r--r--galaxies.R2
-rw-r--r--guess.R2
-rw-r--r--inertia.R2
-rw-r--r--keen.R2
-rw-r--r--lightup.R2
-rw-r--r--loopy.R2
-rw-r--r--magnets.R2
-rw-r--r--map.R2
-rw-r--r--mines.R2
-rwxr-xr-xmkfiles.pl39
-rw-r--r--net.R2
-rw-r--r--netslide.R2
-rw-r--r--pattern.R2
-rw-r--r--pearl.R2
-rw-r--r--pegs.R2
-rw-r--r--range.R2
-rw-r--r--rect.R2
-rw-r--r--samegame.R2
-rw-r--r--signpost.R2
-rw-r--r--singles.R2
-rw-r--r--sixteen.R2
-rw-r--r--slant.R2
-rw-r--r--solo.R2
-rw-r--r--tents.R2
-rw-r--r--towers.R2
-rw-r--r--twiddle.R2
-rw-r--r--undead.R2
-rw-r--r--unequal.R2
-rw-r--r--unfinished/group.R2
-rw-r--r--unfinished/separate.R2
-rw-r--r--unfinished/slide.R2
-rw-r--r--unfinished/sokoban.R2
-rw-r--r--unruly.R2
-rw-r--r--untangle.R2
42 files changed, 67 insertions, 57 deletions
diff --git a/Recipe b/Recipe
index 6e4b8f0..79098f2 100644
--- a/Recipe
+++ b/Recipe
@@ -142,7 +142,10 @@ BUILT_SOURCES = empty.h
CLEANFILES = empty.h
empty.h: $(allsources)
echo '/* Empty file touched by automake makefile to force rebuild of version.o */' >$@
-
+bin_PROGRAMS = $(GAMES)
+!end
+!begin am_begin
+GAMES =
!end
!begin >empty.h
/* Empty file touched by automake makefile to force rebuild of version.o */
diff --git a/blackbox.R b/blackbox.R
index 65220be..d30f884 100644
--- a/blackbox.R
+++ b/blackbox.R
@@ -6,7 +6,7 @@ blackbox : [G] WINDOWS COMMON blackbox blackbox.res|noicon.res
ALL += blackbox[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += blackbox
!end
diff --git a/bridges.R b/bridges.R
index 2f0fd6c..629f785 100644
--- a/bridges.R
+++ b/bridges.R
@@ -8,7 +8,7 @@ bridges : [G] WINDOWS COMMON bridges BRIDGES_EXTRA bridges.res|noicon.res
ALL += bridges[COMBINED] BRIDGES_EXTRA
-!begin gtk
+!begin am gtk
GAMES += bridges
!end
diff --git a/cube.R b/cube.R
index 8fa472c..3d0b17a 100644
--- a/cube.R
+++ b/cube.R
@@ -6,7 +6,7 @@ cube : [G] WINDOWS COMMON cube cube.res|noicon.res
ALL += cube[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += cube
!end
diff --git a/dominosa.R b/dominosa.R
index 2393626..e0d50f6 100644
--- a/dominosa.R
+++ b/dominosa.R
@@ -8,7 +8,7 @@ dominosa : [G] WINDOWS COMMON dominosa DOMINOSA_EXTRA dominosa.res|noicon.res
ALL += dominosa[COMBINED] DOMINOSA_EXTRA
-!begin gtk
+!begin am gtk
GAMES += dominosa
!end
diff --git a/fifteen.R b/fifteen.R
index 9a3f72b..1582af6 100644
--- a/fifteen.R
+++ b/fifteen.R
@@ -6,7 +6,7 @@ fifteen : [G] WINDOWS COMMON fifteen fifteen.res|noicon.res
ALL += fifteen[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += fifteen
!end
diff --git a/filling.R b/filling.R
index 3769c00..20ad0e0 100644
--- a/filling.R
+++ b/filling.R
@@ -11,7 +11,7 @@ filling : [G] WINDOWS COMMON filling FILLING_EXTRA filling.res|noicon.res
ALL += filling[COMBINED] FILLING_EXTRA
-!begin gtk
+!begin am gtk
GAMES += filling
!end
diff --git a/flip.R b/flip.R
index 997c7c2..6e2cb18 100644
--- a/flip.R
+++ b/flip.R
@@ -8,7 +8,7 @@ flip : [G] WINDOWS COMMON flip FLIP_EXTRA flip.res|noicon.res
ALL += flip[COMBINED] FLIP_EXTRA
-!begin gtk
+!begin am gtk
GAMES += flip
!end
diff --git a/galaxies.R b/galaxies.R
index 91e814b..546fd00 100644
--- a/galaxies.R
+++ b/galaxies.R
@@ -15,7 +15,7 @@ galaxiespicture : [C] galaxies[STANDALONE_PICTURE_GENERATOR] GALAXIES_EXTRA STAN
ALL += galaxies[COMBINED] GALAXIES_EXTRA
-!begin gtk
+!begin am gtk
GAMES += galaxies
!end
diff --git a/guess.R b/guess.R
index b589645..9878d28 100644
--- a/guess.R
+++ b/guess.R
@@ -6,7 +6,7 @@ guess : [G] WINDOWS COMMON guess guess.res|noicon.res
ALL += guess[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += guess
!end
diff --git a/inertia.R b/inertia.R
index 24b4d16..6927192 100644
--- a/inertia.R
+++ b/inertia.R
@@ -6,7 +6,7 @@ inertia : [G] WINDOWS COMMON inertia inertia.res|noicon.res
ALL += inertia[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += inertia
!end
diff --git a/keen.R b/keen.R
index 06e7aa0..be895f9 100644
--- a/keen.R
+++ b/keen.R
@@ -12,7 +12,7 @@ keensolver : [C] keen[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] KEEN_LATIN_EXT
ALL += keen[COMBINED] KEEN_EXTRA
-!begin gtk
+!begin am gtk
GAMES += keen
!end
diff --git a/lightup.R b/lightup.R
index 82b6bdc..04542e1 100644
--- a/lightup.R
+++ b/lightup.R
@@ -11,7 +11,7 @@ lightupsolver : [C] lightup[STANDALONE_SOLVER] LIGHTUP_EXTRA STANDALONE
ALL += lightup[COMBINED] LIGHTUP_EXTRA
-!begin gtk
+!begin am gtk
GAMES += lightup
!end
diff --git a/loopy.R b/loopy.R
index 7f68b37..21cdf13 100644
--- a/loopy.R
+++ b/loopy.R
@@ -18,7 +18,7 @@ loopysolver : [C] loopy[STANDALONE_SOLVER] LOOPY_EXTRA STANDALONE
ALL += loopy[COMBINED] LOOPY_EXTRA
-!begin gtk
+!begin am gtk
GAMES += loopy
!end
diff --git a/magnets.R b/magnets.R
index 997371f..1c1be5a 100644
--- a/magnets.R
+++ b/magnets.R
@@ -11,7 +11,7 @@ magnetssolver : [C] magnets[STANDALONE_SOLVER] MAGNETS_EXTRA STANDALONE
ALL += magnets[COMBINED] MAGNETS_EXTRA
-!begin gtk
+!begin am gtk
GAMES += magnets
!end
diff --git a/map.R b/map.R
index f5950b4..90830a4 100644
--- a/map.R
+++ b/map.R
@@ -11,7 +11,7 @@ mapsolver : [C] map[STANDALONE_SOLVER] MAP_EXTRA STANDALONE
ALL += map[COMBINED] MAP_EXTRA
-!begin gtk
+!begin am gtk
GAMES += map
!end
diff --git a/mines.R b/mines.R
index 0212a48..317bc73 100644
--- a/mines.R
+++ b/mines.R
@@ -11,7 +11,7 @@ mineobfusc : [C] mines[STANDALONE_OBFUSCATOR] MINES_EXTRA STANDALONE
ALL += mines[COMBINED] MINES_EXTRA
-!begin gtk
+!begin am gtk
GAMES += mines
!end
diff --git a/mkfiles.pl b/mkfiles.pl
index d532c95..5c91502 100755
--- a/mkfiles.pl
+++ b/mkfiles.pl
@@ -57,7 +57,8 @@ eval 'chdir "charset"; require "sbcsgen.pl"; chdir ".."';
@srcdirs = ("./");
-$divert = undef; # ref to scalar in which text is currently being put
+$divert = undef; # ref to array of refs of scalars in which text is
+ # currently being put
$help = ""; # list of newline-free lines of help text
$project_name = "project"; # this is a good enough default
%makefiles = (); # maps makefile types to output makefile pathnames
@@ -83,14 +84,16 @@ readinput: while (1) {
if ((defined $_[0]) && $_[0] eq "!end") {
$divert = undef;
} else {
- ${$divert} .= "$_\n";
+ for my $ref (@$divert) {
+ ${$ref} .= "$_\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 "!name") { $project_name = $_[1]; next; }
if ($_[0] eq "!srcdir") { push @srcdirs, $_[1]; next; }
if ($_[0] eq "!makefile" and &mfval($_[1])) { $makefiles{$_[1]}=$_[2]; next;}
@@ -102,10 +105,15 @@ readinput: while (1) {
next;
}
if ($_[0] eq "!begin") {
- if ($_[1] =~ /^>(.*)/) {
- $divert = \$auxfiles{$1};
- } elsif (&mfval($_[1])) {
- $divert = \$makefile_extra{$_[1]};
+ my @args = @_;
+ shift @args;
+ $divert = [];
+ for my $component (@args) {
+ if ($component =~ /^>(.*)/) {
+ push @$divert, \$auxfiles{$1};
+ } elsif ($component =~ /^([^_]*)(_.*)?$/ and &mfval($1)) {
+ push @$divert, \$makefile_extra{$component};
+ }
}
next;
}
@@ -1190,19 +1198,18 @@ if (defined $makefiles{'am'}) {
"#\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\n";
- @binprogs = ();
+ print $makefile_extra{'am_begin'} || "";
+
+ # All programs go in noinstprogs by default. If you want them
+ # installed anywhere else, you have to also add them to
+ # bin_PROGRAMS using '!begin am'. (Automake doesn't seem to mind
+ # having a program name in _both_ of bin_PROGRAMS and
+ # noinst_PROGRAMS.)
@noinstprogs = ();
foreach $p (&prognames("X:U")) {
($prog, $type) = split ",", $p;
- if ("FIXME") { # decide which programs go where
- push @binprogs, # FIXME "\$(BINPREFIX)" .
- $prog;
- } else {
- push @noinstprogs, # FIXME "\$(BINPREFIX)" .
- $prog;
- }
+ push @noinstprogs, $prog;
}
- print &splitline(join " ", "bin_PROGRAMS", "=", @binprogs), "\n";
print &splitline(join " ", "noinst_PROGRAMS", "=", @noinstprogs), "\n";
%objtosrc = ();
diff --git a/net.R b/net.R
index b544278..aa6a168 100644
--- a/net.R
+++ b/net.R
@@ -10,7 +10,7 @@ netgame : [G] WINDOWS COMMON net NET_EXTRA net.res|noicon.res
ALL += net[COMBINED] NET_EXTRA
-!begin gtk
+!begin am gtk
GAMES += net
!end
diff --git a/netslide.R b/netslide.R
index 4a35e77..de400bd 100644
--- a/netslide.R
+++ b/netslide.R
@@ -8,7 +8,7 @@ netslide : [G] WINDOWS COMMON netslide NETSLIDE_EXTRA netslide.res|noicon.res
ALL += netslide[COMBINED] NETSLIDE_EXTRA
-!begin gtk
+!begin am gtk
GAMES += netslide
!end
diff --git a/pattern.R b/pattern.R
index fe83bae..0544052 100644
--- a/pattern.R
+++ b/pattern.R
@@ -9,7 +9,7 @@ patternsolver : [C] pattern[STANDALONE_SOLVER] STANDALONE
ALL += pattern[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += pattern
!end
diff --git a/pearl.R b/pearl.R
index 3d24b3d..86b7868 100644
--- a/pearl.R
+++ b/pearl.R
@@ -10,7 +10,7 @@ pearlbench : [C] pearl[STANDALONE_SOLVER] PEARL_EXTRA STANDALONE
ALL += pearl[COMBINED] PEARL_EXTRA
-!begin gtk
+!begin am gtk
GAMES += pearl
!end
diff --git a/pegs.R b/pegs.R
index d461bca..f7bd4f0 100644
--- a/pegs.R
+++ b/pegs.R
@@ -8,7 +8,7 @@ pegs : [G] WINDOWS COMMON pegs PEGS_EXTRA pegs.res|noicon.res
ALL += pegs[COMBINED] PEGS_EXTRA
-!begin gtk
+!begin am gtk
GAMES += pegs
!end
diff --git a/range.R b/range.R
index 79303d9..1a3684b 100644
--- a/range.R
+++ b/range.R
@@ -6,7 +6,7 @@ range : [G] WINDOWS COMMON range range.res|noicon.res
ALL += range[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += range
!end
diff --git a/rect.R b/rect.R
index f599ec8..454e02f 100644
--- a/rect.R
+++ b/rect.R
@@ -6,7 +6,7 @@ rect : [G] WINDOWS COMMON rect rect.res|noicon.res
ALL += rect[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += rect
!end
diff --git a/samegame.R b/samegame.R
index 6d01668..d603c1a 100644
--- a/samegame.R
+++ b/samegame.R
@@ -6,7 +6,7 @@ samegame : [G] WINDOWS COMMON samegame samegame.res|noicon.res
ALL += samegame[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += samegame
!end
diff --git a/signpost.R b/signpost.R
index 58789da..5f7d322 100644
--- a/signpost.R
+++ b/signpost.R
@@ -10,7 +10,7 @@ signpostsolver : [C] signpost[STANDALONE_SOLVER] SIGNPOST_EXTRA STANDALONE
ALL += signpost[COMBINED] SIGNPOST_EXTRA
-!begin gtk
+!begin am gtk
GAMES += signpost
!end
diff --git a/singles.R b/singles.R
index 5220eeb..591ef4a 100644
--- a/singles.R
+++ b/singles.R
@@ -10,7 +10,7 @@ ALL += singles[COMBINED] SINGLES_EXTRA
singlessolver : [U] singles[STANDALONE_SOLVER] SINGLES_EXTRA STANDALONE
singlessolver : [C] singles[STANDALONE_SOLVER] SINGLES_EXTRA STANDALONE
-!begin gtk
+!begin am gtk
GAMES += singles
!end
diff --git a/sixteen.R b/sixteen.R
index 1d16aa8..810279b 100644
--- a/sixteen.R
+++ b/sixteen.R
@@ -6,7 +6,7 @@ sixteen : [G] WINDOWS COMMON sixteen sixteen.res|noicon.res
ALL += sixteen[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += sixteen
!end
diff --git a/slant.R b/slant.R
index 6086025..2590d1a 100644
--- a/slant.R
+++ b/slant.R
@@ -11,7 +11,7 @@ slantsolver : [C] slant[STANDALONE_SOLVER] SLANT_EXTRA STANDALONE
ALL += slant[COMBINED] SLANT_EXTRA
-!begin gtk
+!begin am gtk
GAMES += slant
!end
diff --git a/solo.R b/solo.R
index af0a1c3..bdf8ba0 100644
--- a/solo.R
+++ b/solo.R
@@ -11,7 +11,7 @@ solosolver : [C] solo[STANDALONE_SOLVER] SOLO_EXTRA STANDALONE
ALL += solo[COMBINED] SOLO_EXTRA
-!begin gtk
+!begin am gtk
GAMES += solo
!end
diff --git a/tents.R b/tents.R
index a0a64a5..70caa36 100644
--- a/tents.R
+++ b/tents.R
@@ -11,7 +11,7 @@ ALL += tents[COMBINED] TENTS_EXTRA
tentssolver : [U] tents[STANDALONE_SOLVER] TENTS_EXTRA STANDALONE
tentssolver : [C] tents[STANDALONE_SOLVER] TENTS_EXTRA STANDALONE
-!begin gtk
+!begin am gtk
GAMES += tents
!end
diff --git a/towers.R b/towers.R
index eb77401..93f7f1f 100644
--- a/towers.R
+++ b/towers.R
@@ -12,7 +12,7 @@ towerssolver : [C] towers[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] TOWERS_LAT
ALL += towers[COMBINED] TOWERS_EXTRA
-!begin gtk
+!begin am gtk
GAMES += towers
!end
diff --git a/twiddle.R b/twiddle.R
index c9337d6..e346df9 100644
--- a/twiddle.R
+++ b/twiddle.R
@@ -6,7 +6,7 @@ twiddle : [G] WINDOWS COMMON twiddle twiddle.res|noicon.res
ALL += twiddle[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += twiddle
!end
diff --git a/undead.R b/undead.R
index 792678e..af54bd1 100644
--- a/undead.R
+++ b/undead.R
@@ -5,7 +5,7 @@ undead : [G] WINDOWS COMMON undead undead.res|noicon.res
ALL += undead[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += undead
!end
diff --git a/unequal.R b/unequal.R
index 8f755d1..a0c7423 100644
--- a/unequal.R
+++ b/unequal.R
@@ -14,7 +14,7 @@ latincheck : [C] latin[STANDALONE_LATIN_TEST] tree234 maxflow STANDALONE
ALL += unequal[COMBINED] UNEQUAL_EXTRA
-!begin gtk
+!begin am gtk
GAMES += unequal
!end
diff --git a/unfinished/group.R b/unfinished/group.R
index 83a27e5..498d1b1 100644
--- a/unfinished/group.R
+++ b/unfinished/group.R
@@ -12,7 +12,7 @@ groupsolver : [C] group[STANDALONE_SOLVER] latin[STANDALONE_SOLVER] GROUP_LATIN_
ALL += group[COMBINED] GROUP_EXTRA
-!begin gtk
+!begin am gtk
GAMES += group
!end
diff --git a/unfinished/separate.R b/unfinished/separate.R
index 291de79..18a7582 100644
--- a/unfinished/separate.R
+++ b/unfinished/separate.R
@@ -8,7 +8,7 @@ separate : [G] WINDOWS COMMON separate SEPARATE_EXTRA separate.res|noicon.
ALL += separate[COMBINED] SEPARATE_EXTRA
-!begin gtk
+!begin am gtk
GAMES += separate
!end
diff --git a/unfinished/slide.R b/unfinished/slide.R
index 12440a1..daf24d8 100644
--- a/unfinished/slide.R
+++ b/unfinished/slide.R
@@ -11,7 +11,7 @@ slidesolver : [C] slide[STANDALONE_SOLVER] SLIDE_EXTRA STANDALONE
ALL += slide[COMBINED] SLIDE_EXTRA
-!begin gtk
+!begin am gtk
GAMES += slide
!end
diff --git a/unfinished/sokoban.R b/unfinished/sokoban.R
index d86afe1..86adcae 100644
--- a/unfinished/sokoban.R
+++ b/unfinished/sokoban.R
@@ -6,7 +6,7 @@ sokoban : [G] WINDOWS COMMON sokoban sokoban.res?
ALL += sokoban[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += sokoban
!end
diff --git a/unruly.R b/unruly.R
index da02c34..0b44e10 100644
--- a/unruly.R
+++ b/unruly.R
@@ -8,7 +8,7 @@ unrulysolver : [C] unruly[STANDALONE_SOLVER] STANDALONE
ALL += unruly[COMBINED]
-!begin gtk
+!begin am gtk
GAMES += unruly
!end
diff --git a/untangle.R b/untangle.R
index 868eb93..03d813f 100644
--- a/untangle.R
+++ b/untangle.R
@@ -8,7 +8,7 @@ untangle : [G] WINDOWS COMMON untangle UNTANGLE_EXTRA untangle.res|noicon.res
ALL += untangle[COMBINED] UNTANGLE_EXTRA
-!begin gtk
+!begin am gtk
GAMES += untangle
!end