| 1 | # Top-level script fragment to build everything for MPW.
 | 
|---|
| 2 | 
 | 
|---|
| 3 | Set savedir "`Directory`"
 | 
|---|
| 4 | 
 | 
|---|
| 5 | #Set Echo 1
 | 
|---|
| 6 | 
 | 
|---|
| 7 | Set ThisScript "{0}"
 | 
|---|
| 8 | 
 | 
|---|
| 9 | Set objdir ":"
 | 
|---|
| 10 | 
 | 
|---|
| 11 | Set verify 0
 | 
|---|
| 12 | 
 | 
|---|
| 13 | Set BuildTarget "none"
 | 
|---|
| 14 | 
 | 
|---|
| 15 | # Parse arguments.
 | 
|---|
| 16 | 
 | 
|---|
| 17 | Loop
 | 
|---|
| 18 |         Break If {#} == 0
 | 
|---|
| 19 |                 If "{BuildTarget}" =~ /none/
 | 
|---|
| 20 |                         Set BuildTarget "{1}"
 | 
|---|
| 21 |                 Else
 | 
|---|
| 22 |                         Echo Only one build target allowed, ignoring "{1}"
 | 
|---|
| 23 |                 End If
 | 
|---|
| 24 |         Shift 1
 | 
|---|
| 25 | End Loop
 | 
|---|
| 26 | 
 | 
|---|
| 27 | If "{BuildTarget}" =~ /none/
 | 
|---|
| 28 |         Set BuildTarget "all"
 | 
|---|
| 29 | End If
 | 
|---|
| 30 | 
 | 
|---|
| 31 | If {verify} == 1
 | 
|---|
| 32 |         Echo "#" Doing "{ThisScript}" "{BuildTarget}" in "`Directory`" ... 
 | 
|---|
| 33 | End If
 | 
|---|
| 34 | 
 | 
|---|
| 35 | Set ranmake 0
 | 
|---|
| 36 | 
 | 
|---|
| 37 | If "`Exists Makefile`" != ""
 | 
|---|
| 38 |         Echo "Set Echo 1" >{BuildTarget}.makeout
 | 
|---|
| 39 |         Make -f Makefile {BuildTarget} >>{BuildTarget}.makeout
 | 
|---|
| 40 |         {BuildTarget}.makeout
 | 
|---|
| 41 |         Delete {BuildTarget}.makeout
 | 
|---|
| 42 |         Set ranmake 1
 | 
|---|
| 43 | End If
 | 
|---|
| 44 | 
 | 
|---|
| 45 | If "`Exists Makefile.PPC`" != ""
 | 
|---|
| 46 |         Echo "Set Echo 1" >{BuildTarget}.makeout.ppc
 | 
|---|
| 47 |         Make -f Makefile.PPC {BuildTarget} >>{BuildTarget}.makeout.ppc
 | 
|---|
| 48 |         {BuildTarget}.makeout.ppc
 | 
|---|
| 49 |         Delete {BuildTarget}.makeout.ppc
 | 
|---|
| 50 |         Set ranmake 1
 | 
|---|
| 51 | End If
 | 
|---|
| 52 | 
 | 
|---|
| 53 | If {ranmake} == 1
 | 
|---|
| 54 |         Exit
 | 
|---|
| 55 | End If
 | 
|---|
| 56 | 
 | 
|---|
| 57 | # Dispatch on various pseudo-targets.
 | 
|---|
| 58 | 
 | 
|---|
| 59 | If "{BuildTarget}" =~ /all/
 | 
|---|
| 60 |         Echo Started `Date`
 | 
|---|
| 61 |         "{ThisScript}" all-gcc
 | 
|---|
| 62 |         "{ThisScript}" all-gdb
 | 
|---|
| 63 |         Echo Finished `Date`
 | 
|---|
| 64 | Else If "{BuildTarget}" =~ /all-libiberty/
 | 
|---|
| 65 |         "{ThisScript}" do-libiberty
 | 
|---|
| 66 | Else If "{BuildTarget}" =~ /all-bfd/
 | 
|---|
| 67 |         "{ThisScript}" do-bfd
 | 
|---|
| 68 | Else If "{BuildTarget}" =~ /all-opcodes/
 | 
|---|
| 69 |         "{ThisScript}" do-opcodes
 | 
|---|
| 70 | Else If "{BuildTarget}" =~ /all-byacc/
 | 
|---|
| 71 |         "{ThisScript}" do-byacc
 | 
|---|
| 72 | Else If "{BuildTarget}" =~ /all-flex/
 | 
|---|
| 73 |         "{ThisScript}" all-libiberty
 | 
|---|
| 74 |         "{ThisScript}" do-flex
 | 
|---|
| 75 | Else If "{BuildTarget}" =~ /all-binutils/
 | 
|---|
| 76 |         "{ThisScript}" all-libiberty
 | 
|---|
| 77 |         "{ThisScript}" all-bfd
 | 
|---|
| 78 |         "{ThisScript}" all-opcodes
 | 
|---|
| 79 |         "{ThisScript}" do-binutils
 | 
|---|
| 80 | Else If "{BuildTarget}" =~ /all-gas/
 | 
|---|
| 81 |         "{ThisScript}" all-libiberty
 | 
|---|
| 82 |         "{ThisScript}" all-bfd
 | 
|---|
| 83 |         "{ThisScript}" all-opcodes
 | 
|---|
| 84 |         "{ThisScript}" do-gas
 | 
|---|
| 85 | Else If "{BuildTarget}" =~ /all-gcc/
 | 
|---|
| 86 |         "{ThisScript}" all-libiberty
 | 
|---|
| 87 |         "{ThisScript}" all-gas
 | 
|---|
| 88 |         "{ThisScript}" all-binutils
 | 
|---|
| 89 |         "{ThisScript}" all-ld
 | 
|---|
| 90 |         "{ThisScript}" do-gcc
 | 
|---|
| 91 | Else If "{BuildTarget}" =~ /all-gdb/
 | 
|---|
| 92 |         "{ThisScript}" all-libiberty
 | 
|---|
| 93 |         "{ThisScript}" all-bfd
 | 
|---|
| 94 |         "{ThisScript}" all-opcodes
 | 
|---|
| 95 |         "{ThisScript}" do-gdb
 | 
|---|
| 96 | Else If "{BuildTarget}" =~ /all-grez/
 | 
|---|
| 97 |         "{ThisScript}" all-libiberty
 | 
|---|
| 98 |         "{ThisScript}" all-bfd
 | 
|---|
| 99 |         "{ThisScript}" do-grez
 | 
|---|
| 100 | Else If "{BuildTarget}" =~ /all-ld/
 | 
|---|
| 101 |         "{ThisScript}" all-libiberty
 | 
|---|
| 102 |         "{ThisScript}" all-bfd
 | 
|---|
| 103 |         "{ThisScript}" all-opcodes
 | 
|---|
| 104 |         "{ThisScript}" do-ld
 | 
|---|
| 105 | Else If "{BuildTarget}" =~ /do-byacc/
 | 
|---|
| 106 |         SetDirectory :byacc:
 | 
|---|
| 107 |         ::mpw-build all
 | 
|---|
| 108 | Else If "{BuildTarget}" =~ /do-flex/
 | 
|---|
| 109 |         SetDirectory :flex:
 | 
|---|
| 110 |         ::mpw-build _bootstrap
 | 
|---|
| 111 |         ::mpw-build all
 | 
|---|
| 112 | Else If "{BuildTarget}" =~ /do-bfd/
 | 
|---|
| 113 |         SetDirectory :bfd:
 | 
|---|
| 114 |         ::mpw-build all
 | 
|---|
| 115 | Else If "{BuildTarget}" =~ /do-libiberty/
 | 
|---|
| 116 |         SetDirectory :libiberty:
 | 
|---|
| 117 |         ::mpw-build all
 | 
|---|
| 118 | Else If "{BuildTarget}" =~ /do-opcodes/
 | 
|---|
| 119 |         SetDirectory :opcodes:
 | 
|---|
| 120 |         ::mpw-build all
 | 
|---|
| 121 | Else If "{BuildTarget}" =~ /do-binutils/
 | 
|---|
| 122 |         SetDirectory :binutils:
 | 
|---|
| 123 |         ::mpw-build stamps
 | 
|---|
| 124 |         ::mpw-build all
 | 
|---|
| 125 | Else If "{BuildTarget}" =~ /do-gas/
 | 
|---|
| 126 |         SetDirectory :gas:
 | 
|---|
| 127 |         ::mpw-build stamps
 | 
|---|
| 128 |         ::mpw-build all
 | 
|---|
| 129 | Else If "{BuildTarget}" =~ /do-gcc/
 | 
|---|
| 130 |         SetDirectory :gcc:
 | 
|---|
| 131 |         :mpw-build all
 | 
|---|
| 132 | Else If "{BuildTarget}" =~ /do-gdb/
 | 
|---|
| 133 |         SetDirectory :gdb:
 | 
|---|
| 134 |         ::mpw-build all
 | 
|---|
| 135 | Else If "{BuildTarget}" =~ /do-grez/
 | 
|---|
| 136 |         SetDirectory :grez:
 | 
|---|
| 137 |         ::mpw-build all
 | 
|---|
| 138 | Else If "{BuildTarget}" =~ /do-ld/
 | 
|---|
| 139 |         SetDirectory :ld:
 | 
|---|
| 140 |         ::mpw-build all
 | 
|---|
| 141 | Else If "{BuildTarget}" =~ /do-newlib/
 | 
|---|
| 142 |         SetDirectory :newlib:
 | 
|---|
| 143 |         ::mpw-build all
 | 
|---|
| 144 | Else If "{BuildTarget}" =~ /install/
 | 
|---|
| 145 |         "{ThisScript}" install-only-top
 | 
|---|
| 146 |         "{ThisScript}" install-binutils
 | 
|---|
| 147 |         "{ThisScript}" install-gas
 | 
|---|
| 148 |         "{ThisScript}" install-gcc
 | 
|---|
| 149 |         "{ThisScript}" install-ld
 | 
|---|
| 150 |         "{ThisScript}" install-gdb
 | 
|---|
| 151 | Else If "{BuildTarget}" =~ /install-binutils/
 | 
|---|
| 152 |         SetDirectory :binutils:
 | 
|---|
| 153 |         ::mpw-build install
 | 
|---|
| 154 | Else If "{BuildTarget}" =~ /install-gas/
 | 
|---|
| 155 |         SetDirectory :gas:
 | 
|---|
| 156 |         ::mpw-build install
 | 
|---|
| 157 | Else If "{BuildTarget}" =~ /install-gcc/
 | 
|---|
| 158 |         SetDirectory :gcc:
 | 
|---|
| 159 |         :mpw-build install
 | 
|---|
| 160 | Else If "{BuildTarget}" =~ /install-gdb/
 | 
|---|
| 161 |         SetDirectory :gdb:
 | 
|---|
| 162 |         ::mpw-build install
 | 
|---|
| 163 | Else If "{BuildTarget}" =~ /install-grez/
 | 
|---|
| 164 |         SetDirectory :grez:
 | 
|---|
| 165 |         ::mpw-build install
 | 
|---|
| 166 | Else If "{BuildTarget}" =~ /install-ld/
 | 
|---|
| 167 |         SetDirectory :ld:
 | 
|---|
| 168 |         ::mpw-build install
 | 
|---|
| 169 | Else If "{BuildTarget}" =~ /install-only/
 | 
|---|
| 170 |         "{ThisScript}" install-only-top
 | 
|---|
| 171 |         "{ThisScript}" install-only-binutils
 | 
|---|
| 172 |         "{ThisScript}" install-only-gas
 | 
|---|
| 173 |         "{ThisScript}" install-only-gcc
 | 
|---|
| 174 |         "{ThisScript}" install-only-gdb
 | 
|---|
| 175 |         "{ThisScript}" install-only-ld
 | 
|---|
| 176 | Else If "{BuildTarget}" =~ /install-only-binutils/
 | 
|---|
| 177 |         SetDirectory :binutils:
 | 
|---|
| 178 |         ::mpw-build install-only
 | 
|---|
| 179 | Else If "{BuildTarget}" =~ /install-only-gas/
 | 
|---|
| 180 |         SetDirectory :gas:
 | 
|---|
| 181 |         ::mpw-build install-only
 | 
|---|
| 182 | Else If "{BuildTarget}" =~ /install-only-gcc/
 | 
|---|
| 183 |         SetDirectory :gcc:
 | 
|---|
| 184 |         :mpw-build install-only
 | 
|---|
| 185 | Else If "{BuildTarget}" =~ /install-only-gdb/
 | 
|---|
| 186 |         SetDirectory :gdb:
 | 
|---|
| 187 |         ::mpw-build install-only
 | 
|---|
| 188 | Else If "{BuildTarget}" =~ /install-only-grez/
 | 
|---|
| 189 |         SetDirectory :grez:
 | 
|---|
| 190 |         ::mpw-build install-only
 | 
|---|
| 191 | Else If "{BuildTarget}" =~ /install-only-ld/
 | 
|---|
| 192 |         SetDirectory :ld:
 | 
|---|
| 193 |         ::mpw-build install-only
 | 
|---|
| 194 | Else If "{BuildTarget}" =~ /install-only-top/
 | 
|---|
| 195 |         NewFolderRecursive "{prefix}"
 | 
|---|
| 196 |         If "{prefix}" != "`Directory`"
 | 
|---|
| 197 |                 Duplicate -y 'Read Me for MPW' "{prefix}"'Read Me for MPW'
 | 
|---|
| 198 |                 Duplicate -y Install "{prefix}"Install
 | 
|---|
| 199 |         End If
 | 
|---|
| 200 | Else
 | 
|---|
| 201 |         Echo {BuildTarget} not understood, ignoring
 | 
|---|
| 202 | End If
 | 
|---|
| 203 | 
 | 
|---|
| 204 | SetDirectory "{savedir}"
 | 
|---|