#
# awindemo makefile for SAS/C
# an example on how to use awin in your own projects
#
#
# IMPORTANT! Uses GG egcs libmoto.a
#

MAKE = smake

### 68k assembler defines ###
#ASMC2P = devpac:genam with genam.opts
#ASM = devpac:genam with genam.opts
ASMC2P = phxass symdebug linedebug noexe machine 68040 opt 0
ASM = phxass symdebug linedebug noexe machine 68040 opt 2

### 68k defines ###

#SCOPTS_68K = INCLUDEDIR=sc:include/ INCLUDEDIR=include: CPU=68020 MATH=ieee \
#UNSCHAR STRMERGE NOSTKCHK PARMS=REGISTER OPTIMIZE OPTGO OPTCOMP=2 \
#OPTLOOP OPTPEEP OPTTIME OPTSCHED
SCOPTS_68K = INCLUDEDIR=sc:include/ INCLUDEDIR=include: CPU=68020 MATH=ieee \
UNSCHAR STRMERGE NOSTKCHK PARMS=REGISTER OPTIMIZE OPTGO OPTCOMP=2 \
OPTLOOP OPTPEEP OPTTIME
#DEBUG=full

CC_68K = sc
LINK_68K = slink

SLO_68K  = SMALLCODE SMALLDATA NODEBUG
#SLO_68K  = SMALLCODE SMALLDATA

AWINOBJS_68K = ddazure2.o cpu5azure2.o awin68k.o
AWINHDRS_68K = ddazure2.h cpu5azure2.h awin.h
AWINLIBS_68K = LIB:sc.lib LIB:scmieee.lib

### ppc defines ###

#
# *IMPORTANT!* Modify these to suit your system!
#
INCLUDE_PPC = sc:include/ data:Programming/Asm/Include/
PPCINCLUDE_PPC = sc:ppcinclude/
#

#SCOPTS_PPC = DEF AW_PPC CPU=68020 UNSCHAR STRMERGE NOSTKCHK PARMS=REGISTER \
#OPTIMIZE OPTGO OPTCOMP=2 OPTLOOP OPTPEEP OPTTIME OPTSCHED
SCOPTS_PPC = DEF AW_PPC CPU=68020 UNSCHAR STRMERGE NOSTKCHK PARMS=REGISTER \
OPTIMIZE OPTGO OPTCOMP=2 OPTLOOP OPTPEEP OPTTIME

CC_PPC = scppc

# uses vlink from vbcc, you can also use
#LINK_PPC = ppc-amigaos-ld -r
LINK_PPC = vlink -b elf32ppcbe -r

SLO_PPC = 

AWINOBJS_PPC = awinppc.o
AWINHDRS_PPC = awin.h
AWINLIBS_PPC = gg:ppc-amigaos/lib/libmoto.a lib:scppc.a lib:end.o


# modify/add stuff here

all:
	@echo "'make ppc' to compile PowerUP version"
	$(MAKE) 68k

clean:
	-Delete awindemo(%|68k|ppc) \#?.(info|tmp|lnk|o) QUIET

68k:
	$(MAKE) awindemo68k

ppc:
	@echo *
	@echo ******************
	@echo *
	assign include: $(INCLUDE_PPC)
	assign ppcinclude: $(PPCINCLUDE_PPC)
	@echo *
	@echo ******************
	@echo *
	$(MAKE) awindemoppc
	protect awindemoppc e add
	ppc-amigaos-objdump -t awindemoppc | grep *UND*


awindemo68k.o: awindemo.c $(AWINHDRS_68K)
	$(CC_68K) awindemo.c $(SCOPTS_68K) OBJNAME=$@

awindemoppc.o: awindemo.c $(AWINHDRS_PPC)
	$(CC_PPC) awindemo.c $(SCOPTS_PPC) OBJNAME=$@

awindemo68k: $(AWINOBJS_68K) awindemo68k.o
	$(LINK_68K) FROM LIB:c.o $(AWINOBJS_68K) awindemo68k.o $(SLO_68K) LIB $(AWINLIBS_68K) TO $@

awindemoppc: $(AWINOBJS_PPC) awindemoppc.o
	$(LINK_PPC) lib:c_ppc.o $(AWINOBJS_PPC) awindemoppc.o $(SLO_PPC) $(AWINLIBS_PPC) -o $@


# here are things you don't modify

awfreepensinner:
	$(ASM) from $@.ASM to $@.o
	sh odump $@
	delete $@.o force

awremapinner:
	$(ASM) from $@.ASM to $@.o
	sh odump $@
	delete $@.o force

ddazure2.o:  ddazure2.ASM
	$(ASM) from ddazure2.ASM to $@

cpu5azure2.o:  cpu5azure2.ASM
	$(ASMC2P) from cpu5azure2.ASM to $@

awin68k.o: awin.c $(AWINHDRS_68K)
	$(CC_68K) awin.c $(SCOPTS_68K) OBJNAME=$@

awinppc.o: awin.c $(AWINHDRS_PPC)
	$(CC_PPC) awin.c $(SCOPTS_PPC) OBJNAME=$@

