From 9eedff8ea6d2adcb9dc5dce2a7a4a30d8deb0151 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Thu, 28 Sep 2017 16:58:34 +0100 Subject: [PATCH 1/3] Windows: Simplify compiling versioninfo.rc by using libtool facilities libtool has built-in support for Windows resources, and we even enable it in configure.ac. What it doesn't have is a built-in rule for generating Libtool objects using that built-in support, but we can add one. We have to generate Libtool pseudo-objects (.lo) rather than native object files (.o) so that we get both a PIC object for the shared library and a non-PIC object for the static library. This mimics the libtool invocations used for compiling C and C++. Note that $(RC) is typically i686-w64-mingw32-windres, the same as our project-specific variable $(WINDRES) which was previously used here. Signed-off-by: Simon McVittie Bug: https://bugs.freedesktop.org/show_bug.cgi?id=103015 --- dbus/Makefile.am | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/dbus/Makefile.am b/dbus/Makefile.am index 73587f3d..cbe4539e 100644 --- a/dbus/Makefile.am +++ b/dbus/Makefile.am @@ -44,21 +44,8 @@ if DBUS_WIN SUFFIXES = .rc -.rc.o: - $(WINDRES) $< -o $@ - -# We can't just put versioninfo.rc in SOURCES and let Automake infer -# how to make versioninfo.o, because libtool wants libtool objects (.lo), -# not plain COFF objects (.o). Add it to the linker command explicitly -# instead. -dbus_res = versioninfo.o -EXTRA_libdbus_1_la_DEPENDENCIES = $(dbus_res) -dbus_res_ldflag = -Wl,$(dbus_res) - -else - -dbus_res = -dbus_res_ldflag = +.rc.lo: + $(LIBTOOL) $(AM_V_lt) --tag=RC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(RC) $< -o $@ endif @@ -69,7 +56,9 @@ endif if DBUS_WIN DBUS_LIB_arch_sources = \ dbus-server-win.c \ - dbus-server-win.h + dbus-server-win.h \ + versioninfo.rc \ + $(NULL) if DBUS_WINCE wince_source = dbus-sysdeps-wince-glue.h dbus-sysdeps-wince-glue.c @@ -303,7 +292,6 @@ libdbus_1_la_LDFLAGS = \ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ $(SYMBOL_EXPORT_LDFLAGS) \ -no-undefined \ - $(dbus_res_ldflag) \ $(NULL) libdbus_internal_la_LIBADD=$(LIBDBUS_LIBS) libdbus-1.la -- 2.14.2