###############################################################################
#
#	Converts the AmigaDOS hunk format object for GCC compatibility.
#
###############################################################################

define hunk2gcc
hunk2gcc >nil: $*.o; \
delete >nil: $*.o; \
/c/join >nil: obj.#? as $*.o; \
delete >nil: obj.#?;
endef


.SUFFIXES: .c .o .asm .a

#C_OBJS := $(patsubst %.c,%.o,$(wildcard *.c))

C_OBJS := StartUp.o \
	AddPatchNotifyA.o \
	CommonFuncs.o \
	CreatePatchProjectA.o \
	FindPatch.o \
	FindPatchTagsA.o \
	GetPatchA.o \
	InstallPatchTagsA.o \
	GetPatchProjectA.o \
	IRFuncs.o \
	InstallPatch.o \
	PatchAlloc.o \
	PatchFreeVec.o \
	RemPatchNotifyA.o \
	RemovePatch.o \
	RemovePatchHandler.o \
	RemovePatchProjectA.o \
	RemovePatchTagsA.o \
	SetPatchA.o \
	SetPatchProjectA.o \
	WaitRemovePatch.o \
	Patch_Lowlevel.o

STARTUP := 	LibInit.o

CFLAGS :=	-DCPU_68000 -m68000 -noixemul -nostdlib -nostartfiles \
		-I. -IADE:include -Iinclude \
		-O2 -fstrength-reduce -fomit-frame-pointer -s -msmall-code -fbaserel

AFLAGS :=	-m
LIBS :=		-L. -lnix -lgcc -lamiga -lpatch

.c.o:
	gcc -c $(CFLAGS) $<

.asm.o:
	OMA $< $(AFLAGS) -o $@ 
	$(hunk2gcc)

OBJS	= $(STARTUP) Funcs.o $(C_OBJS) 


patch.library:	$(OBJS)
		gcc $(CFLAGS) -o $@ $(OBJS) $(LIBS)

include/inline/patch.h: include/fd/patch_lib.fd include/clib/patch_protos.h
	fd2inline include/fd/patch_lib.fd include/clib/patch_protos.h -o include/inline/patch.h

include/proto/patch.h: include/fd/patch_lib.fd
	FD2Pragma include/fd/patch_lib.fd SPECIAL 35 TO include/proto/
