head	1.3;
access;
symbols;
locks; strict;
comment	@# @;


1.3
date	2001.01.19.06.07.36;	author hayakawa;	state Exp;
branches;
next	1.2;

1.2
date	2000.11.20.01.53.18;	author hayakawa;	state Exp;
branches;
next	1.1;

1.1
date	2000.09.13.01.00.13;	author hayakawa;	state Exp;
branches;
next	;


desc
@@


1.3
log
@*** empty log message ***
@
text
@#!smake -k
# $Id: Makefile,v 1.2 2000-11-20 10:53:18+09 hayakawa Exp hayakawa $
#---------------------------------------------------------------------------
#  Makefile for MFC (doubutsu no Mori - FamiCom emulator)
#---------------------------------------------------------------------------

include $(ROOT)/usr/include/make/PRdefs

PROJ = MFC

#OPTIMIZER = -O2 -Olimit 3000
OPTIMIZER=

MAKEMASK =	/usr/sbin/makemask
MAKEROM =	/usr/sbin/makerom
#if !defined(NLOAD)
NLOAD =		/usr/sbin/nload
#endif

CODEFILES   =	main.c sequence.c ni_debug.c ks_nes.c
ASMCODEFILES=	asmrfc.s

APP =
TARGET =	rom
ORIGROM =	rom.nomask

TEXHFILES =
HFILES =
EXTHFILE =	extern.h

CODEAUDIO   =	audio/audio.o

# CODEOBJECTS= の $(CODEAUDIO) の場所によって、オーディオスレッドの処理時間が倍以上かかることがある! ホンマ。
# CODEOBJECTS =	$(CODEFILES:.c=.o) $(ASMCODEFILES:.s=.o) $(CODEAUDIO) じゃないと、dracula2 の処理落ちがひどい (これでも、落ちるけど...)
# CODEOBJECTS = $(CODEFILES:.c=.o) $(ASMCODEFILES:.s=.o) $(CODEAUDIO) では、exbike が落ちる ...
CODEOBJECTS = $(CODEAUDIO) $(CODEFILES:.c=.o) $(ASMCODEFILES:.s=.o)
CODESEGMENT =	codesegment.o
DATAOBJECTS =	$(DATAFILES:.c=.o)
OBJECTS =	$(CODESEGMENT) $(DATAOBJECTS)

LDFLAGS =	$(MKDEPOPT) -L/usr/lib -lultra_d


GPOPTS = -G0
MKDEPFILE =	.smakedepend
#MKDEPOPT = -MDupdate $(MKDEPFILE)
MKDEPOPT =

LCDEFS = -DEAD_KAWASEDO
LCINCS =	-I. -I$(ROOT)/usr/include
LCOPTS =	-float -xansi -fullwarn -non_shared $(GPOPTS) -prototypes -signed -Xcpluscomm -wlint,-fhp -G 0 -woff 828,813,827
LASDEFS =	$(LCDEFS)
LASINCS =	$(LCINCS)
LASOPTS =	-non_shared $(GPOPTS)
CSTYLE_32_M2 =	-mips2 -o32
LD =		/usr/lib/PR/nld


LDIRT  =	$(APP) $(TEXHFILES) $(TARGET) $(ORIGROM) wave wave.dd disk *.so log *~ rom.nopad \
		linkmap rommap ptn64.dat nes.bin nes.title nes_disk.bin

# ----------------------------------------------------------------
default:	$(TARGET)
		$(NLOAD) $(NLOADOPT) $(TARGET)

include 	$(COMMONRULES)

.c.o:
	$(CC) $(CFLAGS) -c $(.IMPSRC) -o $(.TARGET)

$(CODESEGMENT):	$(CODEOBJECTS) Makefile $(CODEAUDIO) librfc.a
		$(LD) $(GPOPTS) -gpinfo -elsmap -o32 -m -mips2 -o $(CODESEGMENT) -r $(CODEOBJECTS) -L. -lrfc $(LDFLAGS) > linkmap

$(TARGET):	$(ORIGROM)
	cat $(ORIGROM) > rom.nopad
	tools/binpad 9 rom.nopad $(TARGET)
	$(MAKEMASK) $(TARGET)

