aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2016-08-19 13:16:45 +0100
committerMarcel Holtmann <marcel@holtmann.org>2016-08-19 23:19:10 +0200
commitc2431c607f16bd950e9bc8ee26ecf5d0d2c4e2be (patch)
tree69dd8a2cf8a8fac185d7126da5da92292f48d29b
parent51478c254cf3875c04a347572493e35735d2f632 (diff)
downloadpacrunner-c2431c607f16bd950e9bc8ee26ecf5d0d2c4e2be.tar.gz
build: Remove libstdc++ from non-V8 builds
Autohell will automatically use g++ for the final link if it sees any C++ sources, even if it isn't actually building them today. So... link plugins/v8.cc into its own intermediate library, so there *aren't* any C++ sources for src/pacrunner and it doesn't do that. Add -fno-exceptions to AM_CXXFLAGS, so that it doesn't actually *need* to link against libstdc++, even when V8 support is being built. Add -lm to the relevant LDADD variables when duktape is being built, because it needs trunc() from libm and was magically getting it before.
-rw-r--r--Makefile.am25
1 files changed, 16 insertions, 9 deletions
diff --git a/Makefile.am b/Makefile.am
index ec76db6..5564b0a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -19,6 +19,8 @@ builtin_sources =
builtin_cflags =
builtin_libadd =
+noinst_LIBRARIES =
+
if CURL
builtin_modules += curl
builtin_sources += plugins/curl.c
@@ -37,17 +39,24 @@ endif
if V8
js_sources = src/js_funcs.c
builtin_modules += v8
-builtin_sources += plugins/v8.cc
-builtin_libadd += @V8_LIBS@
+builtin_libadd += plugins/libv8plugin.a @V8_LIBS@
+
+# If we compile this into a v8.a library first, then autohell
+# won't use g++ to link pacrunner. And thus won't end up linking
+# against libstdc++ even in the builds where V8 is disabled.
+noinst_LIBRARIES += plugins/libv8plugin.a
+
+plugins_libv8plugin_a_SOURCES = plugins/v8.cc
+
endif
if DUKTAPE
js_sources = src/js_funcs.c
builtin_modules += duktape
builtin_sources += plugins/duktape.c
-builtin_libadd += duktape/libduktape.a
+builtin_libadd += duktape/libduktape.a -lm
-noinst_LIBRARIES = duktape/libduktape.a
+noinst_LIBRARIES += duktape/libduktape.a
duktape_libduktape_a_SOURCES = duktape/duk_config.h \
duktape/duktape.h \
@@ -142,15 +151,13 @@ unit_test_mozjs_LDADD = @MOZJS_LIBS@ @GLIB_LIBS@ @PTHREAD_LIBS@
endif
if V8
-unit_test_pacrunner_SOURCES += plugins/v8.cc
-
-unit_test_pacrunner_LDADD += @V8_LIBS@
+unit_test_pacrunner_LDADD += plugins/libv8plugin.a @V8_LIBS@
endif
if DUKTAPE
unit_test_pacrunner_SOURCES += plugins/duktape.c
-unit_test_pacrunner_LDADD += duktape/libduktape.a
+unit_test_pacrunner_LDADD += duktape/libduktape.a -lm
endif
endif #UNIT
@@ -160,7 +167,7 @@ AM_CFLAGS = @GLIB_CFLAGS@ @PTHREAD_LIBS@ @DBUS_CFLAGS@ \
-DPACRUNNER_PLUGIN_BUILTIN \
-DPLUGINDIR=\""$(plugindir)"\"
-AM_CXXFLAGS = $(AM_CFLAGS)
+AM_CXXFLAGS = $(AM_CFLAGS) -fno-exceptions
AM_CPPFLAGS = -I$(builddir)/src -I$(srcdir)/src -I$(srcdir)/gdbus