echo "Starting gen-all: $(date)"
-cgen_cpus="cris fr30 frv ip2k iq2000 lm32 m32c m32r mep mt \
+cgen_cpus="arm cris fr30 frv ip2k iq2000 lm32 m32c m32r mep mt \
openrisc sh64 xc16x xstormy16"
+sid_cpus="arm m32r mep mt sh xstormy16"
+
do_config=no
do_build=no
-do_intrinsics=no
+do_binutils=no
do_sim=no
+do_sid=no
+do_intrinsics=no
do_diffs=no
for a in "$@"
do
case $a in
config) do_config=yes ;;
build) do_build=yes ;;
- src) do_src=yes ;;
- intrinsics) do_intrinsics=yes ;;
+ binutils) do_binutils=yes ;;
sim) do_sim=yes ;;
+ sid) do_sid=yes ;;
+ intrinsics) do_intrinsics=yes ;;
diffs) do_diffs=yes ;;
all)
do_config=yes
do_build=yes
- do_src=yes
- do_intrinsics=yes
+ do_binutils=yes
do_sim=yes
+ do_sid=yes
+ do_intrinsics=yes
do_diffs=yes
;;
*) echo "Invalid option: $a" >&2 ; exit 1 ;;
src=../../../src
gcc=../../../gcc
-cpu=m32r
+build_all_target_sys="m32r-elf"
build_sys=$(sh ${src}/config.guess)
host_sys=${build_sys}
-target_sys=${cpu}-elf
-prefix=${build_dir}/rel/${cpu}
+config_src () {
+ target_sys=$1
+ prefix=$2
-if [ "${do_src}" = "yes" ]
-then
- echo "Building src $(date)"
- mkdir -p tmp-src
+ extra_config_args=""
+ if [ "${target_sys}" == "${build_all_target_sys}" ]
+ then
+ extra_config_args="${extra_config_args} --enable-targets=all"
+ fi
+
+ if [ -f Makefile ]
+ then
+ true # already configured
+ elif [ "${do_config}" = "yes" ]
+ then
+ echo "Configuring: $(date)"
+ ../${src}/configure \
+ --build=${build_sys} \
+ --host=${host_sys} \
+ --target=${target_sys} \
+ --enable-shared \
+ --enable-cgen-maint \
+ --enable-languages=c \
+ ${extra_config_args}
+ fi
+}
+
+build_binutils () {
+ target_sys=$1
+ prefix=$2
+
+ echo "Building ${target_sys} binutils, $(date)"
+ mkdir -p tmp-src-${target_sys}
(
set -e
- cd tmp-src
- if [ -f Makefile ]
+ cd tmp-src-${target_sys}
+
+ config_src ${target_sys} ${prefix}
+
+ if [ "${do_build}" = "yes" ]
then
- true # already configured
- elif [ "${do_config}" = "yes" ]
+ echo "Building: $(date)"
+ if [ ! -f Makefile ]
+ then
+ echo "Tree hasn't been configured."
+ exit 1
+ fi
+ make -j3 all-binutils all-gas all-ld
+ echo "Build done: $(date)"
+ fi
+ )
+ if [ $? != 0 ] ; then exit 1 ; fi
+}
+
+build_sim () {
+ target_sys=$1
+ prefix=$2
+
+ echo "Building ${cpu} sim, $(date)"
+ mkdir -p tmp-src-${target_sys}
+ (
+ set -e
+ cd tmp-src-${target_sys}
+
+ config_src ${target_sys} ${prefix}
+
+ if [ "${do_build}" = "yes" ]
then
- echo "Configuring: $(date)"
- ../${src}/configure \
- --build=${build_sys} \
- --host=${host_sys} \
- --target=${target_sys} \
- --enable-targets=all \
- --enable-shared \
- --enable-cgen-maint \
- --enable-languages=c
+ echo "Building: $(date)"
+ if [ ! -f Makefile ]
+ then
+ echo "Tree hasn't been configured."
+ exit 1
+ fi
+ make -j3 all-sim all-gdb
+ echo "Build done: $(date)"
fi
+ )
+ if [ $? != 0 ] ; then exit 1 ; fi
+}
+
+build_sid () {
+ target_sys=$1
+ prefix=$2
+
+ echo "Building ${cpu} sid, $(date)"
+ mkdir -p tmp-src-${target_sys}
+ (
+ set -e
+ cd tmp-src-${target_sys}
+
+ config_src ${target_sys} ${prefix}
+
if [ "${do_build}" = "yes" ]
then
echo "Building: $(date)"
echo "Tree hasn't been configured."
exit 1
fi
- make -j3 all-binutils all-gas all-ld all-gdb all-sid
# SID doesn't support --enable-cgen-maint, sigh.
+ if [ ! -f sid/component/cgen-cpu/Makefile ]
+ then
+ make -j3 configure-sid
+ fi
(cd sid/component/cgen-cpu && make cgen-all)
if [ $? != 0 ] ; then exit 1 ; fi
make -j3 all-sid
+ echo "Build done: $(date)"
fi
)
if [ $? != 0 ] ; then exit 1 ; fi
-fi
+}
-if [ "${do_intrinsics}" = "yes" ]
-then
+build_intrinsics () {
(cd .. && sh ./gen-all-intrinsics ${build_dir}/${gcc})
if [ $? != 0 ] ; then exit 1 ; fi
-fi
-
-if [ "${do_sim}" = "yes" ]
-then
- for cpu in ${cgen_cpus}
- do
- echo "Building $cpu sim $(date)"
- mkdir -p tmp-sim-${cpu}
- (
- set -e
- cd tmp-sim-${cpu}
- target_sys="${cpu}-elf"
- if [ -f Makefile ]
- then
- true # already configured
- elif [ "${do_config}" = "yes" ]
- then
- echo "Configuring: $(date)"
- ../${src}/configure \
- --build=${build_sys} \
- --host=${host_sys} \
- --target=${target_sys} \
- --enable-cgen-maint \
- --enable-languages=c
- fi
- if [ "${do_build}" = "yes" ]
- then
- echo "Building: $(date)"
- if [ ! -f Makefile ]
- then
- echo "Tree hasn't been configured."
- exit 1
- fi
- make -j3 all-sim
- fi
- )
- if [ $? != 0 ] ; then exit 1 ; fi
- done
-fi
+}
-if [ "${do_diffs}" = "yes" ]
-then
+build_diffs () {
# NOTE: cvs will return with a non-zero exit code if there are diffs.
(cd ${src}/opcodes && cvs diff -du >${build_dir}/opcodes.diffs)
(cd ${src}/sim && cvs diff -du >${build_dir}/sim.diffs)
(cd ${src}/sid/component/cgen-cpu && cvs diff -du >${build_dir}/sid.diffs)
(cd ${gcc}/gcc/config/mep && svn diff -x -u >${build_dir}/gcc.diffs)
+}
+
+for cpu in ${cgen_cpus}
+do
+ target_sys=${cpu}-elf
+ prefix=${build_dir}/rel/${target_sys}
+
+ if [ "${do_binutils}" = "yes" ]
+ then
+ build_binutils ${target_sys} ${prefix}
+ fi
+
+ if [ "${do_sim}" = "yes" ]
+ then
+ build_sim ${target_sys} ${prefix}
+ fi
+done
+
+for cpu in ${sid_cpus}
+do
+ target_sys=${cpu}-elf
+ prefix=${build_dir}/rel/${target_sys}
+
+ if [ "${do_sid}" = "yes" ]
+ then
+ build_sid ${target_sys} ${prefix}
+ fi
+done
+
+if [ "${do_intrinsics}" = "yes" ]
+then
+ build_intrinsics ${target_sys} ${prefix}
+fi
+
+if [ "${do_diffs}" = "yes" ]
+then
+ build_diffs ${target_sys} ${prefix}
fi
echo "Ending gen-all: $(date)"