#!/usr/bin/env omake
#----------------------------------------------------------------------------
#
#	  BuildModelData@Ro[g
#
# 2011.06.28  takahashi
#   
#----------------------------------------------------------------------------

#----------------------------------------------------------------------------
#			[U[`
#       CONVERT̓etrueɂ[U[Lq
#       jtomoya_takahashi hoge hoge2
#----------------------------------------------------------------------------
USERS[] = takahashi_tomoya

#----------------------------------------------------------------------------
#			^[Qbgt@C
#       Ƀ^[Qbgt@CLq@
#       jlyt_test_res
#----------------------------------------------------------------------------
#GAƂbmdataz
TARGET_FILE_DATA = field_bm_dat
#GAƂ̃eNX`
TARGET_FILE_TEX = field_bm_tex
#zufAff[^
TARGET_FILE_MDL = field_bm_mdl
#zufAAjf[^
TARGET_FILE_ANM = field_bm_anm

AREATEX_DIR = res_tex/
MDL_DIR = res_mdl/
ANM_DIR = res_anm/

OUT_DAT_DIR = out_dat/
OUT_TEX_DIR = out_tex/
OUT_MDL_DIR = out_mdl/
OUT_ANM_DIR = out_anm/

TYPES_HEADER = $(getenv PROJECT_ROOT)/prog/src/field/FieldBuildModelTypes.h

#----------------------------------------------------------------------------
#			Rs[tH_
#       ɃRs[tH_@
#       j$(getenv PROGRAMDIR)/romfiles/
#----------------------------------------------------------------------------
TARGET_DIR = $(getenv PROJECT_ROOT)/arc/

#----------------------------------------------------------------------------
#			macro
#			 ̃}NǂݍނƂŁACONVERTUSERȂǂ`B
#----------------------------------------------------------------------------
include $(getenv PROJECT_ROOT)/resource/macro_define
include $(getenv GFL_TOOL_DIR)/g3d_tool/g3d_omake_tool

#----------------------------------------------------------------------------
#			ˑt@C
#----------------------------------------------------------------------------
OBJ = buildmodel.xls
OBJ_TXT_FILE = buildmodel.txt


#----------------------------------------------------------------------------
#			c[
#----------------------------------------------------------------------------
XLS2TAB = ruby $(getenv GFL_TOOL_DIR)/exceltool/xls2xml/tab_out.rb



#----------------------------------------------------------------------------
#			TutH_
#----------------------------------------------------------------------------
.SUBDIRS:


#----------------------------------------------------------------------------
#    AEgvbgoCi邽߂̈ˑ֌W`
#----------------------------------------------------------------------------
#fBNgȉ̑SẴt@C1̃oCiɂB
OutputBinaryOne(in_direct, in_output) =
  OFILES =
  count = 0
  foreach( dir_one, $(in_direct) )
    output = $(nth $(count), $(in_output))
    count = $(add $(count), 1)
    OFILES += $(G3DTOOL_MakeOneG3dBinaryFileInDirectorySimple $(output), $(dir_one))
    export OFILES count

#Pt@C1oCi
OutputBinaryEach(in_direct, in_output) =
  OFILES =
  count = 0
  foreach( dir_one, $(in_direct) )
    output = $(nth $(count), $(in_output))
    count = $(add $(count), 1)
    OFILES += $(G3DTOOL_MakeEachG3dBinaryFileInDirectorySimple $(output), $(dir_one))
    export OFILES count
  
  return $(OFILES)

#ff[^̃oCi
OutputBinaryMdl(in_direct, in_output) =
  OFILES =
  count = 0
  foreach( dir_one, $(in_direct) )
    output = $(nth $(count), $(in_output))
    count = $(add $(count), 1)
    OFILES += $(G3DTOOL_MakeEachG3dBinaryFileInDirectoryAutoCreateShader $(output), $(dir_one))
    export OFILES count
  
  return $(OFILES)


# res_texȉ̃tH_Ƃ̃oCif[^𐶐
OutputBinaryTex(in_direct, in_output) =
  OFILES =
  O_FILES =
  AREATEX_DIRS = $(glob D, $(in_direct)/[A-z]*)
  foreach( in_dir, $(AREATEX_DIRS) )
    O_FILES += $(in_output)/$(basename $(in_dir)).bcmdl
    export O_FILES
  
  return $(OutputBinaryOne $(AREATEX_DIRS), $(O_FILES))


