buildsystem: rework build script

This commit is contained in:
Sascha Kuehndel (InuSasha) 2017-10-27 14:07:29 +02:00
parent 3b9fcfc3b4
commit 3cd7be6023
No known key found for this signature in database
GPG Key ID: 15FED89617B88D1B
3 changed files with 220 additions and 142 deletions

View File

@ -174,7 +174,7 @@ reset_pkg_vars() {
PKG_REV="0" PKG_REV="0"
PKG_ARCH="any" PKG_ARCH="any"
PKG_LICENSE="unknown" PKG_LICENSE="unknown"
PKG_AUTORECONF="no" PKG_TOOLCHAIN="auto"
PKG_IS_ADDON="no" PKG_IS_ADDON="no"
PKG_PYTHON_VERSION="python2.7" PKG_PYTHON_VERSION="python2.7"
} }
@ -757,6 +757,7 @@ print_color() {
CLR_APPLY_PATCH) clr_actual="boldgreen";; CLR_APPLY_PATCH) clr_actual="boldgreen";;
CLR_AUTORECONF) clr_actual="boldmagenta";; CLR_AUTORECONF) clr_actual="boldmagenta";;
CLR_BUILD) clr_actual="boldyellow";; CLR_BUILD) clr_actual="boldyellow";;
CLR_TOOLCHAIN) clr_actual="boldmagenta";;
CLR_CLEAN) clr_actual="boldred";; CLR_CLEAN) clr_actual="boldred";;
CLR_FIXCONFIG) clr_actual="boldyellow";; CLR_FIXCONFIG) clr_actual="boldyellow";;
CLR_GET) clr_actual="boldcyan";; CLR_GET) clr_actual="boldcyan";;

View File

@ -33,7 +33,7 @@ PKG_DEPENDS_TARGET="toolchain curl" # dependencies that are neede
PKG_SECTION="service" # service, tools, virtual, driver, driver.remote ... PKG_SECTION="service" # service, tools, virtual, driver, driver.remote ...
PKG_SHORTDESC="Addon name: sort description" # Addon: is a program that does this and that PKG_SHORTDESC="Addon name: sort description" # Addon: is a program that does this and that
PKG_LONGDESC="Addon name ($PKG_VERSION): detailed description" PKG_LONGDESC="Addon name ($PKG_VERSION): detailed description"
PKG_TOOLCHAIN="auto" # auto, meson, cmake, cmake-make, configure, autotools, other PKG_TOOLCHAIN="auto" # auto, meson, cmake, cmake-make, configure, make, ninja, autotools, manual
PKG_IS_ADDON="yes" PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Addon name" # proper name of the addon that is shown at the repo PKG_ADDON_NAME="Addon name" # proper name of the addon that is shown at the repo

View File

