OSDN Git Service

* gen-all: Rewrite. Build more ports. Split out building of sid.
authordevans <devans>
Fri, 11 Dec 2009 02:22:51 +0000 (02:22 +0000)
committerdevans <devans>
Fri, 11 Dec 2009 02:22:51 +0000 (02:22 +0000)
cgen/ChangeLog
cgen/gen-all

index 1f7c035..8b0db0c 100644 (file)
@@ -1,3 +1,7 @@
+2009-12-10  Doug Evans  <dje@sebabeach.org>
+
+       * gen-all: Rewrite.  Build more ports.  Split out building of sid.
+
 2009-11-23  Doug Evans  <dje@sebabeach.org>
 
        * hardware.scm (hw-pc?): New function.
index 4601d12..29c899b 100644 (file)
@@ -11,29 +11,35 @@ trap "echo ERROR: $(date)" 0
 
 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 ;;
@@ -48,35 +54,103 @@ build_dir=$(pwd)
 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)"
@@ -85,67 +159,68 @@ then
                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)"