summaryrefslogtreecommitdiffstats
path: root/abs/mv-core/oss-sound/PKGBUILD
blob: f9135f014d6bcbfa32e677b317b985614a0b450b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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


}