include $(ROOT)/usr/include/make/PRdefs
## include $(ROOT)/usr/local/srd/PR/SRDdefs.mk

SRD_INCDIR = ../usr/local/srd/PR
SRD_LIBDIR = ../usr/local/srd/PR

OPTIMIZER =	-g3 -O2

TARGETS =	rom

#########################################################################
HFILES =	$(TEXHFILES) \
		sys_controller.h sys_debug.h sys_dram_stack.h sys_fifo.h \
		sys_framebuffer.h sys_lib.h sys_light.h sys_main.h sys_math.h \
		sys_matrix.h sys_memory.h sys_segment.h sys_skeleton.h \
		sys_subdata.h sys_yield.h sys_zbuffer.h sys_time.h \
		sys_eeprom.h sys_fault.h \
		../audio/audio_game.h \
		../motor/motor.h \
		fox_360.h fox_Sdata.h fox_all.h fox_beam.h fox_bg.h \
		fox_boss.h fox_data.h fox_demo.h fox_display.h fox_std_dma.h \
		fox_edata.h fox_edisplay.h fox_enmy.h fox_enmy2.h fox_exst.h \
		fox_fade.h fox_fuyeeeth.h fox_geo.h fox_ground.h fox_gtypes.h \
		fox_hitdata.h fox_jyuza.h fox_std_lib.h fox_main.h \
		fox_map.h fox_std_Dmoji.h fox_moji.h fox_msg.h \
		fox_object.h fox_eeprom.h \
		fox_option.h fox_pause.h fox_play.h \
		fox_polygon.h fox_ram.h fox_std_rcp.h fox_sabamarin.h \
		fox_tank.h fox_texture.h fox_tex_MOJI.h fox_tex_VTXT.h\
		fox_title.h fox_vs.h fox_message.h\
		fox_sw.h fox_mc.h fox_base.h fox_bm1.h fox_bm_poly.h fox_tr.h

#########################################################################
#SYS_C_C	=	sys_controller.c sys_lib.c sys_light.c sys_main.c sys_math.c \
#		sys_matrix.c sys_memory.c sys_time.c sys_eeprom.c sys_fault.c

SYS_C_O	=	sys_controller.o sys_lib.o sys_light.o sys_main.o sys_math.o \
		sys_matrix.o sys_memory.o sys_time.o sys_eeprom.o sys_fault.o \
		../audio/audio.o \
		../slidec/slid12.o ../6101/rdraminit.o
SYS_C_S	=	sys.o

#########################################################################
#SYS_D_C	=	sys_dram_stack.c sys_fifo.c sys_framebuffer.c sys_subdata.c \
#		sys_yield.c sys_zbuffer.c

SYS_D_O	=	sys_dram_stack.o sys_fifo.o sys_framebuffer.o sys_subdata.o \
		sys_yield.o sys_zbuffer.o

#########################################################################
#FOX_STD_C_C =	fox_360.c fox_beam.c fox_bg.c fox_boss.c fox_data.c \
#		fox_demo.c fox_display.c fox_std_dma.c fox_edata.c \
#		fox_edisplay.c fox_enmy.c fox_enmy2.c fox_exst.c fox_fade.c \
#		fox_framebuffer.c fox_fuyeeeth.c fox_geo.c \
#		fox_std_lib.c fox_main.c \
#		fox_object.c fox_pause.c fox_play.c fox_ram.c \
#		fox_std_rcp.c fox_message.c \
#		fox_reset.c fox_vs.c fox_moji.c \
#		fox_std_Dmoji.c fox_eeprom.c

FOX_STD_C_O =	fox_360.o fox_beam.o fox_bg.o fox_boss.o fox_data.o \
		fox_demo.o fox_display.o fox_std_dma.o fox_edata.o \
		fox_edisplay.o fox_enmy.o fox_enmy2.o fox_exst.o fox_fade.o \
		fox_framebuffer.o fox_fuyeeeth.o fox_geo.o \
		fox_std_lib.o fox_main.o \
		fox_object.o fox_pause.o fox_play.o fox_ram.o \
		fox_std_rcp.o fox_message.o \
		fox_reset.o fox_vs.o fox_moji.o \
		fox_std_Dmoji.o fox_eeprom.o
FOX_STD_C_S =	fox_std.o

#########################################################################
#FOX_STD_D_C =	fox_std_Dmoji_data.c fox_std_rcp_data.c \
#		fox_polygon.c fox_std_dma_data.c fox_moji_usa.c \
#		AC_data.c         SW_data.c \
#		AS_data.c         SX_data.c \
#		TI_data.c \
#		CL_data.c         VS_data.c \
#		CN_data.c         FO_data.c \
#		SB_data.c         SN_data.c \
#		ZO_data.c         BM_data.c \
#		BO_data.c	  MC_data.c \
#		KT_data.c	  SZ_data.c \
#		BM03_data.c	  AND_data.c   \
#		TR_data.c

