#!smake
###############################################################################
#
#	              ヨッシーのメイクファイル
#
# <メイクの機能説明>
#
#  "[ ]"は省略可能.
#
#  SOUND_OFF=          サウンドを外した実行形式の生成のオプション
#  HAYAKAWA_LIB_TEST=  早川専用モードでのメイクのオプション
#  HAYAKAWA_LIB=       最新ライブラリでのメイク(暫定)のオプション
#  FORCE_CPP=          強制的にＣ＋＋としてコンパイルのオプション
#
#  範囲指定逆アセンブル（低速）：make dis "GDISOPT=-b 0x80001234 -e 0x80002345"
#  範囲指定逆アセンブル（高速）：make dis0 "GDISOPT=-b 0x80001234 -e 0x80002345"
#  範囲指定逆アセンブル（中速）：make dis1 "GDISOPT=-b 0x80001234 -e 0x80002345"
#  最新のサウンドを取ってくる       : make get_sd
#
#  ファイルバージョンを一斉に更新   : make verup
#
#  開発のための実行形式の生成       : make -k 
#  製品版ROMの生成                  : make r_rompro  (オプション無効)
#  CM版ROMの生成                    : make r_romcm   (オプション無効)
#  マップツール版ROMの生成          : make r_mtool   (オプション無効)
#
#  一部を除き分散全コンパイル       : make -k r_all  (オプション無効)
#  分散コンパイル(".o"の生成)       : make -k r_make (オプション無効)
#                                   : make -k r_data
#                                   : make -k r_src
#                                   : make -k r_ovl1
#                                   : make -k r_ovl2
#                                   : make -k r_ovl3
#                                   : make -k r_ovl4
#  分散コンパイル結果を取ってくる   : make    r_get [GET_USER=(ユーザー名)]
#                                                   [GET_MACHINE=(マシン名)]
#                                                   [GET_DIR=(ディレクトリー)]
#
#  全てのプログラムの".o"の生成     : make -k prg
#  全てのデータの".o"の生成         : make -k data
#  常駐プログラムの".o"の生成       : make -k src
#  オーバレイ1の".o"の生成          : make -k ovl1
#  オーバレイ2の".o"の生成          : make -k ovl2
#  オーバレイ3の".o"の生成          : make -k ovl3
#  オーバレイ4の".o"の生成          : make -k ovl4
#  ワールドデータの".o"の生成       : make -k wdt
#  ワープデータの".o"の生成         : make -k wrp
#  キャストデータの".o"の生成       : make -k cdt
#  セルデータの".o"の生成           : make -k cell
#  ユニットデータの".o"の生成       : make -k udt
#
#  Makedepend の削除                : make -k clnmkd
#  プログラムと一部のデータ削除     : make -k cln
#  全てのデータの削除               : make -k clndt
#  全てのオブジェクトの削除         : make -k clnall
#
#  常駐オブジェクトの削除           : make -k clnsrc
#  オーバレイの削除                 : make -k clnovl
#  ワールドデータの削除             : make -k clnwdt
#  ワープデータの削除               : make -k clnwrp
#  キャストデータの削除             : make -k clncdt
#  セルデータの削除                 : make -k clncell
#  ユニットデータの削除             : make -k clnudt
#
# <メイク環境について>
#
#    環境変数"PRJDIR"に現在のプロジェクトを展開しているディレクトリを指定する.
#    製品バージョン以外で表示されるバージョン情報は、version.c がコンパイルさ
#  れなければ更新されない.
#
# <情報開発へのROM転送について>
#
#    ○ CICマスク済みROMの生成
#
#        ユーザ yoshi の make rompro, make romcm で生成されるCICマスク済みのROM
#      イメージの情報開発への転送方法について.
#        make rompro, make romcm の結果、以下の rom ファイルが生成される.
#
#        rom ------ CIC済みROMイメージファイル
#        rom.msk -- CICマスク済みROMイメージファイル
#
#        生成されたROMイメージはCIC対応のROMカセット環境でしか動作しない.
#        転送方法は以下の通り、
#
#        rcp rom.msk srd@ikuiku:~/YOSHI
#
#   ○ CICマスクを外したROMの生成
#
#      (1) ファイルMakefile_Hの以下の個所の USE_CIC6104 を USE_CIC6104=0
#        (CICの不許可) にする.
#
#          製品版の場合
#
#          #ifdef PRODUCT_VERSION   
#                    :
#          LMAKEOPT += -DUSE_CIC6104=1             # CICの許可/不許可
#                    :
#          #endif
#
#          CM版の場合
#
#          #ifdef CM_VERSION
#                    :
#          LMAKEOPT += -DUSE_CIC6104=1             # CICの許可/不許可
#                    :
#          #endif
#
#      (2) 以下のファイルを削除する.
#          actorManager.o castManager.o cellManager.o nxgotoManager.o systemS.o
#
#      (3) make rompro を行う.
#          生成されたROMイメージはエミュレータ環境とCICチェックの無いカセット
#        で動作する.
#
#  $Id: Makefile,v 1.1.1.1 2003/05/19 20:32:50 tong Exp $
#
###############################################################################
include Makefile_h.mk
include srcfiles.mk
include ovlfiles.mk
include ucelldata.mk
include castdata.mk
include worlddata.mk
include warpdata.mk
include unitdata.mk
include mesgdata.mk
include autoplayData.mk

