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

VX_SYS_LCL = linux

TARGET = libjs.a

all: $(TARGET)

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

LOCAL_STRICT += $(CCOPTIM) 
#LOCAL_STRICT += -g
LOCAL_INCLUDES += -I$(ARCH)/../browser/draw_new/inc -I$(ARCH)/../inc -I$(ARCH)/../browser/platform_new/inc
LOCAL_INCLUDES += -I$(ARCH)/../lib/mem/inc
#LOCAL_DEFINES += -DFASTER -DNATIVE_DEBUG
LOCAL_INCLUDES += -I$(VPATH)/regexp/inc
LOCAL_DEFINES += -DREUSE_LOCAL
LOCAL_DEFINES += -DPERSIST
#LOCAL_DEFINES += -DSHELL

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-nativedebug.cpp		js-stringruntime.cpp	\
	js-filerandomwriter.cpp		js-binaryrandomreader.cpp \
	js-persist.cpp 			js-filereader.cpp

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

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

REGEXP = libjsregexp.a
REGEXPPATH =  $(VPATH)/regexp/obj/$(VX_SYS_LCL)
 
$(TARGET): $(OBJS) $(REGEXPPATH)/$(REGEXP)
	$(AR) rv $@ $(OBJS) $(REGEXPPATH)/*.o

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

depend: regexpdepend
clean: regexpclean

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

shell: LOCAL_DEFINES += -DSHELL
shell: js-shell.o $(TARGET)
	$(CC) -pg -o shell $+ \
	../../../lib/list/obj/linux/liblist.a -lstdc++ -lpthread

compile: LOCAL_DEFINES += -DSHELL
compile: js-compile.o $(TARGET)
	$(AR) xv ../../../lib/list/obj/linux/liblist.a
	$(AR) rv $(TARGET) js-compile.o \
		`$(AR) t ../../../lib/list/obj/linux/liblist.a`

compiler: LOCAL_DEFINES += -DCOMPILER -DSHELL
compiler: js-compile.o $(TARGET)
	$(CC) -o compiler $+ \
	../../../lib/list/obj/linux/liblist.a -lstdc++ -lpthread

# DO NOT DELETE THIS LINE -- make depend depends on it.