$(ORIGROM):	spec $(OBJECTS) Makefile
	$(MAKEROM) -m -r $(ORIGROM) spec > rommap

xtn: $(CODEFILES) $(DATAFILES)
		echo > $(EXTHFILE)
		echo $> | xargs -t -n1 /usr/local/bin/perl extern.pl $(CFLAGS) > $(EXTHFILE).tmp
		mv -f $(EXTHFILE).tmp $(EXTHFILE)

TARFILE = $(HOME)/$(PROJ)-`date +%y%m%d.%H`
tar:
	tar zcvCf $(HOME) $(TARFILE).tar.gz --exclude='*.o' \
	--exclude='*~' --exclude='*.out' --exclude='*.rel' \
	--exclude=linkmap --exclude=rommap --exclude=diskmap \
	--exclude=log --exclude='log.*' --exclude=core --exclude=$(TARGET) --exclude=rom.nopad --exclude=wave --exclude=wave.dd \
	--exclude=$(ORIGROM) --exclude=disk --exclude='.yada_comm' --exclude=gwrite \
	--exclude=my_ipl.nomask --exclude=my_ipl.rom \
	--exclude=nes.bin --exclude=nes.title --exclude=disk_nes.hed --exclude=disk_nes.szp --exclude=disk_nes.bin \
	-g $(HOME)/$(PROJ)-tar.log $(PROJ)
	echo Created: $(TARFILE).tar.gz

# Audio の *.o は exclude したくない
full:
	rm -f $(HOME)/$(PROJ)-tar.log
	rm -f *.o
	tar zcvCf $(HOME) $(TARFILE).full.tar.gz \
	--exclude='*~' --exclude='*.out' --exclude='*.rel' --exclude=core \
	--exclude=linkmap --exclude=rommap \
	--exclude=$(TARGET) --exclude=rom.nopad \
	--exclude=my_ipl.rom \
	--exclude=log --exclude=core --exclude=wave --exclude=wave.dd --exclude=disk --exclude='.yada_comm' \
	--exclude=nes.bin --exclude=nes.title --exclude=disk_nes.hed --exclude=disk_nes.szp --exclude=disk_nes.bin \
	-g $(HOME)/$(PROJ)-tar.log $(PROJ)
	echo Created: $(TARFILE).full.tar.gz

#audioup:
#	cd audio; /usr/local/bin/lha xfi /hosts/souid1/disk2/hideaki/Tmp/dmg_audio.lzh
#	rm -f $(CODESEGMENT)
#	make NLOADOPT=-n
#	cp rom /hosts/souid1/disk2/hideaki/Tmp

struct-rfc.inc offset-rfc.inc: ks_rfc.inc offset.pl
	rm -f $@@ $@@.tmp struct-rfc.inc
	sed -e '/typedef struct rfcstate_object/,/rfcstate_object/!d' ks_rfc.inc > struct-rfc.inc
	/usr/local/bin/perl offset.pl < struct-rfc.inc > $@@.tmp
	mv $@@.tmp $@@

main.o sequence.o ks_nes.o: common.h ks_nes.h ks_rfc.inc struct-rfc.inc

# ${@@F:.a=}Text は librfcText のように置換される
# いきなり ar clq はダメ。 code の直後に data があるって決め打ちしてるから。
# ちゃんと ld -r してからじゃないと。
#	ar clq $@@ /tmp/${@@:.a=}.code.o /tmp/${@@:.a=}.data.o
# /tmp/code/librfc.sym とかになってしまうので ${@@:.a=} はやめた。
librfc.a: ksprfc.asm offset-rfc.inc
	/project/ZELDA2/lib/ucode/src/F3DZEX2-2.06src/rspasm/rspasm             -l ${LCINCS}                 -o /tmp/librfc ksprfc.asm
	/project/ZELDA2/lib/ucode/src/F3DZEX2-2.06src/rspasm/rspasm        -DPASS2 ${LCINCS} -S /tmp/librfc  -o /tmp/librfc ksprfc.asm
	d2elf -t kspRFCText  -o /tmp/librfc.code.o  /tmp/librfc      > /dev/null
	d2elf -t kspRFCData  -o /tmp/librfc.data.o  /tmp/librfc.dat  > /dev/null
	ld -o /tmp/librfc.tmp.o  -r /tmp/librfc.code.o  /tmp/librfc.data.o
	rm -f $@@
	ar clq $@@ /tmp/librfc.tmp.o