ROMOBJECTS  =  $(UDSEGMENT)  $(MSGSEGMENT)  \
	       $(UCSEGMENT)  $(CDSEGMENT)     $(WDSEGMENT)   $(WPSEGMENT)\
	       $(APSEGMENT)   \
	       $(CODESEGMENT) \
	       $(OVLSEGMENT1) $(OVLRELFILES1) $(OVLSEGMENT2) $(OVLRELFILES2) \
	       $(OVLSEGMENT3) $(OVLRELFILES3) $(OVLSEGMENT4) $(OVLRELFILES4) \
	       $(OVLSEGMENT5) $(OVLRELFILES5) $(OVLSEGMENT6) $(OVLRELFILES6) \
	       $(DATAOBJECTS) $(HPSEGMENT) 

##SPECFILE = new_yoshi.spec
SPECFILE = yoshi.spec
TARGETS	 = rom yoshi

TGLIST1   = actor_*.[ch] 
TGLIST1   = $(CFILES)    *Manager*.h *ross*.h system*.h main*.h Malloc*.h
TGLIST2   = $(OVLFILES1) actor_*.h
TGLIST3   = $(OVLFILES2)
TGLIST4   = $(OVLFILES3)
TGLIST5   = $(OVLFILES4)
TGLIST6   = $(OVLFILES5)
TGLIST7   = $(OVLFILES6)


default: $(TARGETS)

#copyslib :
#	\rm -rf ../PR/*
#	\cp -r /project/YOSHI/PR/*  ../PR

###  タグファイルを作る ###
tags   : $(TGLIST1) $(TGLIST2) $(TGLIST3) $(TGLIST4) $(TGLIST5) $(TGLIST6)
	etags $(TGLIST1)
	etags -a $(TGLIST2)
	etags -a $(TGLIST3)
	etags -a $(TGLIST4)
	etags -a $(TGLIST5)
	etags -a $(TGLIST6)

###  範囲指定逆アセンブル ###
dis::
	gdis -S \
	$(GDISOPT) \
	-I. \
	-I$(SLIBDIR)/libbg \
	-I$(SLIBDIR)/libu64 \
	-I$(SLIBDIR)/libc64 \
	-I/project/YOSHI/SOUND_SRC/Audio \
	-I/project/YOSHI/SOUND_SRC/Audio/Driver \
	-I/project/YOSHI/SOUND_SRC/Audio/Game \
	-I/project/YOSHI/SOUND_SRC/Audio/History \
	-I/project/YOSHI/SOUND_SRC/Audio/Include \
	-I/project/YOSHI/SOUND_SRC/Audio/Memory \
	-I/project/YOSHI/SOUND_SRC/Audio/Os \
	-I/project/YOSHI/SOUND_SRC/Audio/Player \
	-I/project/YOSHI/SOUND_SRC/Audio/Player/Channel \
	-I/project/YOSHI/SOUND_SRC/Audio/Player/Effect \
	-I/project/YOSHI/SOUND_SRC/Audio/Player/Track \
	-I/project/YOSHI/SOUND_SRC/Audio/Port \
	-I/project/YOSHI/SOUND_SRC/Audio/Rsp \
	-I/project/YOSHI/SOUND_SRC/Audio/System \
	-I/project/YOSHI/SOUND_SRC/Audio/Works \
	-I/project/YOSHI/SOUND_SRC/Debug \
	-I/project/YOSHI/SOUND_SRC/Game \
	-I/project/YOSHI/SOUND_SRC/Game/SE \
	-I/project/YOSHI/SOUND_SRC/Inter \
	-I/usr/local/srd/PR/patch/PR \
	-I/usr/include/PR \
	-I/usr/src/PR/libultra \
	-I/usr/src/PR/libultra/gu yoshi > dis
