###############################################################################
#
#	            メイクファイルのヘッダー
#
#  $Id: Makefile_H,v 1.2 2003/05/22 09:00:53 tong Exp $
#
###############################################################################

#.PATH: ..
include $(ROOT)/usr/include/make/PRdefs
# FORCE_CPP = 1
#include /usr/local/srd/PR/SRDdefs.mk
include srd.mk

SHELL = /bin/sh

LDIRT  =  *.rel

LD = $(ROOT)/usr/lib/PR/nld

### ファイル削除マクロ ###
RM = \rm -rf

### ディレクトリ指定
PATCH_DIR  = ../PR/patch/PR

LIBDIR     = ../LIB
TOOLDIR    = ../TOOLS
SOUNDDIR   = ../SOUND
##SLIBDIR    = ../SLIB
SLIBDIR    = /home/hayakawa/prj/PR
##SOUNDDIR   = ../SOUND_DBG

MAPCNV     = $(TOOLDIR)/mapcnv
###############################################################################
#          条件コンパイルの設定
###############################################################################

VERSION =


######  早川テスト用  ######

#ifdef  HAYAKAWA_LIB || HAYAKAWA_LIB_TEST || HAYAKAWA_TEST
VERSION += HAYAKAWA_LIB=
#endif
#ifdef  HAYAKAWA_LIB_TEST
VERSION += HAYAKAWA_LIB_TEST=
#endif
#ifdef  HAYAKAWA_TEST
VERSION += HAYAKAWA_TEST=
#endif

#ifdef VMAKEOPT
VERSION += "VMAKEOPT=$(VMAKEOPT)"
#endif

###ifdef ISVIEWER
#if 1
VERSION += "ISVIEWER=$(ISVIEWER)"
#endif


######  リモートによる分散コンパイル関連の設定  ######

RMAKEDIR       = $(PRJDIR)/SRC

RMAKEMACH_DATA = srd65
DATADIR        = $(PRJDIR)/SRC
RMAKEMACH_SRC  = srd68
SRCDIR         = $(PRJDIR)/SRC
RMAKEMACH_OVL1 = srd59
OVL1DIR        = $(PRJDIR)/SRC
RMAKEMACH_OVL2 = srd65
OVL2DIR        = $(PRJDIR)/SRC
RMAKEMACH_OVL3 = srd59
OVL3DIR        = $(PRJDIR)/SRC
RMAKEMACH_OVL4 = srd59
OVL4DIR        = $(PRJDIR)/SRC
RMAKEMACH_OVL5 = srd59
OVL5DIR        = $(PRJDIR)/SRC
RMAKEMACH_OVL6 = srd59
OVL6DIR        = $(PRJDIR)/SRC


#ifndef  GET_USER
GET_USER       = tamago
#endif
#ifndef  GET_MACHINE
GET_MACHINE    = srd59
#endif
#ifndef  GET_DIR
GET_DIR        = ~/YOSHI/SRC
#endif

######  生成ROMの国設定  ######
JAPAN=1                        # 日本対応
##AMERICA=1                      # アメリカ対応
##EUROPE=1                       # ヨーロッパ対応

######  生成ROMのバージョン設定  ######

#ifdef PRODUCT_VERSION
ROM_VERSION=1
VERSION += PRODUCT_VERSION=
##ROM_DEBUG_VERSION=1          # 有効にすると ROM版で osSyncPrintf()が利用可能
#endif

#ifdef CM_VERSION
ROM_VERSION=1
##ROM_DEBUG_VERSION=1          # 有効にすると ROM版で osSyncPrintf()が利用可能
VERSION += CM_VERSION=
#endif

#ifdef SAMPLE_VERSION
ROM_VERSION=1
##ROM_DEBUG_VERSION=          # 有効にすると ROM版で osSyncPrintf()が利用可能
VERSION += SAMPLE_VERSION=
#endif

#ifdef TOOL_VERSION
ROM_VERSION=1
VERSION += TOOL_VERSION=
#endif

#ifdef !PRODUCT_VERSION
#ifdef !CM_VERSION
#ifdef !SAMPLE_VERSION
#ifdef !TOOL_VERSION
DEVELOP_VERSION=1
VERSION += DEVELOP_VERSION=
#endif
#endif
#endif
#endif

#ifdef PARTNER_VERSION
PARTNER=1
#endif

#ifdef SOUND_OFF
VERSION += SOUND_OFF=
#endif

######  詳細なコンパイル条件の設定  ######

