#

# makefile for MGS2 scenario file

#

#	2000/02/01 S.Hirano

#	$Id: makefile,v 1.416 2002/10/08 01:06:53 usr01475 Exp $

#



# -------------------------------------------- ߥå



# ʥꥪѿΥκ(ѹϡޤϢƲ)

VARIABLE_SIZE = 7168

LOCAL_VARIABLE_SIZE = 512



# -------------------------------------------- ե



# ̥



# GCLեɲäȤϤԽ

include ../list/stage.inc



BOSS_SCENARIOS = r_sna_b.boss.gcl r_rai_b.boss.gcl w00b.boss.gcl w03b.boss.gcl \

				 w20c.boss.gcl w25a.boss.gcl w31c.boss.gcl w44a.boss.gcl w46a.boss.gcl \

				 w61a.boss.gcl boss.gcl



ifeq ($(MGS2_DISC),2)

SCENARIOS = $(addsuffix .gcl, $(STAGES))

else

# disc1ˤΤɬס

SCENARIOS = $(addsuffix .gcl, $(STAGES)) $(BOSS_SCENARIOS)

endif





# ̵



COMMON_CODECS =  t_otacon.cdc t_demo.cdc t_save.cdc photo_term.cdc p_phone.cdc \

				p_demo.cdc p_colonel.cdc p_emma.cdc p_otacon.cdc p_peter.cdc \

				p_rose.cdc p_snake.cdc



DEMO_CODECS   = $(COMMON_CODECS)



# ------------------------------------------ ƴĶȤ



# 쥪ץ

ifeq ($(MGS2_LANG),ENGLISH)



ifeq ($(MGS2_PAL),SPANISH)



LANGOPT =  -D ENGLISH -D SPANISH



else



ifeq ($(MGS2_PAL),ITALIAN)



LANGOPT =  -D ENGLISH -D ITALIAN



else



ifeq ($(MGS2_PAL),EU)



LANGOPT = -D ENGLISH -DEU



else



LANGOPT = -D ENGLISH



endif



endif



endif



else

LANGOPT = -D JAPANESE

endif



# Ÿͥץ



AREAOPT = -D AREA_US



ifeq ($(MGS2_AREA),JAPAN)

AREAOPT = -D AREA_JAPAN

endif

ifeq ($(MGS2_AREA),EU)

AREAOPT = -D AREA_EU

endif



LANGOPT := $(LANGOPT) $(AREAOPT)



# TV⡼ɥץ

ifeq ($(MGS2_VMODE),PAL)

VMODEOPT = -D PAL

else

VMODEOPT = -D NTSC

endif



# E3ѥץ

ifeq ($(MGS2_E3),1)

E3OPT = -D MGS2_E3=1

else

E3OPT = -D MGS2_E3=0

endif



# ᥤѥץ

ifeq ($(MGS2_VRTRIAL),1)

MAKINGOPT = -D MGS2_VRTRIAL=1

else

MAKINGOPT = -D MGS2_VRTRIAL=0

endif



ifeq ($(MGS2_ENG_VRTRIAL),1)

MAKINGOPT := $(MAKINGOPT) -D MGS2_ENG_VRTRIAL=1

else

MAKINGOPT := $(MAKINGOPT) -D MGS2_ENG_VRTRIAL=0

endif



CODECS = $(COMMON_CODECS) $(CONCEPT_CODECS)



ifeq ($(MGS2_DESIGN),1)



# ǥʡץӥ塼Ķ



SOURCEPATH = $(PREVIEW_DATA)

STAGEPATH = $(PREVIEW_DATA)/stage

CODECPATH = .



LOCAL_OPTIONS = -I $(PREVIEW_DATA) -D DESIGN_PREVIEW -D MGS2_TRIAL=0 -D MGS2_SCN=0 -D MGS2_DEMO=0 -D MGS2_TANKER=0 -D MGS2_PLANT=0

SCENARIOS = init.gcl r_tnk0.gcl $(PREVIEW_DATA)/preview.gcl

CODECS = t_otacon.cdc

DEMOLISTPATH = ../list/demolist



else # ǥʡץӥ塼Ķʳ



SOURCEPATH = ../source/stage

