diff options
author | Vincent Sanders <vince@kyllikki.org> | 2015-10-12 17:40:35 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2015-10-12 17:40:35 +0100 |
commit | ce321410577f384e19042ea20b30ed6cbb00eda2 (patch) | |
tree | d1efc9a5d2fd4da26e16a34b18d0a53055a7e77c /javascript | |
parent | 3877d4ad03134c727624b85e830539b3fe15dbdf (diff) | |
download | netsurf-ce321410577f384e19042ea20b30ed6cbb00eda2.tar.gz netsurf-ce321410577f384e19042ea20b30ed6cbb00eda2.tar.bz2 |
Split up javascript engine makefiles
by splitting javascript engine specific makefiles and source up we
avoid having to consider old JSAPI or none code while working on
duktape.
Diffstat (limited to 'javascript')
-rw-r--r-- | javascript/Makefile | 101 | ||||
-rw-r--r-- | javascript/duktape/Makefile | 37 | ||||
-rw-r--r-- | javascript/duktape/dukky.c (renamed from javascript/dukky.c) | 36 | ||||
-rw-r--r-- | javascript/duktape/dukky.h (renamed from javascript/dukky.h) | 0 | ||||
-rw-r--r-- | javascript/duktape/netsurf.bnd | 2 | ||||
-rw-r--r-- | javascript/jsapi/Makefile | 53 | ||||
-rw-r--r-- | javascript/jsapi/jsapi.c (renamed from javascript/jsapi.c) | 0 | ||||
-rw-r--r-- | javascript/jsapi/jsapi.h (renamed from javascript/jsapi.h) | 0 | ||||
-rw-r--r-- | javascript/none/Makefile | 9 | ||||
-rw-r--r-- | javascript/none/none.c (renamed from javascript/none.c) | 0 |
10 files changed, 134 insertions, 104 deletions
diff --git a/javascript/Makefile b/javascript/Makefile index 3b8bf48a4..36f123b64 100644 --- a/javascript/Makefile +++ b/javascript/Makefile @@ -1,103 +1,34 @@ # # NetSurf javascript source file inclusion # -# Included by Makefile.sources +# Included by Makefile # -# ---------------------------------------------------------------------------- -# JSAPI binding -# ---------------------------------------------------------------------------- - -S_JSAPI_BINDING:= -D_JSAPI_BINDING:= - -JSAPI_BINDING_htmldocument := javascript/jsapi/htmldocument.bnd -JSAPI_BINDING_htmlelement := javascript/jsapi/htmlelement.bnd -JSAPI_BINDING_window := javascript/jsapi/window.bnd -JSAPI_BINDING_navigator := javascript/jsapi/navigator.bnd -JSAPI_BINDING_console := javascript/jsapi/console.bnd -JSAPI_BINDING_location := javascript/jsapi/location.bnd -JSAPI_BINDING_htmlcollection := javascript/jsapi/htmlcollection.bnd -JSAPI_BINDING_nodelist := javascript/jsapi/nodelist.bnd -JSAPI_BINDING_text := javascript/jsapi/text.bnd -JSAPI_BINDING_comment := javascript/jsapi/comment.bnd -JSAPI_BINDING_node := javascript/jsapi/node.bnd -JSAPI_BINDING_event := javascript/jsapi/event.bnd - -# 1: input binding file -# 2: source output file -# 3: header output file -# 4: binding name -define convert_jsapi_binding - -S_JSAPI_BINDING += $(2) -D_JSAPI_BINDING += $(patsubst %.c,%.d,$(2)) - -$(2): $(1) $(OBJROOT)/created - $$(VQ)echo " GENBIND: $(1)" - $(Q)nsgenbind -g -I javascript/WebIDL -d $(patsubst %.c,%.d,$(2)) -h $(3) -o $(2) $(1) - -$(3): $(2) - -endef - -# Javascript sources +# Check if jsapi is required ifeq ($(NETSURF_USE_JS),YES) WANT_JS_SOURCE := YES -endif - +else ifeq ($(NETSURF_USE_MOZJS),YES) WANT_JS_SOURCE := YES endif - -ifeq ($(WANT_JS_SOURCE),YES) - -S_JSAPI := - -S_JAVASCRIPT += content.c jsapi.c fetcher.c $(addprefix jsapi/,$(S_JSAPI)) - -$(eval $(foreach V,$(filter JSAPI_BINDING_%,$(.VARIABLES)),$(call convert_jsapi_binding,$($(V)),$(OBJROOT)/$(patsubst JSAPI_BINDING_%,%,$(V)).c,$(OBJROOT)/$(patsubst JSAPI_BINDING_%,%,$(V)).h,$(patsubst JSAPI_BINDING_%,%,$(V))_jsapi))) - -ifeq ($(filter $(MAKECMDGOALS),clean test coverage),) --include $(D_JSAPI_BINDING) endif +S_JAVASCRIPT_BINDING:= + +ifeq ($(WANT_JS_SOURCE),YES) +# JSAPI (spidemonkey) +include javascript/jsapi/Makefile else ifeq ($(NETSURF_USE_DUKTAPE),YES) - -javascript/dukky.c: $(OBJROOT)/duktape/binding.h - -BINDINGS := $(wildcard javascript/duktape/*.bnd) - -$(OBJROOT)/duktape/binding.h $(OBJROOT)/duktape/Makefile: javascript/duktape/netsurf.bnd $(BINDINGS) - $(Q)mkdir -p $(OBJROOT)/duktape - $(VQ)echo " GENBIND: $<" - $(Q)nsgenbind -D -I javascript/WebIDL $< $(OBJROOT)/duktape - -# create unimplemented report for doxygen -Docs/UnimplementedJavascript.txt: javascript/duktape/netsurf.bnd $(BINDINGS) - $(Q)mkdir -p $(OBJROOT)/duktape - $(VQ)echo "/** \page unimplemented Unimplemented javascript bindings" > $@ - $(VQ)echo "This is a list of all the binding methods, getters and setters without an implementation in a binding." >> $@ - $(VQ)echo "" >> $@ - $(VQ)echo " GENBIND: $<" - $(Q)nsgenbind -Wunimplemented -I javascript/WebIDL $< $(OBJROOT)/duktape 2>&1 >/dev/null | grep "Unimplemented" | cut -d' ' -f4- | sort -k 2 | awk '{print $$0"\\n" }' >> $@ - $(VQ)echo "*/" >> $@ - -ifeq ($(filter $(MAKECMDGOALS),clean test coverage),) --include $(OBJROOT)/duktape/Makefile -endif - -S_JSAPI_BINDING:=$(addprefix $(OBJROOT)/duktape/,$(NSGENBIND_SOURCES)) - -$(S_JSAPI_BINDING): $(BINDINGS) - -S_JAVASCRIPT += dukky.c content.c fetcher.c duktape/duktape.c - -CFLAGS += -DDUK_OPT_HAVE_CUSTOM_H +# Duktape +include javascript/duktape/Makefile else -S_JAVASCRIPT += none.c fetcher.c +# None +include javascript/none/Makefile endif endif -S_JAVASCRIPT := $(addprefix javascript/,$(S_JAVASCRIPT)) $(S_JSAPI_BINDING) +# Fetcher for javascript scheme is always required +S_JAVASCRIPT += fetcher.c + +S_JAVASCRIPT := $(addprefix javascript/,$(S_JAVASCRIPT)) $(S_JAVASCRIPT_BINDING) diff --git a/javascript/duktape/Makefile b/javascript/duktape/Makefile new file mode 100644 index 000000000..6f7019a7f --- /dev/null +++ b/javascript/duktape/Makefile @@ -0,0 +1,37 @@ +# +# NetSurf javascript source file inclusion +# +# Included by javascript/Makefile +# + +javascript/dukky.c: $(OBJROOT)/duktape/binding.h + +BINDINGS := $(wildcard javascript/duktape/*.bnd) + +$(OBJROOT)/duktape/binding.h $(OBJROOT)/duktape/Makefile: javascript/duktape/netsurf.bnd $(BINDINGS) + $(Q)mkdir -p $(OBJROOT)/duktape + $(VQ)echo " GENBIND: $<" + $(Q)nsgenbind -D -g -I javascript/WebIDL $< $(OBJROOT)/duktape + $(VQ)echo " GENBIND: completed" + +# create unimplemented report for doxygen +Docs/UnimplementedJavascript.txt: javascript/duktape/netsurf.bnd $(BINDINGS) + $(Q)mkdir -p $(OBJROOT)/duktape + $(VQ)echo "/** \page unimplemented Unimplemented javascript bindings" > $@ + $(VQ)echo "This is a list of all the binding methods, getters and setters without an implementation in a binding." >> $@ + $(VQ)echo "" >> $@ + $(VQ)echo " GENBIND: $<" + $(Q)nsgenbind -Wunimplemented -I javascript/WebIDL $< $(OBJROOT)/duktape 2>&1 >/dev/null | grep "Unimplemented" | cut -d' ' -f4- | sort -k 2 | awk '{print $$0"\\n" }' >> $@ + $(VQ)echo "*/" >> $@ + +ifeq ($(filter $(MAKECMDGOALS),clean test coverage),) +-include $(OBJROOT)/duktape/Makefile +endif + +S_JAVASCRIPT_BINDING:=$(addprefix $(OBJROOT)/duktape/,$(NSGENBIND_SOURCES)) + +$(S_JAVASCRIPT_BINDING): $(BINDINGS) + +S_JAVASCRIPT += content.c duktape/dukky.c duktape/duktape.c + +CFLAGS += -DDUK_OPT_HAVE_CUSTOM_H diff --git a/javascript/dukky.c b/javascript/duktape/dukky.c index 96f78b9a4..9e3608037 100644 --- a/javascript/dukky.c +++ b/javascript/duktape/dukky.c @@ -32,7 +32,7 @@ #include "duktape/binding.h" -#include "duktape/duktape.h" +#include "duktape.h" #include "dukky.h" #include <dom/dom.h> @@ -143,16 +143,16 @@ dukky_push_node_klass(duk_context *ctx, struct dom_node *node) { dom_node_type nodetype; dom_exception err; - + err = dom_node_get_node_type(node, &nodetype); if (err != DOM_NO_ERR) { /* Oh bum, just node then */ duk_push_string(ctx, PROTO_NAME(NODE)); return; } - + switch(nodetype) { - case DOM_ELEMENT_NODE: { + case DOM_ELEMENT_NODE: { dom_string *namespace, *tag; err = dom_node_get_namespace(node, &namespace); if (err != DOM_NO_ERR) { @@ -167,7 +167,7 @@ dukky_push_node_klass(duk_context *ctx, struct dom_node *node) duk_push_string(ctx, PROTO_NAME(ELEMENT)); break; } - + if (dom_string_isequal(namespace, corestring_dom_html_namespace) == false) { /* definitely not an HTML element of some kind */ duk_push_string(ctx, PROTO_NAME(ELEMENT)); @@ -175,13 +175,13 @@ dukky_push_node_klass(duk_context *ctx, struct dom_node *node) break; } dom_string_unref(namespace); - + err = dom_node_get_node_name(node, &tag); if (err != DOM_NO_ERR) { duk_push_string(ctx, PROTO_NAME(HTMLUNKNOWNELEMENT)); break; } - + duk_push_string(ctx, PROTO_NAME(HTML)); duk_push_lstring(ctx, dom_string_data(tag), dom_string_length(tag)); dom_string_unref(tag); @@ -190,23 +190,23 @@ dukky_push_node_klass(duk_context *ctx, struct dom_node *node) break; } - case DOM_TEXT_NODE: + case DOM_TEXT_NODE: duk_push_string(ctx, PROTO_NAME(TEXT)); break; - case DOM_COMMENT_NODE: + case DOM_COMMENT_NODE: duk_push_string(ctx, PROTO_NAME(COMMENT)); break; - case DOM_DOCUMENT_NODE: + case DOM_DOCUMENT_NODE: duk_push_string(ctx, PROTO_NAME(DOCUMENT)); break; - case DOM_ATTRIBUTE_NODE: - case DOM_PROCESSING_INSTRUCTION_NODE: + case DOM_ATTRIBUTE_NODE: + case DOM_PROCESSING_INSTRUCTION_NODE: case DOM_DOCUMENT_TYPE_NODE: - case DOM_DOCUMENT_FRAGMENT_NODE: - case DOM_NOTATION_NODE: + case DOM_DOCUMENT_FRAGMENT_NODE: + case DOM_NOTATION_NODE: case DOM_ENTITY_REFERENCE_NODE: - case DOM_ENTITY_NODE: - case DOM_CDATA_SECTION_NODE: + case DOM_ENTITY_NODE: + case DOM_CDATA_SECTION_NODE: default: /* Oh bum, just node then */ duk_push_string(ctx, PROTO_NAME(NODE)); @@ -342,11 +342,11 @@ jsobject *js_newcompartment(jscontext *ctx, void *win_priv, void *doc_priv) duk_push_global_object(CTX); duk_put_prop_string(CTX, -2, PROTO_MAGIC); duk_set_global_object(CTX); - + /* Now we need to prepare our node mapping table */ duk_push_object(CTX); duk_put_global_string(CTX, NODE_MAGIC); - + return (jsobject *)ctx; } diff --git a/javascript/dukky.h b/javascript/duktape/dukky.h index abe21ba35..abe21ba35 100644 --- a/javascript/dukky.h +++ b/javascript/duktape/dukky.h diff --git a/javascript/duktape/netsurf.bnd b/javascript/duktape/netsurf.bnd index 12292454c..c60b66752 100644 --- a/javascript/duktape/netsurf.bnd +++ b/javascript/duktape/netsurf.bnd @@ -47,7 +47,7 @@ struct dom_html_br_element; %}; prologue %{ -#include "javascript/dukky.h" +#include "javascript/duktape/dukky.h" %}; }; diff --git a/javascript/jsapi/Makefile b/javascript/jsapi/Makefile new file mode 100644 index 000000000..f684287ab --- /dev/null +++ b/javascript/jsapi/Makefile @@ -0,0 +1,53 @@ +# +# NetSurf javascript source file inclusion +# +# Included by javascript/Makefile +# + +# ---------------------------------------------------------------------------- +# JSAPI binding +# ---------------------------------------------------------------------------- + +D_JSAPI_BINDING:= + +JSAPI_BINDING_htmldocument := javascript/jsapi/htmldocument.bnd +JSAPI_BINDING_htmlelement := javascript/jsapi/htmlelement.bnd +JSAPI_BINDING_window := javascript/jsapi/window.bnd +JSAPI_BINDING_navigator := javascript/jsapi/navigator.bnd +JSAPI_BINDING_console := javascript/jsapi/console.bnd +JSAPI_BINDING_location := javascript/jsapi/location.bnd +JSAPI_BINDING_htmlcollection := javascript/jsapi/htmlcollection.bnd +JSAPI_BINDING_nodelist := javascript/jsapi/nodelist.bnd +JSAPI_BINDING_text := javascript/jsapi/text.bnd +JSAPI_BINDING_comment := javascript/jsapi/comment.bnd +JSAPI_BINDING_node := javascript/jsapi/node.bnd +JSAPI_BINDING_event := javascript/jsapi/event.bnd + +# 1: input binding file +# 2: source output file +# 3: header output file +# 4: binding name +define convert_jsapi_binding + +S_JAVASCRIPT_BINDING += $(2) +D_JSAPI_BINDING += $(patsubst %.c,%.d,$(2)) + +$(2): $(1) $(OBJROOT)/created + $$(VQ)echo " GENBIND: $(1)" + $(Q)nsgenbind -g -I javascript/WebIDL -d $(patsubst %.c,%.d,$(2)) -h $(3) -o $(2) $(1) + +$(3): $(2) + +endef + + +S_JSAPI := + +S_JAVASCRIPT += content.c jsapi/jsapi.c $(addprefix jsapi/,$(S_JSAPI)) + +$(eval $(foreach V,$(filter JSAPI_BINDING_%,$(.VARIABLES)),$(call convert_jsapi_binding,$($(V)),$(OBJROOT)/$(patsubst JSAPI_BINDING_%,%,$(V)).c,$(OBJROOT)/$(patsubst JSAPI_BINDING_%,%,$(V)).h,$(patsubst JSAPI_BINDING_%,%,$(V))_jsapi))) + +ifeq ($(filter $(MAKECMDGOALS),clean test coverage),) +-include $(D_JSAPI_BINDING) +endif + diff --git a/javascript/jsapi.c b/javascript/jsapi/jsapi.c index 8724d9be8..8724d9be8 100644 --- a/javascript/jsapi.c +++ b/javascript/jsapi/jsapi.c diff --git a/javascript/jsapi.h b/javascript/jsapi/jsapi.h index 7ca8351d6..7ca8351d6 100644 --- a/javascript/jsapi.h +++ b/javascript/jsapi/jsapi.h diff --git a/javascript/none/Makefile b/javascript/none/Makefile new file mode 100644 index 000000000..ec7826da4 --- /dev/null +++ b/javascript/none/Makefile @@ -0,0 +1,9 @@ +# +# NetSurf javascript source file inclusion +# +# Included by javascript/Makefile +# + +# no javascript interpreter + +S_JAVASCRIPT += none/none.c
\ No newline at end of file diff --git a/javascript/none.c b/javascript/none/none.c index 3ae1f4f54..3ae1f4f54 100644 --- a/javascript/none.c +++ b/javascript/none/none.c |