diff options
Diffstat (limited to 'treetap')
| -rwxr-xr-x | treetap | 57 |
1 files changed, 48 insertions, 9 deletions
@@ -18,6 +18,15 @@ # Changelog # ############# +# November 24, 2025 (1.3.0) +# + Added TT_DATADIR [ahill] +# + Added TT_MESON_COMMON for easy Meson integration [ahill] +# + Added TT_RUNDIR [ahill] +# + Added TT_STATEDIR [ahill] +# * Fixed a bug where applying TT_AUTOCONF_COMMON with some versions of autoconf +# cause it to think we're cross-compiling when we're not. [ahill] +# * Switched from GNU cpio to bsdcpio to function on Maple Linux [ahill] + # November 22, 2025 (1.2.0) # + Added support for the CCACHE environment variable [ahill] # + Added TT_ARCH [ahill] @@ -82,6 +91,8 @@ # [scope: source] # TT_CONFDIR - The desired path for configuration files # [scope: source] [default: /etc] +# TT_DATADIR - The desired path for data files +# [scope: source] [default: /usr/share] # TT_DIR - The path to the treetap directory # [scope: global] # TT_INCLUDEDIR - The desired path for header files @@ -90,6 +101,8 @@ # [scope: source] # TT_LIBDIR - The desired path for libraries # [scope: source] [default: /lib] +# TT_MESON_COMMON - The default meson arguments based on the environment +# [scope: source] # TT_MICROARCH - The microarchitecture to optimize for # [scope: source] # TT_PKGDIR - The path to the package directory @@ -98,6 +111,10 @@ # [scope: source] [default: /] # TT_PROCS - The number of processors on the build system # [scope: source] +# TT_RUNDIR - The desired path for temporary runtime information +# [scope: source] [default: /run] +# TT_STATEDIR - The desired path for persistent runtime information +# [scope: source] [default: /var] # TT_SYSROOT - The sysroot of the target system # [scope: global] # TT_TARGET - The target triple of the target system @@ -112,7 +129,7 @@ [ -z "$TT_DIR" ] && TT_DIR="$(pwd)/.treetap" [ -z "$TT_PKGDIR" ] && TT_PKGDIR="$TT_DIR/packages" [ -z "$TT_SYSROOT" ] && TT_SYSROOT=/ -TT_VERSION="1.2.0" +TT_VERSION="1.3.0" ##################### # Utility Functions # @@ -171,10 +188,13 @@ source_spec() { TT_BUILD=$(clang -dumpmachine) [ -z "$TT_TARGET" ] && TT_TARGET=$TT_BUILD [ -z "$TT_CONFDIR" ] && TT_CONFDIR=/etc + [ -z "$TT_DATADIR" ] && TT_DATADIR=/usr/share [ -z "$TT_INCLUDEDIR" ] && TT_INCLUDEDIR=/usr/include [ -z "$TT_LIBDIR" ] && TT_LIBDIR=/lib [ -z "$TT_PREFIX" ] && TT_PREFIX=/ [ -z "$TT_PROCS" ] && TT_PROCS=$(nproc) + [ -z "$TT_RUNDIR" ] && TT_RUNDIR=/run + [ -z "$TT_STATEDIR" ] && TT_STATEDIR=/var # Attempt to guess TT_MICROARCH if it isn't defined TT_ARCH=$(echo $TT_TARGET | cut -d"-" -f1) @@ -200,19 +220,25 @@ source_spec() { # Create convenience variables TT_AUTOCONF_COMMON=$(echo "--bindir=$TT_BINDIR \ --build=$TT_BUILD \ - --datarootdir=/usr/share \ - --host=$TT_TARGET \ + --datarootdir=$TT_DATADIR \ --includedir=$TT_INCLUDEDIR \ --libdir=$TT_LIBDIR \ --libexecdir=$TT_LIBDIR \ - --localstatedir=/var \ + --localstatedir=$TT_STATEDIR \ --prefix=$TT_PREFIX \ - --runstatedir=/run \ + --runstatedir=$TT_RUNDIR \ --sbindir=$TT_BINDIR \ --sysconfdir=$TT_CONFDIR \ - --target=$TT_TARGET \ --with-sysroot=$TT_SYSROOT" | xargs) + # NOTE: Some versions of autoconf does not like having host/target set + # unless we're actually cross-compiling. + if [ ! "$TT_BUILD" = "$TT_TARGET" ]; then + TT_AUTOCONF_COMMON=$(echo "$TT_AUTOCONF_COMMON \ + --host=$TT_TARGET \ + --target=$TT_TARGET" | xargs) + fi + TT_CMAKE_COMMON=$(echo "-DCMAKE_ASM_COMPILER_TARGET=$TT_TARGET \ -DCMAKE_C_COMPILER_TARGET=$TT_TARGET \ -DCMAKE_CXX_COMPILER_TARGET=$TT_TARGET \ @@ -229,6 +255,19 @@ source_spec() { -DCMAKE_CXX_COMPILER_LAUNCHER=$CCACHE" | xargs) fi + TT_MESON_COMMON=$(echo "-Dbindir=$TT_BINDIR \ + -Ddatadir=$TT_DATADIR \ + -Dincludedir=$TT_INCLUDEDIR \ + -Dinfodir=$TT_DATADIR/info \ + -Dlibdir=$TT_LIBDIR \ + -Dlibexecdir=$TT_LIBDIR \ + -Dlocaledir=$TT_DATADIR/locale \ + -Dlocalstatedir=$TT_STATEDIR \ + -Dmandir=$TT_DATADIR/man \ + -Dprefix=$TT_PREFIX \ + -Dsbindir=$TT_BINDIR \ + -Dsysconfdir=$TT_CONFDIR" | xargs) + true } @@ -243,7 +282,7 @@ package_install() { echo "Installing $(basename $1)" PUSHD=$(pwd) cd $TT_SYSROOT - xz -cdk $PKG_FULLPATH | cpio -idmu --quiet + bsdcpio -iJ < $PKG_FULLPATH cd $PUSHD exit 0 } @@ -255,7 +294,7 @@ package_uninstall() { echo "Uninstalling $(basename $1)" PUSHD=$(pwd) cd $TT_SYSROOT - xz -cdk $PKG_FULLPATH | cpio -it --quiet | tail -n +2 | sort -r | while read path; do + bsdcpio -iJt < $PKG_FULLPATH | tail -n +2 | sort -r | while read path; do if [ -d $path ]; then rmdir --ignore-fail-on-non-empty $path else @@ -342,7 +381,7 @@ source_package() { echo "Archiving $SRC_NAME $SRC_VERSION for $TT_MICROARCH" package > package-$(date +%Y%m%d%H%M%S).log cd $TT_INSTALLDIR - find | cpio -o --quiet | xz -cz > "$TT_PKGDIR/$TT_MICROARCH/$SRC_NAME-$SRC_VERSION-$TT_MICROARCH.cpio.xz" + find | bsdcpio -Jo > "$TT_PKGDIR/$TT_MICROARCH/$SRC_NAME-$SRC_VERSION-$TT_MICROARCH.cpio.xz" rm -rf $TT_INSTALLDIR cd $PUSHD exit 0 |