LMAKEOPT =
LMAKEOPT += -DUSE_PADMGR -DUSE_IRQMGR # bglib関連
LMAKEOPT += -DBGLIB_FOR_YOSHI=1     # bglib関連
LMAKEOPT += -DUSE_ZBUFFER=1         # bglib関連
LMAKEOPT += -DUSE_CONTROLLER=1
LMAKEOPT += -DUSE_PARALLELDMA=0
LMAKEOPT += -DUSE_ZBUFF=0
LMAKEOPT += -DNOUSE_ZSORT_TEST=1
LMAKEOPT += -DSOUND=1
##LMAKEOPT += -DSCENE_BLOCKSIZE_NORMAL=1
LMAKEOPT += -DSCENE_BLOCKSIZE_256x256=1
##LMAKEOPT += -DFAST_MALLOC=1       # 高速 Malloc()
##LMAKEOPT += -DNORMAL_MALLOC=1       # 標準 Malloc()
##LMAKEOPT += -DTWO_SIDE_MALLOC=1   # ヒープの前方、後方両サイドからの Malloc()
LMAKEOPT += -DOPTIMUM_MALLOC=1    # 最適化 Malloc()
LMAKEOPT += -DUSE_CELLBLOCK_240=0   # (=0)ならセルブロックを120個まで使用

#if JAPAN
LMAKEOPT += -DJAPAN=1	               # 日本対応
LMAKEOPT += -DNTSC_VER=1
COUNTRY=JPN
#endif
#if AMERICA
LMAKEOPT += -DAMERICA=1                # アメリカ対応
LMAKEOPT += -DNTSC_VER=1
COUNTRY=USA
#endif
#if EUROPE
LMAKEOPT += -DEUROPE=1                 # ヨーロッパ対応
LMAKEOPT += -DPAL_VER=1
COUNTRY=EUR
#endif

#ifdef PRODUCT_VERSION
LMAKEOPT += -DPRODUCT_ROM=1
LMAKEOPT += -DUSE_CIC6104=1             # CICの許可/不許可
LMAKEOPT += -DUSE_FAULT=1	        # Faultマネージャーの使用
LMAKEOPT += -DDISABLE_FAULT_DISPLAY=0   # Fault情報の表示の有無
LMAKEOPT += -DUSE_CHECK_POINT=1	        # チェック処理を有効にする
LMAKEOPT += -DUSE_OVERLAY_RECORDER=1	# オーバレイ記録の有無
LMAKEOPT += -DVIBPACK=1                 # 振動パック
LMAKEOPT += -DDEBUG=0
LMAKEOPT += -DCALL_SOUND=1              # サウンドの呼び出し
LMAKEOPT += -DITC_FLASH=1               # フラッシュ効果をITC基準に対応する
#endif
#ifdef CM_VERSION
LMAKEOPT += -DCM_ROM=1
LMAKEOPT += -DUSE_CIC6104=1             # CICの許可/不許可
LMAKEOPT += -DUSE_FAULT=1	        # Faultマネージャーの使用
LMAKEOPT += -DDISABLE_FAULT_DISPLAY=0   # Fault情報の表示の有無
LMAKEOPT += -DUSE_CHECK_POINT=1	        # チェック処理を有効にする
LMAKEOPT += -DUSE_OVERLAY_RECORDER=1	# オーバレイ記録の有無
LMAKEOPT += -DVIBPACK=1                 # 振動パック
LMAKEOPT += -DUSE_DBG_CONTROLLER=1      # デバッグ用コントローラの使用の有無
LMAKEOPT += -DDEBUG=0
LMAKEOPT += -DCALL_SOUND=1              # サウンドの呼び出し
LMAKEOPT += -DSOUND_BGM_OFF=0           # 撮影用にBGMを切る
LMAKEOPT += -DUSE_LOCALHEADER=0         # 個人のマクロ定義ヘッダーの使用の有無
LMAKEOPT += -DUSE_DEBUGMODE=1           # 
LMAKEOPT += -DITC_FLASH=1               # フラッシュ効果をITC基準に対応する
LMAKEOPT += -DFOR_EDITOR=0		# 雑誌社用のサービス機能の有無(有=1)
#endif

