From 6114925c2b7b7ed6cc59ca3f4644769f0c20771b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucio=20Andr=C3=A9s=20Illanes=20Albornoz?= Date: Tue, 24 Aug 2021 23:00:34 +0200 Subject: midipix.env:${DEFAULT_BUILD_VARS}: adds INSTALL_FILES_V2. subr.rtl/rtl_install_v2.subr:rtlp_install_fmap(): fix typo. subr.rtl/rtl_install_v2.subr:rtlp_install_fmap_patterns(): don't prepend ${_rifp2_prefix} w/ %<*>. subr/ex_pkg_exec.subr:exp_pkg_exec_pre(): honour ${PKG_INSTALL_FILES:-} in emitting missing_pkg. subr/pkg_install_files.subr:pkgp_install_files_v2(): initial implementation. --- midipix.env | 2 +- subr.rtl/rtl_install_v2.subr | 4 ++-- subr/ex_pkg_exec.subr | 2 ++ subr/pkg_install_files.subr | 26 ++++++++++++++++++++++++++ 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/midipix.env b/midipix.env index ca414cfe..501eb14b 100644 --- a/midipix.env +++ b/midipix.env @@ -25,7 +25,7 @@ DEFAULT_BUILD_VARS=" \ CONFIGURE_TYPE CXX CXXFLAGS_CONFIGURE CXXFLAGS_CONFIGURE_EXTRA DEPENDS \ DESTDIR DESTDIR_HOST DISABLED ENV_VARS_EXTRA FNAME FORCE_AUTORECONF \ GITROOT INHERIT_FROM INSTALL_FILES INSTALL_FILES_DESTDIR \ - INSTALL_FILES_DESTDIR_EXTRA INSTALL_TARGET INSTALL_TARGET_EXTRA \ + INSTALL_FILES_DESTDIR_EXTRA INSTALL_FILES_V2 INSTALL_TARGET INSTALL_TARGET_EXTRA \ IN_TREE LDFLAGS_BUILD_EXTRA LDFLAGS_CONFIGURE LDFLAGS_CONFIGURE_EXTRA \ LIBTOOL MAKE MAKEFLAGS_BUILD MAKEFLAGS_BUILD_EXTRA MAKEFLAGS_INSTALL \ MAKEFLAGS_INSTALL_EXTRA MAKEFLAGS_VERBOSITY MAKE_INSTALL_VNAME \ diff --git a/subr.rtl/rtl_install_v2.subr b/subr.rtl/rtl_install_v2.subr index be75de49..df78f42a 100644 --- a/subr.rtl/rtl_install_v2.subr +++ b/subr.rtl/rtl_install_v2.subr @@ -28,7 +28,7 @@ rtlp_install_fmap() { done; if rtlp_install_fmap_params "${_rif_rparams}" \$_rif_spec ""\ - && rtlp_install_fmap_patterns "$_rif_rparams}" "${_rif_prefix}" "${_rif_spec}" \$_rif_spec_list; then + && rtlp_install_fmap_patterns "${_rif_rparams}" "${_rif_prefix}" "${_rif_spec}" \$_rif_spec_list; then IFS="${RTLP_INSTALL_NL}"; for _rif_spec_cur in ${_rif_spec_list}; do IFS="${_rif_IFS0}"; set --; _rif_nspec=1; while [ "${_rif_nspec}" -le "${_rif_specsc}" ]; do @@ -124,7 +124,7 @@ rtlp_install_fmap_patterns() { if rtlp_install_splitl_ref \$_rifp2_expr \$_rifp2_lhs \$_rifp2_rhs '%<' '>'; then case "${_rifp2_expr}" in *\**) - set +o noglob; for _rifp2_pname in ${_rifp2_prefix:+"${_rifp2_prefix%}/"}${_rifp2_lhs:+"${_rifp2_lhs%/}/"}${_rifp2_expr}; do + set +o noglob; for _rifp2_pname in ${_rifp2_lhs:+"${_rifp2_lhs%/}/"}${_rifp2_expr}; do set -o noglob; _rifp2_pname="${_rifp2_pname%/}${_rifp2_rhs:+/${_rifp2_rhs}}"; if [ -e "${_rifp2_pname}" ]; then eval ${_rifp2_rspec_list}='${'"${_rifp2_rspec_list}"':+${'"${_rifp2_rspec_list}"'}${RTLP_INSTALL_NL}}${_rifp2_pname}'; diff --git a/subr/ex_pkg_exec.subr b/subr/ex_pkg_exec.subr index ae825ad2..cd82756c 100644 --- a/subr/ex_pkg_exec.subr +++ b/subr/ex_pkg_exec.subr @@ -30,6 +30,8 @@ exp_pkg_exec_pre() { if [ -z "${PKG_URL:-}" ]\ && [ -z "${PKG_URLS_GIT:-}" ]\ && [ -z "${PKG_VERSION:-}" ]\ + && [ -z "${PKG_INSTALL_FILES:-}" ]\ + && [ -z "${PKG_INSTALL_FILES_V2:-}" ]\ && ! rtl_test_cmd "pkg_${_pkg_name}_all"; then "${_dispatch_fn}" missing_pkg "${_group_name}" "${_pkg_name}"; return 1; diff --git a/subr/pkg_install_files.subr b/subr/pkg_install_files.subr index 67843377..8dc71753 100644 --- a/subr/pkg_install_files.subr +++ b/subr/pkg_install_files.subr @@ -10,6 +10,31 @@ pkgp_install_files() { fi; }; +pkgp_install_files_v2() { + local _vflag=""; _status=""; + + if [ -n "${PKG_INSTALL_FILES_V2:-}" ]; then + [ "${ARG_VERBOSE:-0}" -ge 3 ] && _vflag="-v"; + if ! rtl_install_v2 \ + -p "_builddir=${PKG_BUILD_DIR}" \ + -p "_destdir=${PKG_BASE_DIR}/${PKG_DESTDIR}" \ + -p "_destdir_host=${PKG_BASE_DIR}/${PKG_DESTDIR_HOST}" \ + -p "_files=${MIDIPIX_BUILD_PWD}/files/${PKG_NAME}" \ + -p "_name=${PKG_NAME}" \ + -p "_prefix=${PKG_PREFIX}" \ + -p "_prefix_host=${PREFIX}" \ + -p "_prefix_native=${PREFIX_NATIVE}" \ + -p "_subdir=${PKG_BASE_DIR}/${PKG_SUBDIR}" \ + -p "_target=${PKG_TARGET}" \ + -p "_version=${PKG_VERSION:-}" \ + -p "_workdir=${BUILD_WORKDIR}" \ + ${_vflag} -- "${PKG_DESTDIR}" \ + "${PKG_INSTALL_FILES_V2}"; then + return 1; + fi; + fi; +}; + pkgp_install_files_perms() { local _destdir="" _fname="" IFS; for _destdir in "${PKG_DESTDIR}" "${PKG_DESTDIR_HOST}"; do @@ -77,6 +102,7 @@ pkgp_install_files_strip() { pkg_install_files() { if ! pkgp_install_files\ + || ! pkgp_install_files_v2\ || ! pkgp_install_files_perms\ || ! pkgp_install_files_pkgconfig\ || ! pkgp_install_files_strip; then -- cgit v1.2.3