|
|
|
|
@@ -85,7 +85,34 @@ else
|
|
|
|
|
build_msg "CLR_BUILD" "BUILD" "${PKG_NAME} $(print_color "CLR_TARGET" "(${TARGET})")" "indent"
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
setup_toolchain ${TARGET}
|
|
|
|
|
# setup configure scripts
|
|
|
|
|
PKG_CONFIGURE_SCRIPT="${PKG_CONFIGURE_SCRIPT:-${PKG_BUILD}/configure}"
|
|
|
|
|
PKG_CMAKE_SCRIPT="${PKG_CMAKE_SCRIPT:-${PKG_BUILD}/CMakeLists.txt}"
|
|
|
|
|
PKG_MESON_SCRIPT="${PKG_MESON_SCRIPT:-${PKG_BUILD}/meson.build}"
|
|
|
|
|
|
|
|
|
|
# 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}" ]; then
|
|
|
|
|
PKG_TOOLCHAIN="cmake"
|
|
|
|
|
elif [ -f "${PKG_CONFIGURE_SCRIPT}" ]; then
|
|
|
|
|
PKG_TOOLCHAIN="configure"
|
|
|
|
|
elif [ -f "${PKG_BUILD}/Makefile" ]; then
|
|
|
|
|
PKG_TOOLCHAIN="make"
|
|
|
|
|
else
|
|
|
|
|
die "Not possible to detect toolchain automatically. Add PKG_TOOLCHAIN= to package.mk"
|
|
|
|
|
fi
|
|
|
|
|
_auto_toolchain=" (auto-detect)"
|
|
|
|
|
fi
|
|
|
|
|
if ! listcontains "meson cmake cmake-make configure ninja make autotools manual" "${PKG_TOOLCHAIN}"; then
|
|
|
|
|
die "$(print_color "CLR_ERROR" "ERROR:") unknown toolchain ${PKG_TOOLCHAIN}"
|
|
|
|
|
fi
|
|
|
|
|
build_msg "CLR_TOOLCHAIN" "TOOLCHAIN" "${PKG_TOOLCHAIN}${_auto_toolchain}"
|
|
|
|
|
|
|
|
|
|
# setup toolchain
|
|
|
|
|
setup_toolchain ${PKG_TOOLCHAIN} ${TARGET}
|
|
|
|
|
|
|
|
|
|
# configure install directory
|
|
|
|
|
if [ "${TARGET}" = "target" ]; then
|
|
|
|
|
@@ -173,32 +200,6 @@ BOOTSTRAP_CONFIGURE_OPTS="${HOST_CONFIGURE_OPTS}"
|
|
|
|
|
BOOTSTRAP_CMAKE_OPTS="${HOST_CMAKE_OPTS}"
|
|
|
|
|
BOOTSTRAP_MESON_OPTS="${HOST_MESON_OPTS}"
|
|
|
|
|
|
|
|
|
|
# setup configure scripts
|
|
|
|
|
PKG_CONFIGURE_SCRIPT="${PKG_CONFIGURE_SCRIPT:-${PKG_BUILD}/configure}"
|
|
|
|
|
PKG_CMAKE_SCRIPT="${PKG_CMAKE_SCRIPT:-${PKG_BUILD}/CMakeLists.txt}"
|
|
|
|
|
PKG_MESON_SCRIPT="${PKG_MESON_SCRIPT:-${PKG_BUILD}/meson.build}"
|
|
|
|
|
|
|
|
|
|
# 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}" ]; then
|
|
|
|
|
PKG_TOOLCHAIN="cmake"
|
|
|
|
|
elif [ -f "${PKG_CONFIGURE_SCRIPT}" ]; then
|
|
|
|
|
PKG_TOOLCHAIN="configure"
|
|
|
|
|
elif [ -f "${PKG_BUILD}/Makefile" ]; then
|
|
|
|
|
PKG_TOOLCHAIN="make"
|
|
|
|
|
else
|
|
|
|
|
die "Not possible to detect toolchain automatically. Add PKG_TOOLCHAIN= to package.mk"
|
|
|
|
|
fi
|
|
|
|
|
_auto_toolchain=" (auto-detect)"
|
|
|
|
|
fi
|
|
|
|
|
if ! listcontains "meson cmake cmake-make configure ninja make autotools manual" "${PKG_TOOLCHAIN}"; then
|
|
|
|
|
die "$(print_color "CLR_ERROR" "ERROR:") unknown toolchain ${PKG_TOOLCHAIN}"
|
|
|
|
|
fi
|
|
|
|
|
build_msg "CLR_TOOLCHAIN" "TOOLCHAIN" "${PKG_TOOLCHAIN}${_auto_toolchain}"
|
|
|
|
|
|
|
|
|
|
# make autoreconf
|
|
|
|
|
if [ "${PKG_TOOLCHAIN}" = "autotools" ]; then
|
|
|
|
|
${SCRIPTS}/autoreconf "${PKG_NAME}" "${PARENT_PKG}"
|
|
|
|
|
@@ -237,22 +238,22 @@ else
|
|
|
|
|
case "${PKG_TOOLCHAIN}:${TARGET}" in
|
|
|
|
|
# meson builds
|
|
|
|
|
"meson:target")
|
|
|
|
|
create_meson_conf ${TARGET} ${MESON_CONF}
|
|
|
|
|
create_meson_conf_target ${TARGET} ${MESON_CONF}
|
|
|
|
|
echo "Executing (target): meson ${TARGET_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_TARGET} $(dirname ${PKG_MESON_SCRIPT})" | tr -s " "
|
|
|
|
|
CC="${HOST_CC}" CXX="${HOST_CXX}" meson ${TARGET_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_TARGET} $(dirname ${PKG_MESON_SCRIPT})
|
|
|
|
|
;;
|
|
|
|
|
"meson:host")
|
|
|
|
|
create_meson_conf ${TARGET} ${MESON_CONF}
|
|
|
|
|
create_meson_conf_host ${TARGET} ${MESON_CONF}
|
|
|
|
|
echo "Executing (host): meson ${HOST_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_HOST} $(dirname ${PKG_MESON_SCRIPT})" | tr -s " "
|
|
|
|
|
meson ${HOST_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_HOST} $(dirname ${PKG_MESON_SCRIPT})
|
|
|
|
|
;;
|
|
|
|
|
"meson:init")
|
|
|
|
|
create_meson_conf ${TARGET} ${MESON_CONF}
|
|
|
|
|
create_meson_conf_target ${TARGET} ${MESON_CONF}
|
|
|
|
|
echo "Executing (init): meson ${INIT_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_INIT} $(dirname ${PKG_MESON_SCRIPT})" | tr -s " "
|
|
|
|
|
meson ${INIT_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_INIT} $(dirname ${PKG_MESON_SCRIPT})
|
|
|
|
|
;;
|
|
|
|
|
"meson:bootstrap")
|
|
|
|
|
create_meson_conf ${TARGET} ${MESON_CONF}
|
|
|
|
|
create_meson_conf_host ${TARGET} ${MESON_CONF}
|
|
|
|
|
echo "Executing (bootstrap): meson ${BOOTSTRAP_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_BOOTSTRAP} $(dirname ${PKG_MESON_SCRIPT})" | tr -s " "
|
|
|
|
|
meson ${BOOTSTRAP_MESON_OPTS} --cross-file=${MESON_CONF} ${PKG_MESON_OPTS_BOOTSTRAP} $(dirname ${PKG_MESON_SCRIPT})
|
|
|
|
|
;;
|
|
|
|
|
|