Environment setting script

で、この前の続き・・・かな。

私は"linux-research/targets" folder の下にテストしたい環境ごとに
ちょっとだけ違ったものを並べている。
んで、環境変数設定は人間が毎回手でやるとミスが起きるので
Scriptにしてある。

linux-research/
-- add-dev-env
-- targets/
-- beagle-preempt/
-- mips-landisk/
-- env-override
"linux-research/add-dev-env"と"linux-research/targets/${target_name}/env-override"の2種。 "env-override"は、必要ないtargetには入っていない。 "linux-research/add-dev-env"は以下の内容。
#!/bin/bash

#
# Fundamental directories / settings
#
export PRJROOT="/home/takino/linux-research"

#
# Choose build-target
#
echo ""
echo -e "================================="
echo -e "Welcome to takinoya build system!"
echo -e "================================="

echo -e "\nPRJROOT=${PRJROOT}"

echo -e "\nChoose build target:"
tgtlist=`echo ${PRJROOT}/targets/*`
tgtarray=(${tgtlist//${PRJROOT}\/targets\//})
select tgtname in ${tgtarray[@]}
do
        if [ 0 -lt ${REPLY} -a ${REPLY} -le ${#tgtarray[@]} ] ; then
                break
        fi
done
echo -e ""
echo -e "You choised \"${tgtname}\" ."

export BLDROOT=${PRJROOT}/targets/${tgtname}
echo -e "\tBLDROOT=${BLDROOT}\n"

#
# Tune by build-target
#
echo -e "Setting default envionments:"

export ARCH="arm"
echo -e "\tARCH=${ARCH}"

export CROSS_COMPILE="arm-none-linux-gnueabi-"
echo -e "\tCROSS_COMPILE=${CROSS_COMPILE}"

export XTOOL_ROOT="${PRJROOT}/xtools/arm-2008q3"
echo -e "\tXTOOL_ROOT=${XTOOL_ROOT}"

export XTOOL_BIN_PATH="${XTOOL_ROOT}/bin"
echo -e "\tXTOOL_BIN_PATH=${XTOOL_BIN_PATH}"

export BLD_SCRIPTS_PATH="${PRJROOT}/xtools/scripts"
echo -e "\tBLD_SCRIPTS_PATH=${BLD_SCRIPTS_PATH}"

export KERNEL_DIR="${PRJROOT}/sys.src/linux-2.6.28"
echo -e "\tKERNEL_DIR=${KERNEL_DIR}"

export KBUILD_DIR="${BLDROOT}/kernel"
echo -e "\tKBUILD_DIR=${KBUILD_DIR}"

export ROOTFS_DIR="${BLDROOT}/rootfs"
echo -e "\tROOTFS_DIR=${ROOTFS_DIR}"

export INSTALL_MOD_PATH="${ROOTFS_DIR}"
echo -e "\tINSTALL_MOD_PATH=${INSTALL_MOD_PATH}"

echo -ne "Needed override ... "
if [ -e "${BLDROOT}/env-override" ]; then
        echo -e "[Yes]"
        source "${BLDROOT}/env-override"
else
        echo -e "[No]"
fi

#
# PATH settings
#
if ! echo ${PATH} | /bin/grep -q "${XTOOL_BIN_PATH}" ; then
        export PATH=${XTOOL_BIN_PATH}:${PATH}
fi

if ! echo ${PATH} | /bin/grep -q "${BLD_SCRIPTS_PATH}" ; then
        export PATH=${BLD_SCRIPTS_PATH}:${PATH}
fi

#
# Finish
#
echo -e "\nBuild environments ware updated for ${tgtname}!\n"
見てて何か気づいた人は「組み込みlinuxシステム構築 第一版」で勉強した人ですね(w ISBN:9784873111612 (2版がでているらしいが未チェックだなぁ) "env-override"は以下
export CROSS_COMPILE="mips-linux-"
echo -e "\tCROSS_COMPILE=${CROSS_COMPILE}"

export XTOOL_ROOT="${PRJROOT}/xtools/mips-2008q3"
echo -e "\tXTOOL_ROOT=${XTOOL_ROOT}"

export XTOOL_BIN_PATH="${XTOOL_ROOT}/bin"
echo -e "\tXTOOL_BIN_PATH=${XTOOL_BIN_PATH}"
こんな感じで。 作業開始前に
$ cd ~/linux-research
$ source add-dev-env
ってな感じで使う。