#
#	Multilingual Terminal Emulator "MuTerminal".
# 
#  Copyright (C) 1998,99 Kazuho Okui and Takashi Murai. ALL RIGHT RESERVED
#  
# This file is part of MuTerminal.
#
# MuTerminal is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# Makefile,v 2.15 1999/12/08 15:31:28 kaz Exp
#
# make all	to compile and build MuTerminal.
# make depend	to make source depend description file on *.d.
# make clean	to remove object, backup, and depend file.
# make wc	to print word count.
#

SRC_PATH	=

MTSET_PATH	= ./mt_set

APP_NAME_PPC	= MuTerminal
MTSET_NAME_PPC	= mt_set
APP_NAME_X86	= MuTerminal.x86
MTSET_NAME_X86	= mt_set.x86

MACHINE = $(shell uname -m)
ifeq ($(MACHINE), BePC)
	CPU = x86
else
	CPU = ppc
endif

ifeq ($(CPU), x86)
	CC		= gcc
	LD		= gcc
	OBJS_PATH_	= obj_x86
	DEPEND_FLAG	= -M
	SEDSCRIPT	= 
	RESOURCE	= MuTerminal.rsrc
	PREFIX		= /boot/develop/headers/be/precompiled/BeHeaders
	APP_NAME	= $(APP_NAME_X86)
	MTSET_NAME	= $(MTSET_NAME_X86)
	LIBS		= -lbe -ltracker -ltextencoding -lgame -ltranslation
ifdef NODEBUG
	CFLAGS		= -Wall -Wno-multichar -Wno-ctor-dtor-privacy -O3 -c
	LDFLAGS		= $(LIBS)
else
	CFLAGS		= -g -Wall -Wno-multichar -Wno-ctor-dtor-privacy -O0 -c
	LDFLAGS		= -g $(LIBS)
endif
else

ifeq ($(CPU), ppc)
	CC		= mwcc
	LD		= mwcc
	OBJS_PATH_	= obj_ppc
	DEPEND_FLAG	= -make
	SEDSCRIPT	= | sed -e'/\/boot\/develop\/headers\/.*\\/d' -e's%^.*/boot/develop/headers/.*% %g' -e"s%`pwd`/%%g"
	RESOURCE	= MuTerminal.rsrc
	PREFIX		= /boot/develop/headers/be/precompiled/BeHeaders
	APP_NAME	= $(APP_NAME_PPC)
	MTSET_NAME	= $(MTSET_NAME_PPC)
	LIBS		= -ltextencoding -ltranslation
ifdef NODEBUG
	CFLAGS		= -dialect cplus -O2 -DNODEBUG -prefix $(PREFIX) -c
	LDFLAGS		= -nodup -map $(APP_NAME).xMAP $(LIBS)
	else
	CFLAGS		= -O2 -dialect cplus -g -prefix $(PREFIX) -c
	LDFLAGS		= -nodup -sym on -map $(APP_NAME).xMAP $(LIBS)
endif

endif
endif

OBJS_PATH = ./$(OBJS_PATH_)
VPATH	= $(OBJS_PATH)
vpath	%.o $(OBJS_PATH)

TARGET		= $(APP_NAME)


OBJS		= \
		TermApp.o \
		spawn.o \
		MuTerminal.o \
		TermWindow.o \
		TermView.o \
		TermBaseView.o \
		TermIM.o \
		CurPos.o \
		VTPrsTbl.o \
		VTKeyTbl.o \
		TermBuffer.o \
		PrefDlg.o \
		AboutDlg.o \
		PrefView.o \
		TTextControl.o \
		AppearPrefView.o \
		MousePrefView.o \
		ShellPrefView.o \
		LangPrefView.o \
		PrefHandler.o \
		CodeConv.o \
		MenuUtil.o \
		UTF8WidthTbl.o \
		TermParse.o 

DFILES		= $(OBJS:.o=.d)

__OBJS__	= $(addprefix $(OBJS_PATH)/, $(OBJS))
__DFILES__	= $(addprefix $(OBJS_PATH)/, $(DFILES))

.SUFFIXES:
.SUFFIXES: .o .cpp .cp .c .d

all: $(TARGET) $(MTSET_PATH)/$(MTSET_NAME)

$(TARGET): $(OBJS)
	$(LD) -o $@ $(LDFLAGS) $(__OBJS__)
ifeq ($(CPU), x86)
ifdef NODEBUG
	strip $@
endif
endif
	xres -o $@ $(RESOURCE) 
	mimeset -f $@

$(MTSET_PATH)/$(MTSET_NAME):
	cd $(MTSET_PATH); make


#
# Mkke object file rule.
#

%.o : %.cpp
	$(CC) -o $(OBJS_PATH)/$@ $(INCLUDE) $(CFLAGS) $<

%.o : %.c
	$(CC) -o $(OBJS_PATH)/$@ $(INCLUDE) $(CFLAGS) $<

#
# Make depend description file rule.
#
$(OBJS_PATH)/%.d : %.cpp
	@[ -d $(OBJS_PATH) ] || mkdir $(OBJS_PATH)
	$(CC) $(INCLUDE) $(DEPEND_FLAG) $< $(SEDSCRIPT) > $@

$(OBJS_PATH)/%.d : %.c
	@[ -d $(OBJS_PATH) ] || mkdir $(OBJS_PATH)
	$(CC) $(INCLUDE) $(DEPEND_FLAG) $< $(SEDSCRIPT) > $@


install:
	cd ../;	make install

#
# remove APP program and backupfiles.
#
binclean:
	rm -f $(APP_NAME_PPC) $(APP_NAME_X86)
	rm -f $(MTSET_PATH)/$(MTSET_NAME_PPC) $(MTSET_PATH)/$(MTSET_NAME_X86)

mostlyclean: clean
	rm -f $(__DFILES__)
	rmdir $(OBJS_PATH)
	cd $(MTSET_PATH); make mostlyclean
#
# remove objectfie, symbolfile, dependfile and more. 
#
clean:
	rm -f $(__OBJS__) *.xSYM *.xMAP *.dbg
	cd $(MTSET_PATH); make clean

wc:
	wc *.h *.cpp *.c
#	wc *.h *.cpp *.cp *.c

depend : $(DFILES)

#
# Include depend description file.
#
$(MTSET_PATH)/mt_set: $(MTSET_PATH)/mt_set.cpp

-include $(__DFILES__)

