
SHELL   =       /bin/sh
MAKE    =       make

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


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


IPATH           =       IDIR=PowerUP:NewKernel/include IDIR=include:
DEFINES         =       DEFINE=$(CODETYPE)
OPTFLAGS        =       OPTIMIZE OPTIMIZESCHEDULE OPTIMIZEGLOBAL
CFLAGS          =       STRINGMERGE NOSTACKCHECK PARMS=REGISTER DATA=FARONLY CODE=NEAR DEFINE=$(CODETYPE)
LINK            =       slink


APATH           =       -i/include/
AFLAGS          =       -M4000

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

INCLUDE         =       ../include
PINCLUDE        =       $(INCLUDE)/private/quark/
RINCLUDE        =       $(INCLUDE)/public/quark/

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

all:	PATCH		\
	CREATE

.PHONY: all     	\
	PATCH		\
	CREATE		\
	CREATEINCLUDE	\
	CREATEINLINE	\
	


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


PATCH:
	mkdir -p include
	cp -r include_h/* include
	patch -d include -p1 <include.diffs
	mkdir -p includenew
	cp -r include_h/* includenew
	patch -E -d includenew -p1 <includenew.diffs
	-grep 'Only in' <includenew.diffs | sed -e s/'Only in '/'rm '/g -e s/include_h/includenew/g -e "s/: /\//g" | sh
	-grep 'Only in' <includenew.diffs | grep -v '\.' | sed -e s/'Only in '/'rm -r '/g -e s/include_h/includenew/g -e "s/: /\//g" | sh
	find ./ -iname \*.orig -exec rm {} \;




CREATE:
	./geninclude.sh ./include ./includegcc
	./geninclude.sh ./includenew ./includegcc
	cp -r includenew/emul/* includegcc/emul
	./geninline.sh ./include/fd ./include/clib ./includegcc/ppcinline
	./geninline.sh ./includenew/fd ./includenew/clib ./includegcc/ppcinline


CREATEPROTO:
	./genproto.sh ./include/fd ./includegcc/proto

#
# Keep the order as includenew/ overloads
# the normal includes
#
CREATEINCLUDE:
	./geninclude.sh ./include ./includegcc
	./geninclude.sh ./include3rd ./includegcc
	./geninclude.sh ./includenew ./includegcc
	cp includenew/emul/* includegcc/emul

CREATEINCLUDENEW:
	./geninclude.sh ./includenew ./includegcc
	cp includenew/emul/* includegcc/emul

CREATEINCLUDE3RD:
	./geninclude.sh ./include3rd ./includegcc

CREATEINLINE:
	./geninline.sh ./include/fd ./include/clib ./includegcc/ppcinline
	./geninline.sh ./include3rd/fd ./include3rd/clib ./includegcc/ppcinline
	./geninline.sh ./includenew/fd ./includenew/clib ./includegcc/ppcinline


CREATEINLINENEW:
	./geninline.sh ./includenew/fd ./includenew/clib ./includegcc/ppcinline
	./geninline.sh ./includenew/powerup/fd ./includenew/powerup/clib ./includegcc/ppcinline

CREATEINLINE3RD:
	./geninline.sh ./include3rd/fd ./include3rd/clib ./includegcc/ppcinline

CREATESTUBS:
	rm -rf /t/amigalib
	mkdir /t/amigalib
	./genstubs.sh ./include/fd ./include /t/amigalib
	./mergelibs.sh /t/amigalib ../lib/libamigastubs.a
	rm -rf /t/amigalib
	./genstubs.sh ./include3rd/fd ./include3rd ../lib
	./genstubs.sh ./includenew/fd ./includenew ../lib

CREATESTUBSNEW:
	./genstubs.sh ./includenew/fd ./includenew ../lib

CREATESTUBS3RD:
	./genstubs.sh ./include3rd/fd ./include3rd ../lib