#ifdef TOOL_VERSION
LMAKEOPT += -DFOR_MAPTOOL=1
LMAKEOPT += -DUSE_FAULT=1	        # Faultメッセージの表示
LMAKEOPT += -DUSE_CHECK_POINT=1	        # チェック処理を有効にする
LMAKEOPT += -DUSE_OVERLAY_RECORDER=1	        # オーバレイ記録の有無
LMAKEOPT += -DVIBPACK=1                 # 振動パック
LMAKEOPT += -DUSE_DBG_CONTROLLER=1      # デバッグ用コントローラの使用の有無
LMAKEOPT += -DUSE_APRINTF=1
LMAKEOPT += -DCALL_SOUND=1              # サウンドの呼び出し
LMAKEOPT += -DDEBUG=0
LMAKEOPT += -DTIME=1
LMAKEOPT += -DUSE_LOCALHEADER=0         # 個人のマクロ定義ヘッダーの使用の有無
LMAKEOPT += -DUNUSE_EEPROM=1	        # EEPROMをアクセスしない
LMAKEOPT += -DITC_FLASH=1               # フラッシュ効果をITC基準に対応する
#endif

#ifdef DEVELOP_VERSION
LMAKEOPT += -DDEVELOP_PRG=1
LMAKEOPT += -DUSE_FAULT=1	        # Faultマネージャーの使用
LMAKEOPT += -DDISABLE_FAULT_DISPLAY=0   # Fault情報の表示の有無
LMAKEOPT += -DUSE_CHECK_POINT=1	        # チェック処理を有効/無効にする
LMAKEOPT += -DUSE_OVERLAY_RECORDER=1	# オーバレイ記録の有無
LMAKEOPT += -DVIBPACK=1                 # 振動パック
LMAKEOPT += -DDEBUG=1
LMAKEOPT += -DUSE_APRINTF=1
LMAKEOPT += -DTIME=0
LMAKEOPT += -DUSE_DBG_CONTROLLER=1      # デバッグ用コントローラの使用の有無
LMAKEOPT += -DDEBUG_CIC=1               # CICのデバッグチェックを行う
LMAKEOPT += -DCALL_SOUND=1              # サウンドの呼び出し(デバッグのために) 
LMAKEOPT += -DITC_FLASH=1               # フラッシュ効果をITC基準に対応する
LMAKEOPT += -DUSE_DEBUGMODE=1           # 
LMAKEOPT += -DHIT_PERFORMANCE=1	        # ヨッシのパターンのヒット率計算を行う
LMAKEOPT += -DUSE_LOCALHEADER=1         # 個人のマクロ定義ヘッダーの使用の有無
LMAKEOPT += -DSYSTEM_INFO=1
LMAKEOPT += -DVIEWER=1
LMAKEOPT += -DTEST=1
LMAKEOPT += -DMAKE_DEMODATA=1	        # 有効のとき店頭デモデータの出力
#endif

LMAKEOPT += -DNEW_AUDIO			#たぶん必要ない
#ifdef SOUND_OFF
LMAKEOPT += -DSOUND=0
#endif

#ifdef PARTNER
LMAKEOPT += -DPARTNER=1			# Partner用のコードを吐く
#endif
#ifdef ISVIEWER
LMAKEOPT += -DISVIEWER=1		# ISVIEWER用のコードを吐く
#endif
LMAKEOPT += -DF3DEX_GBI			# ３部マイクロコード用

###############################################################################
#          リンクライブラリーの設定
###############################################################################

LCINCS = -I$(PATCH_INCDIR) -I$(PATCH_INCDIR)/.. -I$(LIBDIR) -I$(SOUNDDIR)
LLDOPTS = $(MKDEPOPT) -L$(PATCH_LIBDIR)
#ifdef HAYAKAWA_LIB
HAYAKAWA_PR_DIR = /home/hayakawa/prj/PR
BG_INCDIR = $(HAYAKAWA_PR_DIR)/libbg
BG_LIBDIR = $(HAYAKAWA_PR_DIR)/libbg
LCINCS += \
	-I$(HAYAKAWA_PR_DIR)/libbg \
	-I$(HAYAKAWA_PR_DIR)/libu64 \
	-I$(HAYAKAWA_PR_DIR)/libc64
LLDOPTS += \
	-L$(HAYAKAWA_PR_DIR)/libbg \
	-L$(HAYAKAWA_PR_DIR)/libu64 \
	-L$(HAYAKAWA_PR_DIR)/libc64
PATCH_DIR = $(HAYAKAWA_PR_DIR)/COMMON/patch/PR
#else
BG_INCDIR = $(COMMON_DIR)
BG_LIBDIR = $(COMMON_DIR)
#endif
LCINCS  += -I$(COMMON_INCDIR) -I$(ROOT)/usr/include/PR
LLDOPTS += -L$(COMMON_LIBDIR) -L$(ROOT)/usr/lib

