[U-Boot] [PATCH/RFC] MAKEALL: allow people to specify arch/cpu/soc/vendor names
Mike Frysinger
vapier at gentoo.org
Tue Oct 18 20:59:41 CEST 2011
Rather than maintain a hand coded list of targets which represent
cpus/etc and expand into a bunch of board names, add automatic
look up to all targets. This makes target selection a bit more
natural imo, and keeps down on code duplication.
Signed-off-by: Mike Frysinger <vapier at gentoo.org>
---
MAKEALL | 384 ++++++++++++++++++++-------------------------------------------
1 files changed, 120 insertions(+), 264 deletions(-)
diff --git a/MAKEALL b/MAKEALL
index f582f8b..58a557d 100755
--- a/MAKEALL
+++ b/MAKEALL
@@ -185,304 +185,134 @@ boards_by_field()
}
boards_by_arch() { boards_by_field 2 "$@" ; }
boards_by_cpu() { boards_by_field 3 "$@" ; }
+boards_by_vend() { boards_by_field 5 "$@" ; }
boards_by_soc() { boards_by_field 6 "$@" ; }
#########################################################################
-## MPC5xx Systems
-#########################################################################
-
-LIST_5xx="$(boards_by_cpu mpc5xx)"
-
-#########################################################################
-## MPC5xxx Systems
-#########################################################################
-
-LIST_5xxx="$(boards_by_cpu mpc5xxx)"
-
-#########################################################################
-## MPC512x Systems
-#########################################################################
-
-LIST_512x="$(boards_by_cpu mpc512x)"
-
-#########################################################################
-## MPC8xx Systems
-#########################################################################
-
-LIST_8xx="$(boards_by_cpu mpc8xx)"
-
-#########################################################################
-## PPC4xx Systems
-#########################################################################
-
-LIST_4xx="$(boards_by_cpu ppc4xx)"
-
-#########################################################################
-## MPC8220 Systems
-#########################################################################
-
-LIST_8220="$(boards_by_cpu mpc8220)"
-
-#########################################################################
-## MPC824x Systems
-#########################################################################
-
-LIST_824x="$(boards_by_cpu mpc824x)"
-
-#########################################################################
-## MPC8260 Systems (includes 8250, 8255 etc.)
-#########################################################################
-
-LIST_8260="$(boards_by_cpu mpc8260)"
-
-#########################################################################
-## MPC83xx Systems (includes 8349, etc.)
-#########################################################################
-
-LIST_83xx="$(boards_by_cpu mpc83xx)"
-
-#########################################################################
-## MPC85xx Systems (includes 8540, 8560 etc.)
-#########################################################################
-
-LIST_85xx="$(boards_by_cpu mpc85xx)"
-
-#########################################################################
-## MPC86xx Systems
-#########################################################################
-
-LIST_86xx="$(boards_by_cpu mpc86xx)"
-
-#########################################################################
-## 74xx/7xx Systems
-#########################################################################
-
-LIST_74xx_7xx="$(boards_by_cpu 74xx_7xx)"
-
-#########################################################################
## PowerPC groups
#########################################################################
+for v in 5xx 5xxx 512x 8xx 8220 824x 8260 83xx 85xx 86xx ; do
+ eval LIST_${v}=\"$(boards_by_cpu mpc${v})\"
+done
+LIST_4xx="$(boards_by_cpu ppc4xx)"
-LIST_TSEC=" \
- ${LIST_83xx} \
- ${LIST_85xx} \
- ${LIST_86xx} \
-"
-
-LIST_powerpc=" \
- ${LIST_5xx} \
- ${LIST_512x} \
- ${LIST_5xxx} \
- ${LIST_8xx} \
- ${LIST_8220} \
- ${LIST_824x} \
- ${LIST_8260} \
- ${LIST_83xx} \
- ${LIST_85xx} \
- ${LIST_86xx} \
- ${LIST_4xx} \
- ${LIST_74xx_7xx}\
+LIST_TSEC="
+ ${LIST_83xx}
+ ${LIST_85xx}
+ ${LIST_86xx}
"
# Alias "ppc" -> "powerpc" to not break compatibility with older scripts
# still using "ppc" instead of "powerpc"
-LIST_ppc=" \
- ${LIST_powerpc} \
-"
+LIST_ppc="$(boards_by_arch powerpc)"
#########################################################################
-## StrongARM Systems
+## ARM groups
#########################################################################
LIST_SA="$(boards_by_cpu sa1100)"
-#########################################################################
-## ARM9 Systems
-#########################################################################
-
-LIST_ARM9="$(boards_by_cpu arm920t) \
- $(boards_by_cpu arm926ejs) \
- $(boards_by_cpu arm925t) \
- omap1610h2 \
- omap1610inn \
- omap730p2 \
+LIST_ARM9="
+ $(boards_by_cpu arm920t)
+ $(boards_by_cpu arm926ejs)
+ $(boards_by_cpu arm925t)
+ omap1610h2
+ omap1610inn
+ omap730p2
"
-#########################################################################
-## ARM11 Systems
-#########################################################################
-LIST_ARM11="$(boards_by_cpu arm1136) \
- apollon \
- imx31_phycore \
- imx31_phycore_eet \
- mx31pdk \
- mx31pdk_nand \
- smdk6400 \
+LIST_ARM11="
+ $(boards_by_cpu arm1136)
+ apollon
+ imx31_phycore
+ imx31_phycore_eet
+ mx31pdk
+ mx31pdk_nand
+ smdk6400
"
-#########################################################################
-## ARMV7 Systems
-#########################################################################
-
LIST_ARMV7="$(boards_by_cpu armv7)"
-#########################################################################
-## AT91 Systems
-#########################################################################
-
-LIST_at91="$(boards_by_soc at91)"
-
-#########################################################################
-## Xscale Systems
-#########################################################################
-
-LIST_pxa="$(boards_by_cpu pxa)"
-
-LIST_ixp="$(boards_by_cpu ixp)
- pdnb3 \
- scpu \
+LIST_ixp="
+ $(boards_by_cpu ixp)
+ pdnb3
+ scpu
"
#########################################################################
-## ARM groups
-#########################################################################
-
-LIST_arm=" \
- ${LIST_SA} \
- ${LIST_ARM9} \
- ${LIST_ARM10} \
- ${LIST_ARM11} \
- ${LIST_ARMV7} \
- ${LIST_at91} \
- ${LIST_pxa} \
- ${LIST_ixp} \
+## MIPS groups
+#########################################################################
+
+LIST_mips4kc="
+ incaip
+ qemu_mips
+ vct_platinum
+ vct_platinum_small
+ vct_platinum_onenand
+ vct_platinum_onenand_small
+ vct_platinumavc
+ vct_platinumavc_small
+ vct_platinumavc_onenand
+ vct_platinumavc_onenand_small
+ vct_premium
+ vct_premium_small
+ vct_premium_onenand
+ vct_premium_onenand_small
"
-#########################################################################
-## MIPS Systems (default = big endian)
-#########################################################################
-
-LIST_mips4kc=" \
- incaip \
- qemu_mips \
- vct_platinum \
- vct_platinum_small \
- vct_platinum_onenand \
- vct_platinum_onenand_small \
- vct_platinumavc \
- vct_platinumavc_small \
- vct_platinumavc_onenand \
- vct_platinumavc_onenand_small \
- vct_premium \
- vct_premium_small \
- vct_premium_onenand \
- vct_premium_onenand_small \
+LIST_au1xx0="
+ dbau1000
+ dbau1100
+ dbau1500
+ dbau1550
+ dbau1550_el
+ gth2
"
-LIST_mips5kc=""
-
-LIST_au1xx0=" \
- dbau1000 \
- dbau1100 \
- dbau1500 \
- dbau1550 \
- dbau1550_el \
- gth2 \
+LIST_mips_eb="
+ ${LIST_mips4kc}
+ ${LIST_mips5kc}
+ ${LIST_au1xx0}
"
-LIST_mips=" \
- ${LIST_mips4kc} \
- ${LIST_mips5kc} \
- ${LIST_au1xx0} \
-"
-
-#########################################################################
-## MIPS Systems (little endian)
-#########################################################################
-
-LIST_mips4kc_el=" \
- qi_lb60 \
+LIST_mips4kc_el="
+ qi_lb60
"
LIST_mips5kc_el=""
-LIST_au1xx0_el=" \
- dbau1550_el \
- pb1000 \
+LIST_au1xx0_el="
+ dbau1550_el
+ pb1000
"
-LIST_mips_el=" \
- ${LIST_mips4kc_el} \
- ${LIST_mips5kc_el} \
- ${LIST_au1xx0_el} \
+LIST_mips_el="
+ ${LIST_mips4kc_el}
+ ${LIST_mips5kc_el}
+ ${LIST_au1xx0_el}
"
#########################################################################
-## x86 Systems
-#########################################################################
-
-LIST_x86="$(boards_by_arch x86)"
-
-#########################################################################
-## Nios-II Systems
-#########################################################################
-
-LIST_nios2="$(boards_by_arch nios2)"
-
-#########################################################################
-## MicroBlaze Systems
-#########################################################################
-
-LIST_microblaze="$(boards_by_arch microblaze)"
-
-#########################################################################
## ColdFire Systems
#########################################################################
-LIST_m68k="$(boards_by_arch m68k)
- astro_mcf5373l \
- cobra5272 \
- EB+MCF-EV123 \
- EB+MCF-EV123_internal \
- M52277EVB \
- M5235EVB \
- M5329AFEE \
- M5373EVB \
- M54451EVB \
- M54455EVB \
- M5475AFE \
- M5485AFE \
+LIST_m68k="
+ $(boards_by_arch m68k)
+ astro_mcf5373l
+ cobra5272
+ EB+MCF-EV123
+ EB+MCF-EV123_internal
+ M52277EVB
+ M5235EVB
+ M5329AFEE
+ M5373EVB
+ M54451EVB
+ M54455EVB
+ M5475AFE
+ M5485AFE
"
LIST_coldfire=${LIST_m68k}
-#########################################################################
-## AVR32 Systems
-#########################################################################
-
-LIST_avr32="$(boards_by_arch avr32)"
-
-#########################################################################
-## Blackfin Systems
-#########################################################################
-
-LIST_blackfin="$(boards_by_arch blackfin)"
-
-#########################################################################
-## SH Systems
-#########################################################################
-
-LIST_sh2="$(boards_by_cpu sh2)"
-LIST_sh3="$(boards_by_cpu sh3)"
-LIST_sh4="$(boards_by_cpu sh4)"
-
-LIST_sh="$(boards_by_arch sh)"
-
-#########################################################################
-## SPARC Systems
-#########################################################################
-
-LIST_sparc="$(boards_by_arch sparc)"
-
#-----------------------------------------------------------------------
build_target() {
@@ -511,20 +341,46 @@ build_target() {
${CROSS_COMPILE}size ${BUILD_DIR}/u-boot \
| tee -a ${LOG_DIR}/$target.MAKELOG
}
+
+expand_target() {
+ # Handle multiple target selectors
+ local list t=$1
+
+ # If a LIST_xxx var exists, use it. But avoid variable
+ # expansion in the eval when a board name contains certain
+ # characters that the shell interprets.
+ case ${t} in
+ *[-+=]*) list= ;;
+ *) list=$(eval echo '${LIST_'$t'}') ;;
+ esac
+ [ -n "${list}" ] && echo "${list}" && return 0
+
+ # see if this is an arch name
+ list=$(boards_by_arch "${t}")
+ [ -n "${list}" ] && echo "${list}" && return 0
+
+ # see if this is a cpu name
+ list=$(boards_by_cpu "${t}")
+ [ -n "${list}" ] && echo "${list}" && return 0
+
+ # see if this is a soc name
+ list=$(boards_by_soc "${t}")
+ [ -n "${list}" ] && echo "${list}" && return 0
+
+ # see if this is a vendor name
+ list=$(boards_by_vend "${t}")
+ [ -n "${list}" ] && echo "${list}" && return 0
+
+ # no hits, so let's just assume it's a board name
+ echo "${t}"
+}
+
build_targets() {
+ local t tt
for t in "$@" ; do
- # If a LIST_xxx var exists, use it. But avoid variable
- # expansion in the eval when a board name contains certain
- # characters that the shell interprets.
- case ${t} in
- *[-+=]*) list= ;;
- *) list=$(eval echo '${LIST_'$t'}') ;;
- esac
- if [ -n "${list}" ] ; then
- build_targets ${list}
- else
- build_target ${t}
- fi
+ for tt in $(expand_target "${t}") ; do
+ build_target ${tt}
+ done
done
}
--
1.7.6.1
More information about the U-Boot
mailing list