dis0::
	gdis -S \
	$(GDISOPT) \
	-I. yoshi  > dis
dis1::
	gdis -S \
	$(GDISOPT) \
	-I. \
	-I$(SLIBDIR)/libbg \
	-I$(SLIBDIR)/libu64 \
	-I$(SLIBDIR)/libc64 \
	-I/usr/local/srd/PR/patch/PR \
	-I/usr/include/PR \
	-I/usr/src/PR/libultra \
	-I/usr/src/PR/libultra/gu yoshi > dis

###  ファイルのバージョンを一斉に更新する  ###
verup :
	@echo "***************************************************************"
	@echo "*                ファイルのバージョンを一斉に更新する
	@echo "***************************************************************"
	@locklist

###  サウンドオブジェクトを取る  ###
get_sd:
	@echo "***************************************************************"
	@echo "*                最新サウンドを取得する"
	@echo "***************************************************************"
	@rcp  "srd@ikuiku:~/YOSHI/SOUND/*"         ../SOUND
	@chmod -R g+w ../SOUND/.
###  Makedependを削除 ###
clnmkd:
	$(RM) Makedepend*

###  各オブジェクトの削除  ###
clnsrc:
	@make -f makefile_src  cln
clnovl:
	@make -f makefile_ovl  cln
	@make -f makefile_ovl2 cln
	@make -f makefile_ovl3 cln
	@make -f makefile_ovl4 cln
	@make -f makefile_ovl5 cln
	@make -f makefile_ovl6 cln
clnwdt:
	@make -f makefile_wdt  cln
clnwrp:
	@make -f makefile_wrp  cln
clncdt:
	@make -f makefile_cdt  cln
clncell:
	@make -f makefile_cell cln
clnudt:
	@make -f makefile_udt  cln
clnmsg:
	@make -f makefile_msg  cln
clnapd:
	@make -f makefile_apd  cln
###  プログラムオブジェクトと一部のデータオブジェクトの削除 ###
cln:
	@echo  "* プログラムと一部のデータの xxxxx.o の削除"
	@make  clnmkd
	@make  clnsrc
	@make  clnovl
	@make  clnwdt
	@make  clnwrp
	@make  clncdt
##	@make  clncell
	@make  clnmsg
	@make  clnapd
	@$(RM) $(UDSEGMENT) $(MSGSEGMENT)  
###  すべてのデータオブジェクトの削除 ###
clndt:
	@echo  "* すべてのデータの xxxxx.o の削除"
	@make  clnwdt
	@make  clnwrp
	@make  clncdt
	@make  clnmsg
	@make  clncell
	@make  clnudt
	@make  clnapd
###  すべてのオブジェクトの削除 ###
clnall:
	@echo  "* すべての xxxxx.o の削除"
	@make  clnmkd
	@make  cln
	@make  clnudt

###  各セグメント別の".o"の生成  ###
udt:
	make -k -f makefile_udt  $(VERSION)
msg:
	make -k -f makefile_msg  $(VERSION)
cell:
	make -k -f makefile_cell $(VERSION)
cdt:   
	make -k -f makefile_cdt  $(VERSION)
wdt:   
	make -k -f makefile_wdt  $(VERSION)
wrp:   
	make -k -f makefile_wrp  $(VERSION)
apd:   
	make -k -f makefile_apd  $(VERSION)
src:   
	make -k -f makefile_src  $(VERSION)
ovl1:   
	make -k -f makefile_ovl  $(VERSION)
ovl2:   
	make -k -f makefile_ovl2 $(VERSION)
ovl3:   
	make -k -f makefile_ovl3 $(VERSION)
ovl4:   
	make -k -f makefile_ovl4 $(VERSION)
ovl5:   
	make -k -f makefile_ovl5 $(VERSION)
