123 lines
3.3 KiB
Bash
123 lines
3.3 KiB
Bash
#!/bin/bash
|
|
|
|
# Slackware build script for lua-readline
|
|
|
|
# Written by B. Watson (urchlay@slackware.uk)
|
|
|
|
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
|
|
|
|
# Based on the Arch PKGBUILD:
|
|
# https://aur.archlinux.org/packages/lua-readline
|
|
|
|
# There used to be a lua-readline on SBo, maintained by abooksigun,
|
|
# based on a different (older, v2.9) source. It was removed in April
|
|
# 2024 because "upstream no longer exists". This isn't quite true:
|
|
# upstream moved the lua-readline site & repo to gitlab. abooksigun
|
|
# says (via email) that he doesn't have the time to maintain this new
|
|
# build, so I will, since I'm up to my eyebrows in lua stuff already.
|
|
|
|
# This could serve as somewhat of a template for building lua modules
|
|
# from ".rock" files (which are just zip files), though the actual
|
|
# compile command(s) will be different. There's no Makefile or similar
|
|
# inside a .rock. The .rockspec file does give you a hint, but doesn't
|
|
# contain actual compile commands.
|
|
|
|
cd $(dirname $0) ; CWD=$(pwd)
|
|
|
|
PRGNAM=lua-readline
|
|
VERSION=${VERSION:-3.3_0}
|
|
BUILD=${BUILD:-1}
|
|
TAG=${TAG:-_SBo}
|
|
PKGTYPE=${PKGTYPE:-tgz}
|
|
|
|
if [ -z "$ARCH" ]; then
|
|
case "$( uname -m )" in
|
|
i?86) ARCH=i586 ;;
|
|
arm*) ARCH=arm ;;
|
|
*) ARCH=$( uname -m ) ;;
|
|
esac
|
|
fi
|
|
|
|
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
|
|
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
|
|
exit 0
|
|
fi
|
|
|
|
TMP=${TMP:-/tmp/SBo}
|
|
PKG=$TMP/package-$PRGNAM
|
|
OUTPUT=${OUTPUT:-/tmp}
|
|
|
|
# Nonstandard flags: -fPIC is requires on all arches, not just x86_64.
|
|
SLKCFLAGS="-O2 -fPIC"
|
|
if [ "$ARCH" = "i586" ]; then
|
|
SLKCFLAGS+=" -march=i586 -mtune=i686"
|
|
elif [ "$ARCH" = "i686" ]; then
|
|
SLKCFLAGS+=" -march=i686 -mtune=i686"
|
|
fi
|
|
|
|
set -e
|
|
|
|
# You're in a maze of twisty version numbers, all alike...
|
|
SRCNAM=readline
|
|
ROCKVER=${VERSION/_/-}
|
|
ZIPFILE=$SRCNAM-$ROCKVER.src.rock
|
|
TARVER=${VERSION/_*/}
|
|
TARDIR=$SRCNAM-$TARVER
|
|
TARBALL=$TARDIR.tar.gz
|
|
|
|
rm -rf $PKG
|
|
mkdir -p $TMP $PKG $OUTPUT
|
|
cd $TMP
|
|
rm -rf $TARDIR
|
|
unzip -p $CWD/$ZIPFILE $TARBALL | tar xvfz -
|
|
cd $TARDIR
|
|
chown -R root:root .
|
|
find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \
|
|
\! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} +
|
|
|
|
# This patch is from Arch, it looks wrong to me: it sets the version
|
|
# to 3.2 in the lua source. But we're on version 3.3 of lua-readline.
|
|
# Debian doesn't include this patch at all.
|
|
patch -p1 < $CWD/fix-version.diff
|
|
|
|
# There's no Makefile, I based the compile command on the PKGBUILD.
|
|
# The -Wl,-s makes it build a stripped library.
|
|
# Compiled library gets written straight to $PKG, no copying.
|
|
# The set -x makes the shell show the commands (like make does).
|
|
runmake() {
|
|
set -x
|
|
|
|
local cmod=$PKG/$( pkg-config $1 --variable INSTALL_CMOD )
|
|
local lmod=$PKG/$( pkg-config $1 --variable INSTALL_LMOD )
|
|
local lflags=$( pkg-config $1 --cflags )
|
|
|
|
mkdir -p $cmod $lmod
|
|
|
|
${CC:-gcc} \
|
|
$SLKCFLAGS \
|
|
$lflags \
|
|
-shared \
|
|
-Wl,-s \
|
|
-o $cmod/C-readline.so \
|
|
C-readline.c \
|
|
-lreadline -lhistory
|
|
|
|
install -m0644 readline.lua $lmod
|
|
set +x
|
|
}
|
|
|
|
runmake lua
|
|
[ -x /usr/bin/lua51 ] && runmake lua51
|
|
|
|
PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
|
|
mkdir -p $PKGDOC
|
|
head -n8 readline.lua > $PKGDOC/LICENSE
|
|
cp -a doc/*.html $PKGDOC
|
|
cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild
|
|
|
|
mkdir -p $PKG/install
|
|
cat $CWD/slack-desc > $PKG/install/slack-desc
|
|
|
|
cd $PKG
|
|
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
|