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