Thanks, applied as d4caaae5e1e35470f24b8b3da79aa77b57c4deb6. Michael
[sent from post-receive hook] On Sun, 12 May 2024 15:16:43 +0200, Alexander Dahl <a...@thorsis.com> wrote: > Setting the new variable to 'YES' allows to inject into <PKG>_BUILD_DIR > instead of <PKG>_DIR as before. > > When building out-of-tree some bootloaders like U-Boot expect injected > files in the build dir, not in the source dir. Backwards compatibility > is ensured, the source dir is still the default, the new inject dest is > optional and in case set it overwrites the default. > > For using this in u-boot package, on top of the things already done to > use the old inject mechanism in general, add this line to > 'rules/u-boot.make' for example: > > U_BOOT_INJECT_OOT := YES > > Signed-off-by: Alexander Dahl <a...@thorsis.com> > Acked-by: Michael Riesch <michael.rie...@wolfvision.net> > Message-Id: <20240506105051.323546-5-...@thorsis.com> > Signed-off-by: Michael Olbrich <m.olbr...@pengutronix.de> > > diff --git a/rules/post/ptxd_make_world_inject.make > b/rules/post/ptxd_make_world_inject.make > index eabcdd0529b8..1e3979a2f007 100644 > --- a/rules/post/ptxd_make_world_inject.make > +++ b/rules/post/ptxd_make_world_inject.make > @@ -9,7 +9,8 @@ > world/inject/env = \ > $(call world/env, $(1)) \ > pkg_inject_path="$(call ptx/escape,$($(1)_INJECT_PATH))" \ > - pkg_inject_files="$(call ptx/escape,$($(1)_INJECT_FILES))" > + pkg_inject_files="$(call ptx/escape,$($(1)_INJECT_FILES))" \ > + pkg_inject_oot="$(call ptx/escape,$($(1)_INJECT_OOT))" > > world/inject = \ > $(call world/inject/env,$(strip $(1))) \ > diff --git a/scripts/lib/ptxd_make_world_inject.sh > b/scripts/lib/ptxd_make_world_inject.sh > index b74e464c6895..e8e94fbe6397 100644 > --- a/scripts/lib/ptxd_make_world_inject.sh > +++ b/scripts/lib/ptxd_make_world_inject.sh > @@ -10,7 +10,7 @@ ptxd_make_inject() { > local source target > > source="$(echo ${inject_file} | cut -d ":" -f 1)" > - target="${pkg_dir}/$(echo ${inject_file} | cut -d ":" -f 2)" > + target="${inject_dest}/$(echo ${inject_file} | cut -d ":" -f 2)" > > if [[ "${source}" =~ ^/.* ]]; then > ptxd_bailout "'${source}' must not be an absolute path!" \ > @@ -32,8 +32,25 @@ export -f ptxd_make_inject > ptxd_make_world_inject() { > ptxd_make_world_init || return > > - if [ -z "${pkg_dir}" ]; then > - ptxd_bailout "<PKG>_DIR empty, no destination to inject to." > + if [ -z "${pkg_inject_oot}" ]; then > + pkg_inject_oot=NO > + fi > + > + case "${pkg_inject_oot}" in > + "YES") inject_dest="${pkg_build_dir}" ;; > + "NO") inject_dest="${pkg_dir}" ;; > + *) ptxd_bailout "<PKG>_INJECT_OOT: please set to YES or NO" ;; > + esac > + > + if [ "${pkg_build_oot:-NO}" = 'NO' ] && [ "${pkg_inject_oot}" != 'NO' ]; > then > + ptxd_warning "<PKG>_BUILD_OOT and <PKG>_INJECT_OOT contradict each > other." \ > + "Using $(ptxd_print_path ${inject_dest}) as inject destination > anyways." > + fi > + > + if [ ! -d "${inject_dest}" ]; then > + ptxd_bailout "<PKG> inject destination dir missing." \ > + "Correct placement of world/inject depends on <PKG>_BUILD_OOT and > <PKG>_INJECT_OOT." \ > + "Check order of calls in prepare stage!" > fi > > for inject_file in ${pkg_inject_files}; do