]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - MAKEALL
Merge branch 'master' of git://git.denx.de/u-boot-nios
[karo-tx-uboot.git] / MAKEALL
diff --git a/MAKEALL b/MAKEALL
index e35af424d1d1108ffd537b8e49d2592c09569965..e5da6f18599452f4ec68bff8190bf789dc402a34 100755 (executable)
--- a/MAKEALL
+++ b/MAKEALL
@@ -16,6 +16,9 @@ usage()
          -c CPU,    --cpu CPU         Build all boards with cpu CPU
          -v VENDOR, --vendor VENDOR   Build all boards with vendor VENDOR
          -s SOC,    --soc SOC         Build all boards with soc SOC
+         -l,        --list            List all targets to be built
+         -m,        --maintainers     List all targets and maintainer email
+         -M,        --mails           List all targets and all affilated emails
          -h,        --help            This help output
 
        Selections by these options are logically ANDed; if the same option
@@ -47,8 +50,8 @@ usage()
        exit ${ret}
 }
 
-SHORT_OPTS="ha:c:v:s:"
-LONG_OPTS="help,arch:,cpu:,vendor:,soc:"
+SHORT_OPTS="ha:c:v:s:lmM"
+LONG_OPTS="help,arch:,cpu:,vendor:,soc:,list,maintainers,mails"
 
 # Option processing based on util-linux-2.13/getopt-parse.bash
 
