diff --git a/Examples/Makefile.in b/Examples/Makefile.in index a2a211cbd..17e66acce 100644 --- a/Examples/Makefile.in +++ b/Examples/Makefile.in @@ -668,6 +668,11 @@ android_clean: ##### JAVASCRIPT ###### ################################################################## +# Note: These targets are used from withing Makefiles in the Example directories. +# There is a common makefile, 'Examples/javascript/js_example.mk' to simplify +# create a configuration for a new example. + + ROOT_DIR = @ROOT_DIR@ JSCFLAGS = @JSCFLAGS@ JSCXXFLAGS = @JSCXXFLAGS@ @@ -689,6 +694,7 @@ JSCXXSHARED = @JSCXXSHARED@ # environment. # For testing native v8 and jsc extensions we provide our own # interpreter (see 'Tools/javascript'). +# # ---------------------------------------------------------------- JS_INTERPRETER_SRC_DIR = $(ROOT_DIR)/Tools/javascript @@ -717,19 +723,38 @@ javascript_exe: $(SRCS) SWIGJS = $(SWIG) -javascript # ---------------------------------------------------------------- -# Run the javascript executable +# Creating and building Javascript wrappers # ---------------------------------------------------------------- -javascript: $(SRCS) +javascript_wrapper: $(SWIGJS) $(SWIGOPT) $(INTERFACEPATH) + +javascript_wrapper_cpp: $(SRCS) + $(SWIGJS) -c++ $(SWIGOPT) $(INTERFACEPATH) + +javascript_build: $(SRCS) $(CC) -c $(CCSHARED) $(CFLAGS) $(JSCFLAGS) $(ISRCS) $(SRCS) $(INCLUDES) $(JSINCLUDES) $(LDSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(JSDYNAMICLINKING) $(LIBS) -o $(LIBPREFIX)$(TARGET)$(SO) -javascript_cpp: $(SRCS) - $(SWIGJS) -c++ $(SWIGOPT) $(INTERFACEPATH) +javascript_build_cpp:: $(SRCS) $(CXX) -c $(CCSHARED) $(CFLAGS) $(JSCFLAGS) $(ICXXSRCS) $(SRCS) $(CXXSRCS) $(INCLUDES) $(JSINCLUDES) $(CXXSHARED) $(CFLAGS) $(OBJS) $(IOBJS) $(JSDYNAMICLINKING) $(LIBS) $(CPP_DLLIBS) -o $(LIBPREFIX)$(TARGET)$(SO) +# TODO: make node-gyp configurable and detected via ./configure +javascript_build_node: $(SRCS) + node-gyp --loglevel=silent configure build 1>>/dev/null + +# ----------------------------------------------------------------- +# Running a javascript example +# ----------------------------------------------------------------- + +javascript_run: + $(JS_INTERPRETER_SRC_DIR)/javascript -$(JSENGINE) runme.js + +# TODO: make node configurable and detected via ./configure +javascript_run_node: + node runme.js + # ----------------------------------------------------------------- # Cleaning the javascript examples # ----------------------------------------------------------------- @@ -740,6 +765,8 @@ javascript_clean: rm -f core @EXTRA_CLEAN@ rm -f *.@OBJEXT@ *@JSSO@ + + ################################################################## ##### MODULA3 ###### ################################################################## @@ -1604,7 +1631,7 @@ R_SCRIPT=$(RUNME).R r: $(SRCS) $(SWIG) -r $(SWIGOPT) $(INTERFACEPATH) ifneq ($(SRCS),) - $(CC) -g -c $(CFLAGS) $(R_CFLAGS) $(SRCS) $(INCLUDES) + $(CC) -g -c $(CFLAGS) $(R_CFLAGS) $(SRCS) $(INCLUDES) endif +( PKG_CPPFLAGS="$(INCLUDES)" $(COMPILETOOL) $(R) CMD SHLIB -o $(LIBPREFIX)$(TARGET)$(SO) $(ISRCS) $(OBJS) > /dev/null ) diff --git a/Examples/javascript/class/Makefile b/Examples/javascript/class/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/class/Makefile +++ b/Examples/javascript/class/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/constant/Makefile b/Examples/javascript/constant/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/constant/Makefile +++ b/Examples/javascript/constant/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/enum/Makefile b/Examples/javascript/enum/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/enum/Makefile +++ b/Examples/javascript/enum/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/exception/Makefile b/Examples/javascript/exception/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/exception/Makefile +++ b/Examples/javascript/exception/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/functor/Makefile b/Examples/javascript/functor/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/functor/Makefile +++ b/Examples/javascript/functor/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/js_example.mk b/Examples/javascript/js_example.mk new file mode 100644 index 000000000..c2e9c6dcf --- /dev/null +++ b/Examples/javascript/js_example.mk @@ -0,0 +1,63 @@ +# Note: as a convention an example must be in a child directory of this. +# These paths are relative to such an example directory +EXAMPLES_TOP=../.. +SWIG_TOP=../../.. + +SWIG = $(SWIG_TOP)/preinst-swig + +# TODO: we could only set these only if not yet set... +JS_SCRIPT = runme.js +TARGET = example +INTERFACE = example.i + +ifneq (, $(ENGINE)) + JSENGINE=$(ENGINE) +else + JSENGINE=node +endif + +ifeq (node,$(JSENGINE)) + SWIGOPT=-v8 -DBUILDING_NODE_EXTENSION=1 +endif + +ifeq (v8,$(JSENGINE)) + SWIGOPT=-v8 +endif + +ifeq (jsc,$(JSENGINE)) + SWIGOPT=-jsc +endif + + +ifeq (node,$(JSENGINE)) + +build: wrapper + $(MAKE) -f $(EXAMPLES_TOP)/Makefile CXXSRCS='$(SRCS)' SWIG='$(SWIG)' \ + SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' JSENGINE='$(JSENGINE)' javascript_build_node + +else + +build: wrapper + $(MAKE) -f $(EXAMPLES_TOP)/Makefile CXXSRCS='$(SRCS)' SWIG='$(SWIG)' \ + SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' JSENGINE='$(JSENGINE)' javascript_build_cpp + +endif + +wrapper: + $(MAKE) -f $(EXAMPLES_TOP)/Makefile CXXSRCS='$(SRCS)' SWIG='$(SWIG)' \ + SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp + +ifeq (node,$(JSENGINE)) + +check: build + $(MAKE) -f $(EXAMPLES_TOP)/Makefile JSENGINE='$(JSENGINE)' javascript_run_node + +else + +check: build + $(MAKE) -f $(EXAMPLES_TOP)/Makefile JSENGINE='$(JSENGINE)' javascript_run + +endif + +clean: + $(MAKE) -f $(EXAMPLES_TOP)/Makefile javascript_clean diff --git a/Examples/javascript/namespace/Makefile b/Examples/javascript/namespace/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/namespace/Makefile +++ b/Examples/javascript/namespace/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/operator/Makefile b/Examples/javascript/operator/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/operator/Makefile +++ b/Examples/javascript/operator/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/overload/Makefile b/Examples/javascript/overload/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/overload/Makefile +++ b/Examples/javascript/overload/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/pointer/Makefile b/Examples/javascript/pointer/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/pointer/Makefile +++ b/Examples/javascript/pointer/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/reference/Makefile b/Examples/javascript/reference/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/reference/Makefile +++ b/Examples/javascript/reference/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/simple/Makefile b/Examples/javascript/simple/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/simple/Makefile +++ b/Examples/javascript/simple/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/template/Makefile b/Examples/javascript/template/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/template/Makefile +++ b/Examples/javascript/template/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk diff --git a/Examples/javascript/variables/Makefile b/Examples/javascript/variables/Makefile index 99a9e9e86..b0934786a 100755 --- a/Examples/javascript/variables/Makefile +++ b/Examples/javascript/variables/Makefile @@ -1,21 +1,3 @@ -TOP = ../.. -SWIG = $(TOP)/../preinst-swig -CXXSRCS = example.cxx -JS_SCRIPT = runme.js -TARGET = example -INTERFACE = example.i +SRCS = example.cxx -wrapper:: - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_wrapper_cpp - -build:: wrapper - $(MAKE) -f $(TOP)/Makefile CXXSRCS='$(CXXSRCS)' SWIG='$(SWIG)' \ - SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' javascript_build - -clean:: - $(MAKE) -f $(TOP)/Makefile javascript_clean - -check:: build - $(MAKE) -f $(TOP)/Makefile JSCXXSRCS='$(JSCXXSRCS)' TARGET='$(TARGET)' \ - TOP='$(TOP)' JS_SCRIPT='$(JS_SCRIPT)' javascript_run +include ../js_example.mk