FOX_STD_D_O =	fox_std_Dmoji_data.o fox_std_rcp_data.o \
		fox_polygon.o fox_std_dma_data.o fox_moji_usa.o \
		AC_data.o         SW_data.o \
		AS_data.o         SX_data.o \
		TI_data.o \
		CL_data.o         VS_data.o \
		CN_data.o         FO_data.o \
		SB_data.o         SN_data.o \
		ZO_data.o         BM_data.o \
		BO_data.o	  MC_data.o \
		KT_data.o	  SZ_data.o \
		BM03_data.o	  AND_data.o   \
                TR_data.o

#########################################################################
#FOX_I1_C_C =	fox_i1.c fox_cn.c fox_bm1.c fox_tr.c fox_tr2.c
FOX_I1_C_O =	fox_i1.o fox_cn.o fox_bm1.o fox_tr.o fox_tr2.o
FOX_I1_C_S =	i1.o
#########################################################################
#FOX_I2_C_C =	fox_i2.c fox_as.c fox_sx.c  
FOX_I2_C_O =	fox_i2.o fox_as.o fox_sx.o
FOX_I2_C_S =	i2.o
#########################################################################
#FOX_I3_C_C =	fox_i3.c fox_cl.c fox_zo.c fox_sn.c fox_sabamarin.c
FOX_I3_C_O =	fox_i3.o fox_cl.o fox_zo.o fox_sn.o fox_sabamarin.o
FOX_I3_C_S =	i3.o
#########################################################################
#FOX_I4_C_C =	fox_i4.c fox_fo.c fox_bo.c fox_kt.c fox_sz.c 
#FOX_I4_C_O =	$(FOX_I4_C_C:.c=.o)
FOX_I4_C_O =	fox_i4.o fox_fo.o fox_bo.o fox_kt.o fox_sz.o 
FOX_I4_C_S =	i4.o
#########################################################################
#FOX_I5_C_C =	fox_i5.c fox_ti.c fox_tank.c fox_mc.c fox_ground.c
#FOX_I5_C_O =	$(FOX_I5_C_C:.c=.o)
FOX_I5_C_O =	fox_i5.o fox_ti.o fox_tank.o fox_mc.o fox_ground.o
FOX_I5_C_S =	i5.o
#########################################################################
#FOX_I6_C_C =	fox_i6.c fox_bm2.c fox_bm03.c fox_sw.c fox_jyuza.c
#FOX_I6_C_O =	$(FOX_I6_C_C:.c=.o)
FOX_I6_C_O =	fox_i6.o fox_bm2.o fox_bm03.o fox_sw.o fox_jyuza.o
FOX_I6_C_S =	i6.o
#########################################################################
#FOX_TOM_C_C =	fox_tom.c fox_title.c fox_option.c fox_map.c DEMO_data.c
#FOX_TOM_C_O =	$(FOX_TOM_C_C:.c=.o)
FOX_TOM_C_O =	fox_tom.o fox_title.o fox_option.o fox_map.o DEMO_data.o
FOX_TOM_C_S =	tom_p.o
#########################################################################
#FOX_END_C_C =	fox_end1.c fox_end2.c
#FOX_END_C_O =	$(FOX_END_C_C:.c=.o)
FOX_END_C_O =	fox_end1.o fox_end2.o
FOX_END_C_S =	end_p.o
#########################################################################
#FOX_SHP_C_C =	fox_lookshape.c \
#		fox_collision_kuzuhara.c fox_collision_morita.c \
#		fox_collision_okajima.c fox_collision_sasaki.c \
#		fox_collision_sumiyosi.c fox_collision_tarukado.c \
#		fox_collision_yamamoto.c fox_collision_yoshida.c
#FOX_SHP_C_O =	$(FOX_SHP_C_C:.c=.o)
FOX_SHP_C_O =	fox_lookshape.o \
		fox_collision_kuzuhara.o fox_collision_morita.o \
		fox_collision_okajima.o fox_collision_sasaki.o \
		fox_collision_sumiyosi.o fox_collision_tarukado.o \
		fox_collision_yamamoto.o fox_collision_yoshida.o
FOX_SHP_C_S =	fox_shp.o
#########################################################################
OBJECTS =	$(SYS_C_S) $(SYS_D_O) $(FOX_STD_C_S) $(FOX_STD_D_O) \
		 $(FOX_I1_C_S)  \
		 $(FOX_I2_C_S)  \
		 $(FOX_I3_C_S)  \
		 $(FOX_I4_C_S)  \
		 $(FOX_I5_C_S)  \
		 $(FOX_I6_C_S)  \
		 $(FOX_TOM_C_S)  \
		 $(FOX_END_C_S)  \
		 $(FOX_SHP_C_S)  \
		../audio/fox64_banks.o ../audio/fox64_music.o

