summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Hieber <rhi@pengutronix.de>2019-06-06 18:26:15 +0200
committerMichael Olbrich <m.olbrich@pengutronix.de>2019-06-12 13:49:24 +0200
commit8db4320850eb5a8e8393162abe019aff024cb144 (patch)
tree6043fcef4a711f05251362c91f35965b86a63902
parentee10b8a913af08591acf295ced79a7b5e45be709 (diff)
downloadptxdist-8db4320850eb5a8e8393162abe019aff024cb144.tar.gz
ptxdist-8db4320850eb5a8e8393162abe019aff024cb144.tar.xz
ptxd_lib_dgen: error out for targetinstall stages in host/cross/image packages
This point came up multiple times in the past and the special handling of targetinstall stages lead to confusion when trying to depend on image packages. Document it to prevent further confusion in that matter, and warn the user if such a make target exists. Signed-off-by: Roland Hieber <rhi@pengutronix.de> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--doc/ref_rule_file_layout.inc12
-rw-r--r--scripts/lib/ptxd_lib_dgen.awk14
2 files changed, 26 insertions, 0 deletions
diff --git a/doc/ref_rule_file_layout.inc b/doc/ref_rule_file_layout.inc
index ea7eb8c49..58f37b73d 100644
--- a/doc/ref_rule_file_layout.inc
+++ b/doc/ref_rule_file_layout.inc
@@ -23,6 +23,18 @@ Each rule file provides PTXdist with the required steps (in PTXdist called
- targetinstall.post
+.. note::
+
+ Host, image and cross packages don't need to install anything in the target file system.
+ Therefore, PTXdist only respects the *targetinstall* and *targetinstall.post*
+ stages for packages whose name doesn't start with ``host-``, ``image-``, or ``cross-``.
+
+ When you want to depend on the output of a certain image package, you can
+ usually use its image name as an `additional prerequisite <make-prereq-types_>`_
+ in your make rule for the dependent stage.
+
+.. _make-prereq-types: https://www.gnu.org/software/make/manual/make.html#Prerequisite-Types
+
Default stage rules
~~~~~~~~~~~~~~~~~~~
diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk
index 46387af10..82adcdf06 100644
--- a/scripts/lib/ptxd_lib_dgen.awk
+++ b/scripts/lib/ptxd_lib_dgen.awk
@@ -98,6 +98,20 @@ function dump_file(src, dst, tmp) {
#
+# warn user if an image, host, or cross package contains a targetinstall rule
+# which will not be executed
+#
+$1 ~ /^\$\(STATEDIR\)\/(image-.*|host-.*|cross-.*)\.targetinstall(.post)?:/ {
+ match($0, /\$\(STATEDIR\)\/((image-.*|host-.*|cross-.*)\.targetinstall(.post)?):/, m);
+ print "\nError in " old_filename " line " lineno ":\n" \
+ " '" m[1] "' stage will be ignored.\n" \
+ " See section 'Rule File Layout' in the PTXdist reference for more info:\n" \
+ " https://www.ptxdist.org/doc/ref_manual.html#rule-file-layout"
+ exit 1;
+}
+
+
+#
# parse "PACKAGES-$(PTXCONF_PKG) += pkg" lines, i.e. rules-files from
# rules/*.make. Setup mapping between upper and lower case pkg names
#