diff options
-rwxr-xr-x | bin/ptxdist | 6 | ||||
-rw-r--r-- | doc/ref_parameter.inc | 9 | ||||
-rw-r--r-- | scripts/lib/ptxd_lib_dgen.awk | 18 |
3 files changed, 26 insertions, 7 deletions
diff --git a/bin/ptxdist b/bin/ptxdist index 0ec9ad53d..782b40c8b 100755 --- a/bin/ptxdist +++ b/bin/ptxdist @@ -1014,6 +1014,8 @@ Options: --nice=<n>, -n<n> run with reduced scheduling priority (i.e. nice) (default = 10) + --dirty avoid rebuilding packages to speed up development + --keep-going, -k keep going. Continue as much as possible after an error. @@ -1231,6 +1233,9 @@ parse_first() -v|--verbose) PTXDIST_VERBOSE=1 ;; + --dirty) + PTXDIST_DIRTY=true + ;; -k|--keep-going) PTX_MAKE_ARGS[${#PTX_MAKE_ARGS[@]}]="-k" ;; @@ -2705,6 +2710,7 @@ setup_export() { PTXDIST_ICECC \ PTXDIST_LOG_PROMPT \ PTXDIST_OUTPUT_SYNC \ + PTXDIST_DIRTY \ PTXDIST_FORCE \ PTXDIST_PEDANTIC \ PTXDIST_QUIET \ diff --git a/doc/ref_parameter.inc b/doc/ref_parameter.inc index 9c1e34ce1..e8f6487e4 100644 --- a/doc/ref_parameter.inc +++ b/doc/ref_parameter.inc @@ -315,6 +315,15 @@ Options ``--nice=<n>``, ``-n<n>`` run with reduced scheduling priority (i.e. nice). The default is 10. +``--dirty`` + avoid rebuilding packages. By default, if a package is rebuild then all + packages that depend on it are also rebuild. This happens because + PTXdist cannot know if rebuilding is necessary. With this option the + depending packages will not be rebuild. Also, changes to config options, + rule and menu file will not trigger a rebuild either. + + To trigger a rebuild, the relevant stage of a package must be dropped. + ``--keep-going``, ``-k`` keep going. Continue as much as possible after an error. diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk index 42600f924..09a674847 100644 --- a/scripts/lib/ptxd_lib_dgen.awk +++ b/scripts/lib/ptxd_lib_dgen.awk @@ -21,6 +21,8 @@ BEGIN { DGEN_RULESFILES_MAKE = ENVIRON["PTX_DGEN_RULESFILES_MAKE"]; PTXDIST_TEMPDIR = ENVIRON["PTXDIST_TEMPDIR"]; PARALLEL = ENVIRON["PTXDIST_PARALLELMFLAGS_EXTERN"] + DIRTY = ENVIRON["PTXDIST_DIRTY"]; + DEP = DIRTY == "true" ? "|" : "" CHECK_LICENSES = 0 } @@ -355,7 +357,9 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) { print "$(STATEDIR)/" this_pkg ".extract: " "$(STATEDIR)/" this_pkg ".get" > DGEN_DEPS_POST; print "$(STATEDIR)/" this_pkg ".extract.post: " "$(STATEDIR)/" this_pkg ".extract" > DGEN_DEPS_POST; print "$(STATEDIR)/" this_pkg ".prepare: " "$(STATEDIR)/" this_pkg ".extract.post" > DGEN_DEPS_POST; - print "$(STATEDIR)/" this_pkg ".prepare: " "$(STATEDIR)/" this_pkg ".$(" this_PKG "_CFGHASH).cfghash" > DGEN_DEPS_POST; + if (DIRTY != "true") + print "$(STATEDIR)/" this_pkg ".prepare: " \ + "$(STATEDIR)/" this_pkg ".$(" this_PKG "_CFGHASH).cfghash" > DGEN_DEPS_POST; print "$(STATEDIR)/" this_pkg ".tags: " "$(STATEDIR)/" this_pkg ".prepare" > DGEN_DEPS_POST; print "$(STATEDIR)/" this_pkg ".compile: " "$(STATEDIR)/" this_pkg ".prepare" > DGEN_DEPS_POST; print "$(STATEDIR)/" this_pkg ".install: " "$(STATEDIR)/" this_pkg ".compile" > DGEN_DEPS_POST; @@ -384,7 +388,7 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) { print "ifneq ($(" this_PKG "),)" > DGEN_DEPS_POST; # on autogen script print "ifneq ($(call autogen_dep,$(" this_PKG ")),)" > DGEN_DEPS_POST; - print "$(STATEDIR)/" this_pkg ".extract.post: $(STATEDIR)/autogen-tools" > DGEN_DEPS_POST; + print "$(STATEDIR)/" this_pkg ".extract.post:" DEP " $(STATEDIR)/autogen-tools" > DGEN_DEPS_POST; print "endif" > DGEN_DEPS_POST; # on lndir print "ifneq ($(findstring lndir://,$(" this_PKG "_URL)),)" > DGEN_DEPS_POST; @@ -402,8 +406,8 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) { if (PARALLEL != "-j1") print "$(STATEDIR)/" this_pkg ".extract:| " "$(STATEDIR)/" this_dep ".install.post" > DGEN_DEPS_POST; - print "$(STATEDIR)/" this_pkg ".extract.post: " "$(STATEDIR)/" this_dep ".install.post" > DGEN_DEPS_POST; - print "$(STATEDIR)/" this_pkg ".install.unpack: " "$(STATEDIR)/" this_dep ".install.post" > DGEN_DEPS_POST; + print "$(STATEDIR)/" this_pkg ".extract.post:" DEP " $(STATEDIR)/" this_dep ".install.post" > DGEN_DEPS_POST; + print "$(STATEDIR)/" this_pkg ".install.unpack:" DEP " $(STATEDIR)/" this_dep ".install.post" > DGEN_DEPS_POST; } this_PKG_DEPS = PKG_to_R_DEP[this_PKG]; @@ -417,7 +421,7 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) { if (this_dep ~ /^host-|^cross-/) continue; - print "$(STATEDIR)/" this_pkg ".targetinstall: " "$(STATEDIR)/" this_dep ".targetinstall" > DGEN_DEPS_POST; + print "$(STATEDIR)/" this_pkg ".targetinstall:" DEP " $(STATEDIR)/" this_dep ".targetinstall" > DGEN_DEPS_POST; } } @@ -442,8 +446,8 @@ function write_deps_pkg_active_virtual(this_PKG, this_pkg, prefix) { } if (PARALLEL != "-j1") print "$(STATEDIR)/" this_pkg ".extract:| " "$(STATEDIR)/" virtual ".install" > DGEN_DEPS_POST; - print "$(STATEDIR)/" this_pkg ".extract.post: " "$(STATEDIR)/" virtual ".install" > DGEN_DEPS_POST; - print "$(STATEDIR)/" this_pkg ".install.unpack: " "$(STATEDIR)/" virtual ".install" > DGEN_DEPS_POST; + print "$(STATEDIR)/" this_pkg ".extract.post:" DEP " $(STATEDIR)/" virtual ".install" > DGEN_DEPS_POST; + print "$(STATEDIR)/" this_pkg ".install.unpack:" DEP " $(STATEDIR)/" virtual ".install" > DGEN_DEPS_POST; } function write_deps_pkg_active_image(this_PKG, this_pkg, prefix) { |