STAGEPATH = ../cdrom.img/stage

CODECPATH = ../cdrom.img

DEMOLISTPATH = ../list/demolist



ifeq ($(FIX_MODE),1)

LOCAL_OPTIONS = -D MGS2_SCN=0 -D MGS2_DEMO=0 -D MGS2_TANKER=1 -D MGS2_PLANT=1 -D FIX_MODE=1

else

LOCAL_OPTIONS = -D MGS2_SCN=0 -D MGS2_DEMO=0 -D MGS2_TANKER=1 -D MGS2_PLANT=1



ifeq ($(MGS2_SCN),1)

# ʥꥪɺĶ

LOCAL_OPTIONS = -D MGS2_SCN=1 -D MGS2_DEMO=0 -D MGS2_TANKER=1 -D MGS2_PLANT=1 $(E3OPT)

CODECS = $(COMMON_CODECS) $(CONCEPT_CODECS)

endif



ifeq ($(MGS2_SCN),2)

# ǥɺĶ

LOCAL_OPTIONS = -D MGS2_SCN=0 -D MGS2_DEMO=1 -D MGS2_TANKER=1 -D MGS2_PLANT=1 $(E3OPT)

CODECS = $(DEMO_CODECS)

endif



ifeq ($(MGS2_SCN),3)

# ⡼ɺĶ

LOCAL_OPTIONS = -D MGS2_SCN=1 -D MGS2_DEMO=0 -D MGS2_TANKER=1 -D MGS2_PLANT=1 $(E3OPT)

CODECS = $(COMMON_CODECS) $(CONCEPT_CODECS)

endif



endif



endif





# -------------------------------------------------------------------------------



LKOPT = -l $(VARIABLE_SIZE) $(LOCAL_VARIABLE_SIZE)



VARIABLE_SYM = variable.sym



LKOPT := $(LKOPT) -fv $(VARIABLE_SYM)



# MGS2STAGEΥơ

ifneq ($(MGS2STAGE),)

ifneq ($(MGS2STAGE),all)

SCENARIOS = $(addsuffix .gcl, init $(MGS2RESIDENT:.bin=) $(MGS2STAGE:.bin=))

LKOPT := $(LKOPT) -w

endif

endif



ifneq ($(MGS2_SCN),2)

LKOPT := $(LKOPT) -e

endif



#LOCAL_OPTIONS := $(LOCAL_OPTIONS) -D MGS2_MEMCARD=1

#SCENARIOS := $(SCENARIOS) memcard.gcl



LOCAL_OPTIONS := $(LOCAL_OPTIONS) -D MGS2_MEMCARD=0

SCENARIOS_ := $(filter-out %.boss.gcl, $(SCENARIOS) )





# TGS2001Ѥѹͭˤ

ifeq ($(TGS2001F),1)

LOCAL_OPTIONS := $(LOCAL_OPTIONS) -D TGS2001F=1

endif





# 衼åѸǽθ

ifeq ($(MGS2_EU_TRIAL),ENGLISH)

LOCAL_OPTIONS := $(LOCAL_OPTIONS) -D EU_TRIAL=1

SCENARIOS = $(EU_TRIAL_INIT_SCENARIOS) $(EU_TRIAL_SCENARIOS) $(EU_TRIAL_DEMO_SCENARIOS)

CODECS = $(EU_TRIAL_CODEC)

endif



ifeq ($(MGS2_EU_TRIAL),GERMAN)

LOCAL_OPTIONS := $(LOCAL_OPTIONS) -D EU_TRIAL=1 -D GERMAN_TRIAL=1

SCENARIOS = $(EU_TRIAL_INIT_SCENARIOS) $(EU_TRIAL_SCENARIOS) $(EU_TRIAL_DEMO_SCENARIOS)

CODECS = $(EU_TRIAL_CODEC)

endif



ifeq ($(MGS2_AREA),EU)

LOCAL_OPTIONS := $(LOCAL_OPTIONS) -n 1:2:3:4:5

else

LOCAL_OPTIONS := $(LOCAL_OPTIONS) -n 1:7

endif



# --------------------------------------------------- ޥ



.SUFFIXES: .gco .gcl .cdc .cdo



