205 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
# 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}"
 |