#!/bin/bash # # qt4.SlackBuild # code: Vicious (michal@scxd.info); improvements: Zielony (e-pl@o2.pl) set -e # PACKAGE GENERAL INFO [EDIT] # Wymaga: gstreamer, gstreamer-plugins-base. PKGNAME=qt4 VERSION=4.4.0 BUILD=1X ARCH=i686 URL=ftp://ftp.trolltech.com/qt/source/qt-x11-opensource-src-$VERSION.tar.bz2 CWD=`pwd` TMP=/tmp/$PKGNAME PKG=$TMP/package if [ -e $TMP/$PKGNAME-$VERSION/'Makefile' ]; then cd $TMP/$PKGNAME-$VERSION make sub-src sub-tools else if [ ! -d $TMP/$PKGNAME-$VERSION ]; then rm -rf $PKG mkdir -p $PKG/install # PACKAGE DESCRIPTION [EDIT] cat << 'SLACKDESC' | fmt -w $(( 80 - `echo $PKGNAME | wc -c` - 3 )) | perl -pe "s/^/$PKGNAME: /" > $PKG/install/slack-desc Qt4 (C++ GUI toolkit) Qt is high-performance, cross-platform application development. It includes a C++ class library and tools for cross-platform development and internationalization. Package prepared by Zielony (e-pl@o2.pl) SLACKDESC cd $TMP # step 1: DOWNLOAD SOURCE case "${URL//*\/}" in *.tar.bz2) EXTENSION="tar.bz2"; DECOMPRESS="tar jxvf" ;; *.tar.gz) EXTENSION="tar.gz"; DECOMPRESS="tar zxvf" ;; *.zip) EXTENSION="zip"; DECOMPRESS="unzip" ;; esac PKGFNAME="$PKGNAME-$VERSION.$EXTENSION" ( wget -c $URL -P $TMP -O $PKGFNAME ) # step 2: UNPACK SOURCE AND PREPARE PACKAGE $DECOMPRESS $PKGFNAME DIRNAME=`tar tf $PKGFNAME | head -1` echo $DIRNAME | grep '/' && DIRNAME=${DIRNAME%${DIRNAME#*/}} if [ "$DIRNAME" != "$PKGNAME-$VERSION/" ]; then mv $DIRNAME $PKGNAME-$VERSION; fi chown root:root $TMP -R fi cd $TMP/$PKGNAME-$VERSION case "$ARCH" in "i686") SLKCFLAGS="-O2 -march=i686 -mtune=i686" ;; "i486") SLKCFLAGS="-O2 -march=i486 -mtune=i686" ;; "i386") SLKCFLAGS="-O2 -march=i386 -mcpu=i686" ;; "s390") SLKCFLAGS="-O2" ;; "x86_64") SLKCFLAGS="-O2" ;; *) SLKCFLAGS="-O2" ;; esac if [ -s 'configure' ]; then CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" ./configure \ -prefix /usr/lib/qt-$VERSION \ -release \ -system-zlib \ -system-libpng \ -system-libmng \ -system-libjpeg \ -optimized-qmake \ -qt-gif \ -stl \ -no-g++-exceptions \ -plugin-sql-mysql \ -qdbus \ -nomake examples \ -nomake demos \ -confirm-license fi make sub-src sub-tools fi make install INSTALL_ROOT=$TMP/package mkdir -p $PKG/usr/lib/pkgconfig $PKG/usr/doc/$PKGNAME-$VERSION for i in $PKG/usr/lib/qt-$VERSION/lib/pkgconfig/*; do ln -sf ../qt-$VERSION/lib/pkgconfig/`basename $i` $PKG/usr/lib/pkgconfig/ done for i in $PKG/usr/lib/qt-$VERSION/lib/*.so.4; do ln -sf qt-$VERSION/lib/`basename $i` $PKG/usr/lib done cp -af GPL_*.TXT LICENSE* OPENSOURCE*.TXT README $TMP/package/usr/doc/$PKGNAME-$VERSION rm -rf $PKG/usr/lib/qt-$VERSION/doc find $PKG/usr/lib/qt-$VERSION/lib -name '*.debug' -exec rm -rf \{} \; # step 3: STRIP BINARIES & GZIP MANUALS cd $PKG ( find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : \ | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : \ | xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "current ar archive" | grep ELF | cut -f 1 -d : \ | xargs strip --strip-debug 2> /dev/null ) find $PKG/usr -regex '.+/man/\(.+?/\)?man./.+' -exec gzip -9 \{} \; # step 4: CREATE PACKAGE & CLEAN TMP if [ `find . | wc -l` -le 1 ]; then echo "Brak plików pakietu!" else ( requiredbuilder -y -s $PKG/install $PKG ) makepkg -l y -c n $CWD/$PKGNAME-$VERSION-$ARCH-$BUILD.tgz if [ "$1" != "-nc" ]; then rm -rf $TMP; fi fi