#CDLISTS     = vox.lst demo.lst movie.lst



VOXLIST		= vox.lst

VOX2LIST	= vox2.lst

DEMOLIST	= demo.lst

DEMO2LIST	= demo2.lst

MOVIELIST	= movie.lst movievr.lst

MOVIEVRLIST = movievr.lst

MISCLIST	= tsymbol.lst

FACELIST    = face.lst



CODECLIST	= codec.lst

DEPENDS     = make.depend



CODEC_DEPEND_LIST = $(VOXLIST) $(MOVIELIST) $(FACELIST) $(MISCLIST)

GCL_DEPEND_LIST = $(VOXLIST) $(DEMOLIST) $(MOVIELIST) $(FACELIST) $(MISCLIST) $(CODECLIST) $(DEMO2LIST) $(MOVIVRLIST)



ifeq ($(MGS2_DISC),2)

GCL_DEPEND_LIST = $(VOX2LIST) $(DEMO2LIST) $(MOVIEVRLIST) $(FACELIST) $(MISCLIST) $(CODECLIST)

endif

ifeq ($(MGS2_DISC),)

GCL_DEPEND_LIST := $(GCL_DEPEND_LIST) $(VOX2LIST) $(DEMO2LIST) $(MOVIEVRLIST)

endif



ifeq (1,1)

#֥󥹤ǤϥեȤϣУ̤ⶦ̤ǻȤ

CODECFONTCHECK = -fe /u/develop/mj001data/fix.xbox/binary/keepfontsub.row 512 120 0 4

else



ifeq ($(MGS2_LANG),ENGLISH)

ifeq ($(MGS2_VMODE),PAL)

CODECFONTCHECK = -fe /u/develop/mj001data/fix/binary/keepfontec.row 520 120 0 4

else

CODECFONTCHECK = -fe /u/develop/mj001data/fix/binary/keepfont.row 520 120 0 12

endif

else

CODECFONTCHECK = -fc /u/develop/mj001data/fix/binary/keepfont.row 472 120 0 12

endif



endif



ifneq ($(MGS2_XBOX),1)

OPTIONS = -f /u/develop/mj001b/tools/bin/linux $(MAKINGOPT) $(LOCAL_OPTIONS) $(LANGOPT) $(VMODEOPT) -DPSX2

else

# xbox:Ȥꤢ

OPTIONS =  -f /u/develop/mj001b/exports/tools/bin/mgs2xbox $(MAKINGOPT) $(LOCAL_OPTIONS) $(LANGOPT) $(VMODEOPT) -D_XBOX -DXBOX

endif





GCLOPTIONS   = $(OPTIONS) -d command.def $(addprefix -t ,$(GCL_DEPEND_LIST))

CODECOPTIONS = $(OPTIONS) -b -d codec.def $(addprefix -t ,$(CODEC_DEPEND_LIST)) \

				$(CODECFONTCHECK)



#ifeq ($(MGS2_DISC),2)

ifeq ($(MGS2_SUBSTANCE),1)

GCLOPTIONS := $(GCLOPTIONS) -wt

endif



OBJECTS = $(SCENARIOS:.gcl=.gco)

CODECOBJS = $(CODECS:.cdc=.cdo)



# -------------------------------------------------- å



all : compiled $(VARIABLE_SYM)



.gcl.gco :

	gclconv $(GCLOPTIONS) $<



.cdc.cdo :

	gclconv $(CODECOPTIONS) $< -o $@



CODECOPTS = -bl



# ̵ط

ifneq ($(MGS2_VRTRIAL),1)

$(CODECOBJS) : $(CODEC_DEPEND_LIST)

$(CODECLIST) : $(CODECOBJS)

	gclk $(CODECOPTS) $(LKOPT) $(CODECOBJS) -o $(CODECPATH)/codec.dat -t $(CODECLIST)

endif



# ʥꥪط

$(OBJECTS)   : %.gco : %.gcl $(GCL_DEPEND_LIST) dogtag_data.h dogtag_view.h



compiled : $(OBJECTS) linkvar.h

	gclk $(LKOPT) -p $(STAGEPATH) $(OBJECTS)

	touch compiled



