source: npl/system/bash/bash.SlackBuild.orig @ 0105685

gcc484ntopperl-5.22
Last change on this file since 0105685 was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100755
File size: 4.8 KB
Line 
1#!/bin/sh
2
3# Copyright 2005-2014  Patrick J. Volkerding, Sebeka, Minnesota, USA
4# All rights reserved.
5#
6# Redistribution and use of this script, with or without modification, is
7# permitted provided that the following conditions are met:
8#
9# 1. Redistributions of this script must retain the above copyright
10#    notice, this list of conditions and the following disclaimer.
11#
12#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
13#  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
14#  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
15#  EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
16#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
17#  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
18#  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
19#  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
20#  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
21#  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22
23# Modified 2011, 2012  by Eric Hameleers <alien at slackware.com> for ARM port.
24
25
26# Set initial variables:
27CWD=`pwd`
28if [ "$TMP" = "" ]; then
29  TMP=/tmp
30fi
31PKG=$TMP/package-bash
32
33VERSION=${VERSION:-$(echo bash-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
34BUILD=${BUILD:-1}
35
36# Automatically determine the architecture we're building on:
37MARCH=$( uname -m )
38if [ -z "$ARCH" ]; then
39  case "$MARCH" in
40    i?86)    export ARCH=i486 ;;
41    armv7hl) export ARCH=$MARCH ;;
42    arm*)    export ARCH=arm ;;
43    # Unless $ARCH is already set, use uname -m for all other archs:
44    *)       export ARCH=$MARCH ;;
45  esac
46fi
47
48if [ "$ARCH" = "i386" ]; then
49  SLKCFLAGS="-O2 -march=i386 -mcpu=i686"
50elif [ "$ARCH" = "i486" ]; then
51  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
52elif [ "$ARCH" = "s390" ]; then
53  SLKCFLAGS="-O2"
54elif [ "$ARCH" = "x86_64" ]; then
55  SLKCFLAGS="-O2 -fPIC"
56elif [ "$ARCH" = "armv7hl" ]; then
57  SLKCFLAGS="-O2 -march=armv7-a -mfpu=vfpv3-d16"
58else
59  SLKCFLAGS="-O2"
60fi
61
62case "$ARCH" in
63    arm*) TARGET=$ARCH-slackware-linux-gnueabi ;;
64    *)    TARGET=$ARCH-slackware-linux ;;
65esac
66
67if [ ! -d $TMP ]; then
68  mkdir -p $TMP # location to build the source
69fi
70rm -rf $PKG
71mkdir -p $PKG
72
73# Determine bash patchlevel:
74PATCHLEVEL="$( cd $CWD/bash-${VERSION}-patches ; /bin/ls bash4?-??? | tail -1 | cut -f 2 -d - 2> /dev/null )"
75if [ "$PATCHLEVEL" = "" ]; then
76  PATCHLEVEL=0
77fi
78
79cd $TMP
80rm -rf bash-$VERSION
81tar xvf $CWD/bash-$VERSION.tar.?z* || exit 1
82cd bash-$VERSION || exit 1
83chown -R root:root .
84find . -perm 664 | xargs chmod 644
85find . -perm 775 | xargs chmod 755
86
87if [ -d $CWD/bash-${VERSION}-patches ]; then
88  ( cd $CWD/bash-${VERSION}-patches ; cat bash4?-??? ) | patch -p0 --verbose || exit 1
89fi
90
91# End of preparations
92if echo "$*" | grep -qw -- --prep ; then
93  exit 0
94fi
95
96CFLAGS="$SLKCFLAGS" \
97./configure \
98  --prefix=/usr \
99  --mandir=/usr/man \
100  --infodir=/usr/info \
101  --build=$TARGET
102
103make -j4 || make || exit 1
104make install DESTDIR=$PKG
105mv $PKG/usr/share/doc $PKG/usr
106mkdir -p $PKG/bin
107mv $PKG/usr/bin/bash $PKG/bin/bash4.new
108# We don't include the "bashbug" script.
109rm -rf $PKG/usr/bin $PKG/usr/man/man1/bashbug.1
110
111# Strip binaries:
112( cd $PKG
113  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
114  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
115)
116
117# Compress and link manpages, if any:
118if [ -d $PKG/usr/man ]; then
119  ( cd $PKG/usr/man
120    for manpagedir in $(find . -type d -name "man*") ; do
121      ( cd $manpagedir
122        for eachpage in $( find . -type l -maxdepth 1) ; do
123          ln -s $( readlink $eachpage ).gz $eachpage.gz
124          rm $eachpage
125        done
126        gzip -9 *.?
127      )
128    done
129  )
130fi
131
132# bash.1 is already installed by "make install"
133( cd doc
134  for page in builtins.1 rbash.1 ; do
135    cat $page | gzip -9c > $PKG/usr/man/man1/$page.gz
136  done
137)
138
139# Compress info files, if any:
140if [ -d $PKG/usr/info ]; then
141  ( cd $PKG/usr/info
142    rm -f dir
143    gzip -9 *
144  )
145fi
146
147mkdir -p $PKG/usr/doc/bash-$VERSION
148cp -a AUTHORS CHANGES COMPAT COPYING INSTALL MANIFEST NEWS NOTES \
149  README Y2K doc/FAQ doc/INTRO \
150  $PKG/usr/doc/bash-$VERSION
151( cd doc ; groff -ms -Tascii article.ms > $PKG/usr/doc/bash-$VERSION/article.txt )
152
153# If there's a ChangeLog, installing at least part of the recent history
154# is useful, but don't let it get totally out of control:
155if [ -r ChangeLog ]; then
156  DOCSDIR=$(echo $PKG/usr/doc/*-$VERSION)
157  cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
158  touch -r ChangeLog $DOCSDIR/ChangeLog
159fi
160
161mkdir -p $PKG/install
162zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
163cat $CWD/slack-desc > $PKG/install/slack-desc
164
165# Build the package:
166cd $PKG
167makepkg -l y -c n $TMP/bash-$VERSION.$PATCHLEVEL-$ARCH-$BUILD.txz
168
Note: See TracBrowser for help on using the repository browser.