From 61fccbbd14d2bb377db6c000f3364151ed9de979 Mon Sep 17 00:00:00 2001 From: Michael Olbrich Date: Tue, 20 Apr 2010 11:45:46 +0200 Subject: [install] create install.[un]pack stages to support devel packages Signed-off-by: Michael Olbrich --- scripts/lib/ptxd_make_world_install.sh | 46 +++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) (limited to 'scripts/lib/ptxd_make_world_install.sh') diff --git a/scripts/lib/ptxd_make_world_install.sh b/scripts/lib/ptxd_make_world_install.sh index 42cdb6ad8..a8c570f51 100644 --- a/scripts/lib/ptxd_make_world_install.sh +++ b/scripts/lib/ptxd_make_world_install.sh @@ -57,13 +57,36 @@ ptxd_make_world_install() { } export -f ptxd_make_world_install +# +# unpack +# +# unpack the dev tarball to pkg_pkg_dir +# +ptxd_make_world_install_unpack() { + local pkg_prefix + + ptxd_make_world_init && + + case "${pkg_type}" in + host|cross) pkg_prefix="${pkg_type}-" ;; + *) pkg_prefix="" ;; + esac && + + if [ \! -e "${ptx_pkg_dev_dir}/${pkg_pkg_dev}" ]; then + ptxd_bailout "Internal error: '$(ptxd_print_path ${ptx_pkg_dev_dir}/${pkg_pkg_dev})' does not exist." + fi && + rm -rf -- "${pkg_pkg_dir}" && + mkdir -p -- "${ptx_pkg_dir}" && + tar -x -C "${ptx_pkg_dir}" -z -f "${ptx_pkg_dev_dir}/${pkg_pkg_dev}" +} +export -f ptxd_make_world_install_unpack # -# post +# pack # -# cleanup an copy to sysroot +# pack the dev tarball from pkg_pkg_dir # -ptxd_make_world_install_post() { +ptxd_make_world_install_pack() { ptxd_make_world_init && # remove empty dirs @@ -82,6 +105,23 @@ ptxd_make_world_install_post() { xargs -r -0 gawk -f "${PTXDIST_LIB_DIR}/ptxd_make_world_install_mangle_pc.awk" && check_pipe_status && + if [ "${pkg_pkg_dev}" != "NO" -a "$(ptxd_get_ptxconf PTXCONF_PROJECT_CREATE_DEVPKGS)" = "y" ]; then + tar -c -C "${ptx_pkg_dir}" -z -f "${ptx_pkg_dir}/${pkg_pkg_dev}" "${pkg_pkg_dir##*/}" + fi +} +export -f ptxd_make_world_install_pack + +# +# post +# +# cleanup an copy to sysroot +# +ptxd_make_world_install_post() { + ptxd_make_world_init && + # do nothing if pkg_pkg_dir does not exist + if [ \! -d "${pkg_pkg_dir}" ]; then + return + fi && # prefix paths in la files with sysroot find "${pkg_pkg_dir}" -name "*.la" -print0 | xargs -r -0 -- \ sed -i \ -- cgit v1.2.3