$(CDLISTS) :

	echo '' > $@				# 



#	@echo "$@ is not exist"

#	@echo "please 'make newcd'"

#	@false



linkvar.h : linkvar.def

	gclk -i



$(VARIABLE_SYM):

	make clean all



select.gcl : vox_test.h

vox_test.h : vox.lst

	cat $< | sort +1 | awk -f conv_voxtest.awk > $@



ifeq ($(MGS2_XBOX),1)

dogtag_data.h : dogtag_data.txt conv_dogtag.awk

	cat $< | awk -f conv_dogtag.awk > $@

dogtag_view.h : dogtag_data.txt conv_dogtagview.awk

	cat $< | awk -f conv_dogtagview.awk > $@

else

dogtag_data.h : dogtag_data_2002.txt conv_w_dogtag.awk

	cat $< | awk -f conv_w_dogtag.awk > $@

dogtag_view.h : dogtag_data_2002.txt conv_w_dogtagview.awk

	cat $< | awk -f conv_w_dogtagview.awk > $@

endif



# ưإå

AUTO_HEADERS = dogtag_data.h dogtag_view.h vox_test.h



# ------------------------------------------------------ ޥ



.PHONY : clean stage depend allstage source list strcheck tags



clean : depend

#	-rm -f *.gco compiled tsymbol.def linkvar.h .#*

	-rm -f $(OBJECTS) $(CODECOBJS) $(AUTO_HEADERS) compiled linkvar.h _ChangeLog .#*



ifeq ($(MGS2_DEMO),1)



stage : $(AUTO_HEADERS)

	@echo "Demo Compile."

	-(for i in $(SCENARIOS_:.gcl=); do gclconv $(GCLOPTIONS) $$i.gcl -m $(SOURCEPATH) -l $(DEMOLISTPATH) ; done)



else



stage : $(AUTO_HEADERS)

	-(for i in $(SCENARIOS_); do gclconv $(GCLOPTIONS) $$i -m $(SOURCEPATH)  -l $(DEMOLISTPATH) ; done)



endif



onestage:

	-(for i in $(STAGE); do gclconv $(GCLOPTIONS) $$i.gcl -m $(SOURCEPATH)  -l $(DEMOLISTPATH) ; done)



depend :

	-rm $(DEPENDS)

	(for i in $(SCENARIOS); do if gclconv $(GCLOPTIONS) $$i -M$(DEPENDS); then true; else rm $(DEPENDS); break; fi ; done)



allstage :

	gclconv $(GCLOPTIONS) init.gcl -A $(SOURCEPATH)



source :

	cd ../module; $(MAKE) all

	cd ../source; $(MAKE) all



list :

	cd ../list; cvs update; $(MAKE) all



strcheck :

	gclconv $(GCLOPTIONS) $(PARAM)



go : run



run download module:

	cd $(SOURCEPATH); make $@



debug :

	gclconv $(GCLOPTIONS) -p $(STAGE).gcl

	cd ../source; $(MAKE) debug



log :

	-cvs2cl.pl -f _ChangeLog -d -l "-d '>2 months ago'"



newcd :

	ps2file $(addprefix /mgs2/,$(VOXLIST) $(DEMOLIST) $(MOVIELIST))



tags :

	gcltags.pl $(SCENARIOS) $(CODECS) > TAGS

htags :

	gcltags.pl -H $(SCENARIOS) $(CODECS) > HTAGS



.DEFAULT:

	mergescene -i $(STAGEPATH)/$@/$@.scn -o $(STAGEPATH)/$@/_$@.scn

	scn2hzx	-i $(STAGEPATH)/$@/_$@.scn -o $(STAGEPATH)/$@/$@.hzx



ifneq ($(wildcard $(DEPENDS)),)

include $(DEPENDS)

endif



ifeq ($(MGS2_VRTRIAL),1)

tr01a.gco : tr01a.gcl vs03a.gcl

tr02a.gco : tr02a.gcl vs08a.gcl

tr03a.gco : tr03a.gcl wp01a.gcl

tr04a.gco : tr04a.gcl wp73a.gcl

tr05a.gco : tr05a.gcl sp06a.gcl

endif

