# Top-level script fragment to build everything for MPW. Set savedir "`Directory`" #Set Echo 1 Set ThisScript "{0}" Set objdir ":" Set verify 0 Set BuildTarget "none" # Parse arguments. Loop Break If {#} == 0 If "{BuildTarget}" =~ /none/ Set BuildTarget "{1}" Else Echo Only one build target allowed, ignoring "{1}" End If Shift 1 End Loop If "{BuildTarget}" =~ /none/ Set BuildTarget "all" End If If {verify} == 1 Echo "#" Doing "{ThisScript}" "{BuildTarget}" in "`Directory`" ... End If Set ranmake 0 If "`Exists Makefile`" != "" Echo "Set Echo 1" >{BuildTarget}.makeout Make -f Makefile {BuildTarget} >>{BuildTarget}.makeout {BuildTarget}.makeout Delete {BuildTarget}.makeout Set ranmake 1 End If If "`Exists Makefile.PPC`" != "" Echo "Set Echo 1" >{BuildTarget}.makeout.ppc Make -f Makefile.PPC {BuildTarget} >>{BuildTarget}.makeout.ppc {BuildTarget}.makeout.ppc Delete {BuildTarget}.makeout.ppc Set ranmake 1 End If If {ranmake} == 1 Exit End If # Dispatch on various pseudo-targets. If "{BuildTarget}" =~ /all/ Echo Started `Date` "{ThisScript}" all-gcc "{ThisScript}" all-ld "{ThisScript}" all-gdb Echo Finished `Date` Else If "{BuildTarget}" =~ /all-libiberty/ "{ThisScript}" do-libiberty Else If "{BuildTarget}" =~ /all-bfd/ "{ThisScript}" do-bfd Else If "{BuildTarget}" =~ /all-opcodes/ "{ThisScript}" do-opcodes Else If "{BuildTarget}" =~ /all-byacc/ "{ThisScript}" do-byacc Else If "{BuildTarget}" =~ /all-flex/ "{ThisScript}" all-libiberty "{ThisScript}" all-byacc "{ThisScript}" do-flex Else If "{BuildTarget}" =~ /all-binutils/ "{ThisScript}" all-libiberty "{ThisScript}" all-bfd "{ThisScript}" all-opcodes "{ThisScript}" all-byacc "{ThisScript}" all-flex "{ThisScript}" do-binutils Else If "{BuildTarget}" =~ /all-gas/ "{ThisScript}" all-libiberty "{ThisScript}" all-bfd "{ThisScript}" all-opcodes "{ThisScript}" do-gas Else If "{BuildTarget}" =~ /all-gcc/ "{ThisScript}" all-libiberty "{ThisScript}" all-byacc "{ThisScript}" all-gas "{ThisScript}" all-binutils "{ThisScript}" do-gcc Else If "{BuildTarget}" =~ /all-gdb/ "{ThisScript}" all-libiberty "{ThisScript}" all-bfd "{ThisScript}" all-opcodes "{ThisScript}" all-byacc "{ThisScript}" do-gdb Else If "{BuildTarget}" =~ /all-grez/ "{ThisScript}" all-libiberty "{ThisScript}" all-bfd "{ThisScript}" all-byacc "{ThisScript}" do-grez Else If "{BuildTarget}" =~ /all-ld/ "{ThisScript}" all-libiberty "{ThisScript}" all-bfd "{ThisScript}" all-opcodes "{ThisScript}" all-byacc "{ThisScript}" all-flex "{ThisScript}" do-ld Else If "{BuildTarget}" =~ /do-byacc/ SetDirectory :byacc: ::mpw-build all Else If "{BuildTarget}" =~ /do-flex/ SetDirectory :flex: ::mpw-build _bootstrap ::mpw-build all Else If "{BuildTarget}" =~ /do-bfd/ SetDirectory :bfd: ::mpw-build all Else If "{BuildTarget}" =~ /do-libiberty/ SetDirectory :libiberty: ::mpw-build all Else If "{BuildTarget}" =~ /do-opcodes/ SetDirectory :opcodes: ::mpw-build all Else If "{BuildTarget}" =~ /do-binutils/ SetDirectory :binutils: ::mpw-build stamps ::mpw-build all Else If "{BuildTarget}" =~ /do-gas/ SetDirectory :gas: ::mpw-build stamps ::mpw-build all Else If "{BuildTarget}" =~ /do-gcc/ SetDirectory :gcc: # Need separate step to build all the insn-... etc files. ::mpw-build stamps-h ::mpw-build stamps-c ::mpw-build all Else If "{BuildTarget}" =~ /do-gdb/ SetDirectory :gdb: ::mpw-build all Else If "{BuildTarget}" =~ /do-grez/ SetDirectory :grez: ::mpw-build all Else If "{BuildTarget}" =~ /do-ld/ SetDirectory :ld: ::mpw-build all Else If "{BuildTarget}" =~ /do-newlib/ SetDirectory :newlib: ::mpw-build all Else If "{BuildTarget}" =~ /install/ "{ThisScript}" install-binutils "{ThisScript}" install-gas "{ThisScript}" install-gcc "{ThisScript}" install-ld "{ThisScript}" install-gdb Else If "{BuildTarget}" =~ /install-binutils/ SetDirectory :binutils: ::mpw-build install Else If "{BuildTarget}" =~ /install-gas/ SetDirectory :gas: ::mpw-build install Else If "{BuildTarget}" =~ /install-gcc/ SetDirectory :gcc: ::mpw-build install Else If "{BuildTarget}" =~ /install-gdb/ SetDirectory :gdb: ::mpw-build install Else If "{BuildTarget}" =~ /install-grez/ SetDirectory :grez: ::mpw-build install Else If "{BuildTarget}" =~ /install-ld/ SetDirectory :ld: ::mpw-build install Else If "{BuildTarget}" =~ /install-only/ "{ThisScript}" install-only-binutils "{ThisScript}" install-only-gas "{ThisScript}" install-only-gcc "{ThisScript}" install-only-gdb "{ThisScript}" install-only-ld Else If "{BuildTarget}" =~ /install-only-binutils/ SetDirectory :binutils: ::mpw-build install-only Else If "{BuildTarget}" =~ /install-only-gas/ SetDirectory :gas: ::mpw-build install-only Else If "{BuildTarget}" =~ /install-only-gcc/ SetDirectory :gcc: ::mpw-build install-only Else If "{BuildTarget}" =~ /install-only-gdb/ SetDirectory :gdb: ::mpw-build install-only Else If "{BuildTarget}" =~ /install-only-grez/ SetDirectory :grez: ::mpw-build install-only Else If "{BuildTarget}" =~ /install-only-ld/ SetDirectory :ld: ::mpw-build install-only Else Echo {BuildTarget} not understood, ignoring End If SetDirectory "{savedir}"