From 46860128db875408b9739d031c875ec233296ca7 Mon Sep 17 00:00:00 2001 From: Witold Filipczyk Date: Sun, 21 Aug 2022 21:33:13 +0200 Subject: [PATCH] [mujs] Added mujs to configure.ac and Makefiles --- Makefile.config.in | 3 ++ configure.ac | 55 +++++++++++++++++++++++++++++++++++- src/ecmascript/Makefile | 6 +++- src/ecmascript/ecmascript.h | 4 +++ src/ecmascript/mujs/Makefile | 9 ++++++ src/viewer/action.cpp | 2 +- 6 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 src/ecmascript/mujs/Makefile diff --git a/Makefile.config.in b/Makefile.config.in index 0c10c35e..bf01d782 100644 --- a/Makefile.config.in +++ b/Makefile.config.in @@ -77,6 +77,8 @@ LUA_CFLAGS = @LUA_CFLAGS@ LUA_LIBS = @LUA_LIBS@ MKINSTALLDIRS = $(PATHPREFIX)@MKINSTALLDIRS@ MSGFMT = @MSGFMT@ +MUJS_CFLAGS = @MUJS_CFLAGS@ +MUJS_LIBS = @MUJS_LIBS@ OPENSSL_CFLAGS = @OPENSSL_CFLAGS@ PACKAGE = @PACKAGE@ PERL_CFLAGS = @PERL_CFLAGS@ @@ -148,6 +150,7 @@ CONFIG_MANUAL = @CONFIG_MANUAL@ CONFIG_MARKS = @CONFIG_MARKS@ CONFIG_MIMETYPES = @CONFIG_MIMETYPES@ CONFIG_MOUSE = @CONFIG_MOUSE@ +CONFIG_MUJS = @CONFIG_MUJS@ CONFIG_NNTP = @CONFIG_NNTP@ CONFIG_NO_ROOT_EXEC = @CONFIG_NO_ROOT_EXEC@ CONFIG_OPENSSL = @CONFIG_OPENSSL@ diff --git a/configure.ac b/configure.ac index e5760a3f..4ead0824 100644 --- a/configure.ac +++ b/configure.ac @@ -637,6 +637,50 @@ if test "$CONFIG_OS_WIN32" = yes; then EL_CONFIG_OS_WIN32 fi +# =================================================================== +# Check for MuJS +# =================================================================== + +AC_ARG_WITH([mujs], + [AS_HELP_STRING([--with-mujs], + [enable MuJS engine])]) + +CONFIG_MUJS= + +case "$with_mujs" in + "" | no) + # The user specified --without-mujs. + AC_MSG_CHECKING([for MuJS]) + AC_MSG_RESULT([disabled]) + CONFIG_MUJS="no" + ;; + yes) + ;; + *) + ;; +esac + +if test "x$CONFIG_MUJS" = x; then + AC_MSG_CHECKING([for MuJS in pkg-config]) + if $PKG_CONFIG $pkg_config_static --cflags --libs mujs > /dev/null 2>&AS_MESSAGE_LOG_FD; then + DB_LOCALSTORAGE_LIBS="$($PKG_CONFIG $pkg_config_static --libs sqlite3)" + XMLPLUSPLUS_LIBS="$($PKG_CONFIG $pkg_config_static --libs libxml++-5.0)" + MUJS_LIBS="$($PKG_CONFIG $pkg_config_static --libs mujs) $DB_LOCALSTORAGE_LIBS $XMLPLUSPLUS_LIBS" + DB_LOCALSTORAGE_CFLAGS="$($PKG_CONFIG $pkg_config_static --cflags sqlite3)" + XMLPLUSPLUS_CFLAGS="$($PKG_CONFIG $pkg_config_static --cflags libxml++-5.0)" + MUJS_CFLAGS="$($PKG_CONFIG $pkg_config_static --cflags mujs) $DB_LOCALSTORAGE_CFLAGS $XMLPLUSPLUS_CFLAGS" + + LIBS="$LIBS $MUJS_LIBS $LIBS_X" + CPPFLAGS="$CPPFLAGS_X $MUJS_CFLAGS" + CFLAGS="$CFLAGS $MUJS_CFLAGS" + CONFIG_MUJS=yes + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +fi + + # =================================================================== # Check for QuickJS # =================================================================== @@ -777,7 +821,7 @@ else CONFIG_ECMASCRIPT_SMJS=no fi -EL_CONFIG_DEPENDS(CONFIG_ECMASCRIPT, [CONFIG_ECMASCRIPT_SMJS CONFIG_QUICKJS CONFIG_SCRIPTING_SPIDERMONKEY], [ECMAScript (JavaScript)]) +EL_CONFIG_DEPENDS(CONFIG_ECMASCRIPT, [CONFIG_ECMASCRIPT_SMJS CONFIG_MUJS CONFIG_QUICKJS CONFIG_SCRIPTING_SPIDERMONKEY], [ECMAScript (JavaScript)]) AC_SUBST(CONFIG_ECMASCRIPT_SMJS) if test "x$CONFIG_ECMASCRIPT_SMJS" = xyes && @@ -807,6 +851,15 @@ if test "x$CONFIG_ECMASCRIPT_SMJS" = xyes || CXXFLAGS="$CXXFLAGS $SPIDERMONKEY_CFLAGS" fi +if test "x$CONFIG_MUJS" = xyes; then + EL_CONFIG(CONFIG_XML, [libxml++5.0]) + EL_CONFIG(CONFIG_MUJS, [mujs]) + AC_SUBST(MUJS_LIBS) + AC_SUBST(MUJS_CFLAGS) + AC_SUBST(CONFIG_MUJS) + AC_SUBST(CONFIG_XML) +fi + if test "x$CONFIG_QUICKJS" = xyes; then EL_CONFIG(CONFIG_XML, [libxml++5.0]) EL_CONFIG(CONFIG_QUICKJS, [quickjs]) diff --git a/src/ecmascript/Makefile b/src/ecmascript/Makefile index d5d21309..b00a0ed3 100644 --- a/src/ecmascript/Makefile +++ b/src/ecmascript/Makefile @@ -1,13 +1,17 @@ top_builddir=../.. include $(top_builddir)/Makefile.config -INCLUDES += $(SPIDERMONKEY_CFLAGS) +INCLUDES += $(SPIDERMONKEY_CFLAGS) $(MUJS_CFLAGS) SUBDIRS-$(CONFIG_ECMASCRIPT_SMJS) += spidermonkey +SUBDIRS-$(CONFIG_MUJS) += mujs + SUBDIRS-$(CONFIG_QUICKJS) += quickjs OBJS-$(CONFIG_ECMASCRIPT_SMJS) += css2xpath.obj ecmascript.obj localstorage-db.obj spidermonkey.obj +OBJS-$(CONFIG_MUJS) += css2xpath.obj ecmascript.obj localstorage-db.obj mujs.obj + OBJS-$(CONFIG_QUICKJS) += css2xpath.obj ecmascript.obj localstorage-db.obj quickjs.obj ifeq ($(CONFIG_ECMASCRIPT_SMJS), yes) diff --git a/src/ecmascript/ecmascript.h b/src/ecmascript/ecmascript.h index 6c0e2230..3a8e6196 100644 --- a/src/ecmascript/ecmascript.h +++ b/src/ecmascript/ecmascript.h @@ -17,6 +17,10 @@ #include #endif +#ifdef CONFIG_MUJS +#include +#endif + #ifdef CONFIG_ECMASCRIPT #include "main/module.h" diff --git a/src/ecmascript/mujs/Makefile b/src/ecmascript/mujs/Makefile new file mode 100644 index 00000000..736b9a32 --- /dev/null +++ b/src/ecmascript/mujs/Makefile @@ -0,0 +1,9 @@ +top_builddir=../../.. +include $(top_builddir)/Makefile.config +INCLUDES += $(MUJS_CFLAGS) + +OBJS = attr.obj attributes.obj collection.obj console.obj document.obj element.obj form.obj \ + forms.obj history.obj implementation.obj input.obj location.obj \ + localstorage.obj navigator.obj nodelist.obj screen.obj unibar.obj window.obj + +include $(top_srcdir)/Makefile.lib diff --git a/src/viewer/action.cpp b/src/viewer/action.cpp index bdaa9eff..9d9ea00a 100644 --- a/src/viewer/action.cpp +++ b/src/viewer/action.cpp @@ -672,7 +672,7 @@ do_action(struct session *ses, main_action_T action_id, int verbose) break; case ACT_MAIN_TOGGLE_ECMASCRIPT: -#if defined(CONFIG_ECMASCRIPT_SMJS) || defined(CONFIG_QUICKJS) || defined(CONFIG_QUICKJS) +#if defined(CONFIG_ECMASCRIPT_SMJS) || defined(CONFIG_QUICKJS) || defined(CONFIG_MUJS) toggle_ecmascript(ses); #endif break;