# discovered while scanning configure.ac. We might distribute these
# in the top-level Makefile.in.
%configure_dist_common = ();
-
-# Holds the dependencies of target which dependencies are factored.
-# Typically, `.PHONY' will appear in plenty of *.am files, but must
-# be output once. Arguably all pure dependencies could be subject
-# to this factorization, but it is not unpleasant to have paragraphs
-# in Makefile: keeping related stuff altogether.
-%dependencies =
-(
- ".PHONY" => []
-);
\f
# Initialize global constants and our list of languages that are
$output_rules .= ("install-man: \$(MANS)\n"
. "\t\@\$(NORMAL_INSTALL)\n");
&pretty_print_rule ("\t\$(MAKE) \$(AM_MAKEFLAGS)", "\t ", @namelist);
- push (@phony, 'install-man');
+ &depend ('.PHONY', 'install-man');
$output_rules .= "uninstall-man:\n\t\@\$(NORMAL_UNINSTALL)\n";
grep ($_ = 'un' . $_, @namelist);
&pretty_print_rule ("\t\$(MAKE) \$(AM_MAKEFLAGS)", "\t ", @namelist);
- push (@phony, 'uninstall-man');
+ &depend ('.PHONY', 'uninstall-man');
$output_vars .= &file_contents ('mans-vars');
. " && \$(MAKE) \$(AM_MAKEFLAGS) tags); \\\n"
. "\tdone\n");
push (@tag_deps, 'tags-recursive');
- push (@phony, 'tags-recursive');
+ &depend ('.PHONY', 'tags-recursive');
}
if (&saw_sources_p (1)
. " distdir=\"\$(distdir)\" $targ\n");
}
- push (@phony, 'distdir');
+ &depend ('.PHONY', 'distdir');
}
# Handle 'dist' target.
# rule will work correctly.
$output_rules .= ("installdirs: installdirs-recursive\n"
. "installdirs-am:\n");
- push (@phony, 'installdirs-am');
+ &depend ('.PHONY', 'installdirs-am');
}
else
{
$output_rules .= "installdirs:\n";
}
- push (@phony, 'installdirs');
+ &depend ('.PHONY', 'installdirs');
if (@installdirs)
{
&pretty_print_rule ("\t" . '$(mkinstalldirs) ', "\t\t",
. " all-recursive"
. "\n\n");
$all_target = 'all-recursive-am';
- push (@phony, 'all-recursive-am');
+ &depend ('.PHONY', 'all-recursive-am');
}
}
$output_rules .= ("install-strip:\n\t"
. '$(MAKE) $(AM_MAKEFLAGS) INSTALL_STRIP_FLAG=-s install'
. "\n");
- push (@phony, 'install-strip');
+ &depend ('.PHONY', 'install-strip');
}
# Helper for handle_merge_targets. Note that handle_merge_targets
{
# User defined local form of target. So include it.
push (@values, $name . '-local');
- push (@phony, $name . '-local');
+ &depend ('.PHONY', $name . '-local');
}
&pretty_print_rule ($name . "-am:", "\t\t", @values);
{
$tname = 'all-redirect';
$lname = $all_target if $recursive_install;
- push (@phony, 'all-redirect');
+ &depend ('.PHONY', 'all-redirect');
$output_all = "all: all-redirect\n";
}
&pretty_print_rule ($tname . ":", "\t\t", $lname);
- push (@phony, $name . '-am', $name);
+ &depend ('.PHONY', $name . '-am', $name);
}
# Handle check merge target specially.
{
# User defined local form of target. So include it.
push (@check_tests, 'check-local');
- push (@phony, 'check-local');
+ &depend ('.PHONY', 'check-local');
}
# In --cygnus mode, check doesn't depend on all.
@check_tests)
if @check_tests;
- push (@phony, 'check', 'check-am');
+ &depend ('.PHONY', 'check', 'check-am');
$output_rules .= ("check: "
. ($recursive_install ? 'check-recursive' : 'check-am')
. "\n");
&do_one_clean_target ('clean', 'dist', '', @clean);
&do_one_clean_target ('clean', 'maintainer-', 'dist', @clean);
- push (@phony, 'clean', 'mostlyclean', 'distclean', 'maintainer-clean');
+ &depend ('.PHONY', 'clean', 'mostlyclean', 'distclean', 'maintainer-clean');
}
# Helper for handle_clean.
$output_rules .= "\n";
}
+
+# &depend ($CATEGORY, @DEPENDENDEES)
+# ----------------------------------
+sub depend
+{
+ my ($category, @dependendees) = @_;
+ {
+ push (@{${dependencies{$category}}}, @dependendees);
+ }
+}
+
+
+
+# &handle_factored_dependencies ()
+# --------------------------------
# Handle .PHONY target.
sub handle_factored_dependencies
{
- # FIXME: @PHONY must die!
- push (@{${dependencies{".PHONY"}}}, @phony);
-
- my ($category);
+ my $category;
foreach $category (sort keys %dependencies)
{
&pretty_print_rule ("$category:", "",
}
-# handle_tests_dejagnu()
-# ----------------------
+# &handle_tests_dejagnu ()
+# ------------------------
sub handle_tests_dejagnu
{
push (@check_tests, 'check-DEJAGNU');
@installcheck = ();
@clean = ();
- @phony = ();
+ # Holds the dependencies of target which dependencies are factored.
+ # Typically, `.PHONY' will appear in plenty of *.am files, but must
+ # be output once. Arguably all pure dependencies could be subject
+ # to this factorization, but it is not unpleasant to have paragraphs
+ # in Makefile: keeping related stuff altogether.
+ %dependencies =
+ (
+ '.PHONY' => []
+ );
# A list of files deleted by `maintainer-clean'.
@maintainer_clean_files = ();
{
if (defined $dependencies{$_})
{
- push (@{$dependencies{$_}}, split (/\s/, $dependees));
+ &depend ($_, split (/\s/, $dependees));
}
else
{
. $subdir_xform);
push (@uninstall, 'uninstall-' . $X . $primary);
- push (@phony, 'uninstall-' . $X . $primary);
+ &depend ('.PHONY', 'uninstall-' . $X . $primary);
push (@installdirs, '$(DESTDIR)$(' . $X . 'dir)');
if (defined $exec_dir_p{$X} ? $exec_dir_p{$X} : ($X =~ /exec/))
{
push (@install_exec, 'install-' . $X . $primary);
- push (@phony, 'install-' . $X . $primary);
+ &depend ('.PHONY', 'install-' . $X . $primary);
}
else
{
push (@install_data, 'install-' . $X . $primary);
- push (@phony, 'install-' . $X . $primary);
+ &depend ('.PHONY', 'install-' . $X . $primary);
}
}
}
local ($target);
foreach $target ('mostly', 'dist', '', 'maintainer-')
{
- push (@phony, $target . 'clean-' . $base);
+ &depend ('.PHONY', $target . 'clean-' . $base);
}
}