mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Roland Hieber <rhi@pengutronix.de>
To: ptxdist@pengutronix.de
Cc: Alexander Dahl <post@lespocky.de>, Roland Hieber <rhi@pengutronix.de>
Subject: [ptxdist] [PATCH v3 2/3] ptxd_lib_dgen: error out for targetinstall stages in host/cross/image packages
Date: Thu,  6 Jun 2019 18:26:15 +0200	[thread overview]
Message-ID: <20190606162616.28990-2-rhi@pengutronix.de> (raw)
In-Reply-To: <20190606162616.28990-1-rhi@pengutronix.de>

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>
---
Changes in v2 -> v3:
 - use the same syntax as everywhere else in ptxd_lib_dgen.awk
 - error out instead of warning
 - check cross packages too
 - print offending rule file and line number
---
 doc/ref_rule_file_layout.inc  | 12 ++++++++++++
 scripts/lib/ptxd_lib_dgen.awk | 15 +++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/doc/ref_rule_file_layout.inc b/doc/ref_rule_file_layout.inc
index ea7eb8c4903d..58f37b73da24 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 c577f905b8fb..dce3f8989eb9 100644
--- a/scripts/lib/ptxd_lib_dgen.awk
+++ b/scripts/lib/ptxd_lib_dgen.awk
@@ -97,6 +97,21 @@ 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 "Error 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" \
+	      > "/dev/stderr";
+	exit 1;
+}
+
+
 #
 # parse "PACKAGES-$(PTXCONF_PKG) += pkg" lines, i.e. rules-files from
 # rules/*.make. Setup mapping between upper and lower case pkg names
-- 
2.20.1


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

  reply	other threads:[~2019-06-06 16:26 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-04 16:42 [ptxdist] [PATCH 1/4] doc: ref_manual: split up into multiple files Roland Hieber
2019-04-04 16:42 ` [ptxdist] [PATCH 2/4] doc: ref_make_macros: install_tree knows a "strip" parameter too Roland Hieber
2019-04-04 16:42 ` [ptxdist] [PATCH 3/4] doc: ref_make_macros: merge parameter macros into a single section Roland Hieber
2019-04-04 16:42 ` [ptxdist] [PATCH 4/4] doc: ref_make_macros: document ptx/yesno, ptx/falsetrue, ptx/onoff Roland Hieber
2019-04-05 12:33 ` [ptxdist] [PATCH 5/4] doc: ref_rule_file_layout: document targetinstall inexistence for host- and image- packages Roland Hieber
2019-04-05 13:17   ` Alexander Dahl
2019-04-05 14:18     ` Michael Olbrich
2019-04-08  9:39       ` [ptxdist] [PATCH v2] ptxd_lib_dgen: warn if host or image packages have targetinstall stage Roland Hieber
2019-04-12  7:10         ` Michael Olbrich
2019-04-23 15:39           ` Roland Hieber
2019-05-07 10:38             ` Roland Hieber
2019-05-29 10:24             ` Michael Olbrich
2019-06-06 16:26           ` [ptxdist] [PATCH v3 1/3] ptxd_lib_dgen: add line counter Roland Hieber
2019-06-06 16:26             ` Roland Hieber [this message]
2019-06-06 19:21               ` [ptxdist] [PATCH v3 2/3] ptxd_lib_dgen: error out for targetinstall stages in host/cross/image packages Alexander Dahl
2019-06-06 16:26             ` [ptxdist] [PATCH v3 3/3] ptxd_lib_dgen: fix typos Roland Hieber

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190606162616.28990-2-rhi@pengutronix.de \
    --to=rhi@pengutronix.de \
    --cc=post@lespocky.de \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox