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
}
|