summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/ptxdist6
-rw-r--r--doc/ref_parameter.inc9
-rw-r--r--scripts/lib/ptxd_lib_dgen.awk18
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) {