ROOTPATH=../../../
include $(ROOTPATH)Makefile.global
include $(ROOTPATH)SDK.global

ifneq "$(findstring -D__MORPHOS__,$(shell $(CC) -dumpspecs))" ""
CDEFINES := -DAROSAMIGA -DUSE_MEMFS
else
CDEFINES := -DAROSAMIGA
endif

CFLAGS = -noixemul -c -Wall -O2 -mcpu=604e -DUSE_INLINE_STDARG -DPUBLIC_ONLY -I./ -Iarosemu/include -I/gg/morphos/aboxinclude/os-include -I/gg/morphos/aboxinclude/include -I/gg/morphos/include $(CDEFINES)
# -DDEBUG=1
LDFLAGS := 

FILES := datatypes_init      	\
	functable		\
	adddtobject 	    	\
	class 	  	  	\
	classfuncs 	    	\
	copydtmethods 	    	\
	copydttriggermethods 	    	\
	disposedtobject 	    	\
	doasynclayout 	    	\
	dodtdomaina 	    	\
	dodtmethoda 	    	\
	drawdtobjecta 	    	\
	findmethod 	    	\
	findtoolnodea 	    	\
	findtriggermethod 	    	\
	freedtmethods 	    	\
	getdtattrsa 	    	\
	getdtmethods 	    	\
	getdtstring 	    	\
	getdttriggermethoddataflags 	    	\
	getdttriggermethods 	    	\
	helpfuncs 	    	\
	launchtoola 	    	\
	lockdatatype 	    	\
	newdtobjecta 	    	\
	obtaindatatypea 	    	\
	obtaindtdrawinfoa 	    	\
	printdtobjecta 	    	\
	refreshdtobjecta 	    	\
	releasedatatype 	    	\
	releasedtdrawinfo 	    	\
	removedtobject 	    	\
	savedtobjecta 	    	\
	setdtattrsa 	    	\
	startdragselect 	\
	rexx			\
	misc
ifneq "$(findstring -D__MORPHOS__,$(shell $(CC) -dumpspecs))" ""
	FILES:=$(FILES) morphos/memfs
endif
	FILES:=$(FILES) endtag
 
OBJS := $(foreach f, $(FILES), $(f).o)
	 
LIB := datatypes.library

.PHONY : all killlib install clean 

all : $(LIB)

datatypes_init.o: datatypes_intern.h libdefs.h
$(OBJS):	datatypes_intern.h

$(LIB) : $(OBJS) datatypes_intern.h
	$(LINKECHO)
	$(LINKPREFIX)$(LD) $(LDFLAGS) $(OBJS) -L/gg/morphos/lib -fl libnix -labox -lstring -lstringio -lmemblock -lc -lsyscall -o $@.db
	$(LINKPREFIX)$(STRIP) $(STRIPFLAGS) $@.db -o $@
	
killlib :
	$(RM) $(LIB)

install: $(LIB)
	mkdir -p /sys/morphos/libs
	cp $(LIB) /sys/morphos/libs/datatypes.library

install-iso: $(LIB)
	mkdir -p $(ISOPATH)MorphOS/Libs
	cp $(LIB) $(ISOPATH)MorphOS/Libs/datatypes.library

source:
	(cd .. && tar --exclude "morphos" --transform "s,^datatypes,&.library," -cf $(SOURCEPATH)datatypes.library.tar datatypes)

clean :
	$(RM) $(LIB) $(LIB).db $(LIB).dump *.o arosemu/*.o
ifneq "$(findstring -D__MORPHOS__,$(shell $(CC) -dumpspecs))" ""
	$(RM) morphos/*.o
endif

dump:
	ppc-morphos-objdump --syms --reloc --disassemble-all $(LIB).db >$(LIB).dump

sdk:
	@echo "Making datatypes.$(AUTODOCPOSTFIX)..."
	@$(AUTODOCINTERNAL) $(AUTODOCFLAGS) --aros=datatypes -o /tmp/datatypes.aros.$(AUTODOCPOSTFIX) --aros=datatypes.library $(wildcard *.c)
	cat $(ROOTPATH)morphoswb/development/sdk/apldocdisclaimer.txt > datatypes.aros.$(AUTODOCPOSTFIX)
	cat /tmp/datatypes.aros.$(AUTODOCPOSTFIX) >> datatypes.aros.$(AUTODOCPOSTFIX)
	rm /tmp/datatypes.aros.$(AUTODOCPOSTFIX)
	@$(AROSDOC) datatypes.aros.$(AUTODOCPOSTFIX) datatypes.aros.$(AUTODOCPOSTFIX)
	mkdir -p $(SDKPATH)$(SDKROOT)$(SDKDOCS)
	cp datatypes.aros.$(AUTODOCPOSTFIX) $(SDKPATH)$(SDKROOT)$(SDKDOCS)/datatypes.$(AUTODOCPOSTFIX)
