# Makefile for JavaScript interpreter
#
# Yasuo Tanaka, Dec. 27, 2001
#
# Default
VPATH = ../..
ARCH = ../..

VX_SYS_LCL = c2d

TARGET = libjs$(EXT).o

all: $(TARGET)

include $(ARCH)/inc/$(VX_SYS_LCL)/Makefile.common

# LOCAL_DEFINES += -g
# LOCAL_DEFINES += -DEWB
# LOCAL_DEFINES += -DPROFILE
LOCAL_DEFINES += -DFASTER -DNATIVE_DEBUG
LOCAL_DEFINES += -DREGEXP -DSTATS
LOCAL_DEFINES += -DJSTIME_TRACE
LOCAL_DEFINES += -DUSE_UTF8

#LOCAL_DEFINES += -DWEBUI

LOCAL_DEFINES += -DCONF_WPAD
#LOCAL_DEFINES += -DCONF_WPAD -DCONF_WPAD_DEBUG
LOCAL_DEFINES += -imacros ../../../src/apd_rep.h

CSRCS = 

CPPSRCS =  \
	js-arguments.cpp		js-nativedate.cpp	\
	js-context.cpp			js-nativeerror.cpp	\
	js-ctorfunction.cpp		js-nativefunction.cpp	\
	js-defaulterrorreporter.cpp	js-nativeglobal.cpp	\
	js-nativemath.cpp					\
	js-ecmaerror.cpp		js-nativenumber.cpp	\
	js-exception.cpp		js-nativeobject.cpp	\
	js-exceptionhandler.cpp		js-nativescript.cpp	\
	js-flattenedobject.cpp		js-nativestring.cpp	\
	js-functionnode.cpp		js-nativewith.cpp	\
	js-functionobject.cpp		js-new.cpp		\
	js-node.cpp						\
	js-nodetransformer.cpp					\
	js-hostctorfunction.cpp		js-objectadapter.cpp	\
	js-hostmethodfunction.cpp	js-parser.cpp		\
	js-idenumeration.cpp		js-preordernodeiterator.cpp	\
	js-interpretedfunction.cpp	js-runtime.cpp		\
	js-interpretedscript.cpp	js-scriptable.cpp	\
	js-interpreter.cpp		js-methodfunction.cpp	\
	js-interpreterdata.cpp		js-scriptableobject.cpp	\
	js-irfactory.cpp		js-scriptruntime.cpp	\
	js-javascriptexception.cpp	js-shallownodeiterator.cpp	\
	js-label.cpp			js-source.cpp		\
	js-labeltable.cpp		js-stringbuffer.cpp	\
	js-linebuffer.cpp		js-stringreader.cpp	\
	js-localvariable.cpp		js-throwable.cpp	\
	js-nativearray.cpp		js-tokenstream.cpp	\
	js-nativeboolean.cpp		js-utils.cpp	\
	js-nativecall.cpp		js-variabletable.cpp	\
	js-binarydigitreader.cpp	js-api.cpp		\
	js-nativehost.cpp		js-config.cpp		\
	js-gc.cpp			js-notafunctionexception.cpp \
	js-runtimeexception.cpp		js-hosterrorreporter.cpp \
	js-evaluatorexception.cpp	js-zone.cpp		\
	js-frame.cpp			js-gcheap.cpp		\
	js-profile.cpp			js-nativedebug.cpp	\
	js-stringruntime.cpp

MAKE_DEPEND_SRC = $(CSRCS:%=$(VPATH)/%) $(CPPSRCS:%=$(VPATH)/%)

OBJS = $(CSRCS:.c=$(EXT).o) $(CPPSRCS:.cpp=$(EXT).o)

#SYSOBJS = _cmpdi2.o _divdi3.o _fixdfdi.o _floatdidf.o _lshrdi3.o _fixunsdfdi.o

REGEXP = libjsregexp$(EXT).o
REGEXPPATH =  $(VPATH)/regexp/obj/$(VX_SYS_LCL)

$(TARGET): $(OBJS) $(REGEXPPATH)/$(REGEXP)
	$(LD) -r -o $@ $(OBJS)		\
		$(REGEXPPATH)/$(REGEXP)

#	$(LD) -r -o $@ $(OBJS) $(SYSOBJS)		\

$(REGEXPPATH)/$(REGEXP)::
	(cd $(REGEXPPATH); $(MAKE))

CLEANUPFILES = ${TARGET} ${OBJS}	\
		$(TARGET:.o=_rom.o) $(OBJS:.o=_rom.o)	\
		$(TARGET:.o=_net.o) $(OBJS:.o=_net.o)

depend: regexpdepend
clean: regexpclean

regexpdepend:
	(cd $(REGEXPPATH); $(MAKE) depend)
regexpclean:
	(cd $(REGEXPPATH); $(MAKE) clean)

