- 积分
- 368
贡献137
飞刀6 FD
注册时间2010-5-27
在线时间304 小时
|
发表于 2012-6-25 17:14:17
|
显示全部楼层
给你一个我写的,用来下载,交叉编译libmad,mplayer的脚本。关于我们,请参考:
http://mcuos.com/thread-7178-1-1.html
[guowenxue@centos6 systools]$ cat mplayer/build.sh
#!/bin/sh
#+--------------------------------------------------------------------------------------------
#|Description: This shell script used to download file source code and cross compile it.
#| Author: GuoWenxue <武汉凌云嵌入式大学生学习辅导 guowenxue@gmail.com QQ:281143292>
#| ChangeLog:
#| 1, Initialize 1.0.0 on 2012.03.28
#+--------------------------------------------------------------------------------------------
PRJ_PATH=`pwd`
if [ -z "$INST_PATH" ] ; then
INST_PATH=${PRJ_PATH}/install
fi
if [ ! -d $INST_PATH ] ; then
mkdir -p $INST_PATH
fi
ARCH=arm920t
if [ -z "$ARCH" -a $# -gt 0 ] ; then
ARCH=$1
fi
sup_arch=("" "arm926t" "arm920t" )
function select_arch()
{
echo "Current support ARCH: "
i=1
len=${#sup_arch}
while [ $i -lt $len ]; do
echo "$i: ${sup_arch[$i]}"
let i++;
done
echo "Please select: "
index=
read index
ARCH=${sup_arch[$index]}
}
function decompress_packet()
(
echo "+---------------------------------------------+"
echo "| Decompress $1 now"
echo "+---------------------------------------------+"
ftype=`file "$1"`
case "$ftype" in
"$1: Zip archive"*)
unzip "$1" ;;
"$1: gzip compressed"*)
if [ 0 != `expr "$1" : ".*.tar.*" ` ] ; then
tar -xzf $1
else
gzip -d "$1"
fi ;;
"$1: bzip2 compressed"*)
if [ 0 != `expr "$1" : ".*.tar.*" ` ] ; then
tar -xjf $1
else
bunzip2 "$1"
fi ;;
"$1: POSIX tar archive"*)
tar -xf "$1" ;;
*)
echo "$1 is unknow compress format";;
esac
)
if [ -z "$CROSS" ] ; then
if [ -z $ARCH ] ; then
select_arch
fi
CROSS="/opt/buildroot-2011.11/${ARCH}/usr/bin/arm-linux-"
fi
CROSS_PATH=`dirname $CROSS`
export PATH=${CROSS_PATH}:$PATH
export CC=${CROSS}gcc
export CXX=${CROSS}g++
export AR=${CROSS}ar
export AS=${CROSS}as
export LD=${CROSS}ld
export NM=${CROSS}nm
export RANLIB=${CROSS}ranlib
export STRIP=${CROSS}strip
LIBMAD_NAME=libmad-0.15.1b
LIBMAD_DL_ADDR=ftp://ftp.mars.org/pub/mpeg/$LIBMAD_NAME.tar.gz
if [ ! -d ${INST_PATH}/libmad/include ]; then
echo "+------------------------------------------------------------------+"
echo "| Build libmad(MPEG Audio Decoder) for $ARCH "
echo "| Crosstool: $CROSS"
echo "+------------------------------------------------------------------+"
if [ ! -s $LIBMAD_NAME.tar.gz ] ; then
wget $LIBMAD_DL_ADDR
fi
decompress_packet $LIBMAD_NAME.tar.gz
cd $LIBMAD_NAME
./configure --enable-fpm=arm --host=arm-linux --disable-shared \
--disable-debugging --prefix=$INST_PATH/libmad CC=${CC}
#Modify the Makefile to fix the cross compiler bug
sed -i -e 's/-fforce-mem//' Makefile
make && make install
cd -
fi
MADID3_NAME=libid3tag-0.15.1b
MADID3_DL_ADDR=ftp://ftp.mars.org/pub/mpeg/$MADID3_NAME.tar.gz
if [ ! -d ${INST_PATH}/madid3 ]; then
echo "+------------------------------------------------------------------+"
echo "| Build madid3(MPEG Audio Decoder) for $ARCH "
echo "| Crosstool: $CROSS"
echo "+------------------------------------------------------------------+"
if [ ! -s $MADID3_NAME.tar.gz ] ; then
wget $MADID3_DL_ADDR
fi
decompress_packet $MADID3_NAME.tar.gz
cd $MADID3_NAME
./configure --host=arm-linux --prefix=$INST_PATH/madid3 --disable-shared --disable-debugging \
CFLAGS=-I${INST_PATH}/libmad/include LDFLAGS=-L${INST_PATH}/libmad/lib CC=${CC}
#Modify the Makefile to fix the cross compiler bug
sed -i -e 's/-fforce-mem//' Makefile
make && make install
cd -
fi
MADPLAY_NAME=madplay-0.15.2b
MADPLAY_DL_ADDR=ftp://ftp.mars.org/pub/mpeg/$MADPLAY_NAME.tar.gz
if [ ! -d ${INST_PATH}/madplay ]; then
echo "+------------------------------------------------------------------+"
echo "| Build madplay(MPEG Audio Decoder Player) for $ARCH "
echo "| Crosstool: $CROSS"
echo "+------------------------------------------------------------------+"
if [ ! -s $MADPLAY_NAME.tar.gz ] ; then
wget $MADPLAY_DL_ADDR
fi
decompress_packet $MADPLAY_NAME.tar.gz
cd $MADPLAY_NAME
./configure --host=arm-linux --prefix=$INST_PATH/madplay --disable-shared --disable-debugging \
CFLAGS="-I${INST_PATH}/libmad/include -I${INST_PATH}/madid3/include " \
LDFLAGS="-L${INST_PATH}/libmad/lib -L${INST_PATH}/madid3/lib" CC=${CC}
#Modify the Makefile to fix the cross compiler bug
sed -i -e 's/-fforce-mem//' Makefile
make && make install
cd -
fi
APP_NAME="MPlayer-1.0rc3"
PACK_SUFIX="tar.bz2"
DL_ADDR="http://www.mplayerhq.hu/MPlayer/releases/MPlayer-1.0rc3.tar.bz2"
echo "+------------------------------------------------------------------+"
echo "| Build $APP_NAME for $ARCH "
echo "| Crosstool: $CROSS"
echo "+------------------------------------------------------------------+"
# Download source code packet
if [ ! -s $APP_NAME.$PACK_SUFIX ] ; then
echo "+------------------------------------------------------------------+"
echo "| Download $APP_NAME.$PACK_SUFIX now "
echo "+------------------------------------------------------------------+"
wget $DL_ADDR
fi
# Decompress source code packet
if [ -d $APP_NAME ] ; then
rm -rf $APP_NAME
fi
decompress_packet $APP_NAME.$PACK_SUFIX
cd $APP_NAME
#Modify the source code to fix the build bug
FILE=libmpeg2/motion_comp_arm_s.S
line=`sed -n '/.text/=' $FILE`
line=`expr $line - 1`
sed -i -e `expr $line`a"#ifndef HAVE_PLD" $FILE
sed -i -e `expr $line + 1`a" .macro pld reg" $FILE
sed -i -e `expr $line + 2`a" .endm" $FILE
sed -i -e `expr $line + 3`a"#endif" $FILE
./configure --prefix=$INST_PATH/mplayer --cc=arm-linux-gcc --ar=arm-linux-ar \
--ranlib=arm-linux-ranlib --disable-gui \
--target=arm-armv4-linux --host-cc=gcc --disable-freetype\
--enable-fbdev --disable-mencoder --disable-sdl --disable-live --disable-dvdread \
--disable-libdvdcss-internal --disable-x11 --enable-cross-compile --disable-mp3lib \
--enable-ass \
--disable-dvdnav --disable-dvdread-internal --disable-jpeg --disable-tga \
--disable-dvbhead --disable-pnm --disable-tv --disable-ivtv \
--disable-fontconfig --disable-xanim --disable-win32dll --disable-armv5te --disable-armv6
make && make install
cd -
[guowenxue@centos6 systools]$ |
|