~ubuntu-branches/ubuntu/oneiric/oss4/oneiric-proposed

« back to all changes in this revision

Viewing changes to setup/BeOS/build.sh

  • Committer: Bazaar Package Importer
  • Author(s): Stefano Rivera
  • Date: 2011-06-16 20:37:48 UTC
  • mfrom: (5.1.3 sid)
  • Revision ID: james.westby@ubuntu.com-20110616203748-jbrxik6ql33z54co
Tags: 4.2-build2004-1ubuntu1
* Merge from Debian unstable.
  - Supports our current kernel (LP: #746048)
  Remaining changes:
  - debian/oss4-dkms.dkms.in: s/source/build/ in Kernel headers paths.
* ld-as-needed.patch: Re-order CC arguments to enable building with ld
  --as-needed (LP: #770972)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
 
 
3
. ./.directories
 
4
 
 
5
#BEOS_SYSTEM=beos/system
 
6
# to install as user addons
 
7
BEOS_SYSTEM=home/config
 
8
 
 
9
DRVPREFIX=oss_
 
10
 
 
11
rm -rf prototype
 
12
 
 
13
mkdir prototype
 
14
#mkdir prototype/etc
 
15
#echo "OSSLIBDIR=$OSSLIBDIR" > prototype/etc/oss.conf
 
16
 
 
17
TXT2MAN=$SRCDIR/setup/txt2man
 
18
 
 
19
if gawk '' 2>/dev/null
 
20
then
 
21
  # No gawk installed. Use the simple txt2man program instead of
 
22
  # the fully featured shell script which depends on gawk.
 
23
 
 
24
  rm -f txt2man
 
25
  
 
26
  cc -o txt2man $SRCDIR/setup/txt2man.c
 
27
  
 
28
  if test -f txt2man
 
29
  then
 
30
    TXT2MAN=./txt2man
 
31
  fi
 
32
fi
 
33
 
 
34
mkdir -p prototype/$BEOS_SYSTEM/add-ons/media
 
35
mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/media
 
36
#hack for now
 
37
#mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/media/oss
 
38
mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/bin
 
39
mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/multi
 
40
mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/oss
 
41
#hack for now
 
42
mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss
 
43
ln -s ../../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss/
 
44
ln -s ../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/
 
45
#hack: install bins for now
 
46
mkdir -p prototype/home/config/bin
 
47
mkdir -p prototype/home/config/settings/kernel/drivers
 
48
mkdir -p prototype/home/Desktop
 
49
 
 
50
#cp $SRCDIR/include/soundcard.h prototype/usr/include/sys
 
51
 
 
52
#cp .version prototype/$OSSLIBDIR/version.dat
 
53
 
 
54
#cp -R $SRCDIR/include/* prototype/$OSSLIBDIR/include/sys/
 
55
#cp $SRCDIR/kernel/framework/include/midiparser.h prototype/$OSSLIBDIR/include/
 
56
 
 
57
(cd target/bin; rm -f ossrecord; ln -s ossplay ossrecord)
 
58
cp -f target/bin/* prototype/home/config/bin
 
59
cp -f target/sbin/* prototype/home/config/bin
 
60
 
 
61
#cp -R $SRCDIR/oss/* prototype/$OSSLIBDIR
 
62
 
 
63
# generate driver_settings file from the .params on stdin.
 
64
function gensettings () {
 
65
        awk 'BEGIN { print "# Open Sound System configuration file" ; print "" }
 
66
/^int/ { split($2, option, "[=;]") }
 
67
/^ \*\// { print "#" option[1] "        " option[2] ; print "" }
 
68
/^ \* / { print "# " substr($0, 4) }'
 
69
}
 
70
 
 
71
 
 
72
# set version info and mime type on a binary
 
73
function setvermime () {
 
74
        local longver="`cat .version`"
 
75
        local shortver="${longver%% *}"
 
76
        local appver="${shortver:0:1} ${shortver:2:1} 0 b ${shortver##*[a-z]}"
 
77
        #local lic="`cat .license`"
 
78
        local copyright="`echo -n -e '\302\251'` 2007 4Front"
 
79
        setversion "$1" -app $appver -short $shortver -long "$longver $copyright"
 
80
        mimeset -f "$1"
 
81
}
 
82
 
 
83
#ld -r -o prototype/$OSSLIBDIR/modules/osscore/Driver.o target/objects/*.o $SRCDIR/setup/SCO_SV/*.o $FPSUPPORT
 
84
 
 
85
#core=prototype/$BEOS_SYSTEM/add-ons/kernel/media/oss/${DRVPREFIX}core
 
86
#must match internal module name...
 
87
core=prototype/$BEOS_SYSTEM/add-ons/kernel/media/oss
 
88
#gcc -o $drv target/objects/*.o -nostdlib /boot/develop/lib/x86/_KERNEL_ || exit 1
 
89
 
 
90
# no midi yet
 
91
rm target/modules/oss_midiloop.o
 
92
 
 
93
# try to build all in a single bin for now...
 
94
# driver_beos.o shouldn' be in, oh well...
 
95
# R5 has symbols like __ucmpdi2 but not Haiku, so use libgcc
 
96
gcc -o $core target/objects/*.o target/modules/*.o -nostdlib -lgcc /boot/develop/lib/x86/_KERNEL_ || exit 1
 
97
setvermime $core
 
98
 
 
99
# except the loader driver...
 
100
# using the same bin works in BeOS but not in Haiku.
 
101
drv=prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/bin/${DRVPREFIX}loader
 
102
gcc -o $drv target/objects/driver_beos.o -nostdlib /boot/develop/lib/x86/_KERNEL_ || exit 1
 
103
setvermime $drv
 
104
 
 
105
rm -f devlist.txt
 
106
 
 
107
# generate driver settings
 
108
settingspath=prototype/home/config/settings/kernel/drivers
 
109
gensettings < kernel/framework/ac97/.params > $settingspath/oss_core
 
110
gensettings < kernel/drv/osscore/.params >> $settingspath/oss_core
 
111
for n in target/modules/*.o
 
112
do
 
113
        N=`basename $n .o`
 
114
        test -e kernel/drv/$N/.params && gensettings < kernel/drv/$N/.params > $settingspath/$N
 
115
        echo Check devices for $N
 
116
        grep "^$N[      ]" ./devices.list >> devlist.txt
 
117
done
 
118
 
 
119
#echo "Copying media node addon, make sure it's up to date! (cd lib/opensound.media_addon && make)"
 
120
#cp ../oss-*-gpl/lib/opensound.media_addon/obj.x86/opensound.media_addon prototype/$BEOS_SYSTEM/add-ons/media/
 
121
#copyattr -d ../oss-*-gpl/lib/opensound.media_addon/OpenSound_README.txt prototype/home/Desktop/
 
122
echo "make sure the opensound media addon is installed and up to date!"
 
123
echo "(cd lib/opensound.media_addon && make)"
 
124
echo "The addon is distributed as part of Haiku (www.haiku-os.org) source"
 
125
 
 
126
#grep '^int' $SRCDIR/kernel/framework/osscore/options.c > prototype/$OSSLIBDIR/modules/osscore/Space.c
 
127
 
 
128
#sed 's/.*      //' <  devlist.txt|sort|uniq >$SRCDIR/devlists/OSR6
 
129
if test -d kernel/nonfree
 
130
then
 
131
        cp devlist.txt $SRCDIR/devlists/BeOS
 
132
fi
 
133
 
 
134
exit 0
 
135
##########
 
136
 
 
137
for n in target/modules/*.o
 
138
do
 
139
        N=`basename $n .o`
 
140
        #mkdir prototype/$OSSLIBDIR/modules/$N
 
141
        #cp target/build/$N/* prototype/$OSSLIBDIR/modules/$N
 
142
        #ld -r -o prototype/$OSSLIBDIR/modules/$N/Driver.o $n
 
143
 
 
144
        #drv=prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/bin/${DRVPREFIX}$N
 
145
        #gcc -o $drv $n -nostdlib /boot/develop/lib/x86/_KERNEL_ || exit 1
 
146
        #longver="`cat .version`"
 
147
        #shortver="${longver%% *}"
 
148
        #appver="${shortver:0:1} ${shortver:0:1} 0 b ${shortver##*[a-z]}"
 
149
        #lic="`cat .license`"
 
150
        #copyright="`echo -n -e '\302\251'` 2007 4Front"
 
151
        #setversion $drv -app $appver -short $shortver -long "$longver $copyright $lic"
 
152
        #mimeset -f $drv
 
153
 
 
154
# Now copy the man pages
 
155
#       if test -f $SRCDIR/kernel/drv/$N/$N.man
 
156
#        then
 
157
#            sed "s:CONFIGFILEPATH:$OSSLIBDIR/conf/:g" < $SRCDIR/kernel/drv/$N/$N.man > /tmp/ossman.tmp
 
158
#             $TXT2MAN -t "$N" -v "Devices" -s 7d /tmp/ossman.tmp > prototype/usr/man/man7/$N.7
 
159
#       fi
 
160
 
 
161
#        if test -f $SRCDIR/kernel/nonfree/drv/$N/$N.man
 
162
#       then
 
163
#            sed "s:CONFIGFILEPATH:$OSSLIBDIR/conf/:g" < $SRCDIR/kernel/nonfree/drv/$N/$N.man > /tmp/ossman.tmp
 
164
#            $TXT2MAN -t "$N" -v "Devices" -s 7d /tmp/ossman.tmp > prototype/usr/man/man7/$N.7
 
165
#       fi
 
166
 
 
167
done
 
168
 
 
169
#cp devlist.txt prototype/$OSSLIBDIR/etc/devices.list
 
170
 
 
171
 
 
172
 
 
173
 
 
174
 
 
175
 
 
176
 
 
177
 
 
178
 
 
179
 
 
180
 
 
181
 
 
182
 
 
183
 
 
184
# Generate Man pages for commands
 
185
#for i in target/bin/*
 
186
#do
 
187
#CMD=`basename $i`
 
188
#$TXT2MAN -t "$CMD" -v "User Commands" -s 1 cmd/$CMD/$CMD.man > prototype/usr/man/man1/$CMD.1
 
189
#echo done $CMD
 
190
#done
 
191
 
 
192
#for i in target/sbin/*
 
193
#do
 
194
#  CMD=`basename $i`
 
195
#  if test -f cmd/$CMD/$CMD.man
 
196
#  then
 
197
#       $TXT2MAN -t "$CMD" -v "System Administration Commands" -s 8 cmd/$CMD/$CMD.man > prototype/usr/man/man8/$CMD.8
 
198
#       echo done $CMD
 
199
#  fi
 
200
#done
 
201
 
 
202
#rm -f prototype/usr/man/man8/ossdetect.8
 
203
#$TXT2MAN -t "ossdetect" -v "User Commands" -s 8 os_cmd/SCO_SV/ossdetect/ossdetect.man > prototype/usr/man/man8/ossdetect.8
 
204
#echo done ossdetect
 
205
 
 
206
## Licensing stuff
 
207
#if test -f $SRCDIR/4front-private/osslic.c
 
208
#then
 
209
#       cc -o prototype/usr/sbin/osslic -Isetup -Ikernel/nonfree/include -Ikernel/framework/include -Iinclude -Ikernel/OS/SCO_SV -I$SRCDIR $SRCDIR/4front-private/osslic.c
 
210
#       strip prototype/usr/sbin/osslic
 
211
#       
 
212
#       prototype/usr/sbin/osslic -q -u -3prototype/$OSSLIBDIR/modules/osscore/Driver.o
 
213
#       
 
214
#fi
 
215
 
 
216
#if test -f 4front-private/ossupdate.c
 
217
#then
 
218
#  # ossupdate
 
219
#  cc -I. 4front-private/ossupdate.c -s -o prototype/usr/sbin/ossupdate -lsocket -lbind
 
220
#fi
 
221
 
 
222
sh $SRCDIR/setup/build_common.sh $SRCDIR $OSSLIBDIR
 
223
 
 
224
#chmod 700 prototype/usr/sbin/*
 
225
#chmod 755 prototype/usr/bin/*
 
226
 
 
227
#cp setup/SCO_SV/S89oss prototype/$OSSLIBDIR/etc
 
228
#chmod 744 prototype/$OSSLIBDIR/etc/S89oss
 
229
 
 
230
exit 0