summaryrefslogtreecommitdiff
path: root/setup/BeOS/build.sh
diff options
context:
space:
mode:
Diffstat (limited to 'setup/BeOS/build.sh')
-rw-r--r--setup/BeOS/build.sh230
1 files changed, 230 insertions, 0 deletions
diff --git a/setup/BeOS/build.sh b/setup/BeOS/build.sh
new file mode 100644
index 0000000..045a599
--- /dev/null
+++ b/setup/BeOS/build.sh
@@ -0,0 +1,230 @@
+#!/bin/sh
+
+. ./.directories
+
+#BEOS_SYSTEM=beos/system
+# to install as user addons
+BEOS_SYSTEM=home/config
+
+DRVPREFIX=oss_
+
+rm -rf prototype
+
+mkdir prototype
+#mkdir prototype/etc
+#echo "OSSLIBDIR=$OSSLIBDIR" > prototype/etc/oss.conf
+
+TXT2MAN=$SRCDIR/setup/txt2man
+
+if gawk '' 2>/dev/null
+then
+ # No gawk installed. Use the simple txt2man program instead of
+ # the fully featured shell script which depends on gawk.
+
+ rm -f txt2man
+
+ cc -o txt2man $SRCDIR/setup/txt2man.c
+
+ if test -f txt2man
+ then
+ TXT2MAN=./txt2man
+ fi
+fi
+
+mkdir -p prototype/$BEOS_SYSTEM/add-ons/media
+mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/media
+#hack for now
+#mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/media/oss
+mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/bin
+mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/multi
+mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/audio/oss
+#hack for now
+mkdir -p prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss
+ln -s ../../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/oss/
+ln -s ../bin/${DRVPREFIX}loader prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/dev/
+#hack: install bins for now
+mkdir -p prototype/home/config/bin
+mkdir -p prototype/home/config/settings/kernel/drivers
+mkdir -p prototype/home/Desktop
+
+#cp $SRCDIR/include/soundcard.h prototype/usr/include/sys
+
+#cp .version prototype/$OSSLIBDIR/version.dat
+
+#cp -R $SRCDIR/include/* prototype/$OSSLIBDIR/include/sys/
+#cp $SRCDIR/kernel/framework/include/midiparser.h prototype/$OSSLIBDIR/include/
+
+(cd target/bin; rm -f ossrecord; ln -s ossplay ossrecord)
+cp -f target/bin/* prototype/home/config/bin
+cp -f target/sbin/* prototype/home/config/bin
+
+#cp -R $SRCDIR/oss/* prototype/$OSSLIBDIR
+
+# generate driver_settings file from the .params on stdin.
+function gensettings () {
+ awk 'BEGIN { print "# Open Sound System configuration file" ; print "" }
+/^int/ { split($2, option, "[=;]") }
+/^ \*\// { print "#" option[1] " " option[2] ; print "" }
+/^ \* / { print "# " substr($0, 4) }'
+}
+
+
+# set version info and mime type on a binary
+function setvermime () {
+ local longver="`cat .version`"
+ local shortver="${longver%% *}"
+ local appver="${shortver:0:1} ${shortver:2:1} 0 b ${shortver##*[a-z]}"
+ #local lic="`cat .license`"
+ local copyright="`echo -n -e '\302\251'` 2007 4Front"
+ setversion "$1" -app $appver -short $shortver -long "$longver $copyright"
+ mimeset -f "$1"
+}
+
+#ld -r -o prototype/$OSSLIBDIR/modules/osscore/Driver.o target/objects/*.o $SRCDIR/setup/SCO_SV/*.o $FPSUPPORT
+
+#core=prototype/$BEOS_SYSTEM/add-ons/kernel/media/oss/${DRVPREFIX}core
+#must match internal module name...
+core=prototype/$BEOS_SYSTEM/add-ons/kernel/media/oss
+#gcc -o $drv target/objects/*.o -nostdlib /boot/develop/lib/x86/_KERNEL_ || exit 1
+
+# no midi yet
+rm target/modules/oss_midiloop.o
+
+# try to build all in a single bin for now...
+# driver_beos.o shouldn' be in, oh well...
+# R5 has symbols like __ucmpdi2 but not Haiku, so use libgcc
+gcc -o $core target/objects/*.o target/modules/*.o -nostdlib -lgcc /boot/develop/lib/x86/_KERNEL_ || exit 1
+setvermime $core
+
+# except the loader driver...
+# using the same bin works in BeOS but not in Haiku.
+drv=prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/bin/${DRVPREFIX}loader
+gcc -o $drv target/objects/driver_beos.o -nostdlib /boot/develop/lib/x86/_KERNEL_ || exit 1
+setvermime $drv
+
+rm -f devlist.txt
+
+# generate driver settings
+settingspath=prototype/home/config/settings/kernel/drivers
+gensettings < kernel/framework/ac97/.params > $settingspath/oss_core
+gensettings < kernel/drv/osscore/.params >> $settingspath/oss_core
+for n in target/modules/*.o
+do
+ N=`basename $n .o`
+ test -e kernel/drv/$N/.params && gensettings < kernel/drv/$N/.params > $settingspath/$N
+ echo Check devices for $N
+ grep "^$N[ ]" ./devices.list >> devlist.txt
+done
+
+#echo "Copying media node addon, make sure it's up to date! (cd lib/opensound.media_addon && make)"
+#cp ../oss-*-gpl/lib/opensound.media_addon/obj.x86/opensound.media_addon prototype/$BEOS_SYSTEM/add-ons/media/
+#copyattr -d ../oss-*-gpl/lib/opensound.media_addon/OpenSound_README.txt prototype/home/Desktop/
+echo "make sure the opensound media addon is installed and up to date!"
+echo "(cd lib/opensound.media_addon && make)"
+echo "The addon is distributed as part of Haiku (www.haiku-os.org) source"
+
+#grep '^int' $SRCDIR/kernel/framework/osscore/options.c > prototype/$OSSLIBDIR/modules/osscore/Space.c
+
+#sed 's/.* //' < devlist.txt|sort|uniq >$SRCDIR/devlists/OSR6
+if test -d kernel/nonfree
+then
+ cp devlist.txt $SRCDIR/devlists/BeOS
+fi
+
+exit 0
+##########
+
+for n in target/modules/*.o
+do
+ N=`basename $n .o`
+ #mkdir prototype/$OSSLIBDIR/modules/$N
+ #cp target/build/$N/* prototype/$OSSLIBDIR/modules/$N
+ #ld -r -o prototype/$OSSLIBDIR/modules/$N/Driver.o $n
+
+ #drv=prototype/$BEOS_SYSTEM/add-ons/kernel/drivers/bin/${DRVPREFIX}$N
+ #gcc -o $drv $n -nostdlib /boot/develop/lib/x86/_KERNEL_ || exit 1
+ #longver="`cat .version`"
+ #shortver="${longver%% *}"
+ #appver="${shortver:0:1} ${shortver:0:1} 0 b ${shortver##*[a-z]}"
+ #lic="`cat .license`"
+ #copyright="`echo -n -e '\302\251'` 2007 4Front"
+ #setversion $drv -app $appver -short $shortver -long "$longver $copyright $lic"
+ #mimeset -f $drv
+
+# Now copy the man pages
+# if test -f $SRCDIR/kernel/drv/$N/$N.man
+# then
+# sed "s:CONFIGFILEPATH:$OSSLIBDIR/conf/:g" < $SRCDIR/kernel/drv/$N/$N.man > /tmp/ossman.tmp
+# $TXT2MAN -t "$N" -v "Devices" -s 7d /tmp/ossman.tmp > prototype/usr/man/man7/$N.7
+# fi
+
+# if test -f $SRCDIR/kernel/nonfree/drv/$N/$N.man
+# then
+# sed "s:CONFIGFILEPATH:$OSSLIBDIR/conf/:g" < $SRCDIR/kernel/nonfree/drv/$N/$N.man > /tmp/ossman.tmp
+# $TXT2MAN -t "$N" -v "Devices" -s 7d /tmp/ossman.tmp > prototype/usr/man/man7/$N.7
+# fi
+
+done
+
+#cp devlist.txt prototype/$OSSLIBDIR/etc/devices.list
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Generate Man pages for commands
+#for i in target/bin/*
+#do
+#CMD=`basename $i`
+#$TXT2MAN -t "$CMD" -v "User Commands" -s 1 cmd/$CMD/$CMD.man > prototype/usr/man/man1/$CMD.1
+#echo done $CMD
+#done
+
+#for i in target/sbin/*
+#do
+# CMD=`basename $i`
+# if test -f cmd/$CMD/$CMD.man
+# then
+# $TXT2MAN -t "$CMD" -v "System Administration Commands" -s 8 cmd/$CMD/$CMD.man > prototype/usr/man/man8/$CMD.8
+# echo done $CMD
+# fi
+#done
+
+#rm -f prototype/usr/man/man8/ossdetect.8
+#$TXT2MAN -t "ossdetect" -v "User Commands" -s 8 os_cmd/SCO_SV/ossdetect/ossdetect.man > prototype/usr/man/man8/ossdetect.8
+#echo done ossdetect
+
+## Licensing stuff
+#if test -f $SRCDIR/4front-private/osslic.c
+#then
+# 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
+# strip prototype/usr/sbin/osslic
+#
+# prototype/usr/sbin/osslic -q -u -3prototype/$OSSLIBDIR/modules/osscore/Driver.o
+#
+#fi
+
+#if test -f 4front-private/ossupdate.c
+#then
+# # ossupdate
+# cc -I. 4front-private/ossupdate.c -s -o prototype/usr/sbin/ossupdate -lsocket -lbind
+#fi
+
+sh $SRCDIR/setup/build_common.sh $SRCDIR $OSSLIBDIR
+
+#chmod 700 prototype/usr/sbin/*
+#chmod 755 prototype/usr/bin/*
+
+#cp setup/SCO_SV/S89oss prototype/$OSSLIBDIR/etc
+#chmod 744 prototype/$OSSLIBDIR/etc/S89oss
+
+exit 0