Only check for ebuild/eclass modification when a relevant phase is called.
authorZac Medico <zmedico@gentoo.org>
Mon, 23 Mar 2009 02:22:50 +0000 (02:22 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 23 Mar 2009 02:22:50 +0000 (02:22 -0000)
(trunk r13150)

svn path=/main/branches/2.1.6/; revision=13167

bin/ebuild

index bdf6b9503b09951bdf5ffc470310c5c4d948165f..55736dd3a63630e2b888ec5c2f56abdf04396311 100755 (executable)
@@ -195,16 +195,17 @@ if opts.skip_manifest:
        tmpsettings.backup_changes("EBUILD_SKIP_MANIFEST")
        portage._doebuild_manifest_exempt_depend += 1
 
+build_dir_phases = set(["setup", "unpack", "prepare", "configure", "compile",
+       "test", "install", "package", "rpm", "merge", "qmerge"])
+
 # If the current metadata is invalid then force the ebuild to be
 # sourced again even if $T/environment already exists.
 ebuild_changed = False
-metadata, st, emtime = \
-       portage.portdb._pull_valid_cache(cpv, ebuild, ebuild_portdir)
-if metadata is None:
-       ebuild_changed = True
-
-build_dir_phases = set(["setup", "unpack", "prepare", "configure", "compile",
-       "test", "install", "package", "rpm"])
+if build_dir_phases.intersection(pargs):
+       metadata, st, emtime = \
+               portage.portdb._pull_valid_cache(cpv, ebuild, ebuild_portdir)
+       if metadata is None:
+               ebuild_changed = True
 
 def stale_env_warning():
        if "clean" not in pargs and \