
_FINAL = 1

ifndef LOCAL
LOCAL=JAPAN
endif

##############################################################################

LIB = $(ROOT)/usr/lib
LPR = $(LIB)/PR
INC = $(ROOT)/usr/include

#CC = gcc
#LD = ld
CC=mips-linux-gcc -fno-pic -I/usr/lib/gcc-lib/mips-linux/egcs-2.91.66/include/ -mcpu=4300 -g
LD=/usr/mips-linux/bin/ld

#MAKEROM  = mild
#MAKEMASK = makemask
MAKEROM  = $(ROOT)/usr/sbin/makerom
MAKEMASK = $(ROOT)/usr/sbin/makemask

#COMP  = $(DM64ROOT)\tool\comp
#COMP2 = $(DM64ROOT)\tool\compress -c9
#NMSYM = $(DM64ROOT)\tool\nmsym
#MKDEP = $(DM64ROOT)\tool\mkdep
#
#SEGSIZE = $(DM64ROOT)\tool\segsize
COMP2 = ../../tool/minigzip -9
NMSYM = ../../tool/extractseg.pl
SEGSIZE = ../../tool/segsize/segsize

APP     = data
TARGETS = data.n64

##############################################################################

CFLAGS  = $(LCDEFS) $(LCINCS) $(LCOPTS) $(GCCFLAG) $(OPTIMIZER)
AFLAGS  = -mcpu=vr4300 $(CFLAGS)
GCCFLAG = -c -D_MIPS_SZLONG=32 -D_MIPS_SZINT=32 -mno-mips-tfile

#HW_FLAGS = -DPTN64

ifdef _FINAL
LCDEFS = $(HW_FLAGS) -DLOCAL=$(LOCAL) -DF3DEX_GBI_2 -DNDEBUG -D_FINALROM
LCOPTS = -G 0
else
LCDEFS = $(HW_FLAGS) -DLOCAL=$(LOCAL) -DF3DEX_GBI_2 -DDEBUG
LCOPTS = -G 0 -g
endif

LCINCS = -I. -I$(INC)/PR -I$(INC) -I$(GCCDIR)/mipse/include -I../..

OPTIMIZER = -O2

##############################################################################

LDFLAGS = $(MKDEPOPT) -L$(LIB) $(N64LIB) -L$(GCCDIR)/mipse/lib -lkmc

ifdef _FINAL
N64LIB = -lgultra_rom
else
N64LIB = -lgultra_d
endif

##############################################################################

ifdef _FINAL
MILDFLAGS   = -I../.. -DLOCAL=$(LOCAL) #-s 9
DO_MAKEMASK = $(MAKEMASK) $(TARGETS)
else
MILDFLAGS   = -I../.. -DLOCAL=$(LOCAL) -m
DO_MAKEMASK = rem $(MAKEMASK) $(TARGETS)
endif

##############################################################################

.SUFFIXES: .seg .cmp .zzz

.c.o:
	$(CC) $(CFLAGS) $<

.s.o:
	$(CC) $(AFLAGS) $<

#.seg.cmp:
#	$(COMP) $<>>map.txt

.seg.zzz:
#	$(COMP2) $<>>map.txt
#	copy $@ $(LOCAL)
	gzip -cn9 $< > $<.gz && dd if=$<.gz bs=10 skip=1 of=$@
	cp $@ $(LOCAL)

##############################################################################

ASMFILES = 

ASMOBJECTS = $(ASMFILES:.s=.o)

##############################################################################

CODEFILES = 

CODEOBJECTS = $(CODEFILES:.c=.o)

##############################################################################

DATAFILES = \
	menu_char.c \
	menu_common.c \
	menu_level.c \
	menu_main.c \
	menu_name.c \
	menu_p2.c \
	menu_p4.c \
	menu_rank.c \
	menu_setup.c \
	menu_story.c \
	menu_cont.c \
	menu_kasa.c

DATAOBJECTS = $(DATAFILES:.c=.o)

##############################################################################

CODESEGMENT = ../../i10n/tools/codesegment.o
OBJECTS     = $(CODEOBJECTS) $(DATAOBJECTS)
SEGFILES    = $(OBJECTS:.o=.seg)
CMPFILES    = $(OBJECTS:.o=.cmp)
ZZZFILES    = $(OBJECTS:.o=.zzz)
SEGMENTSIZE = $(LOCAL)/segsize.h

##############################################################################

default: $(ZZZFILES)

#$(CODESEGMENT): $(CODEOBJECTS) $(ASMOBJECTS)
#	$(LD) -o $(CODESEGMENT) -r $(CODEOBJECTS) $(ASMOBJECTS) $(LDFLAGS)

$(TARGETS) $(APP): spec $(CODESEGMENT) $(OBJECTS)
	$(MAKEROM) spec -r $(TARGETS) $(MILDFLAGS)>map.txt
#	$(DO_MAKEMASK)

$(SEGFILES): $(TARGETS) $(APP)
	nm $(APP)|$(NMSYM) $(TARGETS) menu_char menu_common menu_cont menu_kasa menu_level menu_main menu_name menu_p2 menu_p4 menu_rank menu_setup menu_story
#	del code.seg

$(SEGMENTSIZE): $(SEGFILES)
#	dir /b *.seg|sort>segment.txt
	ls *.seg > segment.txt
	$(SEGSIZE)<segment.txt>$(SEGMENTSIZE)
	rm segment.txt

$(CMPFILES): $(SEGFILES) $(SEGMENTSIZE)

$(ZZZFILES): $(SEGFILES) $(SEGMENTSIZE)

##############################################################################

rom:
	del codesegment.o
	$(MAKE) _FINAL=1

dep:
	$(MKDEP) $(LCINCS) $(CODEFILES) $(DATAFILES)>con

clean:
	rm -f *.o *.seg *.zzz *.gz $(APP) $(TARGETS) $(LOCAL)/*.zzz $(LOCAL)/segsize.h map.txt

##############################################################################

