aboutsummaryrefslogtreecommitdiff
path: root/development/ChezScheme/ChezScheme.SlackBuild
blob: 1f2ee232762c670ad0556e36705ed02955c5be9d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/bash

# SlackBuild for ChezScheme, 7 March 2019
# awg <awg@cock.li>
# updated: Lockywolf 2025
# All rights reserved.
#
# Permission to use, copy, modify, or distribute this software for any
# purpose with or without fee is hereby granted, provided that this
# notice of copyright and permission appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
# AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
# PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.

## ChezScheme itself remains a copyrighted work.  Please see the file
## LICENSE in the ChezScheme source distribution.

cd $(dirname $0) ; CWD=$(pwd)

PRGNAM=ChezScheme
VERSION=${VERSION:-10.1}
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 the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
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}

if [ "$ARCH" = "i586" ]; then
   WSIZE="--32"
   LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
   WSIZE="--32"
   LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
   WSIZE="--64"
   LIBDIRSUFFIX="64"
else
   LIBDIRSUFFIX=""
fi

CSCOMMIT=ae19cf95228bae04f22fc326463e379bba976b48
NPCOMMIT=68990d02573faa555ee42919d5809de03f1268a0
ZLIBCOMMIT=51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
STEXCOMMIT=5e4f0ca67bac448e19a24c09f12fc16d24cd6b6d
ZUOCOMMIT=ebdc0451c39c70ce88b3b6ab9ba2b8e389ec519a
LZ4COMMIT=5ff839680134437dbf4678f3d0c7b371d84f4964

set -e

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
for SRCNAM in \
  ChezScheme-$CSCOMMIT \
  nanopass-framework-scheme-$NPCOMMIT \
  zlib-$ZLIBCOMMIT \
  stex-$STEXCOMMIT \
  zuo-$ZUOCOMMIT \
  lz4-$LZ4COMMIT \
; do
  PNAM=$(echo $SRCNAM | sed -e 's/-.*//')
  rm -rf $SRCNAM $PNAM
  tar xvf $CWD/$SRCNAM.tar.gz
  mv $SRCNAM $PNAM
done

cd $PRGNAM
mv \
  $TMP/nanopass \
  $TMP/zlib \
  $TMP/stex \
  $TMP/zuo \
  $TMP/lz4 \
  .
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} + -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} +

./configure \
  CFLAGS="-O3" \
  $WSIZE \
  --threads \
  --installprefix=/usr \
  --installlib=/usr/lib${LIBDIRSUFFIX} \
  --installman=/usr/man \
  --gzip-man-pages \
  --temproot=$PKG

make build
make install
if [ "${TEST:-no}" = "yes" ]; then
  make test
fi

mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
BUILDING         IMPLEMENTATION.md  README.md \
CHARTER.md       LICENSE            \
CONTRIBUTING.md  NOTICE             \
                 $PKG/usr/doc/$PRGNAM-$VERSION

find $(readlink -f ./) -name '*.pdf' -exec cp {} $PKG/usr/doc/$PRGNAM-$VERSION/ \;

cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$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