blob: 86d9530fa3b564689219d3cb2ffde4fa08a93a28 [file] [log] [blame]
# 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}"