-config DUKTAPE
+menuconfig DUKTAPE
bool "Duktape - an embeddable Javascript engine"
default n
select LIBNEWLIBC
+
+if DUKTAPE
+config DUKTAPE_MAIN_FUNCTION
+ bool "Provide main function"
+ default y
+endif
CINCLUDES-$(CONFIG_DUKTAPE) += -I$(DUKTAPE_EXTRACTED)/duktape-src
CXXINCLUDES-$(CONFIG_DUKTAPE) += -I$(DUKTAPE_EXTRACTED)/duktape-src
+################################################################################
+# Library flags
+################################################################################
+DUKTAPE_CFLAGS-y += -Wno-unused-function
+DUKTAPE_CXXFLAGS-y += -Wno-unused-function
+
################################################################################
# Sources
################################################################################
+DUKTAPE_DUK_CMDLINE_FLAGS-y += -Dmain=duktape_main
+DUKTAPE_SRCS-$(CONFIG_DUKTAPE_MAIN_FUNCTION) += $(DUKTAPE_BASE)/glue.c
DUKTAPE_SRCS-y += $(DUKTAPE_GENERATED)/duktape.c
DUKTAPE_SRCS-y += $(DUKTAPE_EXTRACTED)/examples/cmdline/duk_cmdline.c
--- /dev/null
+#include <stdio.h>
+
+/* Import user configuration: */
+#include <uk/config.h>
+
+extern int duktape_main(int argc, char *argv[]);
+
+int main(int argc, char *argv[])
+{
+ return duktape_main(argc, argv);
+}
--- /dev/null
+--- a/examples/cmdline/duk_cmdline.c 2020-02-12 14:43:19.599772761 +0100
++++ b/examples/cmdline/duk_cmdline.c 2020-02-12 14:41:23.393106690 +0100
+@@ -1265,7 +1265,7 @@
+ int retval = 0;
+ int have_files = 0;
+ int have_eval = 0;
+- int interactive = 0;
++ int interactive = 1;
+ int memlimit_high = 1;
+ int alloc_provider = ALLOC_DEFAULT;
+ int lowmem_log = 0;
+@@ -1456,6 +1456,7 @@
+ continue;
+ }
+
++ /*
+ if (verbose) {
+ fprintf(stderr, "*** Executing file: %s\n", arg);
+ fflush(stderr);
+@@ -1465,7 +1466,7 @@
+ retval = 1;
+ goto cleanup;
+ }
+-
++ */
+ if (recreate_heap) {
+ if (verbose) {
+ fprintf(stderr, "*** Recreating heap...\n");
+++ /dev/null
---- a/examples/cmdline/duk_cmdline.c 2019-09-09 08:23:15.891284704 +0200
-+++ b/examples/cmdline/duk_cmdline.c 2019-09-09 08:22:57.783472251 +0200
-@@ -1260,7 +1260,7 @@
- * Main
- */
-
--int main(int argc, char *argv[]) {
-+int duktape_main(int argc, char *argv[]) {
- duk_context *ctx = NULL;
- int retval = 0;
- int have_files = 0;