#!/bin/sh -x # build script for oss_4.2 # built on tc-7.x 4.2.9 set -o nounset #set -o errexit . /etc/init.d/tc-functions ################################################################################################### ################################################################################################### # Downloads available #devbuild "git://git.code.sf.net/p/opensound/git" #latest? git clone git://opensound.git.sourceforge.net/gitroot/opensound/opensound opensound-git #stable build "http://www.4front-tech.com/developer/sources/stable/gpl/oss-v4.2-build2017-src-gpl.tar.bz2" srcfile="oss-v4.2-build2017-src-gpl.tar.bz2" srcadd="http://www.4front-tech.com/developer/sources/stable/gpl/$srcfile" # "gcc-5.patch" # "oss-v4.2-linux-4.0-patch" # "ossvermagic.patch" # "regparm-fix.patch" ################################################################################################### name='oss' srcpath='/tmp/osssrc' srcdir=${srcfile%%.tar*} builddir='oss_build' ver='4.2' patchOpt=" " drvopt="0" ############################################## ## load deps tceinstalled="/usr/local/tce.installed" optional_path="/etc/sysconfig/tcedir/optional" cd $optional_path tce_path=$(realpath ${PWD%/*}) deps="compiletc.tcz \ automake.tcz \ libtool-dev.tcz \ findutils.tcz \ git.tcz \ gtk2-dev.tcz \ linux-kernel-sources-env.tcz \ gawk.tcz \ glibc_base-dev.tcz \ squashfs-tools.tcz \ bzip2.tcz" for i in $deps ; do pkgname=${i%.tcz} # check if tcz installed already if [ -f ${tceinstalled}/"$pkgname" ]; then echo "${WHITE}"$i" ${GREEN}Already loaded${NORMAL}" else if [ ! -f ${tceinstalled}/"$pkgname" ]; then # tcz not installed, then install from local path if [ -f ${tce_path}/optional/"$i" ]; then while [ ! -f ${tceinstalled}/"$pkgname" ]; do tce-load -i "$pkgname" if [ "$?" == 1 ]; then echo "error loading $pkgname" echo "trying to fetch missing deps" chkconn tce-audit builddb tce-audit fetchmissing tce-load -i "$pkgname" if [ "$?" == 1 ]; then echo "error loading $pkgname" exit fi fi done if [ -f ${tceinstalled}/"$pkgname" ]; then echo "${CYAN}"$i" ${BLUE}loaded locally${NORMAL}" fi # tcz not downloaded, install from repo elif [ ! -f ${tce_path}/optional/"$i" ]; then tce-load -wil "$pkgname"; sleep 1 if [ -f ${tceinstalled}/"$pkgname" ]; then echo "${MAGENTA}"$i" ${YELLOW}downloaded from repo${NORMAL}" fi fi fi fi if [ ! -f "${tceinstalled}/$pkgname" ]; then echo "${RED}$i failed to load, exiting..${NORMAL}"; sleep 3; exit 5 fi done ############################################## #cleanup echo -e "\n\n Cleaning up previous builds, start fresh... " [ -d "$srcpath" ] && sudo rm -rvf $srcpath [ -d /tmp/"$builddir" ] && sudo rm -rvf /tmp/${builddir} #read -p "check dir removal" if [ -d /tmp/"$builddir" ]; then echo -e "\n\n Previous build directory found, discard before continuing... " sleep 10 exit 1 fi ############################################## # prep kernel sources cliorx linux-kernel-sources-env.sh ############################################## # unpack sources # sudo git clone $srcadd $srcdir cd /tmp [ -f "$srcfile" ] || exit mkdir -p ${srcpath}/${srcdir} tar -jxvf /tmp/$srcfile -C $srcpath ############################################## # Build Flags and options if [ $(uname -a | grep -c "x86_64") == 1 ]; then #for x86_64 export CFLAGS="-mtune=generic -Os -pipe" export CXXFLAGS="-mtune=generic -Os -pipe" export LDFLAGS="-Wl,-O1" export reg="--no-regparm" patchOpt="regparm-fix.patch" else #for i486+ echo -e "\n\n Export compiler flags... " export CFLAGS="-march=i486 -mtune=i686 -Os -pipe" export CXXFLAGS="-march=i486 -mtune=i686 -Os -pipe" export reg="--regparm" patchOpt="" drvOpt="1" fi ############################################## # Apply src Patches cd ${srcpath}/$srcdir if [ x"$drvOpt" == x1 ]; then cp -ar ${PWD}/attic/drv/oss_neomagic ${PWD}/kernel/drv/oss_neomagic cp -ar ${PWD}/attic/drv/oss_maestro ${PWD}/kernel/drv/oss_maestro fi pachy="$patchOpt" if [ -n "$pachy" ]; then for i in $pachy; do if [ -f /tmp/"$i" ]; then cp /tmp/$i ${srcpath}/${srcdir}/$i patch -p0 < "$i" else echo -e "${RED}$i not found in tmp directory${NORMAL}" sleep 60 exit fi done fi # read -p "Enter2continue" ############################################## # configure & make cd /tmp sudo touch NOW sleep 5 mkdir -p /tmp/$builddir cd /tmp/"$builddir" ${srcpath}/${srcdir}/configure --enable-libsalsa=NO --config-midi=YES $reg # read -p "Enter2continue" gcc -shared -fPIC oss/lib/flashsupport.c -o libflashsupport.so #sudo make build #read -p "Enter2continue" sudo make install set +x ## additional optional commands [ -d /home/tc/oss_raw ] || mkdir -p /home/tc/oss_raw sudo find /usr -newer /tmp/NOW -not -type d > /home/tc/oss_raw/oss_raw.list sudo find /etc -newer /tmp/NOW -not -type d >> /home/tc/oss_raw/oss_raw.list sudo find /lib -newer /tmp/NOW -not -type d >> /home/tc/oss_raw/oss_raw.list cd /home/tc/oss_raw sudo tar -T oss_raw.list -czvf oss_raw.tar.gz echo -e "\n Done" echo -e "\n OSS can be found in /build dir/prototype" sleep 20 exit 2