ovl6:   
	make -k -f makefile_ovl6 $(VERSION)

###  プログラムコードの".o"の生成  ###
prg: 
	@echo "* プログラムの xxxxx.o の生成"
	@make src  $(VERSION)
	@make ovl1 $(VERSION)
	@make ovl2 $(VERSION)
	@make ovl3 $(VERSION)
	@make ovl4 $(VERSION)
	@make ovl5 $(VERSION)
	@make ovl6 $(VERSION)
###  データコードの".o"の生成  ###
data:
	@echo "* データの xxxxx.o の生成"
	@make udt  $(VERSION)
	@make msg  $(VERSION)
	@make cell $(VERSION)
	@make cdt  $(VERSION)
	@make wdt  $(VERSION)
	@make wrp  $(VERSION)
	@make apd  $(VERSION)

###  通常の目的別コンパイル  ###
rompro:
	@echo "***************************************************************"
	@echo "*                   make product version rom"
	@echo "***************************************************************"
	@make PRODUCT_VERSION=
romcm:
	@echo "***************************************************************"
	@echo "*                   ＣＭ版ROMを生成する"
	@echo "***************************************************************"
	@make CM_VERSION=
mtool:
	@echo "***************************************************************"
	@echo "*                   マップツール版ROMを生成する"
	@echo "***************************************************************"
	@time make TOOL_VERSION=
rompt:
	@echo "***************************************************************"
	@echo "*                   パートナー版を生成する"
	@echo "***************************************************************"
	@make PARTNER_VERSION=

###  リモートによるコンパイルを行う  ###
r_data:
	@echo "* $(RMAKEMACH_DATA) : データコンパイル開始"
	@rsh  $(USER)@$(RMAKEMACH_DATA) 'wall -a $(DATADIR)/cc_useMsg.doc'
	@rsh  $(USER)@$(RMAKEMACH_DATA) \
		'cd $(DATADIR);time make data $(VERSION);'
	@rsh  $(USER)@$(RMAKEMACH_DATA) 'wall -a $(DATADIR)/cc_thankMsg.doc'
#	@cp   $(DATADIR)/*.o  $(RMAKEDIR)
	@echo "$(RMAKEMACH_DATA) : データのコンパイル完了!!"
r_src:
	@echo "* $(RMAKEMACH_SRC)  : 常駐プログラムのコンパイル開始"
	@rsh  $(USER)@$(RMAKEMACH_SRC) 'wall -a $(SRCDIR)/cc_useMsg.doc'
	@rsh  $(USER)@$(RMAKEMACH_SRC) \
		'cd $(SRCDIR);time make src $(VERSION);'
	@rsh  $(USER)@$(RMAKEMACH_SRC) 'wall -a $(SRCDIR)/cc_thankMsg.doc'
#	@cp   $(SRCDIR)/*.o  $(RMAKEDIR)
	@echo "$(RMAKEMACH_SRC) : 常駐プログラムのコンパイル完了!!"
r_ovl1: 
	@echo "* $(RMAKEMACH_OVL1) : オーバーレイ１のコンパイル開始"
	@rsh  $(USER)@$(RMAKEMACH_OVL1) 'wall -a $(OVL1DIR)/cc_useMsg.doc'
	@rsh  $(USER)@$(RMAKEMACH_OVL1) \
		'cd $(OVL1DIR);time make ovl1 $(VERSION);'
	@rsh  $(USER)@$(RMAKEMACH_OVL1) 'wall -a $(OVL1DIR)/cc_thankMsg.doc'
#	@cp   $(OVL1DIR)/*.o  $(RMAKEDIR)
	@echo "$(RMAKEMACH_OVL1) : オーバーレイ１のコンパイル完了!!"
r_ovl2: 
	@echo "* $(RMAKEMACH_OVL2) : オーバーレイ２のコンパイル開始"
	@rsh  $(USER)@$(RMAKEMACH_OVL2) 'wall -a $(OVL2DIR)/cc_useMsg.doc'
	@rsh  $(USER)@$(RMAKEMACH_OVL2) \
		'cd $(OVL2DIR);time make ovl2 $(VERSION);'
	@rsh  $(USER)@$(RMAKEMACH_OVL2) 'wall -a $(OVL2DIR)/cc_thankMsg.doc'
