| # 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-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}" do-flex |
| Else If "{BuildTarget}" =~ /all-binutils/ |
| "{ThisScript}" all-libiberty |
| "{ThisScript}" all-bfd |
| "{ThisScript}" all-opcodes |
| "{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-gas |
| "{ThisScript}" all-binutils |
| "{ThisScript}" all-ld |
| "{ThisScript}" do-gcc |
| Else If "{BuildTarget}" =~ /all-gdb/ |
| "{ThisScript}" all-libiberty |
| "{ThisScript}" all-bfd |
| "{ThisScript}" all-opcodes |
| "{ThisScript}" do-gdb |
| Else If "{BuildTarget}" =~ /all-grez/ |
| "{ThisScript}" all-libiberty |
| "{ThisScript}" all-bfd |
| "{ThisScript}" do-grez |
| Else If "{BuildTarget}" =~ /all-ld/ |
| "{ThisScript}" all-libiberty |
| "{ThisScript}" all-bfd |
| "{ThisScript}" all-opcodes |
| "{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: |
| :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-only-top |
| "{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-top |
| "{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 If "{BuildTarget}" =~ /install-only-top/ |
| NewFolderRecursive "{prefix}" |
| If "{prefix}" != "`Directory`" |
| Duplicate -y 'Read Me for MPW' "{prefix}"'Read Me for MPW' |
| Duplicate -y Install "{prefix}"Install |
| End If |
| Else |
| Echo {BuildTarget} not understood, ignoring |
| End If |
| |
| SetDirectory "{savedir}" |