#
#	@(#)Makefile (mozilla) 01-09-01
#
#	Mozilla - buildMakefile
#	(C) Copyright 1995-2001 by Personal Media Corporation

#------------------------------------------------------------
# ץꥱС
TARGET_VERSION = 0x1200

# ץ¿̾
TARGET_APPNAME ?= MOZILLA

# ץꥱ̾
TARGET_NAME = ͣ

# ǡ
TARGET_DNAME = ֥ǡ
TARGET_APPID = 0x8000 0x0028 0x8000

# ̾
FORM_NAME = ͣѻ

# OS
OS_VERSION = 4000
OS_VERSION_STR = 4.000

#------------------------------------------------------------
# mozillabuild ץ

# ǥХå⡼ɤɤ(ǥե: ǥХå⡼)
#mode =

# ץեμ
#WITH_PROFILE=

# ƥå(ǥե: ʥߥå)
#STATIC_LINK=

# ̤ܥΥå
#DLL_CHECK=

# ǥХåղ(-g)
#WITH_DEBUGINFO=

# ѥץͥ٤򲼤
#WITH_NICE=

# µǤŸǥ쥯ȥ(/SYSȤѥ)
MOZILLA_TARGET_ROOT?=/MOZ5

# logging level(µǤδĶѿNSPR_LOG_MODULES)
MOZILLA_LOG_LEVEL?=all:0

# ¹ԥץBTRONץ˥ѥåݤstrip
#TARGET_NEED_STRIP=1

# -----------------------------------------------------------------
options := $(strip $(subst ., ,$(notdir $(shell pwd))) $(options))

ifneq (,$(filter sl static, $(options)))
  STATIC_LINK=1
endif

ifneq (,$(filter p prof,$(options)))
  WITH_PROFILE=1
endif

ifneq (,$(filter d debug,$(options)))
  WITH_DEBUGINFO=1
endif


# buildץߤδϢβ(makerulesinclude)
ifdef WITH_PROFILE
  STATIC_LINK=1
endif

# ------------------------------------------------------------
# makerulesȤoptions

ifdef DLL_CHECK
  MAKE_DLL = -1
else
  ifndef STATIC_LINK
    MAKE_DLL = 1
  endif
endif

# ------------------------------------------------------------
# makerules񤭤Ķѿ

PATH_:=$(PATH)

# ------------------------------------------------------------
# ɸ롼include

ifndef SYS_APPL_PATH
SYS_APPL_PATH = appl
endif
include $(BD)/$(SYS_APPL_PATH)/etc/makerules

#export

%.o: %.cpp; $(.o.cc)

# ------------------------------------------------------------
# makerules񤭤Ķѿ

PATH:=$(PATH_)

# -----------------------------------------------------------------
# buildץߤδϢβ(makerulesinclude)

ifneq (,$(filter rel, $(options)))
  TARGET_NEED_STRIP=1
endif

# -----------------------------------------------------------------
# ǥ쥯ȥ/ޥ

# ̾ǥ󥹥ȡ뤵ƤˡХѥ
ifeq (FreeBSD,$(shell uname))
GLIB_CONFIG=/usr/local/bin/glib12-config
GTK_CONFIG=/usr/X11R6/bin/gtk12-config
else
#GLIB_CONFIG=$(shell which glib-config)
#GTK_CONFIG=$(shell which gtk-config)
endif

HOST_ARCH = $(shell uname -p)

ifneq (,$(filter rel, $(options)))
  MOZILLA_SRCDIR_SUFFIX ?= .rel
  LIBDIR_SUFFIX ?= .rel
  STLPORTDIR_SUFFIX ?= .rel
  HEADERDIR_SUFFIX ?= .rel
endif

OBJPATH:=$(shell pwd)
APPL_ROOT?=$(patsubst %/,%,$(dir $(OBJPATH)))

BSUPPORT_DIR=$(APPL_ROOT)/bsupport

STLPORT_DIR=$(APPL_ROOT)/STLport-4.5.3$(STLPORTDIR_SUFFIX)
STLPORT_SRCPATH=$(STLPORT_DIR)/src
STLPORT_LIBPATH=$(STLPORT_DIR)/lib