#	@cp   $(OVL2DIR)/*.o  $(RMAKEDIR)
	@echo "$(RMAKEMACH_OVL2) : オーバーレイ２のコンパイル完了!!"
r_ovl3: 
	@echo "* $(RMAKEMACH_OVL3) : オーバーレイ３のコンパイル開始"
	@rsh  $(USER)@$(RMAKEMACH_OVL3) 'wall -a $(OVL3DIR)/cc_useMsg.doc'
	@rsh  $(USER)@$(RMAKEMACH_OVL3) \
		'cd $(OVL3DIR);time make ovl3 $(VERSION);'
	@rsh  $(USER)@$(RMAKEMACH_OVL3) 'wall -a $(OVL3DIR)/cc_thankMsg.doc'
#	@cp   $(OVL3DIR)/*.o  $(RMAKEDIR)
	@echo $(RMAKEMACH_OVL3) : オーバーレイ３のコンパイル完了!!
r_ovl4: 
	@echo "* $(RMAKEMACH_OVL4) : オーバーレイ４のコンパイル開始"
	@rsh  $(USER)@$(RMAKEMACH_OVL4) 'wall -a $(OVL4DIR)/cc_useMsg.doc'
	@rsh  $(USER)@$(RMAKEMACH_OVL4) \
		'cd $(OVL4DIR);time make ovl4 $(VERSION);'
	@rsh  $(USER)@$(RMAKEMACH_OVL4) 'wall -a $(OVL4DIR)/cc_thankMsg.doc'
#	@cp   $(OVL4DIR)/*.o  $(RMAKEDIR)
	@echo $(RMAKEMACH_OVL4) : オーバーレイ４のコンパイル完了!!
r_ovl5: 
	@echo "* $(RMAKEMACH_OVL5) : オーバーレイ５のコンパイル開始"
	@rsh  $(USER)@$(RMAKEMACH_OVL5) 'wall -a $(OVL5DIR)/cc_useMsg.doc'
	@rsh  $(USER)@$(RMAKEMACH_OVL5) \
		'cd $(OVL5DIR);time make ovl5 $(VERSION);'
	@rsh  $(USER)@$(RMAKEMACH_OVL5) 'wall -a $(OVL5DIR)/cc_thankMsg.doc'
#	@cp   $(OVL5DIR)/*.o  $(RMAKEDIR)
	@echo $(RMAKEMACH_OVL5) : オーバーレイ５のコンパイル完了!!
r_ovl6: 
	@echo "* $(RMAKEMACH_OVL6) : オーバーレイ６のコンパイル開始"
	@rsh  $(USER)@$(RMAKEMACH_OVL6) 'wall -a $(OVL6DIR)/cc_useMsg.doc'
	@rsh  $(USER)@$(RMAKEMACH_OVL6) \
		'cd $(OVL6DIR);time make ovl6 $(VERSION);'
	@rsh  $(USER)@$(RMAKEMACH_OVL6) 'wall -a $(OVL6DIR)/cc_thankMsg.doc'
#	@cp   $(OVL6DIR)/*.o  $(RMAKEDIR)
	@echo $(RMAKEMACH_OVL6) : オーバーレイ６のコンパイル完了!!
r_rompro:
	@echo "***************************************************************"
	@echo "*             分散コンパイルで製品版ROMを生成する"
	@echo "*           ○製品版ROMは $(HOST) に生成されます."
	@echo "***************************************************************"
	@time make udt PRODUCT_VERSION=
	@time make msg PRODUCT_VERSION=
	@time remote_makeAll PRODUCT_VERSION=
	@time make rompro
r_romcm:
	@echo "***************************************************************"
	@echo "*             分散コンパイルでＣＭ版ROMを生成する"
	@echo "*           ○ＣＭ版ROMは $(HOST) に生成されます."
	@echo "***************************************************************"
	@time make udt CM_VERSION=
	@time make msg CM_VERSION=
	@time remote_makeAll CM_VERSION=
	@time make romcm
r_mtool:
	@echo "***************************************************************"
	@echo "*           分散コンパイルでマップツール版ROMを生成する"
	@echo "*           ○オブジェクトは $(HOST) に生成されます."
	@echo "***************************************************************"
	@time make udt TOOL_VERSION=
	@time make msg TOOL_VERSION=
	@time remote_makeAll TOOL_VERSION=
	@time make TOOL_VERSION=
