Aabuild
This is a bash shell script to build and install the latest ALSA from the Mercury (HG) repositories. The old aabuild script is left below to provide some possible clues when dealing with a kernel and jack.
#!/bin/bash
# aabuild v0.1.0 20070926 [email protected] GPL
# http://alsa.opensrc.org/aabuild
SRCDIR=$(pwd)
function fetch_all
{
rsync -avz --delete --exclude=.hg* rsync://alsa.alsa-project.org/hg alsa
}
function build_all
{
for i in driver lib plugins utils tools firmware oss; do
cd $SRCDIR/alsa/alsa-$i && ./hgcompile
done
}
function install_all
{
for i in driver lib plugins utils tools firmware oss; do
cd $SRCDIR/alsa/alsa-$i && make install
done
# cd $SRCDIR/alsa/alsa-python && ./setup.py
}
#fetch_all
#build_all
#install_all
old aabuild
A Bash shell script to build the latest 2.6 kernel along with ALSA and Jack from CVS. To use; copy everything including the "#!/bin/sh" line down to "# The End" as PLAIN TEXT, perhaps by dragging your mouse, paste into a local editor and save to a file called aabuild in /usr/src (suggestions only).
chmod +x aabuild ; aabuild
Feedback and edits are most welcome.
2005-05-01 Started working on this script again. I can't fully test this because I have a 64bit system so the realtime-patch does not work for me. If anyone tries this out please update it for others to use. Uncomment the process options at the bottom of the script to activate the various stages.
#!/bin/sh
#
# aabuild v2.6.12-rc2 2005-04-12 [email protected]
#
# A bash shell script to build a 2.6 linux kernel with the latest ALSA
# drivers, library and tools from the official ALSA CVS repository. It
# depends on lynx, wget, lilo/grub, cvs, patch, make and of course gcc.
#
# Copyright : Mark Constable <[email protected]>
# License : http://www.gnu.org/licenses/gpl.html
# Homepage : http://alsa.opensrc.org/index.php?page=aabuild
#set -e # uncomment to exit script on any errors
#set -x # uncomment to show a trace of execution
SRCDIR=/usr/src
CVSDIR=/usr/src/cvs
# Please select your local mirror from http://www.kernel.org/mirrors/
KVERSION=2.6.12-rc2
KERNEL=http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.11.tar.bz2
RC_PATCH=http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.12-rc2.bz2
RT_PATCH=http://people.redhat.com/mingo/realtime-preempt/realtime-preempt-2.6.12-rc2-RT-V0.7.45-01
SQUASHFS=http://optusnet.dl.sourceforge.net/sourceforge/squashfs/squashfs2.1-r2.tar.gz
[ -d $SRCDIR/alsa ] || mkdir -p $SRCDIR/alsa
[ -d $SRCDIR/jack ] || mkdir -p $SRCDIR/jack
[ -d $CVSDIR/alsa ] || mkdir -p $CVSDIR/alsa
[ -d $CVSDIR/jack ] || mkdir -p $CVSDIR/jack
# ---- setup ------------------------------------------------------------
setup_kernel()
{
cd $SRCDIR
if [ ! -f $(basename $KERNEL) ]; then
wget $KERNEL
fi
[ -f linux/.config ] && cp linux/.config aabuild-config
rm -f linux
rm -rf $(basename $KERNEL|sed 's/.tar.bz2//')
tar xjf $(basename $KERNEL)
ln -s $(basename $KERNEL|sed 's/.tar.bz2//') linux
[ -f aabuild-config ] && cp aabuild-config linux/.config
}
setup_rcpatch()
{
cd $SRCDIR
if [ "x$RC_PATCH" != "x" ]; then
if [ ! -f $(basename $RC_PATCH) ]; then
wget $RC_PATCH
fi
cd linux
cat ../$(basename $RC_PATCH) | bunzip2 | patch -p1
fi
}
setup_rtpatch()
{
cd $SRCDIR
if [ "x$RT_PATCH" != "x" ]; then
if [ ! -f $(basename $RT_PATCH) ]; then
wget $RT_PATCH
fi
cd linux
cat ../$(basename $RT_PATCH) | patch -p1
fi
}
setup_alsa()
{
cd $CVSDIR/alsa
if [ ! -d ./CVS ]; then
echo "Just hit the enter key at the login prompt"
cvs -d ':pserver:[email protected]:/cvsroot/alsa' login
cvs -z3 -d ':pserver:[email protected]:/cvsroot/alsa' co -P .
else
[ "x$(find -type d -name CVS -cmin -720)" = "x" ] && cvs up -P -d
fi
cd $SRCDIR
rm -rf alsa/*
cp -a $CVSDIR/alsa/* alsa
}
setup_jack()
{
cd $CVSDIR/jack
if [ ! -d ./CVS ]; then
echo "Just hit the enter key at the login prompt"
cvs -d ':pserver:[email protected]:/cvsroot/jackit' login
cvs -z3 -d ':pserver:[email protected]:/cvsroot/jackit' co -P .
else
[ "x$(find -type d -name CVS -cmin -720)" = "x" ] && cvs up -P -d
fi
cd $SRCDIR
rm -rf jack/*
cp -a $CVSDIR/jack/* jack
}
setup_squashfs()
{
cd $SRCDIR
if [ "x$SQUASHFS" != "x" ]; then
if [ ! -f $(basename $SQUASHFS) ]; then
wget $SQUASHFS
fi
tar xzf $(basename $SQUASHFS)
cd linux
cat ../$(basename $SQUASHFS|sed 's/.tar.gz//')/linux-2.6.9/squashfs2.1-patch | patch -p1
fi
}
# ---- build ------------------------------------------------------------
build_kernel()
{
cd $SRCDIR/linux
if [ -f .config ]; then
make oldconfig
else
make xconfig # or menuconfig
fi
make
}
build_alsa()
{
cd $SRCDIR/alsa
make
for i in alsa-tools alsa-plugins alsa-oss alsa-firmware; do
cd $SRCDIR/alsa/$i
./cvscompile
done
}
build_jack()
{
cd $SRCDIR/jack/jack
./autogen.sh
./configure
make
}
build_squashfs()
{
cd $SRCDIR/$(basename $SQUASHFS|sed 's/.tar.gz//')/squashfs-tools
make
}
# ---- install ----------------------------------------------------------
install_kernel()
{
cd $SRCDIR/linux
make install modules_install
mkinitrd /boot/initrd-$KVERSION $KVERSION # if using modules to boot
}
install_alsa()
{
# cd $SRCDIR/alsa
}
install_jack()
{
cd $SRCDIR/jack/jack
make install
}
install_squashfs()
{
cd $SRCDIR/$(basename $SQUASHFS)/squashfs-tools
make install
}
make_tarball()
{
cd $SRCDIR
[ -f kernel-$KVERSION.tar.bz2 ] && rm kernel-$KVERSION.tar.bz2
tar cjpf kernel-$KVERSION.tar.bz2 \
/boot/initrd-$KVERSION /boot/initrd \
/boot/vmlinuz-$KVERSION /boot/vmlinuz \
/boot/System.map-$KVERSION /boot/System.map \
/lib/modules/$KVERSION
}
# ---- support ----------------------------------------------------------
setup_all()
{
setup_kernel
setup_rcpatch
setup_rtpatch
setup_alsa
setup_jack
setup_squashfs
}
build_all()
{
build_kernel
build_alsa
build_jack
build_squashfs
}
install_all()
{
install_kernel
install_alsa
install_jack
install_squashfs
}
# ---- process ----------------------------------------------------------
#setup_all
#build_all
#install_all
#make_tarball
# The End