MOZILLA_SRCPATH=$(APPL_ROOT)/mozilla$(MOZILLA_SRCDIR_SUFFIX)
MOZILLA_OBJPATH=$(OBJPATH)/mozilla$(MOZILLA_SRCDIR_SUFFIX)

MOZILLA_HEADER += $(BSUPPORT_DIR)/include
MOZILLA_HEADER += $(APPL_ROOT)/$(MACHINE)$(LIBDIR_SUFFIX)
MOZILLA_CXX_HEADER=$(STLPORT_DIR)/stlport
ifeq (pcat,$(MACHINE))
MOZILLA_CXX_HEADER += $(BSUPPORT_DIR)/compat/include
endif
MOZILLA_LIBDIR=$(APPL_ROOT)/$(MACHINE)$(LIBDIR_SUFFIX)

MKDIR = $(BD)/etc/mkinstalldirs
TOUCH = touch
LN = ln
BTFAR = $(BD)/etc/btfar
ifeq (FreeBSD,$(shell uname))
AUTOCONF = autoconf213
else
AUTOCONF = autoconf-2.13
endif

ENV=/usr/bin/env -i

# Note: $(DB_CPP) uses Solaris cpp
GNU_CPP=$(GNUi386)/bin/gcc -E

ifneq (,)
CC=$(GNUi386)/bin/gcc
CXX=$(GNUi386)/bin/gcc
AR=$(GNUi386)/bin/ar
LD=$(GNUi386)/bin/ld
RANLIB=$(GNUi386)/bin/ranlib
STRIP=$(GNUi386)/bin/strip
endif

PERL=perl

TARGET_CC = $(CC)
TARGET_CXX = $(CXX)
TARGET_RANLIB = $(RANLIB)
TARGET_AR = $(AR)

HOST_CC=gcc
HOST_CXX=g++
HOST_AR=ar
HOST_LD=ld
HOST_RANLIB=ranlib
HOST_STRIP=strip

ifdef WITH_NICE
  NICE= nice
endif

# ------------------------------------------------------------
# mozillaѥ륪ץ/ܥ

ifeq (pcat,$(MACHINE))
# specsˤǥեȤΥܥ
MOZILLA_PREDEFINED_SYMBOL =					\
	-UMACH -Uunix -U__MACH__ -U__unix__ -U__MACH -U__unix
# 	-U__ELF__ -U__i386__
endif

# targetͭܥ
MOZILLA_PREDEFINED_SYMBOL += -D__BTRON__
ifeq (pcat,$(MACHINE))
MOZILLA_PREDEFINED_SYMBOL += -DPCAT -D__BRIGHTV__=$(OS_VERSION)
else
OS_CFLAGS := $(CFLAGS)
MOZILLA_PREDEFINED_SYMBOL += -D__TENGINE__ -D$(_MACHINE_)
endif

ifdef STATIC_LINK
MOZILLA_PREDEFINED_SYMBOL += -D__DO_STATIC_LINK
endif

#
# others
#
MOZILLA_PREDEFINED_SYMBOL += -DIS_LITTLE_ENDIAN

# see layout/html/base/src/nsTextFrame.cpp
MOZILLA_PREDEFINED_SYMBOL += -DUSE_INVERT_FOR_SELECTION

ifdef GCC_SPECS
  CC += -specs=$(GCC_SPECS)
  CXX += -specs=$(GCC_SPECS)
endif

ifeq (pcat,$(MACHINE))
MOZILLA_CFLAGS_ARCH = -B $(GNU_BD)/lib/gcc-lib/ \
		-B $(GNUi386)/bin -B $(GNUi386)/
endif

ifeq (pcat,$(MACHINE))
MOZILLA_NO_STDC = -nostdinc
MOZILLA_NO_STDCXX = -nostdinc++
endif

# Mozillaѥץ
_OS_CFLAGS := $(filter-out -g -O2 -fPIC, $(CFLAGS))
ifeq (vr5500,$(MACHINE))
_OS_CFLAGS += -Wa,-G0 -Wl,-G0 -G0
endif
MOZILLA_CFLAGS =							\
	$(MOZILLA_CFLAGS_ARCH)						\
	$(MOZILLA_PREDEFINED_SYMBOL) $(MOZILLA_NO_STDC)			\
	$(MOZILLA_HEADER:%=-I%) $(HEADER:%=-I%)				\
	$(_OS_CFLAGS)							\
	$(NULL)

