diff options
Diffstat (limited to 'abs/mv-core/oss-sound/PKGBUILD')
-rwxr-xr-x | abs/mv-core/oss-sound/PKGBUILD | 147 |
1 files changed, 147 insertions, 0 deletions
diff --git a/abs/mv-core/oss-sound/PKGBUILD b/abs/mv-core/oss-sound/PKGBUILD new file mode 100755 index 0000000..f9135f0 --- /dev/null +++ b/abs/mv-core/oss-sound/PKGBUILD @@ -0,0 +1,147 @@ +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 + + +} |