diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-05-06 00:32:28 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2020-05-06 00:32:28 -0400 |
commit | f7e076b77c15de441f8e1008a30518c653c3974d (patch) | |
tree | 3a65ff2eaf8717e659619605df5441674bc4fa65 | |
parent | 425b9faf52d809da7285ec36963b77fef0dc4893 (diff) | |
download | spmc-f7e076b77c15de441f8e1008a30518c653c3974d.tar.gz |
Portability and bug fixes:
* Remove errant argument list from popd()
* Normalize mktemp calls
* Allow LD_LIBRARY_PATH and LD_RUN_PATH on Linux
* Totally destroy DYLD_LIBRARY_PATH on Darwin
* Print paths to root, runtime, and pkgdir when keep=1
* Print xFLAGS after dumping SPM_ variables
-rwxr-xr-x | scripts/spmbuild | 47 |
1 files changed, 32 insertions, 15 deletions
diff --git a/scripts/spmbuild b/scripts/spmbuild index a5e6300..46bfe7c 100755 --- a/scripts/spmbuild +++ b/scripts/spmbuild @@ -6,7 +6,7 @@ function pushd() { } function popd() { - command popd "$@" >/dev/null + command popd >/dev/null } function _msg() { @@ -127,11 +127,11 @@ function spm_build_initialize_stage2() { unset FCFLAGS # All templates strings MUST be the same length to allow for proper relocation - export _SPM_BUILD_ROOT_TEMPLATE="spmbuild_root_XXXXXXXXX" - export _SPM_BUILD_RUNTIME_TEMPLATE="spmbuild_runtime_XXXXXX" - export _SPM_BUILD_PKGDIR_TEMPLATE="spmbuild_pkgdir_XXXXXXX" + export _SPM_BUILD_ROOT_TEMPLATE="${TMPDIR}/spmbuild_root_XXXXXXXXX" + export _SPM_BUILD_RUNTIME_TEMPLATE="${TMPDIR}/spmbuild_runtime_XXXXXX" + export _SPM_BUILD_PKGDIR_TEMPLATE="${TMPDIR}/spmbuild_pkgdir_XXXXXXX" - export SPM_BUILD_ROOT_BASE=$(mktemp -d -t "${_SPM_BUILD_ROOT_TEMPLATE}") + export SPM_BUILD_ROOT_BASE=$(mktemp -d "${_SPM_BUILD_ROOT_TEMPLATE}") export SPM_BUILD_ROOT="${SPM_BUILD_ROOT_BASE}/${SPM_META_PREFIX_PLACEHOLDER}" export _srcdir="${SPM_BUILD_ROOT}" mkdir -p "${SPM_BUILD_ROOT}" @@ -140,7 +140,7 @@ function spm_build_initialize_stage2() { exit 1 fi - export SPM_BUILD_RUNTIME_BASE=$(mktemp -d -t "${_SPM_BUILD_RUNTIME_TEMPLATE}") + export SPM_BUILD_RUNTIME_BASE=$(mktemp -d "${_SPM_BUILD_RUNTIME_TEMPLATE}") export SPM_BUILD_RUNTIME="${SPM_BUILD_RUNTIME_BASE}/${SPM_META_PREFIX_PLACEHOLDER}" export _runtime="${SPM_BUILD_RUNTIME}" @@ -150,7 +150,7 @@ function spm_build_initialize_stage2() { exit 1 fi - export SPM_BUILD_PKGDIR_BASE=$(mktemp -d -t "${_SPM_BUILD_PKGDIR_TEMPLATE}") + export SPM_BUILD_PKGDIR_BASE=$(mktemp -d "${_SPM_BUILD_PKGDIR_TEMPLATE}") export SPM_BUILD_PKGDIR="${SPM_BUILD_PKGDIR_BASE}/${SPM_META_PREFIX_PLACEHOLDER}" export _pkgdir="${SPM_BUILD_PKGDIR}" @@ -175,27 +175,43 @@ function spm_build_initialize_stage2() { fi spm_build_new_root "${SPM_BUILD_RUNTIME}" - export LD_LIBRARY_PATH="${SPM_BUILD_RUNTIME}/lib:${SPM_BUILD_RUNTIME}/lib64" - export LD_RUN_PATH="${LD_LIBRARY_PATH}" - if [[ $(uname -s) == Darwin ]]; then - DYLD_LIBRARY_PATH="${LD_LIBRARY_PATH}" - DYLD_RUN_PATH="${LD_RUN_PATH}" + LD_LIBRARY_PATH="${SPM_BUILD_RUNTIME}/lib:${SPM_BUILD_RUNTIME}/lib64" + LD_RUN_PATH="${LD_LIBRARY_PATH}" + + if [[ $(uname -s) == Linux ]]; then + export LD_LIBRARY_PATH + export LD_RUN_PATH + elif [[ $(uname -s) == Darwin ]]; then + # Darwin is ridiculous. Don't rely on DYLD_* anything. + unset DYLD_LIBRARY_PATH unset LD_LIBRARY_PATH - unset LD_RUNPATH_PATH + unset LD_RUN_PATH + #elif # ... another OS's equivalent variable here fi + export PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 export PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 } +spm_build_cleaned=0 +export spm_build_cleaned function spm_build_cleanup() { - #: + # Don't clean up more than once + if (( spm_build_cleaned > 0)); then + return + fi + if [[ ${keep} != 0 ]]; then - echo "Temporary storage not destroyed" + msg "Temporary storage not destroyed" + msg2 "${SPM_BUILD_ROOT_BASE}" + msg2 "${SPM_BUILD_RUNTIME_BASE}" + msg2 "${SPM_BUILD_PKGDIR_BASE}" return fi [[ -d ${SPM_BUILD_ROOT_BASE} ]] && rm -rf ${SPM_BUILD_ROOT_BASE} [[ -d ${SPM_BUILD_RUNTIME_BASE} ]] && rm -rf ${SPM_BUILD_RUNTIME_BASE} [[ -d ${SPM_BUILD_PKGDIR_BASE} ]] && rm -rf ${SPM_BUILD_PKGDIR_BASE} + spm_build_cleaned=1 } function spm_build_install() { @@ -413,6 +429,7 @@ ls -l "${SPM_BUILD_ROOT}" msg "Environment data" printenv | grep -E '^SPM_' | sort +printenv | grep -E '^[A-Z]{0,3}FLAGS' | sort msg "Processing ${package_name}" |