### ウルトラライブラリの指定
#ifdef ROM_VERSION
#ifdef ROM_DEBUG_VERSION
ULTRALIB = ultra
#else
ULTRALIB = ultra_rom
#endif
U64LIB   = u64_rom_yoshi
C64LIB   = c64_rom_yoshi

#ifdef PRODUCT_VERSION
BG_LIB   = bg_rom_yoshi
#endif
#ifdef CM_VERSION
BG_LIB   = bg_rom_yoshi
#endif
#ifdef TOOL_VERSION
BG_LIB   = bg_tool_yoshi
#endif

##LMAKEOPT += -DUSE_DEBUGMODE=0 -DUSE_MSGMGR=0 -DLIB_FOR_YOSHI
LMAKEOPT += -DUSE_MSGMGR=0 -DLIB_FOR_YOSHI
#endif

#ifdef DEVELOP_VERSION
#if defined(ISVIEWER)
ULTRALIB = ultra_rom
#else
ULTRALIB = ultra
#endif
U64LIB   = u64_d_yoshi
C64LIB   = c64_d_yoshi
BG_LIB = bg_d_yoshi
##LMAKEOPT += -DUSE_DEBUGMODE=1 -DUSE_MSGMGR=1 # デバック用
LMAKEOPT += -DUSE_MSGMGR=1 # デバック用
#endif

BG_LIB_NAME = lib$(BG_LIB).a

### サウンドライブラリの指定
SOUNDFILES = $(SOUNDDIR)/audio.o

##CHRDIR   = $(PRJDIR)/CHAR

###############################################################################
#          コンパイルオプションの設定
###############################################################################

#ifdef ROM_VERSION
# オプティマイズ＋デバッグ情報なし
#ifdef !GCC			
OPTIMIZER = -O2 -g0                
LWOFF     = ,828,826,852		# cc用
#endif
#ifdef GCC
OPTIMIZER = -O2 -g0 -finline-functions
#endif
#endif
#ifdef !ROM_VERSION
# オプティマイズ＋デバッグ情報あり
#ifdef !GCC
OPTIMIZER = -O2 -g3                     
LWOFF     = ,828,826,852		# cc用
#endif
#ifdef GCC
OPTIMIZER = -O2 -finline-functions
LWOFF     =
#endif
#endif
#LWOFF     = ,3262                      # CC用

#LCINCS	= -I$(PATCH_INCDIR) -I$(PATCH_INCDIR)/.. -I$(BG_INCDIR) -I$(COMMON_INCDIR) -I$(ZELDA_LIB) -I$(ROOT)/usr/include/PR -I. 
MAKEOPT +=  $(GMAKEOPT) $(LMAKEOPT) $(VMAKEOPT)
LCDEFS  = $(MAKEOPT)
#ifdef !GCC
LCOPTS  = -non_shared -G 0 -mips2 -fullwarn -float -xansi -Xcpluscomm -wlint,-fhp
#endif
#ifdef GCC			
LCOPTS  = -mno-embedded-pic -mcpu=r4000 -mips2 -mmips-as 
#LCOPTS  = -S
#endif

#ifdef GCC			
CC = gcc  
#endif
#ifdef CCCC
CC = $(C++)                               ## <-- C++使用のときこれを有効に
LCOPTS =	$(LC++OPTS)               ## <-- C++使用のときこれを有効に
#endif

LC++DEFS = $(LCDEFS)
LC++INCS = $(LCINCS)
LC++OPTS = -non_shared -mips2 -fullwarn -G 0 -float -Xcpluscomm -xansi -smart
#ifdef DEVELOP_VERSION
#ifdef !GCC			
LCOPTS   += -trapuv
LC++OPTS += -trapuv
#endif
#endif

LASINCS = $(LCINCS)
LASOPTS = -non_shared -G 0

LLDLIBS = -l$(BG_LIB) -l$(U64LIB) -l$(C64LIB) -l$(ULTRALIB)
GLDOPTS =				# デフォルトの内容を削除する

MAKEROMOPT = -m -I$(BG_INCDIR) -I$(BG_LIBDIR)/lib$(BG_LIB)
#ifdef ROM_VERSION
#ifdef !ROM_DEBUG_VERSION
MAKEROMOPT += -s 128 -f 0xff		# -s ROM容量 -f 未使用領域コード
#endif
#MAKEROMOPT += -h romheader		# -h ROMヘッダ情報
#endif

### Makedepend 機能を使用するときはコメントにする ###
MKDEPOPT =
