diff options
Diffstat (limited to 'mpw-build.in')
-rw-r--r-- | mpw-build.in | 204 |
1 files changed, 204 insertions, 0 deletions
diff --git a/mpw-build.in b/mpw-build.in new file mode 100644 index 0000000..86d9530 --- /dev/null +++ b/mpw-build.in @@ -0,0 +1,204 @@ +# 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}" |