r_make:
	@echo "***************************************************************"
	@echo "*                  分散コンパイルを行う"
	@echo "*           ○オブジェクトは $(HOST) に生成されます."
	@echo "***************************************************************"
	@time make udt 
	@time make msg 
	@time remote_makeAll DEVELOP_VERSION=
r_all:
	@echo "***************************************************************"
	@echo "*        一部のデータを除きすべての分散コンパイルを行う"
	@echo "***************************************************************"
	@make  cln
	@make  r_make
	@make
###  分散コンパイル結果を取ってくる  ###
r_get:
	@echo "***************************************************************"
	@echo "*              分散コンパイル結果を取ってくる"
	@echo "***************************************************************"
	@rmfiles
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_a*c.[cho]"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_[b-g]*c.[cho]"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_[h-n]*c.[cho]"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_[o-t]*c.[cho]"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_[u-v]*c.[cho]"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_w*c.c"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_w*c.h"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_w*c.o"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_[x-z]*c.[cho]"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit_[A-Z]*c.[cho]"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/a*.o"    .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/[b-t]*.o"    .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/ucell*.o"    .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/unit[MD]*.o" .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/[v-z]*.o"    .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/[A-Z]*.o"    .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/*.rel"  .
	rcp -rv "$(GET_USER)@$(GET_MACHINE):$(GET_DIR)/*.map"  .
	@$(RM) worldDatabase.o actorEManager.o
###  分散コンパイル先のメイクプロセス情報を表示する  ###
list_r:
	@echo "***************************************************************"
	@echo "*     分散コンパイル先のメイクプロセス情報を表示する."
	@echo "***************************************************************"
	@echo "○ $(RMAKEMACH_DATA) : データコンパイル ***********************"
	@rsh  $(USER)@$(RMAKEMACH_DATA) 'ps -ef | grep make'
	@echo "○ $(RMAKEMACH_SRC)  : 常駐プログラムのコンパイル *************"
	@rsh  $(USER)@$(RMAKEMACH_SRC)  'ps -ef | grep make'
	@echo "○ $(RMAKEMACH_OVL1) : オーバーレイ１のコンパイル *************"
	@rsh  $(USER)@$(RMAKEMACH_OVL1) 'ps -ef | grep make'
	@echo "○ $(RMAKEMACH_OVL2) : オーバーレイ２のコンパイル *************"
	@rsh  $(USER)@$(RMAKEMACH_OVL2) 'ps -ef | grep make'
	@echo "○ $(RMAKEMACH_OVL3) : オーバーレイ３のコンパイル *************"
	@rsh  $(USER)@$(RMAKEMACH_OVL3) 'ps -ef | grep make'
	@echo "○ $(RMAKEMACH_OVL4) : オーバーレイ４のコンパイル *************"
	@rsh  $(USER)@$(RMAKEMACH_OVL4) 'ps -ef | grep make'
	@echo "○ $(RMAKEMACH_OVL5) : オーバーレイ５のコンパイル *************"
	@rsh  $(USER)@$(RMAKEMACH_OVL5) 'ps -ef | grep make'
	@echo "○ $(RMAKEMACH_OVL6) : オーバーレイ６のコンパイル *************"
	@rsh  $(USER)@$(RMAKEMACH_OVL6) 'ps -ef | grep make'
###  通常のコンパイル  ###
$(MSGSEGMENT)  : $(MSGOBJECTS)
	@make msg $(VERSION)
$(UDSEGMENT)   : $(UDOBJECTS)
	@make udt $(VERSION)
$(WDSEGMENT)   : $(WDOBJECTS)
	@make wdt  $(VERSION)
$(WPSEGMENT)   : $(WPOBJECTS)
	@make wrp  $(VERSION)
$(APSEGMENT)   : $(APOBJECTS)
	@make apd  $(VERSION)
$(UCSEGMENT)   : $(UCOBJECTS)
	@make cell $(VERSION)
$(CDSEGMENT)   : $(CDOBJECTS)
	@make cdt  $(VERSION)
$(OVLSEGMENT1) : $(OVLOBJECTS1)
	@make ovl1 $(VERSION)
$(OVLSEGMENT2) : $(OVLOBJECTS2)
	@make ovl2 $(VERSION)
$(OVLSEGMENT3) : $(OVLOBJECTS3)
	@make ovl3 $(VERSION)
$(OVLSEGMENT4) : $(OVLOBJECTS4)
	@make ovl4 $(VERSION)
$(OVLSEGMENT5) : $(OVLOBJECTS5)
	@make ovl5 $(VERSION)
$(OVLSEGMENT6) : $(OVLOBJECTS6)
	@make ovl6 $(VERSION)
$(CODESEGMENT) : $(CODEOBJECTS)
	@make src  $(VERSION)
$(HPSEGMENT)   : $(HPOBJECTS)
	@make src  $(VERSION)

###  ROMイメージの生成  ###
$(TARGETS) : $(SPECFILE) $(ROMOBJECTS) 
	@echo "*** make ROM image"
	BG_LIBDIR=$(BG_LIBDIR); export BG_LIBDIR; \
	COMMON_LIBDIR=$(COMMON_LIBDIR); export COMMON_LIBDIR; \
	PATCH_LIBDIR=$(PATCH_LIBDIR); export PATCH_LIBDIR; \
	$(MAKEROM) $(MAKEROMOPT) -r rom $(MAKEOPT) $(SPECFILE) > yoshi.map
#if   (defined(SYS_ROMCASSETTE) || defined(SYS_GATEWAY_N64))
	@$(RM) version.o
#endif
	@$(RM) *.mmap
	$(MAPCNV)  $(CODESEGMENT:.o=.map)  $(CODESEGMENT:.o=.mmap)
	$(MAPCNV)  $(OVLSEGMENT1:.o=.map)  $(OVLSEGMENT1:.o=.mmap)
	$(MAPCNV)  $(OVLSEGMENT2:.o=.map)  $(OVLSEGMENT2:.o=.mmap)
	$(MAPCNV)  $(OVLSEGMENT3:.o=.map)  $(OVLSEGMENT3:.o=.mmap)
	$(MAPCNV)  $(OVLSEGMENT4:.o=.map)  $(OVLSEGMENT4:.o=.mmap)
	$(MAPCNV)  $(OVLSEGMENT5:.o=.map)  $(OVLSEGMENT5:.o=.mmap)
	$(MAPCNV)  $(OVLSEGMENT6:.o=.map)  $(OVLSEGMENT6:.o=.mmap)
	$(MAPCNV)  $(CDSEGMENT:.o=.map)    $(CDSEGMENT:.o=.mmap)
	$(MAPCNV)  $(UCSEGMENT:.o=.map)    $(UCSEGMENT:.o=.mmap)
	$(MAPCNV)  $(WDSEGMENT:.o=.map)    $(WDSEGMENT:.o=.mmap)
	$(MAPCNV)  $(WPSEGMENT:.o=.map)    $(WPSEGMENT:.o=.mmap)
	$(MAPCNV)  $(APSEGMENT:.o=.map)    $(APSEGMENT:.o=.mmap)
	$(MAPCNV)  $(UDSEGMENT:.o=.map)    $(UDSEGMENT:.o=.mmap)
	$(MAPCNV)  $(HPSEGMENT:.o=.map)    $(HPSEGMENT:.o=.mmap)
	$(MAPCNV)  $(MSGSEGMENT:.o=.map)   $(MSGSEGMENT:.o=.mmap)
	$(MAPCNV)  yoshi.map               yoshi.mmap
###	make tags &
###
####### ＲＯＭカセットイメージの生成
####ifdef REALROM
###	cp -f rom rom.msk
####ifdef SYS_GATEWAY_N64
###	/usr/sbin/makemask rom.msk
####else
###	/usr/sbin/makemask6104 rom.msk
####endif
####endif
###
####ifdef DEVELOP_VERSION
####if    (defined(SYS_ROMCASSETTE) || defined(SYS_GATEWAY_N64))
###	cp -f rom rom.msk
###	/usr/sbin/makemask rom.msk
####endif
####endif
###
####### ディスクイメージの生成
####ifdef SYS_N64DISK
###	/usr/sbin/makedisk -t 0 -r rom $(SPECFILE) 
####ifdef FOR_ISVIEWER
###	isvwrite.pl < gwrite > iwrite
###	iwrite
####endif
####endif
###
###
###
####if !defined(HAYAKAWA_LIB_TEST) && !defined(HAYAKAWA_TEST)
###	(./bell.sh; make tags) &
####endif
