Change so that packages are installed into $TERMUX_PKG_MASSAGEDIR

Makes it possible to `make` packages as normal and then `make install`
into an empty $PREFIX in $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX by
setting DESTDIR=$TERMUX_PKG_MASSAGEDIR. The installed files can then
be packaged into a deb as when cross-compiling.
This commit is contained in:
Henrik Grimler 2020-03-01 08:41:49 +01:00 committed by Henrik Grimler
parent 016dd57e9c
commit 3456e0b128
4 changed files with 22 additions and 23 deletions

View File

@ -31,18 +31,6 @@ source "$TERMUX_SCRIPTDIR/scripts/utils/package/package.sh"
SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct 2>/dev/null || date "+%s")
export SOURCE_DATE_EPOCH
if [ "$(uname -o)" = "Android" ] || [ -e "/system/bin/app_process" ]; then
if [ "$(id -u)" = "0" ]; then
echo "On-device execution of this script as root is disabled."
exit 1
fi
# This variable tells all parts of build system that build
# is performed on device.
export TERMUX_ON_DEVICE_BUILD=true
else
export TERMUX_ON_DEVICE_BUILD=false
fi
# Automatically enable offline set of sources and build tools.
# Offline termux-packages bundle can be created by executing
@ -59,6 +47,19 @@ fi
export TERMUX_PACKAGES_DIRECTORIES=$(jq --raw-output 'keys | .[]' ${TERMUX_SCRIPTDIR}/repo.json)
if [ "$(uname -o)" = "Android" ] || [ -e "/system/bin/app_process" ]; then
if [ "$(id -u)" = "0" ]; then
echo "On-device execution of this script as root is disabled."
exit 1
fi
# This variable tells all parts of build system that build
# is performed on device.
export TERMUX_ON_DEVICE_BUILD=true
else
export TERMUX_ON_DEVICE_BUILD=false
fi
# Special variable for internal use. It forces script to ignore
# lock file.
: "${TERMUX_BUILD_IGNORE_LOCK:=false}"
@ -601,8 +602,10 @@ for ((i=0; i<${#PACKAGE_LIST[@]}; i++)); do
termux_step_post_make_install
termux_step_install_service_scripts
termux_step_install_license
cd "$TERMUX_PKG_MASSAGEDIR"
termux_step_extract_into_massagedir
if [ "$TERMUX_ON_DEVICE_BUILD" = "false" ]; then
cd "$TERMUX_PKG_MASSAGEDIR"
termux_step_extract_into_massagedir
fi
termux_step_massage
cd "$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX"
termux_step_post_massage

View File

@ -48,8 +48,8 @@ termux_step_configure_cmake() {
-DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER \
-DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY \
-DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY \
-DCMAKE_INSTALL_PREFIX=$TERMUX_PREFIX \
-DCMAKE_INSTALL_LIBDIR=$TERMUX_PREFIX/lib \
-DCMAKE_INSTALL_PREFIX=$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX \
-DCMAKE_INSTALL_LIBDIR=$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib \
-DCMAKE_MAKE_PROGRAM=$MAKE_PROGRAM_PATH \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
-DCMAKE_USE_SYSTEM_LIBRARIES=True \

View File

@ -12,7 +12,7 @@ termux_step_configure_meson() {
$TERMUX_PKG_SRCDIR \
$TERMUX_PKG_BUILDDIR \
--cross-file $TERMUX_MESON_CROSSFILE \
--prefix $TERMUX_PREFIX \
--prefix $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX \
--libdir lib \
--buildtype ${_meson_buildtype} \
${_meson_stripflag} \

View File

@ -16,11 +16,7 @@ termux_step_make_install() {
elif ls ./*akefile &>/dev/null || [ -n "$TERMUX_PKG_EXTRA_MAKE_ARGS" ]; then
: "${TERMUX_PKG_MAKE_INSTALL_TARGET:="install"}"
# Some packages have problem with parallell install, and it does not buy much, so use -j 1.
if [ -z "$TERMUX_PKG_EXTRA_MAKE_ARGS" ]; then
make -j 1 ${TERMUX_PKG_MAKE_INSTALL_TARGET}
else
make -j 1 ${TERMUX_PKG_EXTRA_MAKE_ARGS} ${TERMUX_PKG_MAKE_INSTALL_TARGET}
fi
make -j 1 ${TERMUX_PKG_EXTRA_MAKE_ARGS} ${TERMUX_PKG_MAKE_INSTALL_TARGET} DESTDIR=$TERMUX_PKG_MASSAGEDIR
elif test -f Cargo.toml; then
termux_setup_rust
cargo install \
@ -30,7 +26,7 @@ termux_step_make_install() {
--locked \
--no-track \
--target $CARGO_TARGET_NAME \
--root $TERMUX_PREFIX \
--root $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX \
$TERMUX_PKG_EXTRA_CONFIGURE_ARGS
fi
}