pkgname=oss-linux-free pkgver=4.0_1016 pkgrel=12 _realname=oss-v4.0-build1016-src-gpl pkgdesc="OSS/Open source driver" arch=('i686' 'x86_64') url="http://www.opensound.com/" license=('GPL2') depends=('gcc' 'make' 'gtk2' 'libtool' 'bc' 'sed') makedepends=('gawk' 'pkgconfig') conflicts=('oss-linux') provides=('oss') install=oss.install source=(rc.oss-linux-free http://www.4front-tech.com/developer/sources/stable/gpl/$_realname.tar.bz2 oss4_1016-kernel2626.diff oss4_1016-moduleinc.diff) md5sums=('f343bb70a4dbd1aabefabbea0f76e886' 'b8c3409b477387dbe87118caf46773ed' '376fce5cfd92d7793ee90d7352c1cafa' '4077a972a6b26ae960ce15cfec8aa34f') build() { rm -rf build ; mkdir build ; cd build sed -i "s|export HAVE_ALSA=1|# export HAVE_ALSA=1|g" $srcdir/$_realname/configure sed -i "s|700|755|g" $srcdir/$_realname/setup/Linux/build.sh unset CFLAGS # Thanks to majeru of the OSS forums for this patch cd $srcdir/$_realname patch -p0 -i $srcdir/oss4_1016-kernel2626.diff || return 1 # Thanks to cesium of the OSS forums for this patch patch -p1 -i $srcdir/oss4_1016-moduleinc.diff || return 1 cd $srcdir/build $srcdir/$_realname/configure || return 1 make build || return 1 cp -r prototype/{etc,usr} $pkgdir/ install -Dm755 ../rc.oss-linux-free $pkgdir/etc/rc.d/oss-linux-free if [ `uname -m` == "i686" ]; then cd setup/Linux/oss/lib gcc -m32 -shared -fPIC -O2 -Wall -Werror -lssl flashsupport.c -o libflashsupport.so || return 1 cp libflashsupport.so $pkgdir/usr/lib/oss/lib/ fi #building modules PREFIX=$startdir/pkg OSSLIBDIR=$PREFIX/usr/lib/oss cd $OSSLIBDIR/build REGPARM=REGPARM pushd $OSSLIBDIR rm -rf objects ln -s objects.regparm objects rm -rf modules ln -s modules.regparm modules popd if ! test -f $OSSLIBDIR/objects/osscore.o then echo Error: OSS core module for $REGPARM kernel are not available exit 1 fi if ! test -f $OSSLIBDIR/modules/ich.o then echo Error: OSS driver modules for $REGPARM kernel are not available exit 1 fi echo echo OSS build environment set up for $REGPARM kernels BASEKERNEL=/lib/modules/2.6.26-ARCH PKGKERNEL=$startdir/pkg$BASEKERNEL KERNELDIR=$BASEKERNEL/build cp -f ../objects/osscore.o osscore_mainline.o ln -sf ../include/sys/*.h ../include/sys/ossddk . rm -f Makefile ln -s Makefile.osscore Makefile if ! test -d $OSSLIBDIR/logs then mkdir $OSSLIBDIR/logs fi echo Building module osscore if ! make KERNELDIR=$KERNELDIR> build.list 2>&1 then echo Failed to compile OSS cat build.list exit 2 fi if ! test -d $PKGKERNEL/kernel/oss then mkdir -p $PKGKERNEL/kernel/oss fi if ! test -d $PKGKERNEL/kernel/oss then echo OSS module directory $PKGKERNEL/kernel/oss does not exist. exit 3 fi if ! ld -r osscore.ko osscore_mainline.o -o $PKGKERNEL/kernel/oss/osscore.ko then echo Linking the osscore module failed exit 5 fi #depmod -a for n in ../modules/*.o do N=`basename $n .o` echo Building module $N rm -f $N_mainline.o Makefile sed "s/MODNAME/$N/" < Makefile.tmpl > Makefile ln -s $n $N_mainline.o if ! make KERNELDIR=$KERNELDIR > build.list 2>&1 then echo Compiling module $N failed cat build.list exit 4 fi if ! ld -r $N.ko $N_mainline.o -o $PKGKERNEL/kernel/oss/$N.ko then echo Linking $N module failed exit 6 fi rm -f $N_mainline.o make clean done rm -f Makefile }