
SHELL	=	/bin/sh

##############################################################################

TARGET		=	PPC
CODETYPE	=	PPC
VERSION		=	0

##############################################################################

G_IPATH		=	-I../include/ -I../../../emulinclude/includegcc/ -I../../../include/ -I../../../emulinclude/includestd/ 
G_DEFINES	=	-D$(CODETYPE) -D__MORPHOS__ -DASIO_SHARED_LIB
G_OPTFLAGS	=	-O2			\
			-fomit-frame-pointer	\
			-fverbose-asm		\
			-mno-prototype		\
			-mcpu=604		\
			-mregnames		\
			-Wformat		\
			-Wunused		\
			-Wuninitialized		\
			-Wconversion		\
			-Wstrict-prototypes	\
			-Werror-implicit-function-declaration


APATH		=	-iinclude/
AFLAGS		=	-M4000

##############################################################################

all:	asyncio.library.elf

##############################################################################

.SUFFIXES: .o$(TARGET) .asm

.c.o$(TARGET):
	ppc-amigaos-gcc $(G_CFLAGS) $(G_OPTFLAGS) $(G_DEBUG) $(G_DEFINES) $(G_IPATH) -S -o $*.s $*.c
	ppc-amigaos-as -v -o$*.o$(TARGET) $*.s

.s.o$(TARGET):
	ppc-amigaos-as -o$*.o$(TARGET) $*.s


.asm.o$(TARGET):
	basm $(AFLAGS) $(APATH) -o$*.o$(TARGET) $*.asm

##############################################################################
##############################################################################
##############################################################################
##############################################################################
##############################################################################
##############################################################################
##############################################################################
#
# amiga Emulation
#

LIB		=	../../../lib

SRC		=

GLOBAL		=	

lib.o$(TARGET):		$(SRC)lib.c			$(GLOBAL)


OBJS		=	lib.o$(TARGET)\
			lib_gatetable.o$(TARGET)\
			CloseAsync.o$(TARGET)\
			OpenAsync.o$(TARGET)\
			OpenAsyncFH.o$(TARGET)\
			OpenAsyncFromFH.o$(TARGET)\
			PeekAsync.o$(TARGET)\
			ReadAsync.o$(TARGET)\
			ReadCharAsync.o$(TARGET)\
			ReadLineAsync.o$(TARGET)\
			RecordAsyncFailure.o$(TARGET)\
			RequeuePacket.o$(TARGET)\
			SeekAsync.o$(TARGET)\
			SendPacket.o$(TARGET)\
			WaitPacket.o$(TARGET)\
			WriteAsync.o$(TARGET)\
			WriteCharAsync.o$(TARGET)\
			WriteLineAsync.o$(TARGET)\
			FGetsLenAsync.o$(TARGET)


#			libfunctions.o$(TARGET)\
#			libfunctable.o$(TARGET)\

lib_inline.h:	lib.fd lib_protos.h
		../../../emultools/fd2inline/fd2inline --new --powerup lib.fd lib_protos.h $@

lib_gatetable.c:	../include/fd/asyncio_lib.fd asyncio_protos.h
	../../../emultools/fd2inline/fd2inline --gatestubs --prefix GATE_ --premacro "#include\"async.h\"" --local ../include/fd/asyncio_lib.fd asyncio_protos.h -o $@

#####################################################################
#
# Link Project
#

#####################################################################
#
# Project asyncio.library.library
#

asyncio.library.elf:	$(OBJS)			\
			$(LIB)/libstring.a	\
			$(LIB)/libsyscall.a
		ppc-amigaos-ld -v -L./lib -r $(OBJS) $(LIB)/libstring.a	$(LIB)/libsyscall.a -o asyncio.library.elf -lm
		cleanexec $@ to $@_strip strip
		copy asyncio.library.elf libs:


BUMP:
	bumprev2 VERSION=$(VERSION) FILE=$(SRC)asyncio.library_VERSION TAG=asyncio.library ADD="© 2000 by Ralph Schmidt, written by Ralph Schmidt"


DUMP:
	ppc-amigaos-objdump --section-headers --all-headers --reloc --disassemble-all asyncio.library.elf >asyncio.library.elf.dump

##############################################################################
.PHONY: all