ifdef WITH_PROFILE
  MOZILLA_CFLAGS += -pg -DDEBUG_PROFILE
endif
MOZILLA_CXXFLAGS = $(MOZILLA_NO_STDCXX) $(MOZILLA_CXX_HEADER:%=-I%) $(MOZILLA_CFLAGS)

ifdef WITH_DEBUGINFO
  DEBUG_FLAGS = -g
endif

LDFLAGS = $(MOZILLA_LIBDIR:%=-L%) $(COMMONLIB:%=-L%)
LDFLAGS2 =

TARGET_DSO_LDOPTS = -shared -Wl,-soname=$$(notdir $$@)

# ʲgmake <program> ǤΤ߻Ѥ롣mozillaȼƤ롣
CFLAGS_WARNING = -Wall -W -Wno-unused -Wpointer-arith -Wcast-align
CXXFLAGS_WARNING = -Wall -Wconversion -Wpointer-arith -Wbad-function-cast \
	-Wcast-align -Woverloaded-virtual -Wsynth
CFLAGS = $(MOZILLA_CFLAGS) $(CFLAGS_WARNING) $(DEBUG_FLAGS)
CXXFLAGS = $(MOZILLA_CXXFLAGS) $(CXXFLAGS_WARNING) $(DEBUG_FLAGS)

# ------------------------------------------------------------
# mozilla饤֥

# ºݤ˥󥯤饤֥ϡ
# mozilla/config/Btron.mk, mozilla/nsprpub/config/my_config.mk αƶ
ifdef STATIC_LINK
LIB_PROG_FLAG = -static
else
LIB_DL = -ldl
endif

ifeq (pcat,$(MACHINE))
LIB_MAIN = -lmain
LIB_LANG = -llang
LIB_DBG = -ldbg
#LIB_BMS = -lbms
else
LIB_MAIN = -lbt -lsupc++ -Wl,--defsym,_usemt_=1 -lg
LIB_BMS = -ltm
endif
ifdef STATIC_LINK
LIB_BTK = -lbtoolkit -lwin -lcpp1
endif
LIB_GCC = #-lgcc

LDLIBS = $(LIB_PROG_FLAG) \
	$(LIB_BTK)				\
	$(LIB_GCC)				\
	-lstdc -lstl				\
	$(LIB_DL) -lapp -ltf $(LIB_GCC) -lstdc $(LIB_MAIN) $(LIB_DBG) \
	$(LIB_LANG)					\
	-lstdc					\
	$(LIB_BMS)				\
	-lstdc					\
	-lsvc $(LIB_GCC)			\
	$(NULL)
#	-llang -lg -lsys -lg -lf		\

ifdef WITH_PROFILE
  LDLIBS := 				\
	$(subst -lmozmain, -lmozmain_p,		\
	$(subst -lstdc, -lstdc_p,		\
	$(subst -lbtoolkit, -lbtoolkit_p,	\
	$(subst -lstl, -lstl_p,			\
	$(subst -lapp, -lapp_p,			\
	$(subst -ltf, -ltf_p,			\
	$(subst -llang, -llang_p,		\
	$(subst -lmain, -lmain_p,		\
	$(subst -lsys, -lsys_p,			\
	$(subst -lsvc, -lsvc_p,			\
	$(subst -lwin, -lwin_p,			\
	$(LDLIBS))))))))))))
endif

# ݡѥ饤֥
LIB_FILES=libbtoolkit.so libstdc.so libstl.so

# ------------------------------------------------------------
# configureץ/Ķѿ
ifdef STATIC_LINK
  MOZILLA_CONFIGURE_OPT += --disable-shared --enable-static
endif
ifdef STATIC_COMPONENT
  MOZILLA_CONFIGURE_OPT += --disable-shared --enable-static
endif

