MAKEALL: Add summary information
[kernel/u-boot.git] / MAKEALL
1 #!/bin/sh
2
3 # Print statistics when we exit
4 trap exit 1 2 3 15
5 trap print_stats 0
6
7 # Determine number of CPU cores if no default was set
8 : ${BUILD_NCPUS:="`getconf _NPROCESSORS_ONLN`"}
9
10 if [ "$BUILD_NCPUS" -gt 1 ]
11 then
12         JOBS=-j`expr "$BUILD_NCPUS" + 1`
13 else
14         JOBS=""
15 fi
16
17
18 if [ "${CROSS_COMPILE}" ] ; then
19         MAKE="make CROSS_COMPILE=${CROSS_COMPILE}"
20 else
21         MAKE=make
22 fi
23
24 if [ "${MAKEALL_LOGDIR}" ] ; then
25         LOG_DIR=${MAKEALL_LOGDIR}
26 else
27         LOG_DIR="LOG"
28 fi
29
30 if [ ! "${BUILD_DIR}" ] ; then
31         BUILD_DIR="."
32 fi
33
34 [ -d ${LOG_DIR} ] || mkdir ${LOG_DIR} || exit 1
35
36 LIST=""
37
38 # Keep track of the number of builds and errors
39 ERR_CNT=0
40 ERR_LIST=""
41 TOTAL_CNT=0
42
43 #########################################################################
44 ## MPC5xx Systems
45 #########################################################################
46
47 LIST_5xx="              \
48         cmi_mpc5xx      \
49 "
50
51 #########################################################################
52 ## MPC5xxx Systems
53 #########################################################################
54
55 LIST_5xxx="             \
56         BC3450          \
57         cm5200          \
58         cpci5200        \
59         digsy_mtc       \
60         EVAL5200        \
61         fo300           \
62         galaxy5200      \
63         icecube_5100    \
64         icecube_5200    \
65         inka4x0         \
66         lite5200b       \
67         mcc200          \
68         mecp5200        \
69         motionpro       \
70         munices         \
71         MVBC_P          \
72         o2dnt           \
73         pcm030          \
74         pf5200          \
75         PM520           \
76         TB5200          \
77         Total5100       \
78         Total5200       \
79         Total5200_Rev2  \
80         TQM5200         \
81         TQM5200_B       \
82         TQM5200S        \
83         v38b            \
84 "
85
86 #########################################################################
87 ## MPC512x Systems
88 #########################################################################
89
90 LIST_512x="             \
91         aria            \
92         mecp5123        \
93         mpc5121ads      \
94 "
95
96 #########################################################################
97 ## MPC8xx Systems
98 #########################################################################
99 LIST_8xx="              \
100         Adder87x        \
101         AdderII         \
102         ADS860          \
103         AMX860          \
104         c2mon           \
105         CCM             \
106         cogent_mpc8xx   \
107         ELPT860         \
108         EP88x           \
109         ESTEEM192E      \
110         ETX094          \
111         FADS823         \
112         FADS850SAR      \
113         FADS860T        \
114         FLAGADM         \
115         FPS850L         \
116         GEN860T         \
117         GEN860T_SC      \
118         GENIETV         \
119         GTH             \
120         hermes          \
121         IAD210          \
122         ICU862_100MHz   \
123         IP860           \
124         IVML24          \
125         IVML24_128      \
126         IVML24_256      \
127         IVMS8           \
128         IVMS8_128       \
129         IVMS8_256       \
130         KUP4K           \
131         KUP4X           \
132         LANTEC          \
133         lwmon           \
134         kmsupx4         \
135         MBX             \
136         MBX860T         \
137         mgsuvd          \
138         MHPC            \
139         MPC86xADS       \
140         MPC885ADS       \
141         NETPHONE        \
142         NETTA           \
143         NETTA2          \
144         NETTA_ISDN      \
145         NETVIA          \
146         NETVIA_V2       \
147         NX823           \
148         pcu_e           \
149         QS823           \
150         QS850           \
151         QS860T          \
152         quantum         \
153         R360MPI         \
154         RBC823          \
155         rmu             \
156         RPXClassic      \
157         RPXlite         \
158         RPXlite_DW      \
159         RRvision        \
160         SM850           \
161         spc1920         \
162         SPD823TS        \
163         svm_sc8xx       \
164         SXNI855T        \
165         TK885D          \
166         TOP860          \
167         TQM823L         \
168         TQM823L_LCD     \
169         TQM850L         \
170         TQM855L         \
171         TQM860L         \
172         TQM885D         \
173         uc100           \
174         v37             \
175 "
176
177 #########################################################################
178 ## PPC4xx Systems
179 #########################################################################
180
181 LIST_4xx="              \
182         acadia          \
183         acadia_nand     \
184         ADCIOP          \
185         alpr            \
186         AP1000          \
187         AR405           \
188         arches          \
189         ASH405          \
190         bamboo          \
191         bamboo_nand     \
192         bubinga         \
193         CANBT           \
194         canyonlands     \
195         canyonlands_nand \
196         CMS700          \
197         CPCI2DP         \
198         CPCI405         \
199         CPCI4052        \
200         CPCI405AB       \
201         CPCI405DT       \
202         CPCIISER4       \
203         CRAYL1          \
204         csb272          \
205         csb472          \
206         DASA_SIM        \
207         devconcenter    \
208         dlvision        \
209         DP405           \
210         DU405           \
211         DU440           \
212         ebony           \
213         ERIC            \
214         EXBITGEN        \
215         fx12mm          \
216         G2000           \
217         gdppc440etx     \
218         glacier         \
219         haleakala       \
220         haleakala_nand  \
221         hcu4            \
222         hcu5            \
223         HH405           \
224         HUB405          \
225         intip           \
226         JSE             \
227         KAREF           \
228         katmai          \
229         kilauea         \
230         kilauea_nand    \
231         korat           \
232         luan            \
233         lwmon5          \
234         makalu          \
235         mcu25           \
236         METROBOX        \
237         MIP405          \
238         MIP405T         \
239         ML2             \
240         ml300           \
241         ml507           \
242         ml507_flash     \
243         neo             \
244         ocotea          \
245         OCRTC           \
246         ORSG            \
247         p3p440          \
248         PCI405          \
249         pcs440ep        \
250         PIP405          \
251         PLU405          \
252         PMC405          \
253         PMC405DE        \
254         PMC440          \
255         PPChameleonEVB  \
256         quad100hd       \
257         rainier         \
258         redwood         \
259         sbc405          \
260         sc3             \
261         sequoia         \
262         sequoia_nand    \
263         taihu           \
264         taishan         \
265         v5fx30teval     \
266         v5fx30teval_flash \
267         VOH405          \
268         VOM405          \
269         W7OLMC          \
270         W7OLMG          \
271         walnut          \
272         WUH405          \
273         xilinx-ppc440-generic \
274         xilinx-ppc440-generic_flash \
275         XPEDITE1000     \
276         yellowstone     \
277         yosemite        \
278         yucca           \
279         zeus            \
280 "
281
282 #########################################################################
283 ## MPC8220 Systems
284 #########################################################################
285
286 LIST_8220="             \
287         Alaska8220      \
288         Yukon8220       \
289 "
290
291 #########################################################################
292 ## MPC824x Systems
293 #########################################################################
294
295 LIST_824x="             \
296         A3000           \
297         barco           \
298         BMW             \
299         CPC45           \
300         CU824           \
301         debris          \
302         eXalion         \
303         HIDDEN_DRAGON   \
304         IDS8247         \
305         linkstation_HGLAN       \
306         MOUSSE          \
307         MUSENKI         \
308         MVBLUE          \
309         OXC             \
310         PN62            \
311         Sandpoint8240   \
312         Sandpoint8245   \
313         sbc8240         \
314         SL8245          \
315         utx8245         \
316 "
317
318 #########################################################################
319 ## MPC8260 Systems (includes 8250, 8255 etc.)
320 #########################################################################
321
322 LIST_8260="             \
323         atc             \
324         cogent_mpc8260  \
325         CPU86           \
326         CPU87           \
327         ep8248          \
328         ep8260          \
329         ep82xxm         \
330         gw8260          \
331         hymod           \
332         IPHASE4539      \
333         ISPAN           \
334         mgcoge          \
335         MPC8260ADS      \
336         MPC8266ADS      \
337         MPC8272ADS      \
338         PM826           \
339         PM828           \
340         ppmc8260        \
341         Rattler8248     \
342         RPXsuper        \
343         rsdproto        \
344         sacsng          \
345         sbc8260         \
346         SCM             \
347         TQM8260_AC      \
348         TQM8260_AD      \
349         TQM8260_AE      \
350         TQM8272         \
351         ZPC1900         \
352 "
353
354 #########################################################################
355 ## MPC83xx Systems (includes 8349, etc.)
356 #########################################################################
357
358 LIST_83xx="             \
359         kmeter1         \
360         MPC8313ERDB_33  \
361         MPC8313ERDB_NAND_66     \
362         MPC8315ERDB     \
363         MPC8323ERDB     \
364         MPC832XEMDS     \
365         MPC832XEMDS_ATM \
366         MPC8349EMDS     \
367         MPC8349ITX      \
368         MPC8349ITXGP    \
369         MPC8360EMDS     \
370         MPC8360EMDS_ATM \
371         MPC8360ERDK_33  \
372         MPC8360ERDK_66  \
373         MPC837XEMDS     \
374         MPC837XERDB     \
375         MVBLM7          \
376         sbc8349         \
377         SIMPC8313_LP    \
378         TQM834x         \
379         vme8349         \
380 "
381
382
383 #########################################################################
384 ## MPC85xx Systems (includes 8540, 8560 etc.)
385 #########################################################################
386
387 LIST_85xx="             \
388         ATUM8548        \
389         MPC8536DS       \
390         MPC8540ADS      \
391         MPC8540EVAL     \
392         MPC8541CDS      \
393         MPC8544DS       \
394         MPC8548CDS      \
395         MPC8555CDS      \
396         MPC8560ADS      \
397         MPC8568MDS      \
398         MPC8569MDS      \
399         MPC8572DS       \
400         MPC8572DS_36BIT \
401         P2020DS         \
402         P2020DS_36BIT   \
403         P1011RDB        \
404         P1020RDB        \
405         P2010RDB        \
406         P2020RDB        \
407         PM854           \
408         PM856           \
409         sbc8540         \
410         sbc8548         \
411         sbc8560         \
412         socrates        \
413         stxgp3          \
414         stxssa          \
415         TQM8540         \
416         TQM8541         \
417         TQM8548         \
418         TQM8548_AG      \
419         TQM8548_BE      \
420         TQM8555         \
421         TQM8560         \
422         XPEDITE5200     \
423         XPEDITE5370     \
424 "
425
426 #########################################################################
427 ## MPC86xx Systems
428 #########################################################################
429
430 LIST_86xx="             \
431         MPC8610HPCD     \
432         MPC8641HPCN     \
433         sbc8641d        \
434         XPEDITE5170     \
435 "
436
437 #########################################################################
438 ## 74xx/7xx Systems
439 #########################################################################
440
441 LIST_74xx="             \
442         DB64360         \
443         DB64460         \
444         EVB64260        \
445         mpc7448hpc2     \
446         P3G4            \
447         p3m7448         \
448         PCIPPC2         \
449         PCIPPC6         \
450         ZUMA            \
451 "
452
453 LIST_7xx="              \
454         BAB7xx          \
455         CPCI750         \
456         ELPPC           \
457         p3m750          \
458         ppmc7xx         \
459 "
460
461 #########################################################################
462 ## PowerPC groups
463 #########################################################################
464
465 LIST_TSEC="             \
466         ${LIST_83xx}    \
467         ${LIST_85xx}    \
468         ${LIST_86xx}    \
469 "
470
471 LIST_ppc="              \
472         ${LIST_5xx}     \
473         ${LIST_512x}    \
474         ${LIST_5xxx}    \
475         ${LIST_8xx}     \
476         ${LIST_8220}    \
477         ${LIST_824x}    \
478         ${LIST_8260}    \
479         ${LIST_83xx}    \
480         ${LIST_85xx}    \
481         ${LIST_86xx}    \
482         ${LIST_4xx}     \
483         ${LIST_74xx}    \
484         ${LIST_7xx}     \
485 "
486
487 #########################################################################
488 ## StrongARM Systems
489 #########################################################################
490
491 LIST_SA="               \
492         assabet         \
493         dnp1110         \
494         gcplus          \
495         lart            \
496         shannon         \
497 "
498
499 #########################################################################
500 ## ARM7 Systems
501 #########################################################################
502
503 LIST_ARM7="             \
504         ap7             \
505         ap720t          \
506         armadillo       \
507         B2              \
508         ep7312          \
509         evb4510         \
510         impa7           \
511         integratorap    \
512         lpc2292sodimm   \
513         modnet50        \
514         SMN42           \
515 "
516
517 #########################################################################
518 ## ARM9 Systems
519 #########################################################################
520
521 LIST_ARM9="                     \
522         ap920t                  \
523         ap922_XA10              \
524         ap926ejs                \
525         ap946es                 \
526         ap966                   \
527         cp920t                  \
528         cp922_XA10              \
529         cp926ejs                \
530         cp946es                 \
531         cp966                   \
532         imx27lite               \
533         lpd7a400                \
534         mv88f6281gtw_ge         \
535         mx1ads                  \
536         mx1fs2                  \
537         netstar                 \
538         nhk8815                 \
539         nhk8815_onenand         \
540         omap1510inn             \
541         omap1610h2              \
542         omap1610inn             \
543         omap5912osk             \
544         omap730p2               \
545         rd6281a                 \
546         sbc2410x                \
547         scb9328                 \
548         sheevaplug              \
549         smdk2400                \
550         smdk2410                \
551         trab                    \
552         VCMA9                   \
553         versatile               \
554         versatileab             \
555         versatilepb             \
556         voiceblue               \
557         davinci_dvevm           \
558         davinci_schmoogie       \
559         davinci_sffsdr          \
560         davinci_sonata          \
561         davinci_dm355evm        \
562 "
563
564 #########################################################################
565 ## ARM10 Systems
566 #########################################################################
567 LIST_ARM10="            \
568         integratorcp    \
569         cp1026          \
570 "
571
572 #########################################################################
573 ## ARM11 Systems
574 #########################################################################
575 LIST_ARM11="                    \
576         cp1136                  \
577         omap2420h4              \
578         apollon                 \
579         imx31_litekit           \
580         imx31_phycore           \
581         imx31_phycore_eet       \
582         mx31ads                 \
583         mx31pdk                 \
584         mx31pdk_nand            \
585         qong                    \
586         smdk6400                \
587 "
588
589 #########################################################################
590 ## ARM Cortex-A8 Systems
591 #########################################################################
592 LIST_ARM_CORTEX_A8="            \
593         devkit8000              \
594         omap3_beagle            \
595         omap3_overo             \
596         omap3_evm               \
597         omap3_pandora           \
598         omap3_zoom1             \
599         omap3_zoom2             \
600 "
601
602 #########################################################################
603 ## AT91 Systems
604 #########################################################################
605
606 LIST_at91="                     \
607         afeb9260                \
608         at91cap9adk             \
609         at91rm9200dk            \
610         at91rm9200ek            \
611         at91sam9260ek           \
612         at91sam9261ek           \
613         at91sam9263ek           \
614         at91sam9g10ek   \
615         at91sam9g20ek           \
616         at91sam9m10g45ek        \
617         at91sam9rlek            \
618         cmc_pu2                 \
619         csb637                  \
620         kb9202                  \
621         meesc                   \
622         mp2usb                  \
623         m501sk                  \
624         pm9261                  \
625         pm9263                  \
626         SBC35_A9G20             \
627         TNY_A9260               \
628         TNY_A9G20               \
629 "
630
631 #########################################################################
632 ## Xscale Systems
633 #########################################################################
634
635 LIST_pxa="              \
636         cerf250         \
637         cradle          \
638         csb226          \
639         delta           \
640         innokom         \
641         lubbock         \
642         pleb2           \
643         polaris         \
644         pxa255_idp      \
645         trizepsiv       \
646         wepep250        \
647         xaeniax         \
648         xm250           \
649         xsengine        \
650         zylonite        \
651 "
652
653 LIST_ixp="              \
654         actux1          \
655         actux2          \
656         actux3          \
657         actux4          \
658         ixdp425         \
659         ixdpg425        \
660         pdnb3           \
661         scpu            \
662 "
663
664 #########################################################################
665 ## ARM groups
666 #########################################################################
667
668 LIST_arm="                      \
669         ${LIST_SA}              \
670         ${LIST_ARM7}            \
671         ${LIST_ARM9}            \
672         ${LIST_ARM10}           \
673         ${LIST_ARM11}           \
674         ${LIST_ARM_CORTEX_A8}   \
675         ${LIST_at91}            \
676         ${LIST_pxa}             \
677         ${LIST_ixp}             \
678 "
679
680 #########################################################################
681 ## MIPS Systems         (default = big endian)
682 #########################################################################
683
684 LIST_mips4kc="          \
685         incaip          \
686         qemu_mips       \
687         vct_platinum    \
688         vct_platinum_small      \
689         vct_platinum_onenand    \
690         vct_platinum_onenand_small      \
691         vct_platinumavc \
692         vct_platinumavc_small   \
693         vct_platinumavc_onenand \
694         vct_platinumavc_onenand_small   \
695         vct_premium     \
696         vct_premium_small       \
697         vct_premium_onenand     \
698         vct_premium_onenand_small       \
699 "
700
701 LIST_mips5kc="          \
702         purple          \
703 "
704
705 LIST_au1xx0="           \
706         dbau1000        \
707         dbau1100        \
708         dbau1500        \
709         dbau1550        \
710         dbau1550_el     \
711         gth2            \
712 "
713
714 LIST_mips="             \
715         ${LIST_mips4kc} \
716         ${LIST_mips5kc} \
717         ${LIST_au1xx0}  \
718 "
719
720 #########################################################################
721 ## MIPS Systems         (little endian)
722 #########################################################################
723
724 LIST_mips4kc_el=""
725
726 LIST_mips5kc_el=""
727
728 LIST_au1xx0_el="        \
729         dbau1550_el     \
730         pb1000          \
731 "
732
733 LIST_mips_el="                  \
734         ${LIST_mips4kc_el}      \
735         ${LIST_mips5kc_el}      \
736         ${LIST_au1xx0_el}       \
737 "
738
739 #########################################################################
740 ## i386 Systems
741 #########################################################################
742
743 LIST_I486="             \
744         sc520_cdp       \
745         sc520_eNET      \
746         sc520_spunk     \
747         sc520_spunk_rel \
748 "
749
750 LIST_x86="              \
751         ${LIST_I486}    \
752 "
753
754 #########################################################################
755 ## NIOS Systems
756 #########################################################################
757
758 LIST_nios="                     \
759         ADNPESC1                \
760         ADNPESC1_base_32        \
761         ADNPESC1_DNPEVA2_base_32\
762         DK1C20                  \
763         DK1C20_standard_32      \
764         DK1S10                  \
765         DK1S10_standard_32      \
766         DK1S10_mtx_ldk_20       \
767 "
768
769 #########################################################################
770 ## Nios-II Systems
771 #########################################################################
772
773 LIST_nios2="            \
774         EP1C20          \
775         EP1S10          \
776         EP1S40          \
777         PCI5441         \
778         PK1C20          \
779 "
780
781 #########################################################################
782 ## MicroBlaze Systems
783 #########################################################################
784
785 LIST_microblaze="                       \
786         microblaze-generic              \
787 "
788
789 #########################################################################
790 ## ColdFire Systems
791 #########################################################################
792
793 LIST_coldfire="                 \
794         cobra5272               \
795         EB+MCF-EV123            \
796         EB+MCF-EV123_internal   \
797         idmr                    \
798         M5208EVBE               \
799         M52277EVB               \
800         M5235EVB                \
801         M5249EVB                \
802         M5253DEMO               \
803         M5253EVBE               \
804         M5271EVB                \
805         M5272C3                 \
806         M5275EVB                \
807         M5282EVB                \
808         M53017EVB               \
809         M5329AFEE               \
810         M5373EVB                \
811         M54451EVB               \
812         M54455EVB               \
813         M5475AFE                \
814         M5485AFE                \
815         TASREG                  \
816 "
817
818 #########################################################################
819 ## AVR32 Systems
820 #########################################################################
821
822 LIST_avr32="            \
823         atstk1002       \
824         atstk1003       \
825         atstk1004       \
826         atstk1006       \
827         atngw100        \
828         favr-32-ezkit   \
829         hammerhead      \
830         mimc200         \
831 "
832
833 #########################################################################
834 ## Blackfin Systems
835 #########################################################################
836
837 LIST_blackfin="         \
838         bf518f-ezbrd    \
839         bf526-ezbrd     \
840         bf527-ezkit     \
841         bf533-ezkit     \
842         bf533-stamp     \
843         bf537-minotaur  \
844         bf537-pnav      \
845         bf537-srv1      \
846         bf537-stamp     \
847         bf538f-ezkit    \
848         bf548-ezkit     \
849         bf561-ezkit     \
850         blackstamp      \
851         cm-bf527        \
852         cm-bf533        \
853         cm-bf537e       \
854         cm-bf537u       \
855         cm-bf548        \
856         cm-bf561        \
857         ibf-dsp561      \
858         tcm-bf537       \
859 "
860
861 #########################################################################
862 ## SH Systems
863 #########################################################################
864
865 LIST_sh2="              \
866         rsk7203         \
867 "
868 LIST_sh3="              \
869         mpr2            \
870         ms7720se        \
871 "
872
873 LIST_sh4="              \
874         ms7750se        \
875         ms7722se        \
876         MigoR           \
877         r7780mp         \
878         r2dplus         \
879         sh7763rdp       \
880         sh7785lcr       \
881         ap325rxa        \
882         espt            \
883 "
884
885 LIST_sh="               \
886         ${LIST_sh2}     \
887         ${LIST_sh3}     \
888         ${LIST_sh4}     \
889 "
890
891 #########################################################################
892 ## SPARC Systems
893 #########################################################################
894
895 LIST_sparc="gr_xc3s_1500        gr_cpci_ax2000  gr_ep2s60       grsim   grsim_leon2"
896
897 #-----------------------------------------------------------------------
898
899 #----- for now, just run PPC by default -----
900 [ $# = 0 ] && set $LIST_ppc
901
902 #-----------------------------------------------------------------------
903
904 build_target() {
905         target=$1
906
907         ${MAKE} distclean >/dev/null
908         ${MAKE} ${target}_config
909
910         ${MAKE} ${JOBS} all 2>&1 >${LOG_DIR}/$target.MAKELOG \
911                                 | tee ${LOG_DIR}/$target.ERR
912         if [ -s ${LOG_DIR}/$target.ERR ] ; then
913                 ERR_CNT=$((ERR_CNT + 1))
914                 ERR_LIST="${ERR_LIST} $target"
915         else
916                 rm ${LOG_DIR}/$target.ERR
917         fi
918
919         TOTAL_CNT=$((TOTAL_CNT + 1))
920
921         ${CROSS_COMPILE}size ${BUILD_DIR}/u-boot \
922                                 | tee -a ${LOG_DIR}/$target.MAKELOG
923 }
924
925 #-----------------------------------------------------------------------
926
927 print_stats() {
928         echo ""
929         echo "--------------------- SUMMARY ----------------------------"
930         echo "Boards compiled: ${TOTAL_CNT}"
931         if [ ${ERR_CNT} -gt 0 ] ; then
932                 echo "Boards with warnings or errors: ${ERR_CNT} (${ERR_LIST} )"
933         fi
934         echo "----------------------------------------------------------"
935 }
936
937 #-----------------------------------------------------------------------
938 for arg in $@
939 do
940         case "$arg" in
941         arm|SA|ARM7|ARM9|ARM10|ARM11|ARM_CORTEX_A8|at91|ixp|pxa \
942         |avr32 \
943         |blackfin \
944         |coldfire \
945         |microblaze \
946         |mips|mips_el \
947         |nios|nios2 \
948         |ppc|5xx|5xxx|512x|8xx|8220|824x|8260|83xx|85xx|86xx|4xx|7xx|74xx|TSEC \
949         |sh|sh2|sh3|sh4 \
950         |sparc \
951         |x86|I486 \
952         )
953                         for target in `eval echo '$LIST_'${arg}`
954                         do
955                                 build_target ${target}
956                         done
957                         ;;
958         *)              build_target ${arg}
959                         ;;
960         esac
961 done