| # ---------------------------------------------------------------- |
| # Compile a custom javascript interpreter |
| # ---------------------------------------------------------------- |
| # |
| # Note: |
| # There is no common CLI Javascript interpreter. |
| # V8 comes with one 'd8' which however does not provide a means |
| # to load extensions. Therefore, by default we use nodejs as |
| # environment. |
| # For testing native v8 and jsc extensions we provide our own |
| # interpreter (see 'Tools/javascript'). |
| # |
| # ---------------------------------------------------------------- |
| all: javascript |
| |
| CC = @CC@ |
| # HACK: under Mac OS X a g++ compiled interpreter is seg-faulting when loading module libraries |
| # with 'c++' it works... probably some missing flags? |
| JSCXX = @JSINTERPRETERCXX@ |
| CPPFLAGS = @BOOST_CPPFLAGS@ |
| CFLAGS = @PLATCFLAGS@ |
| CXXFLAGS = @PLATCXXFLAGS@ |
| LDFLAGS = |
| LINKFLAGS = @JSINTERPRETERLINKFLAGS@ |
| |
| ROOT_DIR = @ROOT_DIR@ |
| JSINCLUDES = @JSCOREINC@ @JSV8INC@ |
| JSDYNAMICLINKING = @JSCOREDYNAMICLINKING@ @JSV8DYNAMICLINKING@ |
| JSV8ENABLED = @JSV8ENABLED@ |
| JSCENABLED = @JSCENABLED@ |
| |
| srcdir = @srcdir@ |
| |
| |
| ifneq (, $(V8_VERSION)) |
| JSV8_VERSION=$(V8_VERSION) |
| else |
| JSV8_VERSION=0x031110 |
| endif |
| |
| # Regenerate Makefile if Makefile.in or config.status have changed. |
| Makefile: $(srcdir)/Makefile.in ../../config.status |
| cd ../.. && $(SHELL) ./config.status Tools/javascript/Makefile |
| |
| # These settings are provided by 'configure' (see '/configure.in') |
| ifeq (1, $(JSV8ENABLED)) |
| JS_INTERPRETER_SRC_V8 = v8_shell.cxx |
| JS_INTERPRETER_ENABLE_V8 = -DENABLE_V8 -DSWIG_V8_VERSION=$(JSV8_VERSION) -DV8_DEPRECATION_WARNINGS |
| endif |
| |
| ifeq (1, $(JSCENABLED)) |
| JS_INTERPRETER_SRC_JSC = jsc_shell.cxx |
| JS_INTERPRETER_ENABLE_JSC = -DENABLE_JSC |
| endif |
| |
| JS_INTERPRETER_DEFINES = $(JS_INTERPRETER_ENABLE_JSC) $(JS_INTERPRETER_ENABLE_V8) |
| JS_INTERPRETER_SRC = javascript.cxx js_shell.cxx $(JS_INTERPRETER_SRC_JSC) $(JS_INTERPRETER_SRC_V8) |
| |
| JS_INTERPRETER_OBJS = $(JS_INTERPRETER_SRC:.cxx=.o) |
| |
| %.o: $(srcdir)/%.cxx |
| $(JSCXX) $(JS_INTERPRETER_DEFINES) $(CPPFLAGS) $(CXXFLAGS) $(JSINCLUDES) -o $@ -c $< |
| |
| javascript: $(JS_INTERPRETER_OBJS) |
| $(JSCXX) $^ $(CXXFLAGS) $(LDFLAGS) -o javascript $(JSDYNAMICLINKING) $(LINKFLAGS) |
| |
| clean: |
| rm -f *.o |
| rm -f javascript |
| |
| distclean: clean |
| rm -f Makefile |