#--- Amiga PowerUP---
# SAS Makefile

#####################################################################
#
# Options
#

IPATH		=	IDIR=/include/ IDIR=PowerUP:src/include IDIR=include:
GCCIPATH	=	-IPowerUP:src/include -Iinclude: -I../include/
ASMFLAGS	=	-sa -w2- -wo- -M4000 -x -d$(CODETYPE)=1 -dEXEC_68060=0
APATH		=	-iasm: -i/include -iinclude/

#####################################################################
#
# Machine Configuration
#


ASM		=	basm $(ASMFLAGS) $(APATH)

DEBUG		=	DEBUG=LINE
#OPTFLAGS	=	OPTIMIZEPEEP OPTIMIZE
OPTFLAGS	=	
CFLAGS		=	STRINGMERGE NOSTACKCHECK PARMS=REGISTER CPU=68030 MATH=68881 DATA=FARONLY CODE=NEAR
CPPFLAGS	=
CC		=	sc $(CFLAGS) $(OPTFLAGS) $(DEBUG) $(IPATH)
LINK		=	slink
#LINK		=	DevTools:Apps/LK1.06/lk SINGLEHUNK

OBJECT		=	OBJNAME=



#####################################################################
#
# Default rules
#

.c.o$(TARGET):
	$(CC) $(OBJECT)$*.o$(TARGET) $*.c


.asm.o$(TARGET):
	$(ASM) -o$*.o$(TARGET) $*.asm


all:	Msg2			\
	Msg2PPC.elf		\
	Msg3			\
	Msg3PPC.elf		\
	Msg4			\
	Msg4PPC.elf		\
	Msg5			\
	Msg5PPC.elf		\
	Msg6			\
	Msg6PPC.elf		\
	Msg7			\
	Msg7PPC.elf		\
	callosasync.elf		\
	callm68ksync.elf	\
	TaskSignalTest.elf	\
	TaskA.elf		\
	TaskB.elf		\
	TaskASemaphore.elf	\
	TaskBSemaphore.elf	\
	Loop.elf		\
	Trap.elf		\
	Startup			\
	StartupPPC.elf

Loop.elf:		Loop.c
TaskA.elf:		TaskA.c
TaskB.elf:		TaskB.c
TaskASemaphore.elf:	TaskASemaphore.c
TaskBSemaphore.elf:	TaskBSemaphore.c
TaskSignalTest.elf:	TaskSignalTest.c
Trap.elf:		Trap.c
StartupPPC.elf:		StartupPPC.c
callosasync.elf:	callosasync.c
callm68ksync.elf:	callm68ksync.c
Msg2.o:			Msg2.c
Msg2PPC.elf:		Msg2PPC.c
Msg3.o:			Msg3.c
Msg3PPC.elf:		Msg3PPC.c
Msg4.o:			Msg4.c
Msg4PPC.elf:		Msg4PPC.c
Msg5.o:			Msg5.c
Msg5PPC.elf:		Msg5PPC.c
Msg6.o:			Msg6.c
Msg6PPC.elf:		Msg6PPC.c
Msg7.o:			Msg7.c
Msg7PPC.elf:		Msg7PPC.c
Time.o:			Time.c Time.h Time_protos.h


callosasync.elf:	callosasync.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S callosasync.c
	ppc-amigaos-gas -o$*.oPPC callosasync.s
	ppc-amigaos-ld -r callosasync.oPPC -o callosasync.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

callm68ksync.elf:	callm68ksync.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S callm68ksync.c
	ppc-amigaos-gas -o$*.oPPC callm68ksync.s
	ppc-amigaos-ld -r callm68ksync.oPPC -o callm68ksync.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

Msg2PPC.elf:	Msg2PPC.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S Msg2PPC.c
	ppc-amigaos-gas -o$*.oPPC Msg2PPC.s
	ppc-amigaos-ld -r Msg2PPC.oPPC -o Msg2PPC.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

Msg3PPC.elf:	Msg3PPC.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S Msg3PPC.c
	ppc-amigaos-gas -o$*.oPPC Msg3PPC.s
	ppc-amigaos-ld -r Msg3PPC.oPPC -o Msg3PPC.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

Msg4PPC.elf:	Msg4PPC.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S Msg4PPC.c
	ppc-amigaos-gas -o$*.oPPC Msg4PPC.s
	ppc-amigaos-ld -r Msg4PPC.oPPC -o Msg4PPC.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