#########################################################################
LCDEFS =	$(HW_FLAGS)
LCINCS =	-I. \
		-I/usr/local/srd/PR/patch/PR/.. -I/usr/local/srd/PR/patch/PR \
		-I$(ROOT)/usr/include/PR -I$(SRD_INCDIR)
LCOPTS =	-non_shared -mips2 -fullwarn -G 0 -float  -Xcpluscomm \
		-wlint,-fhp -Wab,-r4300_mul -DF3DEX_GBI
LWOFF =		,852,828,827
LDFLAGS =	$(MKDEPOPT) -nostdlib \
		-L../usr/local/srd/PR/patch/PR/.. -L../usr/local/srd/PR/patch/PR \
		-L../usr/local/srd/PR \
		-L$(ROOT)/usr/lib -L$(ROOT)/usr/lib/PR -L$(SRD_LIBDIR) \
		-lc64_rom -lultra_lib_rom
#		-lc64_rom -lultra_rom
LDFLAGS_STD =	$(MKDEPOPT) -nostdlib -L$(ROOT)/usr/lib 
#########################################################################

default:	$(TARGETS)

include $(COMMONRULES)

$(SYS_C_S) :	$(SYS_C_O)
		$(LD) -o $(SYS_C_S) -r $(SYS_C_O) $(LDFLAGS)

$(FOX_STD_C_S) :	$(FOX_STD_C_O)
		$(LD) -o $(FOX_STD_C_S) -r $(FOX_STD_C_O) $(LDFLAGS_STD)


#########################################################################
$(FOX_I1_C_S) :	$(FOX_I1_C_O)
		$(LD) -o $(FOX_I1_C_S) -r $(FOX_I1_C_O) $(LDFLAGS_STD)
$(FOX_I2_C_S) :	$(FOX_I2_C_O)
		$(LD) -o $(FOX_I2_C_S) -r $(FOX_I2_C_O) $(LDFLAGS_STD)
$(FOX_I3_C_S) :	$(FOX_I3_C_O)
		$(LD) -o $(FOX_I3_C_S) -r $(FOX_I3_C_O) $(LDFLAGS_STD)
$(FOX_I4_C_S) :	$(FOX_I4_C_O)
		$(LD) -o $(FOX_I4_C_S) -r $(FOX_I4_C_O) $(LDFLAGS_STD)
$(FOX_I5_C_S) :	$(FOX_I5_C_O)
		$(LD) -o $(FOX_I5_C_S) -r $(FOX_I5_C_O) $(LDFLAGS_STD)
$(FOX_I6_C_S) :	$(FOX_I6_C_O)
		$(LD) -o $(FOX_I6_C_S) -r $(FOX_I6_C_O) $(LDFLAGS_STD)

$(FOX_TOM_C_S) :$(FOX_TOM_C_O)
		$(LD) -o $(FOX_TOM_C_S) -r $(FOX_TOM_C_O) $(LDFLAGS_STD)
$(FOX_END_C_S) :$(FOX_END_C_O)
		$(LD) -o $(FOX_END_C_S) -r $(FOX_END_C_O) $(LDFLAGS_STD)
$(FOX_SHP_C_S) :$(FOX_SHP_C_O)
		$(LD) -o $(FOX_SHP_C_S) -r $(FOX_SHP_C_O) $(LDFLAGS_STD)
#########################################################################


rom :		spec $(OBJECTS) $(MAKEROM)
		make_debug
#		-rm fox rom
		$(MAKEROM) -o -m -r rom spec > memory.map
		-chmod g+w fox rom
#		rommap memory.map > rom.map
#		romdivide rom.map rom
#		-playaifc /usr/local/pds/lib/paro_se.aifc > /dev/null
#		-rm TAGS
#		-etags	$(SYS_C_C) $(SYS_D_C) $(FOX_STD_C_C) $(FOX_STD_D_C) \
#			$(HFILES)

## Makedependから、システム系のヘッダ依存情報を削除することにより
## ライブラリ更新による全コンパイルを防ぐ
Makedepend::
	sed \
-e        "s/\/usr\/local\/srd\/PR\/[a-zA-Z0-9_./-]*\.h //g" \
-e           "s/\/usr\/include\/PR\/[a-zA-Z0-9_./-]*\.h //g" \
-e               "s/\/usr\/include\/[a-zA-Z0-9_./-]*\.h //g" \
-e "s/\/home\/hayakawa\/prj\/PR\/lib[a-zA-Z0-9_./-]*\.h //g" \
-e "s/ \.\// /g" \
-e "s/ +/ /g" \
Makedepend > Makedepend.tmp~
	mv Makedepend Makedepend.old_`date '+%y-%m-%d_%H:%M:%S'`
	mv Makedepend.tmp~ Makedepend

## don't tipe clean
clear:
	-rm Makedepend rom fox
