#!/usr/bin/env omake

#----------------------------------------------------------------------------
#
#    g3d\[XOMakec[ g3d_omake_tool ǉ@\
#
#    NW4C̃Aj[Vt@C1ɂ܂Ƃ߂PackAnimt@C𐶐
#
#----------------------------------------------------------------------------




#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#
#
# [gp̒]
#
# OMakefileg3d_omake_toolincludeĂ̂ł𒼐includeA
# g3d_omake_toolinclude悤ɂĉB
#
#
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$




#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#
#
# []
#
# (1) pӂ
#
#     EAj[VXgt@Cmlst
#       aaa.mlst̒g
#         bbb00
#         bbb01
#         bbb02
#       (pXȂA.ȂAgqȂ)
#
#     EAj[Vt@CcsklaAcmataȂ
#       bbb00.cskla
#       bbb01.cskla
#       bbb02.cskla
#       bbb00.cmata
#       bbb02.cmata(bbb02.cmata͖ȃAj[Vt@C)
#       (bbb01.cmata݂͑Ȃ)
#
# (2) ł
#
#     EAj[Vt@CoCiɃRo[gt@C1ɂ܂Ƃ߂PackAnimt@C
#       aaa_cskla_pack
#       aaa_cmata_pack
#
#     E1ɂ܂Ƃ߂̂̉Ԃwb_t@C
#       aaa_cskla_pack.h
#       aaa_cmata_pack.h
#      
# (3) 菇
#
#     EAj[Vt@CoCiɃRo[gčƃfBNgɂ
#     EȃAj[Vt@C⑶݂Ȃ̂̓TCY[t@CoCiŃRs[čƃfBNgɂ
#     EbinlinkerŃoCiɂ̂1ɂ܂Ƃ߂
#     E aaa_cmata_packꍇ
#       bbb00.cmataRo[gbbb00.bcmata
#       bbb01.cmataTCY[t@C𖼑OŃRs[bbb00.bcmata
#       bbb02.cmataTCY[t@C𖼑OŃRs[bbb00.bcmata
#
# (ӎ)
#     Ek͂ĂȂ̂ŁAȂ1ɂ܂Ƃ߂PackAnimt@CkĉB
#     E1ɂ܂Ƃ߂̂oƂ́ATCY[ۂɋCtĎoĉB
#
#
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$




#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#
# J
#
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

#----------------------------------------------------------------------------
# `
#----------------------------------------------------------------------------
private.G3DTOOLANIM_BINLINKER       = $(getenv GFL_TOOL_DIR)/binlinker.rb
private.G3DTOOLANIM_BINLINKER_NO    = AP
private.G3DTOOLANIM_BINLINKER_ALIGN = 128

private.G3DTOOLANIM_ZERO_FILE                = $(getenv GFL_TOOL_DIR)/g3d_tool/g3d_zero_file
private.G3DTOOLANIM_ANIM_FILE_ENABLE_CHECKER = $(getenv GFL_TOOL_DIR)/g3d_tool/g3d_anim_file_enable_checker.rb



#----------------------------------------------------------------------------
# NW4C̃Aj[Vԃt@C11oCit@CɃRo[g
#     A݂ȂƂ̓TCY[t@CgpB
#----------------------------------------------------------------------------
# ߂l  oCit@C̔z(pXtA.tAgqt)
private.G3DTOOLANIM_MakeAnimBinFiles(in_lst, in_dir, in_ext, work_dir) =
  # ߂l  oCit@C̔z(pXtA.tAgqt)
  bin_files =

  # t@CI[v
  in_lst_file = $(fopen $(in_lst), r)
  
  # in_lst1sĂ
  in_lst_oneline = $(gets $(in_lst_file))
  while $(in_lst_oneline)
    # in_lst̒ڒ1słAj[Vt@C(pXtA.tAgqt)
    in_file = $(in_dir)/$(in_lst_oneline).$(in_ext)
    # in_fileRo[gĂłoCit@C(pXtA.tAgqt)
    bin_file = $(G3DTOOL_ChangeDirectoryInPath $(work_dir), $(G3DTOOL_ChangeG3dSuffixIntermediateToBinary $(in_file)))
    
    ######## in_file݂邩 ########
    if $(test -e $(in_file))
      ######## in_file݂Ƃ ########
      #### in_fileL ####
      in_file_enable = $(shell ruby $(G3DTOOLANIM_ANIM_FILE_ENABLE_CHECKER) $(in_file))
      if $(equal $(in_file_enable), 1)
        #### L ####
        ret = $(G3DTOOL_MakeOneG3dBinaryFileSimple $(bin_file), $(in_file))
        bin_files += $(bin_file)
        export bin_files
      else
        ####  ####
        $(bin_file): $(G3DTOOLANIM_ZERO_FILE)
          mkdir -p $(work_dir)
          cp $(G3DTOOLANIM_ZERO_FILE) $(bin_file)
        bin_files += $(bin_file)
        export bin_files
      export bin_files
    else
      ######## in_file݂ȂƂ ########
      $(bin_file): $(G3DTOOLANIM_ZERO_FILE)
        mkdir -p $(work_dir)
        cp $(G3DTOOLANIM_ZERO_FILE) $(bin_file)
      bin_files += $(bin_file)
      export bin_files
   
    # 1s𓾂
    in_lst_oneline = $(gets $(in_lst_file))
    export in_lst_oneline
    export bin_files

  # t@CN[Y
  close($(in_lst_file))

  return $(bin_files)




#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#
# J
#
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

#----------------------------------------------------------------------------
# NW4C̃Aj[Vt@C1ɂ܂Ƃ߂PackAnimt@C𐶐
#----------------------------------------------------------------------------
# ߂l    out_file
# out_file  o̓t@C(pXtŎw)    hhh/ggg/aaa_cmata_pack   ł̂hhh/ggg/aaa_cmata_packhhh/ggg/aaa_cmata_pack.h
# in_lst    Aj[VXgt@C(pXtŎw)  eee/ddd/aaa.mlst
# in_dir    Aj[Vt@CfBNg  eee/ddd/ccc/
# in_dir    Aj[Vt@C̊gq(.Ȃ)  cmata
# in_dir    ƃfBNg  eee/ddd/fff/
global.G3DTOOLANIM_MakePackAnimFile(out_file, in_lst, in_dir, in_ext, work_dir) =
  $(out_file) $(out_file).h: $(in_lst) $(G3DTOOLANIM_BINLINKER) $(G3DTOOLANIM_MakeAnimBinFiles $(in_lst), $(in_dir), $(in_ext), $(work_dir))
    mkdir -p $(dirname $(out_file))
    ruby $(G3DTOOLANIM_BINLINKER) $(G3DTOOLANIM_MakeAnimBinFiles $(in_lst), $(in_dir), $(in_ext), $(work_dir)) $(out_file) $(G3DTOOLANIM_BINLINKER_NO) $(G3DTOOLANIM_BINLINKER_ALIGN)
  return $(out_file)




#----------------------------------------------------------------------------
#
# end
#
#----------------------------------------------------------------------------
