#
# $Id: SRDdefs.mk,v 1.1 2003/02/07 18:15:44 wheeler Exp $
# 
# FORCE_CPPが定義されている場合は .c のファイルのコンパイルを c++で行う
#
# $Log: SRDdefs.mk,v $
# Revision 1.1  2003/02/07 18:15:44  wheeler
# Fox's version of libultra and friends.
#
# Revision 1.3  1997/03/05  10:38:52  hayakawa
# 大槻さんがgcc用に何か改造したらしい
#
# Revision 1.2  1997/03/05  10:34:18  hayakawa
# TAGSファイルの作り方を変更
#
# Revision 1.1  1997/02/05  11:10:13  hayakawa
# Initial revision
#

.NOTPARALLEL:				# 並列動作を禁止

SHELL = /bin/sh
RGB2CFLAGS =
HW_FLAGS = -D_HW_VERSION_2
MAKEREL = /home/hayakawa/prj/PR/MAKEREL/makerel
MAKERELOPT =
#ifdef !GCC			
GC++DEFS = $(HW_FLAGS) -Wab,-r4300_mul
#endif
#ifdef GCC			
WOFF=
GC++DEFS =  
CVERSION   = 
MKDEPOPT = $(MKDEPFILE)
GCDEFS = $(HW_FLAGS) 
#endif

#
# ディレクトリの設定
#
COMMON_DIR = $(ROOT)/usr/local/srd/PR
COMMON_INCDIR = $(COMMON_DIR)
COMMON_LIBDIR = $(COMMON_DIR)

PATCH_DIR = 	$(ROOT)/usr/local/srd/PR/patch/PR
PATCH_INCDIR = 	$(PATCH_DIR)
PATCH_LIBDIR = 	$(PATCH_DIR)

### ＲＯＭをつくってすぐ実行 ###
gload:		rom
	gload -s rom
	@echo "'gload -n' で osSyncPrintf が表示されます"

### CFLAGS が長すぎて見辛いので省略してみました ###
#ifdef FORCE_CPP
.c.o :
	@echo $(CXX) '$$(CXXFLAGS) -Dthis=_this -c' $(.IMPSRC)
	@$(CXX) $(CXXFLAGS) -Dthis=_this -c $(.IMPSRC)
.c.s :
	@echo $(CXX) '$$(CXXFLAGS) -Dthis=_this -S -c' $(.IMPSRC)
	@$(CXX) $(CXXFLAGS) -Dthis=_this -c -S $(.IMPSRC)
.c.i :
	$(CXX) $(CXXFLAGS) -Dthis=_this -E $(.IMPSRC) > $(.PREFIX).i
#else
.c.o :
	@echo $(CC) '$$(CFLAGS) -c' $(.IMPSRC)
	@$(CC) $(CFLAGS) -c $(.IMPSRC)
.c.s :
	@echo $(CC) '$$(CFLAGS) -S -c' $(.IMPSRC)
	@$(CC) $(CFLAGS) -S -c $(.IMPSRC)
.c.i :
	$(CC) $(CFLAGS) -Dthis=_this -E $(.IMPSRC) > $(.PREFIX).i
#endif
.cxx.o .C.o .c++.o :
	@echo $(CXX) '$$(CXXFLAGS) -c' $(.IMPSRC)
	@$(CXX) $(CXXFLAGS) -c $(.IMPSRC)
echo_cflags:
	@echo '$$(CFLAGS)= '$(CFLAGS)
	@echo '$$(CXXFLAGS)= '$(CXXFLAGS)

.SUFFIXES : .rel
.o.rel:	$(MAKEREL)
	$(MAKEREL) $(MAKERELOPT) $(.IMPSRC)

## Makedependから、システム系のヘッダ依存情報を削除することにより
## ライブラリ更新による全コンパイルを防ぐ
Makedepend::
	sed \
-e        "s/\/usr\/local\/srd\/PR\/[a-zA-Z0-9_./-]*\.h //g" \
-e           "s/\/usr\/include\/PR\/[a-zA-Z0-9_./-]*\.h //g" \
-e               "s/\/usr\/include\/[a-zA-Z0-9_./-]*\.h //g" \
-e "s/\/home\/hayakawa\/prj\/PR\/lib[a-zA-Z0-9_./-]*\.h //g" \
-e "s/ \.\// /g" \
-e "s/ +/ /g" \
Makedepend > Makedepend.tmp~
	mv Makedepend Makedepend.old_`date '+%y-%m-%d_%H:%M:%S'`
	mv Makedepend.tmp~ Makedepend

TAGS_WORK:;	mkdir $@
TAGS_WORK/gt.h:         /usr/include/PR/gt.h;		sed -e "s/\(extern .*\)\;/\1{}/" $? > $@
TAGS_WORK/gu.h:         /usr/include/PR/gu.h;		sed -e "s/\(extern .*\)\;/\1{}/" $? > $@
TAGS_WORK/os.h:         /usr/include/PR/os.h;		sed -e "s/\(extern .*\)\;/\1{}/" $? > $@
TAGS_WORK/os_internal.h:/usr/include/PR/os_internal.h;	sed -e "s/\(extern .*\)\;/\1{}/" -e 's/extern "C" {/extern "C" \/*{*\//' $? > $@
TAGS_WORK/region.h:     /usr/include/PR/region.h;	sed -e "s/\(extern .*\)\;/\1{}/" $? > $@
TAGS_WORK/rmon.h:       /usr/include/PR/rmon.h;		sed -e "s/\(extern .*\)\;/\1{}/" $? > $@
TAGS_WORK/sp.h:         /usr/include/PR/sp.h;		sed -e "s/\(extern .*\)\;/\1{}/" $? > $@
TAGS_WORK/sptask.h:     /usr/include/PR/sptask.h;	sed -e "s/\(extern .*\)\;/\1{}/" $? > $@
TAGS_WORK/ultralog.h:   /usr/include/PR/ultralog.h;	sed -e "s/\(extern .*\)\;/\1{}/" $? > $@
TAGS_WORK/uportals.h:   /usr/include/PR/uportals.h;	sed -e "s/\(extern .*\)\;/\1{}/" $? > $@
TAG:TAGS_WORK TAGS_WORK/gt.h TAGS_WORK/gu.h TAGS_WORK/os.h TAGS_WORK/os_internal.h TAGS_WORK/region.h TAGS_WORK/rmon.h TAGS_WORK/sp.h TAGS_WORK/sptask.h TAGS_WORK/ultralog.h TAGS_WORK/uportals.h
	etags -T *.[ch] \
/home/hayakawa/prj/PR/libbg/*.[ch] \
/home/hayakawa/prj/PR/libu64/*.[ch] \
/home/hayakawa/prj/PR/libc64/*.[ch] \
/usr/local/srd/PR/patch/PR/*.h \
/usr/include/PR/*.h \
TAGS_WORK/*.h \
/usr/include/limits.h \
/usr/src/PR/libultra/*/*.c

