diff options
Diffstat (limited to 'setup/SCO_SV/oss/build')
-rwxr-xr-x | setup/SCO_SV/oss/build/install.sh | 137 |
1 files changed, 137 insertions, 0 deletions
diff --git a/setup/SCO_SV/oss/build/install.sh b/setup/SCO_SV/oss/build/install.sh new file mode 100755 index 0000000..3239575 --- /dev/null +++ b/setup/SCO_SV/oss/build/install.sh @@ -0,0 +1,137 @@ +#!/bin/sh + +. /etc/oss.conf + +if test "$CONFDIR " = " " +then + CONFDIR=/etc/conf +fi + +# Remove the non-oss ICH driver before doing anything else +/etc/conf/bin/idinstall -R $CONFDIR -d ich > /dev/null 2>&1 + +# Unload previous modules +for n in `ls $OSSLIBDIR/modules|egrep -v "osscore|oss_imux"` +do + modadmin -U $n > /dev/null 2>&1 +done + +for MOD in osscore oss_imux +do + modadmin -U $MOD > /dev/null 2>&1 +done + +# (re)install osscore and oss_imux + +rm -f $OSSLIBDIR/modules/*/install.log + +for MOD in osscore oss_imux +do + cd $OSSLIBDIR/modules/$MOD + + if test ! -f Space.c + then + cp $OSSLIBDIR/space.inst/$MOD Space.c + fi + + rm -f install.log + + if /etc/conf/bin/idinstall -k -P oss -R $CONFDIR -M $MOD >> install.log 2>&1 + then + if /etc/conf/bin/idbuild -M $MOD >> install.log 2>&1 + then + echo OSS module $MOD installed OK + echo OSS module $MOD installed OK >> install.log + else + cat install.log + echo Building $MOD module failed + echo Building $MOD module failed >> install.log + exit 1 + fi + else + cat install.log + echo Failed to idinstall $MOD + echo Failed to idinstall $MOD >> install.log + exit 1 + fi + + (cd $OSSLIBDIR/conf && rm -f $MOD.conf && ln -sf ../modules/$MOD/Space.c $MOD.conf) + + installf oss $CONFDIR/sdevice.d/$MOD +done + + +# Only install the drivers we have a resmgr match for +OSSTMPFILE=/tmp/ossdetect.$$ +CDIR=`pwd` +cd $OSSLIBDIR/modules +/sbin/resmgr -p BRDID > $OSSTMPFILE +for file in */Drvmap +do + DRVR=`dirname $file` + grep "^|" $file | cut -d \| -f3 | while read BRDID + do + if [ -n "$BRDID" ]; then + while read RMBRDID + do + if [ "$BRDID" = "$RMBRDID" ]; then + echo "$DRVR" + fi + done < $OSSTMPFILE + fi + done +done | sort -u | while read DRVR +do + cd $OSSLIBDIR/modules/$DRVR + + if test ! -f Space.c + then + cp $OSSLIBDIR/../space.inst/$n Space.c + fi + + rm -f install.log + +# /etc/conf/bin/idinstall -R $CONFDIR -d $DRVR > /dev/null 2>&1 + + if /etc/conf/bin/idinstall -k -P oss -R $CONFDIR -M $DRVR >> install.log 2>&1 + then + if /etc/conf/bin/idbuild -M $DRVR >> install.log 2>&1 + then + echo OSS module $DRVR installed OK + echo OSS module $DRVR installed OK >> install.log + else + cat install.log + echo Building $DRVR module failed + echo Building $DRVR module failed >> install.log + exit 1 + fi + else + cat install.log + echo Failed to idinstall $DRVR + echo Failed to idinstall $DRVR >> install.log + exit 1 + fi + installf oss $CONFDIR/sdevice.d/$DRVR + + (cd $OSSLIBDIR/conf && rm -f $DRVR.conf && \ + ln -sf ../modules/$DRVR/Space.c $DRVR.conf) +done + +rm -f $OSSTMPFILE + +cd $CDIR + +if test -f /bin/dcu +then + /bin/dcu -S +else + /sbin/dcu -S +fi + +if test ! -f $OSSLIBDIR/etc/installed_drivers +then +echo "----------------------------------------------" + /usr/sbin/ossdetect -v +echo "----------------------------------------------" +fi +echo OSS modules installed OK |