summaryrefslogtreecommitdiff
path: root/treetap
diff options
context:
space:
mode:
Diffstat (limited to 'treetap')
-rwxr-xr-xtreetap57
1 files changed, 48 insertions, 9 deletions
diff --git a/treetap b/treetap
index 8407870..9b1902b 100755
--- a/treetap
+++ b/treetap
@@ -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