@@ -65,6 +68,9 @@ TEMP=`getopt -o ${SHORT_OPTS} --long ${LONG_OPTS} \
 eval set -- "$TEMP"
 
 SELECTED=''
+ONLY_LIST=''
+PRINT_MAINTS=''
+MAINTAINERS_ONLY=''
 
 while true ; do
        case "$1" in
@@ -104,6 +110,18 @@ while true ; do
                fi
                SELECTED='y'
                shift 2 ;;
+       -l|--list)
+               ONLY_LIST='y'
+               shift ;;
+       -m|--maintainers)
+               ONLY_LIST='y'
+               PRINT_MAINTS='y'
+               MAINTAINERS_ONLY='y'
+               shift ;;
+       -M|--mails)
+               ONLY_LIST='y'
+               PRINT_MAINTS='y'
+               shift ;;
        -h|--help)
                usage ;;
        --)
@@ -296,83 +314,23 @@ LIST_ppc="                \
 
 LIST_SA="$(boards_by_cpu sa1100)"
 
-#########################################################################
-## ARM7 Systems
-#########################################################################
-
-LIST_ARM7="            \
-       ep7312          \
-       evb4510         \
-       impa7           \
-       lpc2292sodimm   \
-       modnet50        \
-"
-
 #########################################################################
 ## ARM9 Systems
 #########################################################################
 
-LIST_ARM9="                    \
-       a320evb                 \
-       aspenite                \
-       da830evm                \
-       da850evm                \
-       edminiv2                \
-       guruplug                \
-       imx27lite               \
-       jadecpu                 \
-       km_kirkwood             \
-       magnesium               \
-       mv88f6281gtw_ge         \
-       mx1ads                  \
-       nhk8815                 \
-       nhk8815_onenand         \
-       omap1510inn             \
-       omap1610h2              \
-       omap1610inn             \
-       omap5912osk             \
-       omap730p2               \
-       openrd_base             \
-       openrd_client           \
-       openrd_ultimate         \
-       portl2                  \
-       rd6281a                 \
-       scb9328                 \
-       sheevaplug              \
-       smdk2410                \
-       spear300                \
-       spear310                \
-       spear320                \
-       spear600                \
-       VCMA9                   \
-       versatile               \
-       versatileab             \
-       versatilepb             \
-       davinci_dvevm           \
-       davinci_schmoogie       \
-       davinci_sffsdr          \
-       davinci_sonata          \
-       davinci_dm355evm        \
-       davinci_dm355leopard    \
-       davinci_dm365evm        \
-       davinci_dm6467evm       \
+LIST_ARM9="$(boards_by_cpu arm920t)    \
+       $(boards_by_cpu arm926ejs)      \
+       $(boards_by_cpu arm925t)        \
 "
 
 #########################################################################
 ## ARM11 Systems
 #########################################################################
-LIST_ARM11="                   \
-       omap2420h4              \
-       apollon                 \
-       imx31_litekit           \
+LIST_ARM11="$(boards_by_cpu arm1136)   \
        imx31_phycore           \
        imx31_phycore_eet       \
-       mx31ads                 \
        mx31pdk                 \
-       mx31pdk_nand            \
-       qong                    \
        smdk6400                \
-       tnetv107x_evm           \
 "
 
 #########################################################################
@@ -404,7 +362,6 @@ LIST_ixp="$(boards_by_cpu ixp)
 
 LIST_arm="                     \
        ${LIST_SA}              \
-       ${LIST_ARM7}            \
        ${LIST_ARM9}            \
        ${LIST_ARM10}           \
        ${LIST_ARM11}           \
@@ -435,14 +392,11 @@ LIST_mips4kc="            \
        vct_premium_onenand_small       \
 "
 
-LIST_mips5kc=""
-
 LIST_au1xx0="          \
        dbau1000        \
        dbau1100        \
        dbau1500        \
        dbau1550        \
-       dbau1550_el     \
        gth2            \
 "
 
@@ -456,20 +410,23 @@ LIST_mips="               \
 ## MIPS Systems                (little endian)
 #########################################################################
 
-LIST_mips4kc_el=""
-
-LIST_mips5kc_el=""
+LIST_xburst_el="       \
+       qi_lb60         \
+"
 
 LIST_au1xx0_el="       \
        dbau1550_el     \
        pb1000          \
 "
-
 LIST_mips_el="                 \
-       ${LIST_mips4kc_el}      \
-       ${LIST_mips5kc_el}      \
+       ${LIST_xburst_el}       \
        ${LIST_au1xx0_el}       \
 "
+#########################################################################
+## OpenRISC Systems
+#########################################################################
+
+LIST_openrisc="$(boards_by_arch openrisc)"
 
 #########################################################################
 ## x86 Systems
@@ -493,20 +450,15 @@ LIST_microblaze="$(boards_by_arch microblaze)"
 ## ColdFire Systems
 #########################################################################
 
-LIST_coldfire="$(boards_by_arch m68k)
-       astro_mcf5373l          \
-       cobra5272               \
+LIST_m68k="$(boards_by_arch m68k)
        EB+MCF-EV123            \
        EB+MCF-EV123_internal   \
        M52277EVB               \
        M5235EVB                \
-       M5329AFEE               \
-       M5373EVB                \
        M54451EVB               \
        M54455EVB               \
-       M5475AFE                \
-       M5485AFE                \
 "
+LIST_coldfire=${LIST_m68k}
 
 #########################################################################
 ## AVR32 Systems
@@ -536,11 +488,118 @@ LIST_sh="$(boards_by_arch sh)"
 
 LIST_sparc="$(boards_by_arch sparc)"
 
+#########################################################################
+## NDS32 Systems
+#########################################################################
+
+LIST_nds32="$(boards_by_arch nds32)"
+
 #-----------------------------------------------------------------------
 
+get_target_location() {
+       local target=$1
+       local BOARD_NAME=""
+       local CONFIG_NAME=""
+       local board=""
+       local vendor=""
+
+       # Automatic mode
+       local line=`egrep -i "^[[:space:]]*${target}[[:space:]]" boards.cfg`
+
+       if [ -z "${line}" ] ; then echo "" ; return ; fi
+
+       set ${line}
+
+       # add default board name if needed
+       [ $# = 3 ] && set ${line} ${1}
+
+       CONFIG_NAME="${1%_config}"
+
+       [ "${BOARD_NAME}" ] || BOARD_NAME="${1%_config}"
+
+       if [ "$4" = "-" ] ; then
+               board=${BOARD_NAME}
+       else
+               board="$4"
+       fi
+
+       [ $# -gt 4 ] && [ "$5" != "-" ] && vendor="$5"
+       [ $# -gt 6 ] && [ "$7" != "-" ] && {
+               tmp="${7%:*}"
+               if [ "$tmp" ] ; then
+                       CONFIG_NAME="$tmp"
+               fi
+       }
+
+       # Assign board directory to BOARDIR variable
+       if [ -z "${vendor}" ] ; then
+           BOARDDIR=${board}
+       else
+           BOARDDIR=${vendor}/${board}
+       fi
+
+       echo "${CONFIG_NAME}:${BOARDDIR}"
+}
+
+get_target_maintainers() {
+       local name=`echo $1 | cut -d : -f 1`
+
+       if ! grep -qsi "[[:blank:]]${name}[[:blank:]]" MAINTAINERS ; then
+               echo ""
+               return ;
+       fi
+
+       local line=`tac MAINTAINERS | grep -ni "[[:blank:]]${name}[[:blank:]]" | cut -d : -f 1`
+       local mail=`tac MAINTAINERS | tail -n +${line} | \
+               sed -n ":start /.*@.*/ { b mail } ; n ; b start ; :mail /.*@.*/ { p ; n ; b mail } ; q" | \
+               sed "s/^.*<//;s/>.*$//"`
+       echo "$mail"
+}
+
+list_target() {
+       if [ "$PRINT_MAINTS" != 'y' ] ; then
+               echo "$1"
+               return
+       fi
+
+       echo -n "$1:"
+
+       local loc=`get_target_location $1`
+
+       if [ -z "${loc}" ] ; then echo "ERROR" ; return ; fi
+
+       local maintainers_result=`get_target_maintainers ${loc} | tr " " "\n"`
+
+       if [ "$MAINTAINERS_ONLY" != 'y' ] ; then
+
+               local dir=`echo ${loc} | cut -d ":" -f 2`
+               local cfg=`echo ${loc} | cut -d ":" -f 1`
+               local git_result=`git log --format=%aE board/${dir} \
+                               include/configs/${cfg}.h | grep "@"`
+               local git_result_recent=`echo ${git_result} | tr " " "\n" | \
+                                               head -n 3`
+               local git_result_top=`echo ${git_result} | tr " " "\n" | \
+                       sort | uniq -c | sort -nr | head -n 3 | \
+                       sed "s/^ \+[0-9]\+ \+//"`
+
+               echo -e "$git_result_recent\n$git_result_top\n$maintainers_result" | \
+                       sort -u | tr "\n" " " | sed "s/ $//" ;
+       else
+               echo -e "$maintainers_result" | sort -u | tr "\n" " " | \
+                                               sed "s/ $//" ;
+       fi
+
+       echo ""
+}
+
 build_target() {
        target=$1
 
+       if [ "$ONLY_LIST" == 'y' ] ; then
+               list_target ${target}
+               return
+       fi
+
        ${MAKE} distclean >/dev/null
        ${MAKE} -s ${target}_config
 
@@ -561,8 +620,12 @@ build_target() {
 
        TOTAL_CNT=$((TOTAL_CNT + 1))
 
-       ${CROSS_COMPILE}size ${BUILD_DIR}/u-boot \
-                               | tee -a ${LOG_DIR}/$target.MAKELOG
+       OBJS=${BUILD_DIR}/u-boot
+       if [ -e ${BUILD_DIR}/spl/u-boot-spl ]; then
+               OBJS="${OBJS} ${BUILD_DIR}/spl/u-boot-spl"
+       fi
+
+       ${CROSS_COMPILE}size ${OBJS} | tee -a ${LOG_DIR}/$target.MAKELOG
 }
 build_targets() {
        for t in "$@" ; do
@@ -584,6 +647,7 @@ build_targets() {
 #-----------------------------------------------------------------------
 
 print_stats() {
+       if [ "$ONLY_LIST" == 'y' ] ; then return ; fi
        echo ""
        echo "--------------------- SUMMARY ----------------------------"
        echo "Boards compiled: ${TOTAL_CNT}"