From c06792c07609eacf6db0881f62a3391547c77248 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Sun, 30 Jun 2013 10:16:57 +0000 Subject: [PATCH] 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] --- Recipe | 5 ++++- blackbox.R | 2 +- bridges.R | 2 +- cube.R | 2 +- dominosa.R | 2 +- fifteen.R | 2 +- filling.R | 2 +- flip.R | 2 +- galaxies.R | 2 +- guess.R | 2 +- inertia.R | 2 +- keen.R | 2 +- lightup.R | 2 +- loopy.R | 2 +- magnets.R | 2 +- map.R | 2 +- mines.R | 2 +- mkfiles.pl | 39 +++++++++++++++++++++++---------------- net.R | 2 +- netslide.R | 2 +- pattern.R | 2 +- pearl.R | 2 +- pegs.R | 2 +- range.R | 2 +- rect.R | 2 +- samegame.R | 2 +- signpost.R | 2 +- singles.R | 2 +- sixteen.R | 2 +- slant.R | 2 +- solo.R | 2 +- tents.R | 2 +- towers.R | 2 +- twiddle.R | 2 +- undead.R | 2 +- unequal.R | 2 +- unfinished/group.R | 2 +- unfinished/separate.R | 2 +- unfinished/slide.R | 2 +- unfinished/sokoban.R | 2 +- unruly.R | 2 +- untangle.R | 2 +- 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