MAKEALL 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788
  1. #!/bin/bash
  2. # Print statistics when we exit
  3. trap exit 1 2 3 15
  4. trap print_stats 0
  5. # Determine number of CPU cores if no default was set
  6. : ${BUILD_NCPUS:="`getconf _NPROCESSORS_ONLN`"}
  7. if [ "$BUILD_NCPUS" -gt 1 ]
  8. then
  9. JOBS="-j $((BUILD_NCPUS + 1))"
  10. else
  11. JOBS=""
  12. fi
  13. if [ "${CROSS_COMPILE}" ] ; then
  14. MAKE="make CROSS_COMPILE=${CROSS_COMPILE}"
  15. else
  16. MAKE=make
  17. fi
  18. if [ "${MAKEALL_LOGDIR}" ] ; then
  19. LOG_DIR=${MAKEALL_LOGDIR}
  20. else
  21. LOG_DIR="LOG"
  22. fi
  23. if [ ! "${BUILD_DIR}" ] ; then
  24. BUILD_DIR="."
  25. fi
  26. [ -d ${LOG_DIR} ] || mkdir ${LOG_DIR} || exit 1
  27. LIST=""
  28. # Keep track of the number of builds and errors
  29. ERR_CNT=0
  30. ERR_LIST=""
  31. TOTAL_CNT=0
  32. RC=0
  33. # Helper funcs for parsing boards.cfg
  34. boards_by_field()
  35. {
  36. awk \
  37. -v field="$1" \
  38. -v select="$2" \
  39. '($1 !~ /^#/ && $field == select) { print $1 }' \
  40. boards.cfg
  41. }
  42. boards_by_arch() { boards_by_field 2 "$@" ; }
  43. boards_by_cpu() { boards_by_field 3 "$@" ; }
  44. #########################################################################
  45. ## MPC5xx Systems
  46. #########################################################################
  47. LIST_5xx="$(boards_by_cpu mpc5xx)"
  48. #########################################################################
  49. ## MPC5xxx Systems
  50. #########################################################################
  51. LIST_5xxx="$(boards_by_cpu mpc5xxx)
  52. digsy_mtc \
  53. EVAL5200 \
  54. fo300 \
  55. galaxy5200 \
  56. icecube_5200 \
  57. lite5200b \
  58. mcc200 \
  59. MVBC_P \
  60. MVSMR \
  61. pcm030 \
  62. PM520 \
  63. TB5200 \
  64. Total5200 \
  65. Total5200_Rev2 \
  66. TQM5200 \
  67. TQM5200_B \
  68. TQM5200S \
  69. "
  70. #########################################################################
  71. ## MPC512x Systems
  72. #########################################################################
  73. LIST_512x="$(boards_by_cpu mpc512x)
  74. mpc5121ads \
  75. "
  76. #########################################################################
  77. ## MPC8xx Systems
  78. #########################################################################
  79. LIST_8xx="$(boards_by_cpu mpc8xx)
  80. Adder87x \
  81. AdderII \
  82. ADS860 \
  83. FADS823 \
  84. FADS850SAR \
  85. FADS860T \
  86. FPS850L \
  87. GEN860T \
  88. GEN860T_SC \
  89. ICU862_100MHz \
  90. IVML24 \
  91. IVML24_128 \
  92. IVML24_256 \
  93. IVMS8 \
  94. IVMS8_128 \
  95. IVMS8_256 \
  96. MBX \
  97. MBX860T \
  98. MPC86xADS \
  99. MPC885ADS \
  100. NETPHONE \
  101. NETTA \
  102. NETTA2 \
  103. NETTA_ISDN \
  104. NETVIA \
  105. NETVIA_V2 \
  106. RPXlite_DW \
  107. SPD823TS \
  108. SXNI855T \
  109. TK885D \
  110. TQM823L \
  111. TQM823L_LCD \
  112. TQM850L \
  113. TQM855L \
  114. TQM860L \
  115. TQM885D \
  116. v37 \
  117. "
  118. #########################################################################
  119. ## PPC4xx Systems
  120. #########################################################################
  121. LIST_4xx="$(boards_by_cpu ppc4xx)
  122. acadia_nand \
  123. arches \
  124. bamboo_nand \
  125. canyonlands \
  126. canyonlands_nand \
  127. CPCI405 \
  128. CPCI4052 \
  129. CPCI405AB \
  130. CPCI405DT \
  131. devconcenter \
  132. fx12mm \
  133. glacier \
  134. haleakala \
  135. haleakala_nand \
  136. hcu4 \
  137. hcu5 \
  138. intip \
  139. kilauea \
  140. kilauea_nand \
  141. mcu25 \
  142. MIP405T \
  143. ml507 \
  144. ml507_flash \
  145. OCRTC \
  146. ORSG \
  147. PPChameleonEVB \
  148. rainier \
  149. sequoia \
  150. sequoia_nand \
  151. v5fx30teval \
  152. v5fx30teval_flash \
  153. W7OLMC \
  154. W7OLMG \
  155. walnut \
  156. xilinx-ppc440-generic \
  157. xilinx-ppc440-generic_flash \
  158. yellowstone \
  159. yosemite \
  160. "
  161. #########################################################################
  162. ## MPC8220 Systems
  163. #########################################################################
  164. LIST_8220="$(boards_by_cpu mpc8220)"
  165. #########################################################################
  166. ## MPC824x Systems
  167. #########################################################################
  168. LIST_824x="$(boards_by_cpu mpc824x)
  169. CPC45 \
  170. eXalion \
  171. IDS8247 \
  172. linkstation_HGLAN \
  173. Sandpoint8240 \
  174. Sandpoint8245 \
  175. "
  176. #########################################################################
  177. ## MPC8260 Systems (includes 8250, 8255 etc.)
  178. #########################################################################
  179. LIST_8260="$(boards_by_cpu mpc8260)
  180. cogent_mpc8260 \
  181. CPU86 \
  182. CPU87 \
  183. ep8248 \
  184. ISPAN \
  185. MPC8260ADS \
  186. MPC8272ADS \
  187. PM826 \
  188. PM828 \
  189. Rattler8248 \
  190. TQM8260_AC \
  191. TQM8260_AD \
  192. TQM8260_AE \
  193. "
  194. #########################################################################
  195. ## MPC83xx Systems (includes 8349, etc.)
  196. #########################################################################
  197. LIST_83xx="$(boards_by_cpu mpc83xx)
  198. caddy2 \
  199. MPC8313ERDB_33 \
  200. MPC8313ERDB_NAND_66 \
  201. MPC8315ERDB \
  202. MPC8315ERDB_NAND \
  203. MPC832XEMDS \
  204. MPC832XEMDS_ATM \
  205. MPC8349ITX \
  206. MPC8349ITXGP \
  207. MPC8360EMDS \
  208. MPC8360EMDS_ATM \
  209. MPC8360ERDK_33 \
  210. MPC8360ERDK_66 \
  211. MPC837XEMDS \
  212. sbc8349 \
  213. SIMPC8313_LP \
  214. vme8349 \
  215. "
  216. #########################################################################
  217. ## MPC85xx Systems (includes 8540, 8560 etc.)
  218. #########################################################################
  219. LIST_85xx="$(boards_by_cpu mpc85xx)
  220. MPC8536DS \
  221. MPC8536DS_NAND \
  222. MPC8536DS_SDCARD \
  223. MPC8536DS_SPIFLASH \
  224. MPC8536DS_36BIT \
  225. MPC8540EVAL \
  226. MPC8541CDS \
  227. MPC8548CDS \
  228. MPC8555CDS \
  229. MPC8569MDS \
  230. MPC8569MDS_ATM \
  231. MPC8569MDS_NAND \
  232. MPC8572DS \
  233. MPC8572DS_36BIT \
  234. P2020DS \
  235. P2020DS_36BIT \
  236. P1011RDB \
  237. P1011RDB_NAND \
  238. P1011RDB_SDCARD \
  239. P1011RDB_SPIFLASH \
  240. P1020RDB \
  241. P1020RDB_NAND \
  242. P1020RDB_SDCARD \
  243. P1020RDB_SPIFLASH \
  244. P2010RDB \
  245. P2010RDB_NAND \
  246. P2010RDB_SDCARD \
  247. P2010RDB_SPIFLASH \
  248. P2020RDB \
  249. P2020RDB_NAND \
  250. P2020RDB_SDCARD \
  251. P2020RDB_SPIFLASH \
  252. sbc8540 \
  253. sbc8548 \
  254. sbc8548_PCI_33 \
  255. sbc8548_PCI_66 \
  256. sbc8548_PCI_33_PCIE \
  257. sbc8548_PCI_66_PCIE \
  258. sbc8560 \
  259. stxssa \
  260. TQM8540 \
  261. TQM8541 \
  262. TQM8548 \
  263. TQM8548_AG \
  264. TQM8548_BE \
  265. TQM8555 \
  266. TQM8560 \
  267. "
  268. #########################################################################
  269. ## MPC86xx Systems
  270. #########################################################################
  271. LIST_86xx="$(boards_by_cpu mpc86xx)
  272. MPC8641HPCN_36BIT \
  273. MPC8641HPCN \
  274. "
  275. #########################################################################
  276. ## 74xx/7xx Systems
  277. #########################################################################
  278. LIST_74xx=" \
  279. DB64360 \
  280. DB64460 \
  281. EVB64260 \
  282. mpc7448hpc2 \
  283. P3G4 \
  284. p3m7448 \
  285. PCIPPC2 \
  286. PCIPPC6 \
  287. ZUMA \
  288. "
  289. LIST_7xx=" \
  290. BAB7xx \
  291. CPCI750 \
  292. ELPPC \
  293. p3m750 \
  294. ppmc7xx \
  295. "
  296. #########################################################################
  297. ## PowerPC groups
  298. #########################################################################
  299. LIST_TSEC=" \
  300. ${LIST_83xx} \
  301. ${LIST_85xx} \
  302. ${LIST_86xx} \
  303. "
  304. LIST_powerpc=" \
  305. ${LIST_5xx} \
  306. ${LIST_512x} \
  307. ${LIST_5xxx} \
  308. ${LIST_8xx} \
  309. ${LIST_8220} \
  310. ${LIST_824x} \
  311. ${LIST_8260} \
  312. ${LIST_83xx} \
  313. ${LIST_85xx} \
  314. ${LIST_86xx} \
  315. ${LIST_4xx} \
  316. ${LIST_74xx} \
  317. ${LIST_7xx} \
  318. "
  319. # Alias "ppc" -> "powerpc" to not break compatibility with older scripts
  320. # still using "ppc" instead of "powerpc"
  321. LIST_ppc=" \
  322. ${LIST_powerpc} \
  323. "
  324. #########################################################################
  325. ## StrongARM Systems
  326. #########################################################################
  327. LIST_SA="$(boards_by_cpu sa1100)"
  328. #########################################################################
  329. ## ARM7 Systems
  330. #########################################################################
  331. LIST_ARM7=" \
  332. ap7 \
  333. ap720t \
  334. armadillo \
  335. B2 \
  336. ep7312 \
  337. evb4510 \
  338. impa7 \
  339. integratorap \
  340. lpc2292sodimm \
  341. modnet50 \
  342. SMN42 \
  343. "
  344. #########################################################################
  345. ## ARM9 Systems
  346. #########################################################################
  347. LIST_ARM9=" \
  348. a320evb \
  349. ap920t \
  350. ap922_XA10 \
  351. ap926ejs \
  352. ap946es \
  353. ap966 \
  354. cp920t \
  355. cp922_XA10 \
  356. cp926ejs \
  357. cp946es \
  358. cp966 \
  359. da830evm \
  360. da850evm \
  361. edb9301 \
  362. edb9302 \
  363. edb9302a \
  364. edb9307 \
  365. edb9307a \
  366. edb9312 \
  367. edb9315 \
  368. edb9315a \
  369. edminiv2 \
  370. guruplug \
  371. imx27lite \
  372. jadecpu \
  373. lpd7a400 \
  374. magnesium \
  375. mv88f6281gtw_ge \
  376. mx1ads \
  377. mx1fs2 \
  378. netstar \
  379. nhk8815 \
  380. nhk8815_onenand \
  381. omap1510inn \
  382. omap1610h2 \
  383. omap1610inn \
  384. omap5912osk \
  385. omap730p2 \
  386. openrd_base \
  387. rd6281a \
  388. sbc2410x \
  389. scb9328 \
  390. sheevaplug \
  391. smdk2400 \
  392. smdk2410 \
  393. spear300 \
  394. spear310 \
  395. spear320 \
  396. spear600 \
  397. suen3 \
  398. trab \
  399. VCMA9 \
  400. versatile \
  401. versatileab \
  402. versatilepb \
  403. voiceblue \
  404. davinci_dvevm \
  405. davinci_schmoogie \
  406. davinci_sffsdr \
  407. davinci_sonata \
  408. davinci_dm355evm \
  409. davinci_dm355leopard \
  410. davinci_dm365evm \
  411. davinci_dm6467evm \
  412. "
  413. #########################################################################
  414. ## ARM10 Systems
  415. #########################################################################
  416. LIST_ARM10=" \
  417. integratorcp \
  418. cp1026 \
  419. "
  420. #########################################################################
  421. ## ARM11 Systems
  422. #########################################################################
  423. LIST_ARM11=" \
  424. cp1136 \
  425. omap2420h4 \
  426. apollon \
  427. imx31_litekit \
  428. imx31_phycore \
  429. imx31_phycore_eet \
  430. mx31ads \
  431. mx31pdk \
  432. mx31pdk_nand \
  433. qong \
  434. smdk6400 \
  435. tnetv107x_evm \
  436. "
  437. #########################################################################
  438. ## ARMV7 Systems
  439. #########################################################################
  440. LIST_ARMV7=" \
  441. am3517_evm \
  442. devkit8000 \
  443. mx51evk \
  444. omap3_beagle \
  445. omap3_overo \
  446. omap3_evm \
  447. omap3_pandora \
  448. omap3_sdp3430 \
  449. omap3_zoom1 \
  450. omap3_zoom2 \
  451. omap4_panda \
  452. omap4_sdp4430 \
  453. s5p_goni \
  454. smdkc100 \
  455. "
  456. #########################################################################
  457. ## AT91 Systems
  458. #########################################################################
  459. LIST_at91=" \
  460. afeb9260 \
  461. at91cap9adk \
  462. at91rm9200dk \
  463. at91rm9200ek \
  464. at91sam9260ek \
  465. at91sam9261ek \
  466. at91sam9263ek \
  467. at91sam9g10ek \
  468. at91sam9g20ek \
  469. at91sam9m10g45ek \
  470. at91sam9rlek \
  471. cmc_pu2 \
  472. CPUAT91 \
  473. CPU9260 \
  474. CPU9G20 \
  475. csb637 \
  476. eb_cpux9k2 \
  477. kb9202 \
  478. meesc \
  479. mp2usb \
  480. m501sk \
  481. otc570 \
  482. pm9261 \
  483. pm9263 \
  484. pm9g45 \
  485. SBC35_A9G20 \
  486. TNY_A9260 \
  487. TNY_A9G20 \
  488. "
  489. #########################################################################
  490. ## Xscale Systems
  491. #########################################################################
  492. LIST_pxa="$(boards_by_cpu pxa)
  493. polaris \
  494. trizepsiv \
  495. vpac270_nor \
  496. vpac270_onenand \
  497. "
  498. LIST_ixp="$(boards_by_cpu ixp)
  499. pdnb3 \
  500. scpu \
  501. "
  502. #########################################################################
  503. ## ARM groups
  504. #########################################################################
  505. LIST_arm=" \
  506. ${LIST_SA} \
  507. ${LIST_ARM7} \
  508. ${LIST_ARM9} \
  509. ${LIST_ARM10} \
  510. ${LIST_ARM11} \
  511. ${LIST_ARMV7} \
  512. ${LIST_at91} \
  513. ${LIST_pxa} \
  514. ${LIST_ixp} \
  515. "
  516. #########################################################################
  517. ## MIPS Systems (default = big endian)
  518. #########################################################################
  519. LIST_mips4kc=" \
  520. incaip \
  521. qemu_mips \
  522. vct_platinum \
  523. vct_platinum_small \
  524. vct_platinum_onenand \
  525. vct_platinum_onenand_small \
  526. vct_platinumavc \
  527. vct_platinumavc_small \
  528. vct_platinumavc_onenand \
  529. vct_platinumavc_onenand_small \
  530. vct_premium \
  531. vct_premium_small \
  532. vct_premium_onenand \
  533. vct_premium_onenand_small \
  534. "
  535. LIST_mips5kc=" \
  536. purple \
  537. "
  538. LIST_au1xx0=" \
  539. dbau1000 \
  540. dbau1100 \
  541. dbau1500 \
  542. dbau1550 \
  543. dbau1550_el \
  544. gth2 \
  545. "
  546. LIST_mips=" \
  547. ${LIST_mips4kc} \
  548. ${LIST_mips5kc} \
  549. ${LIST_au1xx0} \
  550. "
  551. #########################################################################
  552. ## MIPS Systems (little endian)
  553. #########################################################################
  554. LIST_mips4kc_el=""
  555. LIST_mips5kc_el=""
  556. LIST_au1xx0_el=" \
  557. dbau1550_el \
  558. pb1000 \
  559. "
  560. LIST_mips_el=" \
  561. ${LIST_mips4kc_el} \
  562. ${LIST_mips5kc_el} \
  563. ${LIST_au1xx0_el} \
  564. "
  565. #########################################################################
  566. ## i386 Systems
  567. #########################################################################
  568. LIST_x86="$(boards_by_arch i386)
  569. sc520_eNET \
  570. "
  571. #########################################################################
  572. ## Nios-II Systems
  573. #########################################################################
  574. LIST_nios2="$(boards_by_arch nios2)
  575. nios2-generic \
  576. "
  577. #########################################################################
  578. ## MicroBlaze Systems
  579. #########################################################################
  580. LIST_microblaze="$(boards_by_arch microblaze)"
  581. #########################################################################
  582. ## ColdFire Systems
  583. #########################################################################
  584. LIST_coldfire="$(boards_by_arch m68k)
  585. astro_mcf5373l \
  586. cobra5272 \
  587. EB+MCF-EV123 \
  588. EB+MCF-EV123_internal \
  589. M52277EVB \
  590. M5235EVB \
  591. M5329AFEE \
  592. M5373EVB \
  593. M54451EVB \
  594. M54455EVB \
  595. M5475AFE \
  596. M5485AFE \
  597. "
  598. #########################################################################
  599. ## AVR32 Systems
  600. #########################################################################
  601. LIST_avr32="$(boards_by_arch avr32)"
  602. #########################################################################
  603. ## Blackfin Systems
  604. #########################################################################
  605. LIST_blackfin="$(boards_by_arch blackfin)
  606. bf527-ezkit-v2
  607. "
  608. #########################################################################
  609. ## SH Systems
  610. #########################################################################
  611. LIST_sh2=" \
  612. rsk7203 \
  613. "
  614. LIST_sh3=" \
  615. mpr2 \
  616. ms7720se \
  617. "
  618. LIST_sh4=" \
  619. ms7750se \
  620. ms7722se \
  621. MigoR \
  622. r7780mp \
  623. r2dplus \
  624. sh7763rdp \
  625. sh7785lcr \
  626. ap325rxa \
  627. espt \
  628. "
  629. LIST_sh=" \
  630. ${LIST_sh2} \
  631. ${LIST_sh3} \
  632. ${LIST_sh4} \
  633. "
  634. #########################################################################
  635. ## SPARC Systems
  636. #########################################################################
  637. LIST_sparc="$(boards_by_arch sparc)"
  638. #-----------------------------------------------------------------------
  639. build_target() {
  640. target=$1
  641. ${MAKE} distclean >/dev/null
  642. ${MAKE} ${target}_config
  643. ${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
  644. | tee ${LOG_DIR}/$target.ERR
  645. # Check for 'make' errors
  646. if [ ${PIPESTATUS[0]} -ne 0 ] ; then
  647. RC=1
  648. fi
  649. if [ -s ${LOG_DIR}/$target.ERR ] ; then
  650. ERR_CNT=$((ERR_CNT + 1))
  651. ERR_LIST="${ERR_LIST} $target"
  652. else
  653. rm ${LOG_DIR}/$target.ERR
  654. fi
  655. TOTAL_CNT=$((TOTAL_CNT + 1))
  656. ${CROSS_COMPILE}size ${BUILD_DIR}/u-boot \
  657. | tee -a ${LOG_DIR}/$target.MAKELOG
  658. }
  659. build_targets() {
  660. for t in "$@" ; do
  661. # If a LIST_xxx var exists, use it. But avoid variable
  662. # expansion in the eval when a board name contains certain
  663. # characters that the shell interprets.
  664. case ${t} in
  665. *[-+=]*) list= ;;
  666. *) list=$(eval echo '${LIST_'$t'}') ;;
  667. esac
  668. if [ -n "${list}" ] ; then
  669. build_targets ${list}
  670. else
  671. build_target ${t}
  672. fi
  673. done
  674. }
  675. #-----------------------------------------------------------------------
  676. print_stats() {
  677. echo ""
  678. echo "--------------------- SUMMARY ----------------------------"
  679. echo "Boards compiled: ${TOTAL_CNT}"
  680. if [ ${ERR_CNT} -gt 0 ] ; then
  681. echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )"
  682. fi
  683. echo "----------------------------------------------------------"
  684. exit $RC
  685. }
  686. #-----------------------------------------------------------------------
  687. #----- for now, just run PowerPC by default -----
  688. [ $# = 0 ] && set -- powerpc
  689. build_targets "$@"