@ -121,7 +121,7 @@ if [ ! -f $STAMP ]; then
unset -f makeinstall_bootstrap unset -f makeinstall_bootstrap
unset -f post_makeinstall_bootstrap unset -f post_makeinstall_bootstrap
# configure TARGET build defaults # configure TARGET build defaults
TARGET_CONFIGURE_OPTS="--host=$TARGET_NAME \ TARGET_CONFIGURE_OPTS="--host=$TARGET_NAME \
--build=$HOST_NAME \ --build=$HOST_NAME \
--prefix=/usr \ --prefix=/usr \
@ -134,24 +134,21 @@ if [ ! -f $STAMP ]; then
--disable-static \ --disable-static \
--enable-shared" --enable-shared"
# cmake build defaults
if [ "$DEBUG" = "yes" ]; then if [ "$DEBUG" = "yes" ]; then
CMAKE_BUILD_TYPE="Debug" CMAKE_BUILD_TYPE="Debug"
else else
CMAKE_BUILD_TYPE="MinSizeRel" CMAKE_BUILD_TYPE="MinSizeRel"
fi fi
if [ "$PKG_USE_NINJA" = "no" ]; then CMAKE_GENERATOR_NINJA="-GNinja \
CMAKE_GENERATOR="" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
else
CMAKE_GENERATOR="-GNinja \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
fi
TARGET_CMAKE_OPTS="$CMAKE_GENERATOR \ TARGET_CMAKE_OPTS="-DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE" -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE"
# meson build defaults
if [ "$DEBUG" = "yes" ]; then if [ "$DEBUG" = "yes" ]; then
MESON_BUILD_TYPE="debug" MESON_BUILD_TYPE="debug"
else else
@ -213,31 +210,33 @@ if [ ! -f $STAMP ]; then
fi fi
fi fi
if [ "$TARGET" = "target" ]; then # build dependencies
for p in $PKG_DEPENDS_TARGET; do case "$TARGET" in
$SCRIPTS/build $p "target")
done for p in $PKG_DEPENDS_TARGET; do
elif [ "$TARGET" = "host" ]; then $SCRIPTS/build $p
for p in $PKG_DEPENDS_HOST; do done
$SCRIPTS/build $p ;;
done "host")
elif [ "$TARGET" = "init" ]; then for p in $PKG_DEPENDS_HOST; do
for p in $PKG_DEPENDS_INIT; do $SCRIPTS/build $p
$SCRIPTS/build $p done
done ;;
elif [ "$TARGET" = "bootstrap" ]; then "init")
for p in $PKG_DEPENDS_BOOTSTRAP; do for p in $PKG_DEPENDS_INIT; do
$SCRIPTS/build $p $SCRIPTS/build $p
done done
fi ;;
"bootstrap")
for p in $PKG_DEPENDS_BOOTSTRAP; do
$SCRIPTS/build $p
done
;;
esac
printf "%${BUILD_INDENT}c $(print_color CLR_BUILD "BUILD") $PACKAGE_NAME $(print_color CLR_TARGET "($TARGET)")\n" ' '>&$SILENT_OUT printf "%${BUILD_INDENT}c $(print_color CLR_BUILD "BUILD") $PACKAGE_NAME $(print_color CLR_TARGET "($TARGET)")\n" ' '>&$SILENT_OUT
export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE)) export BUILD_INDENT=$((${BUILD_INDENT:-1}+$BUILD_INDENT_SIZE))
if [ "$PKG_AUTORECONF" = yes ]; then
$SCRIPTS/autoreconf $PACKAGE_NAME
fi
# virtual packages dont must be build, they only contains dependencies, so dont go further here # virtual packages dont must be build, they only contains dependencies, so dont go further here
if [ ! "$PKG_SECTION" = "virtual" ]; then if [ ! "$PKG_SECTION" = "virtual" ]; then
@ -269,6 +268,33 @@ if [ ! -f $STAMP ]; then
PKG_MESON_SCRIPT="$PKG_BUILD/meson.build" PKG_MESON_SCRIPT="$PKG_BUILD/meson.build"
fi fi
# auto detect toolchain
_auto_toolchain=""
if [ -z "$PKG_TOOLCHAIN" -o "$PKG_TOOLCHAIN" = "auto" ]; then
if [ -f "$PKG_MESON_SCRIPT" ]; then
PKG_TOOLCHAIN="meson"
elif [ -f "$PKG_CMAKE_SCRIPT" -a ! "$PKG_USE_CMAKE" = "no" ]; then
PKG_TOOLCHAIN="cmake"
elif [ -f "$PKG_CONFIGURE_SCRIPT" ]; then
PKG_TOOLCHAIN="configure"
elif [ -f $PKG_BUILD/Makefile ]; then
PKG_TOOLCHAIN="make"
else
echo "Not possible to detect toolchain automatically. Add PKG_TOOLCHAIN= to package.mk"
exit 1
fi
_auto_toolchain=" (auto-detect)"
fi
if ! listcontains "meson cmake cmake-make configure ninja make autotools manual" "$PKG_TOOLCHAIN"; then
printf "$(print_color bold-red "ERROR:") unknown toolchain $PKG_TOOLCHAIN"
exit 1
fi
printf "%${BUILD_INDENT}c $(print_color CLR_TOOLCHAIN "TOOLCHAIN") $PKG_TOOLCHAIN${_auto_toolchain}\n" ' '>&$SILENT_OUT
if [ "$PKG_TOOLCHAIN" = "autotools" ]; then
$SCRIPTS/autoreconf $PACKAGE_NAME
fi
# include build template and build # include build template and build
if [ "$(type -t pre_build_$TARGET)" = "function" ]; then if [ "$(type -t pre_build_$TARGET)" = "function" ]; then
pre_build_$TARGET pre_build_$TARGET
@ -281,26 +307,25 @@ if [ ! -f $STAMP ]; then
cd $PKG_BUILD cd $PKG_BUILD
if [ "$TARGET" = "target" ]; then if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" -o -f "$PKG_MESON_SCRIPT" ]; then
if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" -o -f "$PKG_MESON_SCRIPT" ]; then case "$TARGET" in
mkdir -p .$TARGET_NAME "target")
cd .$TARGET_NAME mkdir -p .$TARGET_NAME
fi cd .$TARGET_NAME
elif [ "$TARGET" = "host" ]; then ;;
if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" -o -f "$PKG_MESON_SCRIPT" ]; then "host")
mkdir -p .$HOST_NAME mkdir -p .$HOST_NAME
cd .$HOST_NAME cd .$HOST_NAME
fi ;;
elif [ "$TARGET" = "init" ]; then "init")
if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" -o -f "$PKG_MESON_SCRIPT" ]; then mkdir -p .$TARGET_NAME-$TARGET
mkdir -p .$TARGET_NAME-$TARGET cd .$TARGET_NAME-$TARGET
cd .$TARGET_NAME-$TARGET ;;
fi "bootstrap")
elif [ "$TARGET" = "bootstrap" ]; then mkdir -p .$HOST_NAME-$TARGET
if [ -f "$PKG_CONFIGURE_SCRIPT" -o -f "$PKG_CMAKE_SCRIPT" -o -f "$PKG_MESON_SCRIPT" ]; then cd .$HOST_NAME-$TARGET
mkdir -p .$HOST_NAME-$TARGET ;;
cd .$HOST_NAME-$TARGET esac
fi
fi fi
# configure # configure
@ -309,48 +334,80 @@ if [ ! -f $STAMP ]; then
fi fi
if [ "$(type -t configure_$TARGET)" = "function" ]; then if [ "$(type -t configure_$TARGET)" = "function" ]; then
configure_$TARGET configure_$TARGET
elif [ -f "$PKG_MESON_SCRIPT" -a ! "$PKG_USE_MESON" = "no" ]; then else
if [ "$TARGET" = "target" ]; then case "$PKG_TOOLCHAIN:$TARGET" in
echo "Executing (target): meson $TARGET_MESON_OPTS $PKG_MESON_OPTS_TARGET $(dirname $PKG_MESON_SCRIPT)" | tr -s " " # meson builds
meson $TARGET_MESON_OPTS $PKG_MESON_OPTS_TARGET $(dirname $PKG_MESON_SCRIPT) "meson:target")
elif [ "$TARGET" = "host" ]; then echo "Executing (target): meson $TARGET_MESON_OPTS $PKG_MESON_OPTS_TARGET $(dirname $PKG_MESON_SCRIPT)" | tr -s " "
echo "Executing (host): meson $HOST_MESON_OPTS $PKG_MESON_OPTS_HOST $(dirname $PKG_MESON_SCRIPT)" | tr -s " " meson $TARGET_MESON_OPTS $PKG_MESON_OPTS_TARGET $(dirname $PKG_MESON_SCRIPT)
meson $HOST_MESON_OPTS $PKG_MESON_OPTS_HOST $(dirname $PKG_MESON_SCRIPT) ;;
elif [ "$TARGET" = "init" ]; then "meson:host")
echo "Executing (init): meson $INIT_MESON_OPTS $PKG_MESON_OPTS_INIT $(dirname $PKG_MESON_SCRIPT)" | tr -s " " echo "Executing (host): meson $HOST_MESON_OPTS $PKG_MESON_OPTS_HOST $(dirname $PKG_MESON_SCRIPT)" | tr -s " "
meson $INIT_MESON_OPTS $PKG_MESON_OPTS_INIT $(dirname $PKG_MESON_SCRIPT) meson $HOST_MESON_OPTS $PKG_MESON_OPTS_HOST $(dirname $PKG_MESON_SCRIPT)
elif [ "$TARGET" = "bootstrap" ]; then ;;
echo "Executing (bootstrap): meson $BOOTSTRAP_MESON_OPTS $PKG_MESON_OPTS_BOOTSTRAP $(dirname $PKG_MESON_SCRIPT)" | tr -s " " "meson:init")
meson $BOOTSTRAP_MESON_OPTS $PKG_MESON_OPTS_BOOTSTRAP $(dirname $PKG_MESON_SCRIPT) echo "Executing (init): meson $INIT_MESON_OPTS $PKG_MESON_OPTS_INIT $(dirname $PKG_MESON_SCRIPT)" | tr -s " "
fi meson $INIT_MESON_OPTS $PKG_MESON_OPTS_INIT $(dirname $PKG_MESON_SCRIPT)
elif [ -f "$PKG_CMAKE_SCRIPT" -a ! "$PKG_USE_CMAKE" = "no" ]; then ;;
if [ "$TARGET" = "target" ]; then "meson:bootstrap")
echo "Executing (target): cmake $TARGET_CMAKE_OPTS $PKG_CMAKE_OPTS_TARGET $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " " echo "Executing (bootstrap): meson $BOOTSTRAP_MESON_OPTS $PKG_MESON_OPTS_BOOTSTRAP $(dirname $PKG_MESON_SCRIPT)" | tr -s " "
cmake $TARGET_CMAKE_OPTS $PKG_CMAKE_OPTS_TARGET $(dirname $PKG_CMAKE_SCRIPT) meson $BOOTSTRAP_MESON_OPTS $PKG_MESON_OPTS_BOOTSTRAP $(dirname $PKG_MESON_SCRIPT)
elif [ "$TARGET" = "host" ]; then ;;
echo "Executing (host): cmake $HOST_CMAKE_OPTS $PKG_CMAKE_OPTS_HOST $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " "
cmake $HOST_CMAKE_OPTS $PKG_CMAKE_OPTS_HOST $(dirname $PKG_CMAKE_SCRIPT) # cmake builds with ninja
elif [ "$TARGET" = "init" ]; then "cmake:target")
echo "Executing (init): cmake $INIT_CMAKE_OPTS $PKG_CMAKE_OPTS_INIT $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " " echo "Executing (target): cmake $CMAKE_GENERATOR_NINJA $TARGET_CMAKE_OPTS $PKG_CMAKE_OPTS_TARGET $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " "
cmake $INIT_CMAKE_OPTS $PKG_CMAKE_OPTS_INIT $(dirname $PKG_CMAKE_SCRIPT) cmake $CMAKE_GENERATOR_NINJA $TARGET_CMAKE_OPTS $PKG_CMAKE_OPTS_TARGET $(dirname $PKG_CMAKE_SCRIPT)
elif [ "$TARGET" = "bootstrap" ]; then ;;
echo "Executing (bootstrap): cmake $BOOTSTRAP_CMAKE_OPTS $PKG_CMAKE_OPTS_BOOTSTRAP $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " " "cmake:host")
cmake $BOOTSTRAP_CMAKE_OPTS $PKG_CMAKE_OPTS_BOOTSTRAP $(dirname $PKG_CMAKE_SCRIPT) echo "Executing (host): cmake $CMAKE_GENERATOR_NINJA $HOST_CMAKE_OPTS $PKG_CMAKE_OPTS_HOST $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " "
fi cmake $CMAKE_GENERATOR_NINJA $HOST_CMAKE_OPTS $PKG_CMAKE_OPTS_HOST $(dirname $PKG_CMAKE_SCRIPT)
elif [ -f "$PKG_CONFIGURE_SCRIPT" ]; then ;;
if [ "$TARGET" = "target" ]; then "cmake:init")
echo "Executing (target): $PKG_CONFIGURE_SCRIPT $TARGET_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_TARGET" | tr -s " " echo "Executing (init): cmake $CMAKE_GENERATOR_NINJA $INIT_CMAKE_OPTS $PKG_CMAKE_OPTS_INIT $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " "
$PKG_CONFIGURE_SCRIPT $TARGET_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_TARGET cmake $CMAKE_GENERATOR_NINJA $INIT_CMAKE_OPTS $PKG_CMAKE_OPTS_INIT $(dirname $PKG_CMAKE_SCRIPT)
elif [ "$TARGET" = "host" ]; then ;;
echo "Executing (host): $PKG_CONFIGURE_SCRIPT $HOST_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_HOST" | tr -s " " "cmake:bootstrap")
$PKG_CONFIGURE_SCRIPT $HOST_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_HOST echo "Executing (bootstrap): cmake $CMAKE_GENERATOR_NINJA $BOOTSTRAP_CMAKE_OPTS $PKG_CMAKE_OPTS_BOOTSTRAP $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " "
elif [ "$TARGET" = "init" ]; then cmake $CMAKE_GENERATOR_NINJA $BOOTSTRAP_CMAKE_OPTS $PKG_CMAKE_OPTS_BOOTSTRAP $(dirname $PKG_CMAKE_SCRIPT)
echo "Executing (init): $PKG_CONFIGURE_SCRIPT $INIT_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_INIT" | tr -s " " ;;
$PKG_CONFIGURE_SCRIPT $INIT_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_INIT
elif [ "$TARGET" = "bootstrap" ]; then # cmake builds with make
echo "Executing (bootstrap): $PKG_CONFIGURE_SCRIPT $BOOTSTRAP_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_BOOTSTRAP" | tr -s " " "cmake-make:target")
$PKG_CONFIGURE_SCRIPT $BOOTSTRAP_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_BOOTSTRAP echo "Executing (target): cmake $TARGET_CMAKE_OPTS $PKG_CMAKE_OPTS_TARGET $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " "
fi cmake $TARGET_CMAKE_OPTS $PKG_CMAKE_OPTS_TARGET $(dirname $PKG_CMAKE_SCRIPT)
;;
"cmake-make:host")
echo "Executing (host): cmake $HOST_CMAKE_OPTS $PKG_CMAKE_OPTS_HOST $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " "
cmake $HOST_CMAKE_OPTS $PKG_CMAKE_OPTS_HOST $(dirname $PKG_CMAKE_SCRIPT)
;;
"cmake-make:init")
echo "Executing (init): cmake $INIT_CMAKE_OPTS $PKG_CMAKE_OPTS_INIT $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " "
cmake $INIT_CMAKE_OPTS $PKG_CMAKE_OPTS_INIT $(dirname $PKG_CMAKE_SCRIPT)
;;
"cmake-make:bootstrap")
echo "Executing (bootstrap): cmake $BOOTSTRAP_CMAKE_OPTS $PKG_CMAKE_OPTS_BOOTSTRAP $(dirname $PKG_CMAKE_SCRIPT)" | tr -s " "
cmake $BOOTSTRAP_CMAKE_OPTS $PKG_CMAKE_OPTS_BOOTSTRAP $(dirname $PKG_CMAKE_SCRIPT)
;;
# configure builds
"configure:target"|"autotools:target")
echo "Executing (target): $PKG_CONFIGURE_SCRIPT $TARGET_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_TARGET" | tr -s " "
$PKG_CONFIGURE_SCRIPT $TARGET_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_TARGET
;;
"configure:host"|"autotools:host")
echo "Executing (host): $PKG_CONFIGURE_SCRIPT $HOST_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_HOST" | tr -s " "
$PKG_CONFIGURE_SCRIPT $HOST_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_HOST
;;
"configure:init"|"autotools:init")
echo "Executing (init): $PKG_CONFIGURE_SCRIPT $INIT_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_INIT" | tr -s " "
$PKG_CONFIGURE_SCRIPT $INIT_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_INIT
;;
"configure:bootstrap"|"autotools:bootstrap")
echo "Executing (bootstrap): $PKG_CONFIGURE_SCRIPT $BOOTSTRAP_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_BOOTSTRAP" | tr -s " "
$PKG_CONFIGURE_SCRIPT $BOOTSTRAP_CONFIGURE_OPTS $PKG_CONFIGURE_OPTS_BOOTSTRAP
;;
esac
fi fi
if [ "$(type -t post_configure_$TARGET)" = "function" ]; then if [ "$(type -t post_configure_$TARGET)" = "function" ]; then
post_configure_$TARGET post_configure_$TARGET
@ -362,34 +419,44 @@ if [ ! -f $STAMP ]; then
fi fi
if [ "$(type -t make_$TARGET)" = "function" ]; then if [ "$(type -t make_$TARGET)" = "function" ]; then
make_$TARGET make_$TARGET
elif [ \( -f "$PKG_CMAKE_SCRIPT" -a ! "$PKG_USE_CMAKE" = "no" -a ! "$PKG_USE_NINJA" = "no" \) -o \( -f "$PKG_MESON_SCRIPT" -a ! "$PKG_USE_MESON" = "no" \) ]; then
if [ "$TARGET" = "target" ]; then
echo "Executing (target): ninja $PKG_MAKE_OPTS_TARGET" | tr -s " "
ninja $PKG_MAKE_OPTS_TARGET
elif [ "$TARGET" = "host" ]; then
echo "Executing (host): ninja $PKG_MAKE_OPTS_HOST" | tr -s " "
ninja $PKG_MAKE_OPTS_HOST
elif [ "$TARGET" = "init" ]; then
echo "Executing (init): ninja $PKG_MAKE_OPTS_INIT" | tr -s " "
ninja $PKG_MAKE_OPTS_INIT
elif [ "$TARGET" = "bootstrap" ]; then
echo "Executing (bootstrap): ninja $PKG_MAKE_OPTS_BOOTSTRAP" | tr -s " "
ninja $PKG_MAKE_OPTS_BOOTSTRAP
fi
else else
if [ "$TARGET" = "target" ]; then case "$PKG_TOOLCHAIN:$TARGET" in
echo "Executing (target): make $PKG_MAKE_OPTS_TARGET" | tr -s " " # ninja based builds
make $PKG_MAKE_OPTS_TARGET "meson:target"|"cmake:target"|"ninja:target")
elif [ "$TARGET" = "host" ]; then echo "Executing (target): ninja $PKG_MAKE_OPTS_TARGET" | tr -s " "
echo "Executing (host): make $PKG_MAKE_OPTS_HOST" | tr -s " " ninja $PKG_MAKE_OPTS_TARGET
make $PKG_MAKE_OPTS_HOST ;;
elif [ "$TARGET" = "init" ]; then "meson:host"|"cmake:host"|"ninja:host")
echo "Executing (init): make $PKG_MAKE_OPTS_INIT" | tr -s " " echo "Executing (host): ninja $PKG_MAKE_OPTS_HOST" | tr -s " "
make $PKG_MAKE_OPTS_INIT ninja $PKG_MAKE_OPTS_HOST
elif [ "$TARGET" = "bootstrap" ]; then ;;
echo "Executing (bootstrap): make $PKG_MAKE_OPTS_BOOTSTRAP" | tr -s " " "meson:init"|"cmake:init"|"ninja:init")
make $PKG_MAKE_OPTS_BOOTSTRAP echo "Executing (init): ninja $PKG_MAKE_OPTS_INIT" | tr -s " "
fi ninja $PKG_MAKE_OPTS_INIT
;;
"meson:bootstrap"|"cmake:bootstrap"|"ninja:bootstrap")
echo "Executing (bootstrap): ninja $PKG_MAKE_OPTS_BOOTSTRAP" | tr -s " "
ninja $PKG_MAKE_OPTS_BOOTSTRAP
;;
# make based builds
"configure:target"|"cmake-make:target"|"autotools:target"|"make:target")
echo "Executing (target): make $PKG_MAKE_OPTS_TARGET" | tr -s " "
make $PKG_MAKE_OPTS_TARGET
;;
"configure:host"|"cmake-make:host"|"autotools:host"|"make:host")
echo "Executing (host): make $PKG_MAKE_OPTS_HOST" | tr -s " "
make $PKG_MAKE_OPTS_HOST
;;
"configure:init"|"cmake-make:init"|"autotools:init"|"make:init")
echo "Executing (init): make $PKG_MAKE_OPTS_INIT" | tr -s " "
make $PKG_MAKE_OPTS_INIT
;;
"configure:bootstrap"|"cmake-make:bootstrap"|"autotools:bootstrap"|"make:bootstrap")
echo "Executing (bootstrap): make $PKG_MAKE_OPTS_BOOTSTRAP" | tr -s " "
make $PKG_MAKE_OPTS_BOOTSTRAP
;;
esac
fi fi
if [ "$(type -t post_make_$TARGET)" = "function" ]; then if [ "$(type -t post_make_$TARGET)" = "function" ]; then
post_make_$TARGET post_make_$TARGET
@ -401,28 +468,38 @@ if [ ! -f $STAMP ]; then
fi fi
if [ "$(type -t makeinstall_$TARGET)" = "function" ]; then if [ "$(type -t makeinstall_$TARGET)" = "function" ]; then
makeinstall_$TARGET makeinstall_$TARGET
elif [ \( -f "$PKG_CMAKE_SCRIPT" -a ! "$PKG_USE_CMAKE" = "no" -a ! "$PKG_USE_NINJA" = "no" \) -o \( -f "$PKG_MESON_SCRIPT" -a ! "$PKG_USE_MESON" = "no" \) ]; then
if [ "$TARGET" = "target" ]; then
DESTDIR=$SYSROOT_PREFIX ninja install $PKG_MAKEINSTALL_OPTS_TARGET
DESTDIR=$INSTALL ninja install $PKG_MAKEINSTALL_OPTS_TARGET
elif [ "$TARGET" = "host" ]; then
ninja install $PKG_MAKEINSTALL_OPTS_HOST
elif [ "$TARGET" = "init" ]; then
DESTDIR=$INSTALL ninja install $PKG_MAKEINSTALL_OPTS_INIT
elif [ "$TARGET" = "bootstrap" ]; then
ninja install $PKG_MAKEINSTALL_OPTS_BOOTSTRAP
fi
else else
if [ "$TARGET" = "target" ]; then case "$PKG_TOOLCHAIN:$TARGET" in
$MAKEINSTALL $PKG_MAKEINSTALL_OPTS_TARGET # ninja based builds
make install DESTDIR=$INSTALL $PKG_MAKEINSTALL_OPTS_TARGET "meson:target"|"cmake:target")
elif [ "$TARGET" = "host" ]; then DESTDIR=$SYSROOT_PREFIX ninja install $PKG_MAKEINSTALL_OPTS_TARGET
make install $PKG_MAKEINSTALL_OPTS_HOST DESTDIR=$INSTALL ninja install $PKG_MAKEINSTALL_OPTS_TARGET
elif [ "$TARGET" = "init" ]; then ;;
make install DESTDIR=$INSTALL $PKG_MAKEINSTALL_OPTS_INIT "meson:host"|"cmake:host")
elif [ "$TARGET" = "bootstrap" ]; then ninja install $PKG_MAKEINSTALL_OPTS_HOST
make install $PKG_MAKEINSTALL_OPTS_BOOTSTRAP ;;
fi "meson:init"|"cmake:init")
DESTDIR=$INSTALL ninja install $PKG_MAKEINSTALL_OPTS_INIT
;;
"meson:bootstrap"|"cmake:bootstrap")
ninja install $PKG_MAKEINSTALL_OPTS_BOOTSTRAP
;;
# make based builds
"configure:target"|"cmake-make:target"|"autotools:target"|"make:target")
$MAKEINSTALL $PKG_MAKEINSTALL_OPTS_TARGET
make install DESTDIR=$INSTALL $PKG_MAKEINSTALL_OPTS_TARGET
;;
"configure:host"|"cmake-make:host"|"autotools:host"|"make:host")
make install $PKG_MAKEINSTALL_OPTS_HOST
;;
"configure:init"|"cmake-make:init"|"autotools:init"|"make:init")
make install DESTDIR=$INSTALL $PKG_MAKEINSTALL_OPTS_INIT
;;
"configure:bootstrap"|"cmake-make:bootstrap"|"autotools:bootstrap"|"make:bootstrap")
make install $PKG_MAKEINSTALL_OPTS_BOOTSTRAP
;;
esac
fi fi
if [ "$(type -t post_makeinstall_$TARGET)" = "function" ]; then if [ "$(type -t post_makeinstall_$TARGET)" = "function" ]; then
post_makeinstall_$TARGET post_makeinstall_$TARGET