# -DKS_DEBUG -DKS_DEBUG_VERBOSE: デバッグ用に PRINTF などを使う
asmrfc.o: asmrfc.s offset-rfc.inc Makefile
	$(AS) $(LASDEFS) $(LASINCS) $(ASMDEF) -DKS_TRACE -DKS_HISTORY -DKS_TRAP_STORE_INVALID \
	-non_shared -G 0 -mips3 -32 -Wab,-r4300_mul -nostdinc -I. -I/usr/include -o $@@ asmrfc.s

# export files: とりあえず 全部 (make full)

rom_d:asmrfc.o librfc.a

no9over:/tmp/librfc.lst
	grep obj_index_line_loop_no9over /tmp/librfc.lst
@


1.2
log
@*** empty log message ***
@
text
@d2 1
a2 1
# $Id: Makefile,v 1.1 2000-09-13 10:00:13+09 hayakawa Exp hayakawa $
d33 3
a35 3
# CODEOBJECTS= $B$N(B $(CODEAUDIO) $B$N>l=j$K$h$C$F!"%*!<%G%#%*%9%l%C%I$N=hM};~4V$,G\0J>e$+$+$k$3$H$,$"$k(B! $B%[%s%^!#(B
# CODEOBJECTS =	$(CODEFILES:.c=.o) $(ASMCODEFILES:.s=.o) $(CODEAUDIO) $B$8$c$J$$$H!"(Bdracula2 $B$N=hM}Mn$A$,$R$I$$(B ($B$3$l$G$b!"Mn$A$k$1$I(B...)
# CODEOBJECTS = $(CODEFILES:.c=.o) $(ASMCODEFILES:.s=.o) $(CODEAUDIO) $B$G$O!"(Bexbike $B$,Mn$A$k(B ...
d99 1
a99 1
# Audio $B$N(B *.o $B$O(B exclude $B$7$?$/$J$$(B
d127 3
a129 3
# ${@@F:.a=}Text $B$O(B librfcText $B$N$h$&$KCV49$5$l$k(B
# $B$$$-$J$j(B ar clq $B$O%@@%a!#(B code $B$ND>8e$K(B data $B$,$"$k$C$F7h$aBG$A$7$F$k$+$i!#(B
# $B$A$c$s$H(B ld -r $B$7$F$+$i$8$c$J$$$H!#(B
d131 1
a131 1
# /tmp/code/librfc.sym $B$H$+$K$J$C$F$7$^$&$N$G(B ${@@:.a=} $B$O$d$a$?!#(B
d141 1
a141 1
# -DKS_DEBUG -DKS_DEBUG_VERBOSE: $B%G%P%C%0MQ$K(B PRINTF $B$J$I$r;H$&(B
d146 2
a147 1
# export files: $B$H$j$"$($:(B $BA4It(B (make full)
d149 3
@


1.1
log
@Initial revision
@
text
@d2 1
a2 1
# $Id$
d133 1
a133 1
	@@/project/ZELDA2/lib/ucode/src/F3DZEX2-2.06src/rspasm/rspasm             -l ${LCINCS}                 -o /tmp/librfc ksprfc.asm
d135 5
a139 5
	@@d2elf -t kspRFCText  -o /tmp/librfc.code.o  /tmp/librfc      > /dev/null
	@@d2elf -t kspRFCData  -o /tmp/librfc.data.o  /tmp/librfc.dat  > /dev/null
	@@ld -o /tmp/librfc.tmp.o  -r /tmp/librfc.code.o  /tmp/librfc.data.o
	@@rm -f $@@
	@@ar clq $@@ /tmp/librfc.tmp.o
@