Msg5PPC.elf:	Msg5PPC.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S Msg5PPC.c
	ppc-amigaos-gas -o$*.oPPC Msg5PPC.s
	ppc-amigaos-ld -r Msg5PPC.oPPC -o Msg5PPC.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

Msg6PPC.elf:	Msg6PPC.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S Msg6PPC.c
	ppc-amigaos-gas -o$*.oPPC Msg6PPC.s
	ppc-amigaos-ld -r Msg6PPC.oPPC -o Msg6PPC.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

Msg7PPC.elf:	Msg7PPC.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S Msg7PPC.c
	ppc-amigaos-gas -o$*.oPPC Msg7PPC.s
	ppc-amigaos-ld -r Msg7PPC.oPPC -o Msg7PPC.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump


TaskSignalTest.elf:	TaskSignalTest.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S TaskSignalTest.c
	ppc-amigaos-gas -o$*.oPPC TaskSignalTest.s
	ppc-amigaos-ld -r TaskSignalTest.oPPC -o TaskSignalTest.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump


TaskA.elf:	TaskA.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S TaskA.c
	ppc-amigaos-gas -o$*.oPPC TaskA.s
	ppc-amigaos-ld -r TaskA.oPPC -o TaskA.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

TaskB.elf:	TaskB.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S TaskB.c
	ppc-amigaos-gas -o$*.oPPC TaskB.s
	ppc-amigaos-ld -r TaskB.oPPC -o TaskB.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

TaskASemaphore.elf:	TaskASemaphore.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S TaskASemaphore.c
	ppc-amigaos-gas -o$*.oPPC TaskASemaphore.s
	ppc-amigaos-ld -r TaskASemaphore.oPPC -o TaskASemaphore.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

TaskBSemaphore.elf:	TaskBSemaphore.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S TaskBSemaphore.c
	ppc-amigaos-gas -o$*.oPPC TaskBSemaphore.s
	ppc-amigaos-ld -r TaskBSemaphore.oPPC -o TaskBSemaphore.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

Loop.elf:	Loop.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S Loop.c
	ppc-amigaos-gas -o$*.oPPC Loop.s
	ppc-amigaos-ld -r Loop.oPPC -o Loop.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

Trap.elf:	Trap.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S Trap.c
	ppc-amigaos-gas -o$*.oPPC Trap.s
	ppc-amigaos-ld -r Trap.oPPC -o Trap.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump

StartupPPC.elf:	StartupPPC.c
	ppc-amigaos-gcc -O2 -fomit-frame-pointer $(GCCIPATH) -v -S StartupPPC.c
	ppc-amigaos-gas -o$*.oPPC StartupPPC.s
	ppc-amigaos-ld -r StartupPPC.oPPC -o StartupPPC.elf
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all --line-numbers $@ >$@.dump



Msg2:	Msg2.o Time.o
		$(LINK)					\
<WITH <
lib:c.o Msg2.o Time.o TO Msg2 LIB lib:scm881nb.lib lib:scnb.lib lib:parsearg.o lib:amiga.lib
<

Msg3:	Msg3.o Time.o
		$(LINK)					\
<WITH <
lib:c.o Msg3.o Time.o TO Msg3 LIB lib:scm881nb.lib lib:scnb.lib lib:parsearg.o lib:amiga.lib
<

Msg4:	Msg4.o Time.o
		$(LINK)					\
<WITH <
lib:c.o Msg4.o Time.o TO Msg4 LIB lib:scm881nb.lib lib:scnb.lib lib:parsearg.o lib:amiga.lib
<

Msg5:	Msg5.o Time.o
		$(LINK)					\
<WITH <
lib:c.o Msg5.o Time.o TO Msg5 LIB lib:scm881nb.lib lib:scnb.lib lib:parsearg.o lib:amiga.lib
<

Msg6:	Msg6.o Time.o
		$(LINK)					\
<WITH <
lib:c.o Msg6.o Time.o TO Msg6 LIB lib:scm881nb.lib lib:scnb.lib lib:parsearg.o lib:amiga.lib
<

Msg7:	Msg7.o Time.o
		$(LINK)					\
<WITH <
lib:c.o Msg7.o Time.o TO Msg7 LIB lib:scm881nb.lib lib:scnb.lib lib:parsearg.o lib:amiga.lib
<

Startup:	Startup.c
		$(LINK)					\
<WITH <
lib:c.o Startup.o TO Startup LIB lib:scm881nb.lib lib:scnb.lib lib:parsearg.o lib:amiga.lib
<
