libraries/itcl: Added. (o-o programming contructs to Tcl)

Signed-off-by: Michiel van Wessem <michiel@slackbuilds.org>
This commit is contained in:
Richard Ellis 2010-11-11 17:51:28 +00:00 committed by Heinz Wiesinger
parent 9b43e89ab9
commit 71928f9a44
4 changed files with 154 additions and 0 deletions

23
libraries/itcl/README Normal file
View File

@ -0,0 +1,23 @@
[incr Tcl] is an object system for the Tcl programming language.
[incr Tcl] provides the extra language support needed to build large Tcl/Tk
applications. It introduces the notion of objects, which act as building
blocks for an application. Each object is a bag of data with a set of
procedures or "methods" that are used to manipulate it. Objects are
organized into "classes" with identical characteristics, and classes can
inherit functionality from one another. This object-oriented paradigm adds
another level of organization on top of the basic variable/procedure
elements, and the resulting code is easier to understand and maintain.
It should follow without mentioning that this package depends upon the Tcl
packages from your Slackware 13.1 distribution disk being installed.
As well, [incr Tcl], as part of its build process, looks into the Tcl
sources for some header files. This means that in order to compile [incr
Tcl] that the Slackware Tcl source package needs to be present. You can
either download the Slackware Tcl source package from a slackware mirror
using the provided link or copy the tcl8.5.8-src.tar.xz file from your
Slackware install disk. The tcl8.5.8-src.tar.xz source file should be in
the same directory as the itcl.Slackbuild script, and the Slackbuild script
will unpack the tcl8.5.8-src.tar.xz source file automatically as part of the
[incr Tcl] build process. Once [incr Tcl] is built and installed, the Tcl

View File

@ -0,0 +1,100 @@
#!/bin/sh
# Slackware build script for itcl
# Written by Richard Ellis <rellis@dp100.com>
# Hereby dedicated to the public domain.
PRGNAM=itcl
VERSION=${VERSION:-3.4b1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
TCL=${TCL:-8.5.8}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
set -e # Exit on most errors
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION /tmp/tcl$TCL
tar xvf $CWD/$PRGNAM$VERSION.tar.gz
# Since itcl expects tcl to be in /tmp (Slackware default in set by
# /usr/lib${LIBDIRSUFFIX}/tclConfig.sh (TCL_SRC_DIR).
tar -C /tmp -xvf $CWD/tcl$TCL-src.tar.xz
# itcl unpacks from the tarball into "itcl3.4", rename it to what the rest
# of the build script expects
mv ${PRGNAM}3.4 $PRGNAM-$VERSION
cd $PRGNAM-$VERSION
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
TCL_SRC_DIR="$TMP/tc$TCL" \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--build=$ARCH-slackware-linux
make
make install DESTDIR=$PKG
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
# Add manpages that are part of the source tarball, but that upstream
# doesn't include for some reason.
mkdir -p $PKG/usr/man/man3
for manpage in $TMP/$PRGNAM-$VERSION/doc/*.3 ; do
cat $manpage > $PKG/usr/man/man3/$( basename $manpage ); done
find $PKG/usr/man -type f -exec gzip -9 {} \;
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
CHANGES ChangeLog INCOMPATIBLE README TODO license.terms \
$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:-tgz}

12
libraries/itcl/itcl.info Normal file
View File

@ -0,0 +1,12 @@
PRGNAM="itcl"
VERSION="3.4b1"
HOMEPAGE="http://incrtcl.sourceforge.net/itcl/"
DOWNLOAD="http://sourceforge.net/projects/incrtcl/files/%5BIncr%20Tcl_Tk%5D-source/3.4/itcl3.4b1.tar.gz/download \
http://slackware.osuosl.org/slackware-13.1/source/tcl/tcl/tcl8.5.8-src.tar.xz"
MD5SUM="e4c97750c08ab47e960b91911fdd0132 \
136953519e0b1dcfeb960de1f35601fb"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
MAINTAINER="Richard Ellis"
EMAIL="rellis@dp100.com"
APPROVED="Michiel van Wessem"

19
libraries/itcl/slack-desc Normal file
View File

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|' on
# the right side marks the last column you can put a character in. You must make
# exactly 11 lines for the formatting to be correct. It's also customary to
# leave one space after the ':'.
|-----handy-ruler-------------------------------------------------------|
itcl: itcl (object-oriented programming contructs to Tcl)
itcl:
itcl: [incr Tcl] provides the extra language support needed to build large
itcl: Tcl/Tk applications. It introduces the notion of objects, which act as
itcl: building blocks for an application. Each object is a bag of data with
itcl: a set of procedures or "methods" that are used to manipulate it.
itcl: Objects are organized into "classes" with identical characteristics,
itcl: and classes can inherit functionality from one another. This
itcl: object-oriented paradigm adds another level of organization on top of
itcl: the basic variable/procedure elements, and the resulting code is
itcl: easier to understand and maintain.