#!/bin/bash # # timidity++.SlackBuild # code: Vicious (michal@scxd.info); improvements: Zielony (e-pl@o2.pl) set -e # PACKAGE GENERAL INFO [EDIT] PKGNAME=timidity++ INSTRUMENTS_NAME=instruments VERSION=2.13.0 INSTRUMENTS_VERSION=0 BUILD=1X ARCH=i686 URL=http://switch.dl.sourceforge.net/sourceforge/timidity/TiMidity++-$VERSION.tar.bz2 INSTRUMENTS_URL=http://www.libsdl.org/projects/mixer/timidity/timidity.tar.gz CWD=`pwd` TMP=/tmp/$PKGNAME if [ -e $TMP/$PKGNAME-$VERSION/'Makefile' ]; then cd $TMP/$PKGNAME-$VERSION make else if [ ! -d $TMP/$PKGNAME-$VERSION ]; then rm -rf $TMP/package mkdir -p $TMP/package/install # PACKAGE DESCRIPTION [EDIT] cat << SLACKDESC | fmt -w $(( 80 - `echo $PKGNAME | wc -c` - 3 )) | perl -pe "s/^/$PKGNAME: /" > $TMP/package/install/slack-desc TiMidity++ (software MIDI) TiMidity++ is a software synthesizer. It can play MIDI files by converting them into PCM waveform data; give it a MIDI data along with digital instrument data files, then it synthesizes them in real-time, and plays. It can not only play sounds, but also can save the generated waveforms into hard disks as various audio file formats. Package prepared by Zielony (e-pl@o2.pl) SLACKDESC cd $TMP # step 1: DOWNLOAD SOURCE function download { PKGFNAME=`ls -t | grep -i $2*.t*z* | head -1` if [ -z $PKGFNAME ]; then ( wget -c $1 -P $TMP -O $2-$3.${1//*.} ) # step 2: UNPACK SOURCE AND COMPILE PKGFNAME=`ls -t | grep -i $2*.t*z* | head -1` fi EXTENSION=`echo ${PKGFNAME//*.}` if [ $EXTENSION = "bz2" ]; then tar jxvf $PKGFNAME -C $TMP else tar xvfz $PKGFNAME -C $TMP fi DIRNAME=`tar tf $PKGFNAME | head -1` echo $DIRNAME | grep '/' && DIRNAME=${DIRNAME%${DIRNAME#*/}} if [ $DIRNAME != $2-$3/ ]; then mv $DIRNAME $2-$3; fi } download $URL $PKGNAME $VERSION download $INSTRUMENTS_URL $INSTRUMENTS_NAME $INSTRUMENTS_VERSION chown root:root $TMP -R fi cd $TMP/$PKGNAME-$VERSION if [ "$ARCH" = "i686" ]; then SLKCFLAGS="-O2 -march=i686 -mtune=i686" elif [ "$ARCH" = "i486" ]; then SLKCFLAGS="-O2 -march=i486 -mtune=i686" elif [ "$ARCH" = "i386" ]; then SLKCFLAGS="-O2 -march=i386 -mcpu=i686" elif [ "$ARCH" = "s390" ]; then SLKCFLAGS="-O2" elif [ "$ARCH" = "x86_64" ]; then SLKCFLAGS="-O2" fi if [ -s 'configure' ]; then CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" ./configure \ --prefix=/usr \ --disable-debug \ --enable-dynamic=ncurses,slang,motif,emacs,xskin,tcltk,gtk,server,alsaseq \ --enable-network \ --enable-audio=alsa,jack \ --mandir=/usr/man \ --sysconfdir=/etc \ --program-prefix="" \ --program-suffix="" \ $ARCH-slackware-linux fi make fi make install DESTDIR=$TMP/package mkdir -p $TMP/package/usr/share/{timidity,pixmaps,applications} \ $TMP/package/etc/rc.d cp -Rf $TMP/$INSTRUMENTS_NAME-$INSTRUMENTS_VERSION/* $TMP/package/usr/share/timidity cp -f interface/pixmaps/timidity.xpm $TMP/package/usr/share/pixmaps cat << 'DESKTOP' > $TMP/package/usr/share/applications/timidity++.desktop [Desktop Entry] Name=TiMidity++ GenericName=Software MIDI Synthesizer GenericName[pl]=Programowy Syntezator MIDI Exec=timidity -ig Terminal=false Type=Application Icon=timidity.xpm Categories=AudioVideo; DESKTOP cat << 'RC' > $TMP/package/etc/rc.d/rc.timidity #!/bin/sh timidity_start() { if [ -x /usr/bin/timidity ]; then /usr/bin/timidity -iA -B3,9 -Os -EFresamp=l & fi } # Stop TiMidity++: timidity_stop() { killall timidity } # Restart TiMidity++: timidity_restart() { timidity_stop sleep 1 timidity_start } case "$1" in 'start') timidity_start ;; 'stop') timidity_stop ;; 'restart') timidity_restart ;; *) echo "usage $0 start|stop|restart" esac RC chmod 755 $TMP/package/etc/rc.d/rc.timidity # step 3: STRIP BINARIES & GZIP MANUALS ( cd $TMP/package 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 ) ( gzip $TMP/package/usr/man/man?/* ) # step 4: CREATE PACKAGE & CLEAN TMP cd $TMP/package if [ `ls | wc -m` -le 8 ]; then echo "Brak plików pakietu!" else ( requiredbuilder -y -s $TMP/package/install $TMP/$PKGNAME-$VERSION ) makepkg -l y -c n $CWD/$PKGNAME-$VERSION-$ARCH-$BUILD.tgz rm -rf $TMP fi