#----------------------------------------------------------------------------
#			KA鏈
# Buildsꍇɂ́AAreaƂ̃eNX`ɃRs[鏈sB
#----------------------------------------------------------------------------
if $(or $(equal $(TARGETS), .DEFAULT) $(equal $(TARGETS), build))
  if $(equal $(CONVERTUSER), true)
    $(XLS2TAB) $(OBJ) > $(OBJ_TXT_FILE)
    ruby buildmode.rb $(OBJ_TXT_FILE) AREATEX $(AREATEX_DIR) -M=res_mdl 


#----------------------------------------------------------------------------
#			rh[
#----------------------------------------------------------------------------
build: $(TARGET_DIR)/$(TARGET_FILE_DATA).garc $(TARGET_DIR)/$(TARGET_FILE_TEX).garc $(TARGET_DIR)/$(TARGET_FILE_MDL).garc $(TARGET_DIR)/$(TARGET_FILE_ANM).garc
 
$(TARGET_DIR)/$(TARGET_FILE_DATA).garc:$(TARGET_FILE_DATA).garc
	cp $(TARGET_FILE_DATA).garc $(TARGET_DIR)

$(TARGET_DIR)/$(TARGET_FILE_ANM).garc:$(TARGET_FILE_ANM).garc
	cp $(TARGET_FILE_ANM).garc $(TARGET_DIR)

$(TARGET_DIR)/$(TARGET_FILE_TEX).garc:$(TARGET_FILE_TEX).garc
	cp $(TARGET_FILE_TEX).garc $(TARGET_DIR)

$(TARGET_DIR)/$(TARGET_FILE_MDL).garc:$(TARGET_FILE_MDL).garc
	cp $(TARGET_FILE_MDL).garc $(TARGET_DIR)


#ƁAUSER삵Ȃ
if $(equal $(CONVERTUSER), true)
	
	$(OBJ_TXT_FILE):$(OBJ)
		$(XLS2TAB) $(OBJ) > $(OBJ_TXT_FILE)

	#zufƂBMf[^ƃeNX`o
	$(TARGET_FILE_DATA).garc:$(OBJ_TXT_FILE) $(TARGET_FILE_MDL).garc $(TARGET_FILE_ANM).garc $(TYPES_HEADER)
		ruby buildmode.rb $(OBJ_TXT_FILE) BMDAT $(OUT_DAT_DIR) $(TARGET_FILE_MDL).gaix $(TARGET_FILE_ANM).gaix 
		$(GFARC) $(TARGET_FILE_DATA).garc $(OUT_DAT_DIR)

	#ff[^
	$(TARGET_FILE_MDL).garc:$(OutputBinaryMdl $(MDL_DIR), $(OUT_MDL_DIR))
		$(GFARC) $(TARGET_FILE_MDL).garc $(OUT_MDL_DIR)

	#Ajf[^
	$(TARGET_FILE_ANM).garc:$(OutputBinaryEach $(ANM_DIR), $(OUT_ANM_DIR))
		$(GFARC) $(TARGET_FILE_ANM).garc $(OUT_ANM_DIR)
    
	#GAƂ̃eNX`f[^
	$(TARGET_FILE_TEX).garc:$(OutputBinaryTex $(AREATEX_DIR), $(OUT_TEX_DIR)) $(TARGET_FILE_DATA).garc
		$(GFARC) $(TARGET_FILE_TEX).garc $(OUT_TEX_DIR)

  

clean:
  rm -f $(TARGET_DIR)/$(TARGET_FILE_DATA).garc
  rm -f $(TARGET_DIR)/$(TARGET_FILE_ANM).garc
  rm -f $(TARGET_DIR)/$(TARGET_FILE_TEX).garc
  rm -f $(TARGET_DIR)/$(TARGET_FILE_MDL).garc

  #ƁAUSER삵Ȃ
  if $(equal $(CONVERTUSER), true)
    rm -f $(TARGET_FILE_DATA).garc
    rm -f $(TARGET_FILE_ANM).garc
    rm -f $(TARGET_FILE_TEX).garc
    rm -f $(TARGET_FILE_MDL).garc
    rm -f $(TARGET_FILE_DATA).gaix
    rm -f $(TARGET_FILE_ANM).gaix
    rm -f $(TARGET_FILE_TEX).gaix
    rm -f $(TARGET_FILE_MDL).gaix
    rm -f $(OBJ_TXT_FILE)
    rm -f $(OUT_DAT_DIR)/*
    rm -f $(OUT_MDL_DIR)/*
    rm -f $(OUT_TEX_DIR)/*
    rm -f $(OUT_ANM_DIR)/*
    rm -rf $(AREATEX_DIR)/*

DefineDefaultRules()
 

