summaryrefslogtreecommitdiff
path: root/mpw-build.in
diff options
context:
space:
mode:
Diffstat (limited to 'mpw-build.in')
-rw-r--r--mpw-build.in204
1 files changed, 204 insertions, 0 deletions
diff --git a/mpw-build.in b/mpw-build.in
new file mode 100644
index 00000000000..86d9530fa3b
--- /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}"