ifneq ($(mode), debug)
  MOZILLA_CONFIGURE_OPT += --disable-debug --disable-logging
  MOZILLA_PREDEFINED_SYMBOL += -DUNFORCE_PR_LOG
else
  MOZILLA_CONFIGURE_OPT += --enable-debug
endif

ifdef DISABLE_OPTIMIZE
MOZILLA_CONFIGURE_OPT += --disable-optimize
else
ifdef WITH_OPTIMIZE_FLAG
MOZILLA_CONFIGURE_OPT += --enable-optimize="$(WITH_OPTIMIZE_FLAG)"
else
ifeq (pcat,$(MACHINE))
MOZILLA_CONFIGURE_OPT += --enable-optimize='-O2'
else
MOZILLA_CONFIGURE_OPT += --enable-optimize
endif
endif
endif

MOZILLA_CONFIGURE_ENV += USE_SHORT_LIBNAME=1

ifneq ($(GLIB_CONFIG), )
  MOZILLA_CONFIGURE_ENV += GLIB_CONFIG=$(GLIB_CONFIG)
endif

ifneq ($(GTK_CONFIG), )
  MOZILLA_CONFIGURE_ENV += GTK_CONFIG=$(GTK_CONFIG)
endif

ifdef MOZ_PHOENIX
  MOZILLA_CONFIGURE_ENV += MOZ_PHOENIX=1
endif

ifdef ENABLE_CRYPTO
  MOZILLA_CONFIGURE_OPT += --enable-crypto
else
  MOZILLA_CONFIGURE_OPT += --disable-crypto
endif

MOZILLA_CONFIGURE_OPT += --disable-jsd
ifdef MOZ_PHOENIX
MOZILLA_CONFIGURE_OPT += --disable-tests
MOZILLA_CONFIGURE_OPT += --disable-mailnews
MOZILLA_CONFIGURE_OPT += --disable-composer
MOZILLA_CONFIGURE_OPT += --disable-ldap
MOZILLA_CONFIGURE_OPT += --disable-oji
MOZILLA_CONFIGURE_OPT += --disable-mailnews
MOZILLA_CONFIGURE_OPT += --enable-extensions=default,-inspector,-irc,-venkman,-content-packs,-help,-p3p,-spellcheck,-xml-rpc
MOZILLA_CONFIGURE_OPT += --enable-plaintext-editor-only
MOZILLA_CONFIGURE_OPT += --disable-profilesharing
MOZILLA_CONFIGURE_OPT += --disable-installer
else
MOZILLA_CONFIGURE_OPT += --enable-extensions='content-packs,cookie,help,pref,transformiix,universalchardet,wallet,xml-rpc,xmlextras'
endif

ifdef MOZ_PHOENIX
MOZILLA_CONFIG_H = mozilla-config.h
else
MOZILLA_CONFIG_H = config-defs.h
endif

ifdef MOZ_PHOENIX
MOZILLA_OBJECT_FILE = $(MOZILLA_OBJPATH)/dist/bin/MozillaFirebird-bin
else
MOZILLA_OBJECT_FILE = $(MOZILLA_OBJPATH)/xpfe/bootstrap/mozilla-bin
endif
# ------------------------------------------------------------
# mapեǤC++ܥϿʹ֤ɤʷȤ
NMFLAGS += -C

# ------------------------------------------------------------
.PHONY : mozilla-configure mozilla-make1 mozilla-make2 mozilla-allxpt
.PHONY : mozilla-clean mozilla-distclean
.PHONY : mozilla clean

mozilla: mozilla.bz
clean: mozilla-clean
distclean: mozilla-distclean

# $(MOZILLA_SRCPATH)/configure: $(MOZILLA_SRCPATH)/configure.in
# 	cd $(MOZILLA_SRCPATH); $(AUTOCONF)

# $(MOZILLA_SRCPATH)/nsprpub/configure: $(MOZILLA_SRCPATH)/nsprpub/configure.in
# 	cd $(MOZILLA_SRCPATH)/nsprpub; $(AUTOCONF)

autoconf::
	(cd $(MOZILLA_SRCPATH); $(AUTOCONF); $(TOUCH) -r configure.in configure)
	(cd $(MOZILLA_SRCPATH)/nsprpub; $(AUTOCONF); $(TOUCH) -r configure.in configure)

