packages: implement late variable binding

Move variable assignments into configure_package() if the assignments
depend on variables initialised after the package is sourced, ie.
$PKG_BUILD, $PKG_SOURCE_NAME etc.
This commit is contained in:
MilhouseVH 2018-12-18 03:43:28 +00:00
parent b1a960bf8f
commit b518bbf4e7
10 changed files with 301 additions and 289 deletions

View File

@ -18,15 +18,16 @@ PKG_ICU_OPTS="--disable-extras \
--disable-tests \
--disable-tools"
PKG_CONFIGURE_OPTS_HOST="--enable-static \
--disable-shared \
$PKG_ICU_OPTS"
PKG_CONFIGURE_OPTS_TARGET="--with-cross-build=$PKG_BUILD/.$HOST_NAME \
configure_package() {
PKG_CONFIGURE_OPTS_TARGET="--with-cross-build=$PKG_BUILD/.$HOST_NAME \
$PKG_ICU_OPTS"
PKG_CONFIGURE_SCRIPT="source/configure"
PKG_CONFIGURE_SCRIPT="source/configure"
}
post_makeinstall_target() {
rm -rf $INSTALL

View File

@ -11,8 +11,6 @@ PKG_DEPENDS_HOST="toolchain zlib:host"
PKG_DEPENDS_TARGET="toolchain zlib protobuf:host"
PKG_LONGDESC="Protocol Buffers for Google's data interchange format."
PKG_CMAKE_SCRIPT="$PKG_BUILD/cmake/CMakeLists.txt"
PKG_CMAKE_OPTS_HOST="-DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 \
-DBUILD_SHARED_LIBS=0 \
-Dprotobuf_BUILD_TESTS=0 \
@ -21,6 +19,10 @@ PKG_CMAKE_OPTS_HOST="-DCMAKE_NO_SYSTEM_FROM_IMPORTED=1 \
PKG_CMAKE_OPTS_TARGET="$PKG_CMAKE_OPTS_HOST"
configure_package() {
PKG_CMAKE_SCRIPT="$PKG_BUILD/cmake/CMakeLists.txt"
}
post_makeinstall_target() {
rm -rf $INSTALL/usr/bin

View File

@ -79,8 +79,7 @@ PKG_CONFIGURE_OPTS_TARGET="--disable-silent-rules \
--with-soxr \
--with-module-dir=/usr/lib/pulse"
pre_configure_target()
{
pre_configure_target() {
sed -e 's|; remixing-use-all-sink-channels = yes|; remixing-use-all-sink-channels = no|' \
-i $PKG_BUILD/src/daemon/daemon.conf.in
}

View File

@ -11,9 +11,11 @@ PKG_DEPENDS_HOST="toolchain"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="lz4 data compressor/decompressor"
PKG_CMAKE_SCRIPT="$PKG_BUILD/contrib/cmake_unofficial/CMakeLists.txt"
configure_package() {
PKG_CMAKE_SCRIPT="$PKG_BUILD/contrib/cmake_unofficial/CMakeLists.txt"
PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=0 -DCMAKE_POSITION_INDEPENDENT_CODE=0"
PKG_CMAKE_OPTS_TARGET="-DBUILD_SHARED_LIBS=0 -DCMAKE_POSITION_INDEPENDENT_CODE=0"
}
post_makeinstall_target() {
rm -rf $INSTALL

View File

@ -11,6 +11,7 @@ PKG_SOURCE_DIR=$PKG_NAME-$PKG_VERSION
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="A fast real-time compression algorithm."
PKG_CMAKE_SCRIPT="$PKG_BUILD/build/cmake/CMakeLists.txt"
PKG_CMAKE_OPTS_HOST="-DTHREADS_PTHREAD_ARG=0"
configure_package() {
PKG_CMAKE_SCRIPT="$PKG_BUILD/build/cmake/CMakeLists.txt"
PKG_CMAKE_OPTS_HOST="-DTHREADS_PTHREAD_ARG=0"
}

View File

@ -45,8 +45,6 @@ else
PKG_CONFIGURE_OPTS_TARGET="$PKG_CONFIGURE_OPTS_TARGET --disable-debug"
fi
NSS_CONF_DIR="$PKG_BUILD/nss"
pre_build_target() {
cd $PKG_BUILD
aclocal --force --verbose

View File

@ -12,9 +12,12 @@ PKG_LONGDESC="VRAM Test from libretro"
PKG_TOOLCHAIN="manual"
PKG_LIBNAME="testsw_vram_libretro.so"
PKG_LIBPATH="$PKG_BUILD/video/software/rendering_direct_to_vram/$PKG_LIBNAME"
PKG_LIBVAR="VRAM-TEST_LIB"
configure_package() {
PKG_LIBPATH="$PKG_BUILD/video/software/rendering_direct_to_vram/$PKG_LIBNAME"
}
make_target() {
cd $PKG_BUILD/video/software/rendering_direct_to_vram
make

View File

@ -14,10 +14,12 @@ PKG_LONGDESC="gpu-aml: Linux drivers for Mali GPUs found in Amlogic Meson SoCs"
PKG_TOOLCHAIN="manual"
PKG_IS_KERNEL_PKG="yes"
PKG_UTGARD_VERSION="r5p1"
PKG_UTGARD_BUILD_DIR="$PKG_BUILD/utgard/$PKG_UTGARD_VERSION"
PKG_MIDGARD_VERSION="r16p0"
PKG_MIDGARD_BUILD_DIR="$PKG_BUILD/midgard/$PKG_MIDGARD_VERSION/kernel/drivers/gpu/arm/midgard"
configure_package() {
PKG_UTGARD_VERSION="r5p1"
PKG_UTGARD_BUILD_DIR="$PKG_BUILD/utgard/$PKG_UTGARD_VERSION"
PKG_MIDGARD_VERSION="r16p0"
PKG_MIDGARD_BUILD_DIR="$PKG_BUILD/midgard/$PKG_MIDGARD_VERSION/kernel/drivers/gpu/arm/midgard"
}
pre_configure_target() {
sed -e "s|shell date|shell date -R|g" -i $PKG_BUILD/utgard/*/Kbuild

View File

@ -31,86 +31,87 @@ case $KODI_VENDOR in
;;
esac
# Single threaded LTO is very slow so rely on Kodi for parallel LTO support
if [ "$LTO_SUPPORT" = "yes" ] && ! build_with_debug; then
configure_package() {
# Single threaded LTO is very slow so rely on Kodi for parallel LTO support
if [ "$LTO_SUPPORT" = "yes" ] && ! build_with_debug; then
PKG_KODI_USE_LTO="-DUSE_LTO=$CONCURRENCY_MAKE_LEVEL"
fi
fi
get_graphicdrivers
get_graphicdrivers
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET dbus"
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET dbus"
if [ "$DISPLAYSERVER" = "x11" ]; then
if [ "$DISPLAYSERVER" = "x11" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libX11 libXext libdrm libXrandr"
KODI_XORG="-DCORE_PLATFORM_NAME=x11"
elif [ "$DISPLAYSERVER" = "weston" ]; then
elif [ "$DISPLAYSERVER" = "weston" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET wayland waylandpp"
CFLAGS="$CFLAGS -DMESA_EGL_NO_X11_HEADERS"
CXXFLAGS="$CXXFLAGS -DMESA_EGL_NO_X11_HEADERS"
KODI_XORG="-DCORE_PLATFORM_NAME=wayland -DWAYLAND_RENDER_SYSTEM=gles"
fi
fi
if [ ! "$OPENGL" = "no" ]; then
if [ ! "$OPENGL" = "no" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGL glu"
fi
fi
if [ "$OPENGLES_SUPPORT" = yes ]; then
if [ "$OPENGLES_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGLES"
fi
fi
if [ "$ALSA_SUPPORT" = yes ]; then
if [ "$ALSA_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET alsa-lib"
KODI_ALSA="-DENABLE_ALSA=ON"
else
else
KODI_ALSA="-DENABLE_ALSA=OFF"
fi
fi
if [ "$PULSEAUDIO_SUPPORT" = yes ]; then
if [ "$PULSEAUDIO_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET pulseaudio"
KODI_PULSEAUDIO="-DENABLE_PULSEAUDIO=ON"
else
else
KODI_PULSEAUDIO="-DENABLE_PULSEAUDIO=OFF"
fi
fi
if [ "$ESPEAK_SUPPORT" = yes ]; then
if [ "$ESPEAK_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET espeak"
fi
fi
if [ "$CEC_SUPPORT" = yes ]; then
if [ "$CEC_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libcec"
KODI_CEC="-DENABLE_CEC=ON"
else
else
KODI_CEC="-DENABLE_CEC=OFF"
fi
fi
if [ "$KODI_OPTICAL_SUPPORT" = yes ]; then
if [ "$KODI_OPTICAL_SUPPORT" = yes ]; then
KODI_OPTICAL="-DENABLE_OPTICAL=ON"
else
else
KODI_OPTICAL="-DENABLE_OPTICAL=OFF"
fi
fi
if [ "$KODI_DVDCSS_SUPPORT" = yes ]; then
if [ "$KODI_DVDCSS_SUPPORT" = yes ]; then
KODI_DVDCSS="-DENABLE_DVDCSS=ON \
-DLIBDVDCSS_URL=$SOURCES/libdvdcss/libdvdcss-$(get_pkg_version libdvdcss).tar.gz"
else
else
KODI_DVDCSS="-DENABLE_DVDCSS=OFF"
fi
fi
if [ "$KODI_BLURAY_SUPPORT" = yes ]; then
if [ "$KODI_BLURAY_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libbluray"
KODI_BLURAY="-DENABLE_BLURAY=ON"
else
else
KODI_BLURAY="-DENABLE_BLURAY=OFF"
fi
fi
if [ "$AVAHI_DAEMON" = yes ]; then
if [ "$AVAHI_DAEMON" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET avahi nss-mdns"
KODI_AVAHI="-DENABLE_AVAHI=ON"
else
else
KODI_AVAHI="-DENABLE_AVAHI=OFF"
fi
fi
case "$KODI_MYSQL_SUPPORT" in
case "$KODI_MYSQL_SUPPORT" in
mysql) PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET mysql"
KODI_MYSQL="-DENABLE_MYSQLCLIENT=ON -DENABLE_MARIADBCLIENT=OFF"
;;
@ -118,74 +119,74 @@ case "$KODI_MYSQL_SUPPORT" in
KODI_MYSQL="-DENABLE_MARIADBCLIENT=ON -DENABLE_MYSQLCLIENT=OFF"
;;
*) KODI_MYSQL="-DENABLE_MYSQLCLIENT=OFF -DENABLE_MARIADBCLIENT=OFF"
esac
esac
if [ "$KODI_AIRPLAY_SUPPORT" = yes ]; then
if [ "$KODI_AIRPLAY_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libplist"
KODI_AIRPLAY="-DENABLE_PLIST=ON"
else
else
KODI_AIRPLAY="-DENABLE_PLIST=OFF"
fi
fi
if [ "$KODI_AIRTUNES_SUPPORT" = yes ]; then
if [ "$KODI_AIRTUNES_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libshairplay"
KODI_AIRTUNES="-DENABLE_AIRTUNES=ON"
else
else
KODI_AIRTUNES="-DENABLE_AIRTUNES=OFF"
fi
fi
if [ "$KODI_NFS_SUPPORT" = yes ]; then
if [ "$KODI_NFS_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libnfs"
KODI_NFS="-DENABLE_NFS=ON"
else
else
KODI_NFS="-DENABLE_NFS=OFF"
fi
fi
if [ "$KODI_SAMBA_SUPPORT" = yes ]; then
if [ "$KODI_SAMBA_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET samba"
fi
fi
if [ "$KODI_WEBSERVER_SUPPORT" = yes ]; then
if [ "$KODI_WEBSERVER_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libmicrohttpd"
fi
fi
if [ "$KODI_UPNP_SUPPORT" = yes ]; then
if [ "$KODI_UPNP_SUPPORT" = yes ]; then
KODI_UPNP="-DENABLE_UPNP=ON"
else
else
KODI_UPNP="-DENABLE_UPNP=OFF"
fi
fi
if target_has_feature neon; then
if target_has_feature neon; then
KODI_NEON="-DENABLE_NEON=ON"
else
else
KODI_NEON="-DENABLE_NEON=OFF"
fi
fi
if [ "$VDPAU_SUPPORT" = "yes" -a "$DISPLAYSERVER" = "x11" ]; then
if [ "$VDPAU_SUPPORT" = "yes" -a "$DISPLAYSERVER" = "x11" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libvdpau"
KODI_VDPAU="-DENABLE_VDPAU=ON"
else
else
KODI_VDPAU="-DENABLE_VDPAU=OFF"
fi
fi
if [ "$VAAPI_SUPPORT" = yes ]; then
if [ "$VAAPI_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libva"
KODI_VAAPI="-DENABLE_VAAPI=ON"
else
else
KODI_VAAPI="-DENABLE_VAAPI=OFF"
fi
fi
if [ "$TARGET_ARCH" = "x86_64" ]; then
if [ "$TARGET_ARCH" = "x86_64" ]; then
KODI_ARCH="-DWITH_CPU=$TARGET_ARCH"
else
else
KODI_ARCH="-DWITH_ARCH=$TARGET_ARCH"
fi
fi
if [ "$DEVICE" = "Slice" -o "$DEVICE" = "Slice3" ]; then
if [ "$DEVICE" = "Slice" -o "$DEVICE" = "Slice3" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET led_tools"
fi
fi
if [ ! "$KODIPLAYER_DRIVER" = default ]; then
if [ ! "$KODIPLAYER_DRIVER" = default ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $KODIPLAYER_DRIVER libinput libxkbcommon"
if [ "$KODIPLAYER_DRIVER" = bcm2835-driver ]; then
KODI_PLAYER="-DCORE_PLATFORM_NAME=rbpi"
@ -196,13 +197,13 @@ if [ ! "$KODIPLAYER_DRIVER" = default ]; then
elif [ "$KODIPLAYER_DRIVER" = libamcodec ]; then
KODI_PLAYER="-DCORE_PLATFORM_NAME=aml"
fi
fi
fi
KODI_LIBDVD="$KODI_DVDCSS \
KODI_LIBDVD="$KODI_DVDCSS \
-DLIBDVDNAV_URL=$SOURCES/libdvdnav/libdvdnav-$(get_pkg_version libdvdnav).tar.gz \
-DLIBDVDREAD_URL=$SOURCES/libdvdread/libdvdread-$(get_pkg_version libdvdread).tar.gz"
PKG_CMAKE_OPTS_TARGET="-DNATIVEPREFIX=$TOOLCHAIN \
PKG_CMAKE_OPTS_TARGET="-DNATIVEPREFIX=$TOOLCHAIN \
-DWITH_TEXTUREPACKER=$TOOLCHAIN/bin/TexturePacker \
-DWITH_JSONSCHEMABUILDER=$TOOLCHAIN/bin/JsonSchemaBuilder \
-DDEPENDS_PATH=$PKG_BUILD/depends \
@ -241,6 +242,7 @@ PKG_CMAKE_OPTS_TARGET="-DNATIVEPREFIX=$TOOLCHAIN \
$KODI_OPTICAL \
$KODI_BLURAY \
$KODI_PLAYER"
}
pre_configure_target() {
export LIBS="$LIBS -lncurses"

View File

@ -13,22 +13,23 @@ PKG_NEED_UNPACK="$(get_pkg_directory heimdal) $(get_pkg_directory e2fsprogs)"
PKG_LONGDESC="A free SMB / CIFS fileserver and client."
PKG_BUILD_FLAGS="-gold"
PKG_MAKE_OPTS_TARGET="V=1"
configure_package() {
PKG_MAKE_OPTS_TARGET="V=1"
if [ "$AVAHI_DAEMON" = yes ]; then
if [ "$AVAHI_DAEMON" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET avahi"
SMB_AVAHI="--enable-avahi"
else
else
SMB_AVAHI="--disable-avahi"
fi
fi
if [ "$TARGET_ARCH" = x86_64 ]; then
if [ "$TARGET_ARCH" = x86_64 ]; then
SMB_AESNI="--accel-aes=intelaesni"
else
else
SMB_AESNI="--accel-aes=none"
fi
fi
PKG_CONFIGURE_OPTS="--prefix=/usr \
PKG_CONFIGURE_OPTS="--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
--with-lockdir=/var/lock \
@ -82,9 +83,10 @@ PKG_CONFIGURE_OPTS="--prefix=/usr \
--without-ldb-lmdb \
--nopyc --nopyo"
PKG_SAMBA_TARGET="smbclient,client/smbclient,smbtree,testparm"
PKG_SAMBA_TARGET="smbclient,client/smbclient,smbtree,testparm"
[ "$SAMBA_SERVER" = "yes" ] && PKG_SAMBA_TARGET+=",smbd/smbd,nmbd,smbpasswd"
[ "$SAMBA_SERVER" = "yes" ] && PKG_SAMBA_TARGET+=",smbd/smbd,nmbd,smbpasswd"
}
pre_configure_target() {
# samba uses its own build directory