要编译的有libalsa, libmad, utils alsa.sh. 不多解释了,直接给脚本吧。
首先是编译环境的设置,用一个脚本env-codesoucery.sh来用它。需要的东西有CODESOUCERY编译工具(android自已的和GNU linux有点差别,要改源码,这里不用它)。glibc这与根文件系统有点类似,是gun linux的标准库,codesoucery自已也带有,但更新的慢。android NDK的包,基本没用,下了做出错时文件对比用。
#!/bin/bash
export PATH=$PATH:/media/ququ/android/other-android/arm-2014.05/bin/#这是设置CODESOUCERY的linux 工具目录。
PROJECT_BASE=$(pwd);
#PROJECT_BASE=/media/ququ/android/other-android/project/alsaplay/
REPOSITORY=$PROJECT_BASE/download
ROOTFS=$PROJECT_BASE/compiled/rootfs
#这个需要生成编译的目录结构。在当前目录下生成build, compiled, download三个目录
#comiled 下生成rootfs目录
## edit this
export SYSROOT_ANDROID="/media/ququ/android/other-android/android-ndk-r10e/platforms/android-16/arch-arm/usr"
export SYSROOT_CODESOUCERY="/media/ququ/android/other-android/arm-2014.05/arm-none-linux-gnueabi/libc"
export SYSROOT_GLIBC="/media/ququ/android/other-android/project/glibc"
##依自已解包三个工具的情况改上需三个目录变量
export CC="arm-none-linux-gnueabi-gcc"
export CXX="arm-none-linux-gnueabi-g++"
export RANLIB="arm-none-linux-gnueabi-ranlib"
export STRIP='arm-none-linux-gnueabi-strip'
export LD='arm-none-linux-gnueabi-ld'
export AR='arm-none-linux-gnueabi-ar'
export HOST="arm-none-linux-gnueabi"
export CPPFLAGS="-I${ROOTFS}/include"
export LDFLAGS="-L${ROOFTS}/lib"
这里是libalsa.sh脚本
#/bin/bash
source env-codesoucery.sh
ME=alsa-lib-1.1.6
#cd $REPOSITORY && wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.1.6.tar.bz2
cd $PROJECT_BASE/build && tar -xvf $REPOSITORY/$ME.tar.bz2 #&& cd ./$ME
cd $PROJECT_BASE/build/$ME
CC="arm-none-linux-gnueabi-gcc --sysroot=$SYSROOT_GLIBC" \
CXX="arm-none-linux-gnueabi-g++ --sysroot=$SYSROOT_GLIBC" \
CPPFLAGS="-I$ROOTFS/include -I$SYSROOT_CODESOUCERY/usr/include" \
#CPPFLAGS="-I$ROOTFS/include" \
#LDFLAGS="-L$ROOTFS/lib -L$SYSROOT_ANDROID/lib --static" \
LDFLAGS="-L$ROOTFS/lib -L$SYSROOT_GLIBC/lib --static" \
./configure \
--prefix="$ROOTFS" \
--enable-static \
--disable-shared \
--with-configdir=/usr/local/share \
--host=$HOST
make
#make install
#下面的作法是因为要生成一些.conf的文件,需要系统信息,不知为何它需要root权限。因为要生成lib这个安装还是必需的。
#实际上这些.conf配置不要的话,只是在命令或代码中把硬件的相关能数写全,写对就好。
#在目录下
#su
#export PATH=$PATH:/media/ququ/android/other-android/arm-2014.05/bin/
#make install
这里是alsa-utils.sh脚本
#/bin/bash
source env-codesoucery.sh
ME=alsa-utils-1.1.6
#cd $REPOSITORY && wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.1.6.tar.bz2
cd $PROJECT_BASE/build && tar -xvf $REPOSITORY/$ME.tar.bz2 #&& cd ./$ME
cd $PROJECT_BASE/build/$ME