mozilla-configure: .mozilla-configure-done
.mozilla-configure-done:
	@echo $(MAKE) autoconf
	@$(MKDIR) $(MOZILLA_OBJPATH)
	cd $(MOZILLA_OBJPATH);					\
	$(NICE) $(ENV)						\
		PATH=$(PATH) \
		CPPFLAGS=" "					\
		CPP="$(GNU_CPP)"				\
		CC="$(CC)"					\
		CXX="$(CXX)"					\
		AR="$(AR)"					\
		LD="$(LD)"					\
		RANLIB="$(RANLIB)"				\
		STRIP="$(STRIP)"				\
		CFLAGS="$(MOZILLA_CFLAGS)"			\
		CXXFLAGS="$(MOZILLA_CXXFLAGS)"			\
		LDFLAGS="$(LDFLAGS)"				\
		OS_LIBS="$(LDFLAGS) $(LDLIBS)"			\
		LIBS="$(LDFLAGS) $(LDLIBS)"				\
		CROSS_COMPILE=1					\
		LD_RUN_PATH="$(LD_LIBRARY_PATH)"		\
		HOST_CFLAGS=" "					\
		HOST_CXXFLAGS=" "				\
		HOST_LDFLAGS=" "				\
		OS_TARGET=BrightV				\
		TARGET_OS_RELEASE=$(OS_VERSION_STR)		\
		TARGET_DSO_LDOPTS='$(TARGET_DSO_LDOPTS)'	\
		MOZ_DEBUG_FLAGS="$(DEBUG_FLAGS) "		\
		MOZILLA_CLIENT=1				\
		$(MOZILLA_CONFIGURE_ENV)			\
	$(MOZILLA_SRCPATH)/configure				\
		--disable-bidi					\
		--disable-dtd-debug				\
		--disable-glibtest				\
		--disable-gtktest				\
		--disable-ldap					\
		--disable-mailnews				\
		--disable-freetype2				\
		--disable-freetypetest				\
		--disable-pedantic				\
		--disable-tests					\
		--disable-postscript				\
		--disable-xprint				\
		--disable-toolkit-gtk                           \
		--disable-toolkit-xlib                          \
		--disable-toolkit-qt                            \
		--enable-cpp-rtti				\
		--enable-logrefcnt=no				\
		--enable-long-long-warning			\
		--target=i386-unknown-gnu			\
		--without-x					\
		--without-jpeg					\
		--without-mng					\
		--without-png					\
		--without-system-nspr				\
		--without-zlib					\
		$(MOZILLA_CONFIGURE_OPT)
	@$(PERL) -i~ -pe 's/XP_UNIX/XP_BTRON/' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*UNIX_ASYNC_DNS.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*MOZ_WIDGET_GTK.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*MOZ_ENABLE_XREMOTE.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*MOZ_X11.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/"gtk"/"btron"/' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*gid_t.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*mode_t.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*off_t.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*pid_t.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*size_t.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(PERL) -i~ -pe 's/^.*uid_t.*$$//' \
		$(MOZILLA_OBJPATH)/$(MOZILLA_CONFIG_H)
	@$(TOUCH) .mozilla-configure-done

mozilla-make1: .mozilla-make1-done
.mozilla-make1-done: .mozilla-configure-done
	@$(TOUCH) .mozilla-make1-done

mozilla-make2: .mozilla-make2-done
.mozilla-make2-done: .mozilla-make1-done
	$(MAKE) mozilla-make
	@$(TOUCH) .mozilla-make2-done

mozilla-make: .mozilla-make1-done
	$(NICE) $(ENV) \
		PATH=$(PATH) \
		TARGET_CC="$(TARGET_CC)" \
		TARGET_CXX="$(TARGET_CXX)" \
		TARGET_RANLIB="$(TARGET_RANLIB)" \
		TARGET_AR="$(TARGET_AR)" \
		TARGET_CFLAGS="$(MOZILLA_CFLAGS)"	\
		TARGET_CXXFLAGS="$(MOZILLA_CXXFLAGS)"	\
		TARGET_LIBS="$(LDFLAGS) $(LDLIBS)"	\
		OS_TARGET=Btron \
		BD=$(BD) \
		$(MAKE) -C $(MOZILLA_OBJPATH)

mozilla-allxpt: all.xpt
all.xpt : .mozilla-make2-done
	$(NICE) $(MOZILLA_OBJPATH)/dist/host/bin/host_xpt_link \
		$@ $(MOZILLA_OBJPATH)/dist/bin/components/*.xpt
$(MOZILLA_OBJECT_FILE): mozilla-allxpt

mozilla-clean: mozilla-environ.txt
	-$(NICE) $(ENV) \
		PATH=$(PATH) \
		$(MAKE) -C $(MOZILLA_OBJPATH) clean
	-$(RM) .mozilla-make1-done .mozilla-make2-done \
		all.xpt mozilla-environ.txt mozilla.btf browser2.bz \
		mozilla.f mozilla.fsn mozilla.fsn.lst mozilla_form.btf \
		mozilla-environ.txt mozilla.bz \
		$(NULL)

mozilla-distclean:
#	-$(NICE) $(ENV) \
#		PATH=$(PATH) \
#		$(MAKE) -C $(MOZILLA_OBJPATH) distclean
	-$(RM) .mozilla-configure-done .mozilla-make1-done .mozilla-make2-done
	-mv -f $(MOZILLA_OBJPATH) _d$$$$ && $(RM) -r _d$$$$ &
	-$(RM) all.xpt _t

mozilla.map: .mozilla-make2-done
	$(NM) $(NMFLAGS) $(MOZILLA_OBJECT_FILE) > $@

# ------------------------------------------------------------
# mozilla ץꥱѥå

mozilla.f:
	@echo "-- This file is generated from Makefile." > $@
	@echo "0 0 0 0                               -- r"	>> $@
	@echo "16                                    -- chsz"	>> $@
	@echo "0x10000000L 0x10000000L 0x10FFFFFFL   -- colors"	>> $@
	@echo "4                                     -- pict"	>> $@
	@echo "$(TARGET_APPID)                       -- apl-id"	>> $@
	@echo "\"$(TARGET_NAME)\"16                  -- name"	>> $@
	@echo "\"$(TARGET_DNAME)\"16                 -- type"	>> $@
	@echo "0                                     -- dlen"	>> $@
	@cat $@

mozilla_form.btf: mozilla.fsn
	$(NICE) $(PERL) $(BTFAR) -o $@ -m $(MKBTF)	\
		-t "$(FORM_NAME)"			\
		-a 1					\
		-r 8.0	mozilla.fsn=

mozilla-environ.txt:
	echo '*' > $@
	echo '* environment variables for Mozilla for B-right/V' >> $@
	echo '*' >> $@
	echo 'GECKO_FONT_SIZE_FACTOR=1.0' >> $@
	echo 'HOME=/$(TARGET_APPNAME)/' >> $@
	echo 'MOZILLA_FIVE_HOME=/$$$$PROGRAM.BOX/$(TARGET_APPNAME)/misc' >> $@
	echo 'MOZILLA_FIVE_LIB=/$$$$PROGRAM.BOX/$(TARGET_APPNAME)/misc/lib' >> $@
	echo 'XPCOM_CHECK_THREADSAFE=1' >> $@
	echo 'TMPDIR=/$$$$PROGRAM.BOX/$(TARGET_APPNAME)/misc/TMP/' >> $@
	echo 'NSPR_LOG_MODULES=$(MOZILLA_LOG_LEVEL)' >> $@

MOZILLA_INSTALLPATH=$(MOZILLA_OBJPATH)/dist/bin
ifdef ENABLE_CRYPTO
MOZILLA_BUILTIN_CERT=$(MOZILLA_INSTALLPATH)/libnssckbi.so=misc/
endif
ifndef STATIC_LINK
MOZILLA_SUPPORT_SHARED_LIBS=$(patsubst %,$(MOZILLA_LIBDIR)/%=/,$(LIB_FILES))
MOZILLA_SUPPORT_SHARED_FILES=$(patsubst %,$(MOZILLA_LIBDIR)/%,$(LIB_FILES))
MOZILLA_SHARED_OBJECT_FILES = $(filter-out %*.so=/, $(addsuffix =/,\
		$(filter-out $(MOZILLA_INSTALLPATH)/libnssckbi.so,\
		$(shell find $(MOZILLA_INSTALLPATH) -maxdepth 1 -name '*.so'\
			2>/dev/null) \
		$(shell find $(MOZILLA_INSTALLPATH)/components/libgklayout.so 2>/dev/null))))
endif

mozilla.bz: $(MOZILLA_OBJECT_FILE) all.xpt
mozilla.bz: mozilla.fsn mozilla_form.btf mozilla-environ.txt
mozilla.bz: $(MOZILLA_SUPPORT_SHARED_FILES)
	$(NICE) $(NM) $(NMFLAGS) $(MOZILLA_OBJECT_FILE) > mozilla.map
	$(NICE) $(RM) $(OBJPATH)/mozilla.out
#	$(NICE) $(LN) $(MOZILLA_OBJECT_FILE) mozilla.out
	$(NICE) $(CP) -pf $(MOZILLA_OBJECT_FILE) $(OBJPATH)/_t
	$(NICE) $(STRIP) $(OBJPATH)/_t
	$(NICE) $(RM) $(OBJPATH)/$@
	$(NICE) $(PERL) $(BTFAR) -o $(OBJPATH)/$@ -m $(MKBTF) -c	     \
		-a 0x8003						     \
		-t $(TARGET_APPNAME)					     \
		-r 9.0x0163 $(OBJPATH)/_t=			     \
		-r 7.$(TARGET_VERSION) $(OBJPATH)/mozilla.fsn=		     \
		-r 31.0							     \
		@0.0.0x8001.0.0x800c.$(OBJPATH)/mozilla_form.btf=/	     \
	$(MOZILLA_SHARED_OBJECT_FILES) \
	$(MOZILLA_BUILTIN_CERT) \
	$(MOZILLA_SUPPORT_SHARED_LIBS) \
	$(OBJPATH)/mozilla-environ.txt=/environ				\
	$(addsuffix =misc/components/,					\
		$(OBJPATH)/all.xpt					\
	  	$(wildcard $(MOZILLA_INSTALLPATH)/components/*.so))     \
	$(shell $(PERL) ../src/shorten20 misc/components/		\
		$(wildcard $(MOZILLA_INSTALLPATH)/components/*.js))	\
	$(shell find $(MOZILLA_INSTALLPATH)/chrome ! -type d		\
		|xargs ../src/distlist.pl $(MOZILLA_INSTALLPATH) misc)	\
	$(shell find $(MOZILLA_INSTALLPATH)/defaults ! -type d		\
		|xargs ../src/distlist.pl $(MOZILLA_INSTALLPATH) misc)	\
	$(shell find $(MOZILLA_INSTALLPATH)/res ! -type d		\
		|xargs ../src/distlist.pl $(MOZILLA_INSTALLPATH) misc)	\
	$(shell find $(MOZILLA_INSTALLPATH)/searchplugins ! -type d	\
		|xargs ../src/distlist.pl $(MOZILLA_INSTALLPATH) misc)	\
	/dev/null=misc/plugins						\
	/dev/null=misc/TMP

# ************************************************************
# ե饤֥

# ------------------------------------------------------------
# STLport (targetĶ)
.PHONY : STLport STLport-make STLport-install STLport-clean
STLport: STLport-make STLport-install

STLPORT_LIB_VERSION= 4.5

ifdef WITH_PROFILE
  STLPORT_LIB_BASENAME = libstl_p
else
  STLPORT_LIB_BASENAME = libstl
endif

ifdef STATIC_LINK
  STLPORT_BUILD_TARGET = release_static
  STLPORT_LIBTYPE = a
else
  STLPORT_BUILD_TARGET = release_dynamic
  STLPORT_LIBTYPE = so
  STLPORT_TARGET_MAP = $(MOZILLA_LIBDIR)/libstl.so.map
endif
STLPORT_LIB_NAME = $(STLPORT_LIB_BASENAME).$(STLPORT_LIBTYPE)

STLPORT_TARGET = $(MOZILLA_LIBDIR)/$(STLPORT_LIB_NAME)
STLPORT_TARGET += $(STLPORT_TARGET_MAP)


STLport-make:
	$(NICE) $(ENV) 					\
		PATH=$(PATH)				\
		CC=$(TARGET_CC)				\
		CXX=$(TARGET_CXX)			\
		AR=$(TARGET_AR)				\
		LD=$(TARGET_CC)				\
		RANLIB=$(TARGET_RANLIB)			\
		LIB_BASENAME=$(STLPORT_LIB_BASENAME)	\
		DYN_LINK_LDOPTS='$(TARGET_DSO_LDOPTS)'	\
		CXXFLAGS='$(CXXFLAGS)'			\
		BD=$(BD)				\
	$(MAKE) -C $(STLPORT_SRCPATH) -f brightv.mak 	\
		$(STLPORT_BUILD_TARGET)

STLport-clean:
	$(NICE) $(MAKE) -C $(STLPORT_SRCPATH) -f brightv.mak clean

STLport-install:
	@$(RM) $(MOZILLA_LIBDIR)/$(STLPORT_LIB_NAME)
ifdef STATIC_LINK
	$(RANLIB) $(STLPORT_LIBPATH)/$(STLPORT_LIB_NAME)
endif
	install $(STLPORT_LIBPATH)/$(STLPORT_LIB_NAME) $(MOZILLA_LIBDIR)

## ---------------------------------------------------------
libqt.a:
	$(NICE) $(MAKE) -f $(APPL_ROOT)/src/Makefile.qt \
		BD=$(BD) \
		WITH_DEBUGINFO=$(WITH_DEBUGINFO)
## ---------------------------------------------------------
.PHONY : make-mozilla.patch
fix-mozilla.patch:
	$(PERL) -i~ -pe 's%/usr4/3bv%/usr/local/brightv%g' mozilla.patch
make-mozilla.patch:
	$(RM) mozilla.patch
mozilla.patch: make-mozilla.patch
	cvs -q rdiff -u -r MOZILLA appl/browser2/mozilla > $@
## ---------------------------------------------------------
bsupport:
	$(NICE) $(MAKE) -C $(APPL_ROOT)/bsupport/$(notdir $(shell pwd)) install
btoolkit:
	@$(MKDIR) $(APPL_ROOT)/btoolkit/$(notdir $(shell pwd))
	$(NICE) $(MAKE) -C $(APPL_ROOT)/btoolkit/$(notdir $(shell pwd)) install
## ---------------------------------------------------------
.PHONY : help

help:
	@echo "Available targets are:"
	@echo "STLport STLport-make STLport-clean STLport-install"
	@echo "mozilla mozilla-configure mozilla-make1 mozilla-make2 mozilla-clean mozilla-distclean"
	@echo "$(TARGET).bz"

## ---------------------------------------------------------
package::
	$(NICE) $(MAKE) -f $(APPL_ROOT)/src/Makefile.pack \
	LIB_FILES="$(addprefix $(notdir $(shell pwd))/,$(LIB_FILES) $(LIB_FILES_STATIC))"
## ---------------------------------------------------------
world::
	$(MAKE) STLport
	$(MAKE) libqt.a
	(cd ../bsupport/$(notdir $(shell pwd)); $(MAKE) -j install)
	(cd ../btoolkit/$(notdir $(shell pwd)); $(MAKE) -j install)
	$(MAKE) mozilla
## ---------------------------------------------------------
install::
	@echo do "'$(MAKE) installer'"

installer::
	$(MAKE) -f $(APPL_ROOT)/src/Makefile.installer SRC=$(APPL_ROOT)/src

UNZIP = /usr/bin/unzip
JA_PACK = $(APPL_ROOT)/src/fb.langjaJP-0.7.1015.xpi

japack:: mozilla.bz $(JA_PACK)
	$(ENV) $(UNZIP) -n $(JA_PACK) -d $(MOZILLA_INSTALLPATH)/..
	$(PERL) $(APPL_ROOT)/src/update-chromelist.pl $(MOZILLA_INSTALLPATH)
	$(RM) mozilla.bz
	$(MAKE) mozilla.bz
