From 7e3c4b6648314a6f0cc79d9818540c0479fb8815 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= <funman@videolan.org>
Date: Thu, 1 Aug 2013 17:02:52 +0200
Subject: [PATCH] Version all plugins when building for Windows

Refs #9108
---
 modules/Makefile.am                   |  7 +++++-
 modules/access/Modules.am             | 36 ++++++++++++++++++++++++++-
 modules/access/rtp/Makefile.am        |  3 +++
 modules/access_output/Modules.am      |  3 +++
 modules/audio_filter/Modules.am       |  6 +++++
 modules/audio_mixer/Makefile.am       |  6 +++++
 modules/audio_output/Modules.am       | 15 +++++++++++
 modules/codec/Modules.am              | 10 ++++++++
 modules/common.am                     | 10 ++++++++
 modules/control/Modules.am            |  1 +
 modules/demux/Modules.am              | 30 ++++++++++++++++++++++
 modules/genmf                         |  3 +++
 modules/gui/qt4/Makefile.am           |  1 +
 modules/misc/Modules.am               | 10 ++++++++
 modules/mmx/Makefile.am               |  9 +++++++
 modules/module.rc.in                  | 27 ++++++++++++++++++++
 modules/mux/Modules.am                |  6 +++++
 modules/services_discovery/Modules.am |  4 +++
 modules/sse2/Makefile.am              |  9 +++++++
 modules/stream_filter/Makefile.am     | 12 +++++++++
 modules/stream_out/Modules.am         | 10 ++++++++
 modules/video_chroma/Modules.am       |  6 +++++
 modules/video_filter/Modules.am       |  9 +++++++
 modules/video_output/Modules.am       | 33 ++++++++++++++++++++++++
 modules/video_splitter/Makefile.am    |  7 ++++++
 modules/visualization/Modules.am      |  3 +++
 26 files changed, 274 insertions(+), 2 deletions(-)
 create mode 100644 modules/module.rc.in

diff --git a/modules/Makefile.am b/modules/Makefile.am
index fe609a8cebc7..e622ecb9d492 100644
--- a/modules/Makefile.am
+++ b/modules/Makefile.am
@@ -57,5 +57,10 @@ SUBDIRS += lua
 endif
 SUBDIRS += .
 
-dist_noinst_SCRIPTS = genmf list.sh
+dist_noinst_SCRIPTS = genmf list.sh module.rc.in
 dist_noinst_DATA = LIST
+
+if HAVE_WIN32
+module.rc: $(top_builddir)/modules/module.rc.in $(top_builddir)/config.status
+	$(AM_V_GEN) cd "$(top_builddir)" && $(SHELL) ./config.status --file="modules/$@"
+endif
diff --git a/modules/access/Modules.am b/modules/access/Modules.am
index 35a49b956de1..8f339f802ef1 100644
--- a/modules/access/Modules.am
+++ b/modules/access/Modules.am
@@ -10,23 +10,34 @@ libfilesystem_plugin_la_CFLAGS = $(AM_CFLAGS)
 libfilesystem_plugin_la_LIBADD = $(AM_LIBADD)
 if HAVE_WIN32
 libfilesystem_plugin_la_LIBADD += -lshlwapi
+libfilesystem_plugin_la_DEPENDENCIES = libfilesystem_plugin.rc.o
 endif
 
 libidummy_plugin_la_SOURCES = idummy.c
 libidummy_plugin_la_CFLAGS = $(AM_CFLAGS)
 libidummy_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libidummy_plugin_la_DEPENDENCIES = libidummy_plugin.rc.o
+endif
 
 libsdp_plugin_la_SOURCES = sdp.c
 libsdp_plugin_la_CFLAGS = $(AM_CFLAGS)
 libsdp_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libsdp_plugin_la_DEPENDENCIES = libsdp_plugin.rc.o
+endif
 
 libtimecode_plugin_la_SOURCES = timecode.c
 libtimecode_plugin_la_CFLAGS = $(AM_CFLAGS)
 libtimecode_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libtimecode_plugin_la_DEPENDENCIES = libtimecode_plugin.rc.o
+endif
 
 libzip_plugin_la_SOURCES = zip/zip.h zip/zipstream.c zip/zipaccess.c
 libzip_plugin_la_CFLAGS = $(AM_CFLAGS) $(MINIZIP_CFLAGS)
 libzip_plugin_la_LIBADD = $(AM_LIBADD) $(MINIZIP_LIBS)
+libzip_plugin_la_DEPENDENCIES = 
 if HAVE_ZLIB
 libvlc_LTLIBRARIES += libzip_plugin.la
 if !HAVE_MINIZIP
@@ -37,6 +48,10 @@ libunzip_la_LDFLAGS = -static
 noinst_LTLIBRARIES += libunzip.la
 libzip_plugin_la_CFLAGS += -I$(srcdir)/zip/unzip
 libzip_plugin_la_LIBADD += libunzip.la
+libzip_plugin_la_DEPENDENCIES += libunzip.la
+endif
+if HAVE_WIN32
+libzip_plugin_la_DEPENDENCIES += libzip_plugin.rc.o
 endif
 endif
 
@@ -67,6 +82,9 @@ libdecklink_plugin_la_SOURCES = decklink.cpp
 libdecklink_plugin_la_CXXFLAGS = $(AM_CFLAGS) $(CPPFLAGS_decklink)
 libdecklink_plugin_la_LIBADD = $(AM_LIBADD) $(LIBS_decklink) -ldl
 libvlc_LTLIBRARIES += libdecklink_plugin.la
+if HAVE_WIN32
+libdecklink_plugin_la_DEPENDENCIES = libdecklink_plugin.rc.o
+endif
 endif
 
 if HAVE_QTKIT
@@ -143,6 +161,9 @@ endif
 libshm_plugin_la_SOURCES = shm.c
 libshm_plugin_la_CFLAGS = $(AM_CFLAGS)
 libshm_plugin_la_LIBADD = $(AM_LIBADD) $(LIBM)
+if HAVE_WIN32
+libshm_plugin_la_DEPENDENCIES = libshm_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += libshm_plugin.la
 
 libv4l2_plugin_la_SOURCES = \
@@ -171,6 +192,7 @@ libdshow_plugin_la_CXXFLAGS = $(AM_CXXFLAGS)
 libdshow_plugin_la_LIBADD = $(AM_LIBADD) -lole32 -loleaut32 -luuid -lstrmiids -lksuser
 if HAVE_WIN32
 libvlc_LTLIBRARIES += libdshow_plugin.la
+libdshow_plugin_la_DEPENDENCIES = libdshow_plugin.rc.o
 endif
 
 
@@ -193,6 +215,7 @@ libscreen_plugin_la_SOURCES += screen/win32.c
 libscreen_plugin_la_LDFLAGS = $(AM_LDFLAGS)
 libscreen_plugin_la_LIBADD += -lgdi32
 libvlc_LTLIBRARIES += libscreen_plugin.la
+libscreen_plugin_la_DEPENDENCIES = libscreen_plugin.rc.o
 endif
 if HAVE_MAC_SCREEN
 libscreen_plugin_la_SOURCES += screen/mac.c
@@ -232,6 +255,9 @@ libaccess_bd_plugin_la_SOURCES = bd/bd.c bd/mpls.c bd/mpls.h bd/clpi.c bd/clpi.h
 libaccess_bd_plugin_la_CFLAGS = $(AM_CFLAGS)
 libaccess_bd_plugin_la_LIBADD = $(AM_LIBADD)
 libvlc_LTLIBRARIES += libaccess_bd_plugin.la
+if HAVE_WIN32
+libaccess_bd_plugin_la_DEPENDENCIES = libaccess_bd_plugin.rc.o
+endif
 
 
 ### Digital TV ###
@@ -262,7 +288,7 @@ libbda_la_LDFLAGS = -static
 libbda_la_LIBADD = -lstrmiids -lole32 -loleaut32 -luuid
 noinst_LTLIBRARIES += libbda.la
 
-libdtv_plugin_la_DEPENDENCIES = libbda.la
+libdtv_plugin_la_DEPENDENCIES = libbda.la libdtv_plugin.rc.o
 libdtv_plugin_la_LIBADD += libbda.la -lstdc++
 libvlc_LTLIBRARIES += libdtv_plugin.la
 endif
@@ -291,6 +317,7 @@ libaccess_smb_plugin_la_CFLAGS = $(AM_CFLAGS) $(SMBCLIENT_CFLAGS)
 libaccess_smb_plugin_la_LIBADD = $(AM_LIBADD) $(SMBCLIENT_LIBS)
 if HAVE_WIN32
 libaccess_smb_plugin_la_LIBADD += -lmpr
+libaccess_smb_plugin_la_DEPENDENCIES = libaccess_smb_plugin.rc.o
 endif
 libvlc_LTLIBRARIES += $(LTLIBaccess_smb)
 EXTRA_LTLIBRARIES += libaccess_smb_plugin.la
@@ -312,6 +339,10 @@ libaccess_mms_plugin_la_SOURCES = \
 libaccess_mms_plugin_la_CFLAGS = $(AM_CFLAGS)
 libaccess_mms_plugin_la_LIBADD = $(AM_LIBADD) $(SOCKET_LIBS)
 libvlc_LTLIBRARIES += libaccess_mms_plugin.la
+if HAVE_WIN32
+libaccess_mms_plugin_la_DEPENDENCIES = libaccess_mms_plugin.rc.o
+endif
+
 
 libaccess_realrtsp_plugin_la_SOURCES = \
 	rtsp/access.c \
@@ -322,5 +353,8 @@ libaccess_realrtsp_plugin_la_SOURCES = \
 	rtsp/real_asmrp.c
 libaccess_realrtsp_plugin_la_CFLAGS = $(AM_CFLAGS)
 libaccess_realrtsp_plugin_la_LIBADD = $(AM_LIBADD) $(SOCKET_LIBS)
+if HAVE_WIN32
+libaccess_realrtsp_plugin_la_DEPENDENCIES = libaccess_realrtsp_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += $(LTLIBaccess_realrtsp)
 EXTRA_LTLIBRARIES += libaccess_realrtsp_plugin.la
diff --git a/modules/access/rtp/Makefile.am b/modules/access/rtp/Makefile.am
index 7cdcae6cbad3..49fdb9648ee4 100644
--- a/modules/access/rtp/Makefile.am
+++ b/modules/access/rtp/Makefile.am
@@ -33,6 +33,9 @@ TESTS = $(check_PROGRAMS)
 librtp_plugin_la_CFLAGS += -DHAVE_SRTP $(GCRYPT_CFLAGS)
 librtp_plugin_la_LIBADD += libvlc_srtp.la $(GCRYPT_LIBS)
 librtp_plugin_la_DEPENDENCIES = libvlc_srtp.la
+if HAVE_WIN32
+librtp_plugin_la_DEPENDENCIES += librtp_plugin.rc.o
+endif
 endif
 
 lcov-run:
diff --git a/modules/access_output/Modules.am b/modules/access_output/Modules.am
index eb7f1508915d..a03e248b83e6 100644
--- a/modules/access_output/Modules.am
+++ b/modules/access_output/Modules.am
@@ -15,5 +15,8 @@ if HAVE_GCRYPT
 libaccess_output_livehttp_plugin_la_SOURCES = livehttp.c
 libaccess_output_livehttp_plugin_la_CFLAGS = $(AM_CFLAGS) $(GCRYPT_CFLAGS)
 libaccess_output_livehttp_plugin_la_LIBADD = $(AM_LIBADD) $(GCRYPT_LIBS) -lgpg-error
+if HAVE_WIN32
+libaccess_output_livehttp_plugin_la_DEPENDENCIES = libaccess_output_livehttp_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += libaccess_output_livehttp_plugin.la
 endif
diff --git a/modules/audio_filter/Modules.am b/modules/audio_filter/Modules.am
index 4963a39c1a87..d3454e9559e8 100644
--- a/modules/audio_filter/Modules.am
+++ b/modules/audio_filter/Modules.am
@@ -54,6 +54,9 @@ SOURCES_mpgatofixed32 = converter/mpgatofixed32.c
 libaudio_format_plugin_la_SOURCES = converter/format.c
 libaudio_format_plugin_la_CFLAGS = $(AM_CFLAGS)
 libaudio_format_plugin_la_LIBADD = $(AM_LIBADD) $(LIBM)
+if HAVE_WIN32
+libaudio_format_plugin_la_DEPENDENCIES = libaudio_format_plugin.rc.o
+endif
 
 libvlc_LTLIBRARIES += \
 	liba52tospdif_plugin.la \
@@ -74,6 +77,9 @@ EXTRA_LTLIBRARIES += \
 libspeex_resampler_plugin_la_SOURCES = resampler/speex.c
 libspeex_resampler_plugin_la_CFLAGS = $(AM_CFLAGS) $(SPEEXDSP_CFLAGS)
 libspeex_resampler_plugin_la_LIBADD = $(AM_LIBADD) $(SPEEXDSP_LIBS)
+if HAVE_WIN32
+libspeex_resampler_plugin_la_DEPENDENCIES = libspeex_resampler_plugin.rc.o
+endif
 if HAVE_SPEEXDSP
 libvlc_LTLIBRARIES += libspeex_resampler_plugin.la
 endif
diff --git a/modules/audio_mixer/Makefile.am b/modules/audio_mixer/Makefile.am
index 2adfdb46133a..b2061ee8c04e 100644
--- a/modules/audio_mixer/Makefile.am
+++ b/modules/audio_mixer/Makefile.am
@@ -4,10 +4,16 @@ include $(top_srcdir)/modules/common.am
 libfloat_mixer_plugin_la_SOURCES = float.c
 libfloat_mixer_plugin_la_CFLAGS = $(AM_CFLAGS)
 libfloat_mixer_plugin_la_LIBADD = $(AM_LIBADD) $(LIBM)
+if HAVE_WIN32
+libfloat_mixer_plugin_la_DEPENDENCIES = libfloat_mixer_plugin.rc.o
+endif
 
 libinteger_mixer_plugin_la_SOURCES = integer.c
 libinteger_mixer_plugin_la_CFLAGS = $(AM_CFLAGS)
 libinteger_mixer_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libinteger_mixer_plugin_la_DEPENDENCIES = libinteger_mixer_plugin.rc.o
+endif
 
 libvlc_LTLIBRARIES = \
 	libfloat_mixer_plugin.la \
diff --git a/modules/audio_output/Modules.am b/modules/audio_output/Modules.am
index eb0bdc6760a3..5c04aaae7492 100644
--- a/modules/audio_output/Modules.am
+++ b/modules/audio_output/Modules.am
@@ -18,14 +18,23 @@ endif
 libadummy_plugin_la_SOURCES = adummy.c
 libadummy_plugin_la_CFLAGS = $(AM_CFLAGS)
 libadummy_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libadummy_plugin_la_DEPENDENCIES = libadummy_plugin.rc.o
+endif
 
 libafile_plugin_la_SOURCES = file.c
 libafile_plugin_la_CFLAGS = $(AM_CFLAGS)
 libafile_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libafile_plugin_la_DEPENDENCIES = libafile_plugin.rc.o
+endif
 
 libamem_plugin_la_SOURCES = amem.c
 libamem_plugin_la_CFLAGS = $(AM_CFLAGS)
 libamem_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libamem_plugin_la_DEPENDENCIES = libamem_plugin.rc.o
+endif
 
 libvlc_LTLIBRARIES += \
 	libadummy_plugin.la \
@@ -62,6 +71,9 @@ libvlc_LTLIBRARIES += $(LTLIBjack)
 libmmdevice_plugin_la_SOURCES = mmdevice.c mmdevice.h wasapi.c
 libmmdevice_plugin_la_CFLAGS = $(AM_CFLAGS)
 libmmdevice_plugin_la_LIBADD = $(AM_LIBADD) -lole32 -lksuser
+if HAVE_WIN32
+libmmdevice_plugin_la_DEPENDENCIES = libmmdevice_plugin.rc.o
+endif
 if HAVE_WASAPI
 libvlc_LTLIBRARIES += libmmdevice_plugin.la
 endif
@@ -69,6 +81,9 @@ endif
 libdirectsound_plugin_la_SOURCES = directx.c windows_audio_common.h
 libdirectsound_plugin_la_CFLAGS = $(AM_CFLAGS)
 libdirectsound_plugin_la_LIBADD = $(AM_LIBADD) -lole32
+if HAVE_WIN32
+libdirectsound_plugin_la_DEPENDENCIES = libdirectsound_plugin.rc.o
+endif
 if HAVE_DIRECTX
 libvlc_LTLIBRARIES += libdirectsound_plugin.la
 endif
diff --git a/modules/codec/Modules.am b/modules/codec/Modules.am
index 1a5999bd3fd5..dff5bf387dae 100644
--- a/modules/codec/Modules.am
+++ b/modules/codec/Modules.am
@@ -109,6 +109,9 @@ endif
 libavcodec_plugin_la_CFLAGS = $(AM_CFLAGS) $(CFLAGS_avcodec)
 libavcodec_plugin_la_LIBADD = $(AM_LIBADD) $(LIBS_avcodec)
 libavcodec_plugin_la_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_avcodec)
+if HAVE_WIN32
+libavcodec_plugin_la_DEPENDENCIES = libavcodec_plugin.rc.o
+endif
 
 if MERGE_FFMPEG
 libavcodec_plugin_la_SOURCES += \
@@ -145,6 +148,7 @@ libdxva2_plugin_la_LIBADD = $(AM_LIBADD) -lole32 -lshlwapi -luuid
 if HAVE_AVCODEC_DXVA2
 libvlc_LTLIBRARIES += libdxva2_plugin.la
 endif
+libdxva2_plugin_la_DEPENDENCIES = libdxva2_plugin.rc.o
 
 libvda_plugin_la_SOURCES = \
 	avcodec/copy.c avcodec/copy.h \
@@ -163,11 +167,17 @@ libhwdummy_plugin_la_LDFLAGS = $(AM_LDFLAGS) $(LDFLAGS_avcodec)
 if HAVE_AVCODEC_VDPAU
 libvlc_LTLIBRARIES += libhwdummy_plugin.la
 endif
+if HAVE_WIN32
+libhwdummy_plugin_la_DEPENDENCIES = libhwdummy_plugin.rc.o
+endif
 
 ### XWD ###
 libxwd_plugin_la_SOURCES = xwd.c
 libxwd_plugin_la_CFLAGS = $(AM_CFLAGS) $(XPROTO_CFLAGS)
 libxwd_plugin_la_LIBADD = $(AM_LIBADD) $(XPROTO_LIBS)
+if HAVE_WIN32
+libxwd_plugin_la_DEPENDENCIES = libxwd_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += $(LTLIBxwd)
 EXTRA_LTLIBRARIES += libxwd_plugin.la
 
diff --git a/modules/common.am b/modules/common.am
index 4899988baa54..e525479745c8 100644
--- a/modules/common.am
+++ b/modules/common.am
@@ -33,3 +33,13 @@ AM_LDFLAGS = -rpath '$(libvlcdir)' \
 	-shrext $(LIBEXT) \
 	-no-undefined \
 	$(LTLIBVLCCORE) $(top_builddir)/compat/libcompat.la
+
+if HAVE_WIN32
+AM_LDFLAGS += -Wl,lib$(MODULE_NAME)_plugin.rc.$(OBJEXT)
+
+$(top_builddir)/modules/module.rc: $(top_builddir)/modules/module.rc.in $(top_builddir)/config.status
+	$(AM_V_GEN) cd "$(top_builddir)" && $(SHELL) ./config.status --file="modules/module.rc"
+
+lib%_plugin.rc.$(OBJEXT): $(top_builddir)/modules/module.rc
+	$(AM_V_GEN) $(WINDRES) -DMODULE_NAME=\\\"$(MODULE_NAME)\\\" --include-dir $(top_srcdir)/share --include-dir $(top_srcdir)/extras/package/win32 -i $< -o $@
+endif
diff --git a/modules/control/Modules.am b/modules/control/Modules.am
index 90e79474912f..30549d883ee8 100644
--- a/modules/control/Modules.am
+++ b/modules/control/Modules.am
@@ -48,6 +48,7 @@ else
 libglobalhotkeys_plugin_la_SOURCES = globalhotkeys/win32.c
 libglobalhotkeys_plugin_la_CFLAGS = $(AM_CFLAGS)
 libglobalhotkeys_plugin_la_LIBADD = $(AM_LIBADD)
+libglobalhotkeys_plugin_la_DEPENDENCIES = libglobalhotkeys_plugin.rc.o
 
 libvlc_LTLIBRARIES += \
 	libglobalhotkeys_plugin.la \
diff --git a/modules/demux/Modules.am b/modules/demux/Modules.am
index c885e4d4be89..fc6c714de22a 100644
--- a/modules/demux/Modules.am
+++ b/modules/demux/Modules.am
@@ -34,10 +34,16 @@ SOURCES_demux_stl = stl.c
 libasf_plugin_la_SOURCES = asf/asf.c asf/libasf.c asf/libasf.h asf/libasf_guid.h
 libasf_plugin_la_CFLAGS = $(AM_CFLAGS)
 libasf_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libasf_plugin_la_DEPENDENCIES = libasf_plugin.rc.o
+endif
 
 libavi_plugin_la_SOURCES = avi/avi.c avi/libavi.c avi/libavi.h
 libavi_plugin_la_CFLAGS = $(AM_CFLAGS)
 libavi_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libavi_plugin_la_DEPENDENCIES = libavi_plugin.rc.o
+endif
 
 libavformat_plugin_la_SOURCES = avformat/demux.c \
 	../codec/avcodec/fourcc.c \
@@ -60,6 +66,9 @@ endif
 if HAVE_DARWIN
 libavformat_plugin_la_LDFLAGS += -Wl,-read_only_relocs,suppress
 endif
+if HAVE_WIN32
+libavformat_plugin_la_DEPENDENCIES = libavformat_plugin.rc.o
+endif
 
 libvlc_LTLIBRARIES += $(LTLIBavformat)
 EXTRA_LTLIBRARIES += libavformat_plugin.la
@@ -67,10 +76,16 @@ EXTRA_LTLIBRARIES += libavformat_plugin.la
 libes_plugin_la_SOURCES  = mpeg/es.c ../codec/dts_header.c ../codec/dts_header.h ../codec/a52.h
 libes_plugin_la_CFLAGS = $(AM_CFLAGS)
 libes_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libes_plugin_la_DEPENDENCIES = libes_plugin.rc.o
+endif
 
 libh264_plugin_la_SOURCES = mpeg/h264.c
 libh264_plugin_la_CFLAGS = $(AM_CFLAGS)
 libh264_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libh264_plugin_la_DEPENDENCIES = libh264_plugin.rc.o
+endif
 
 libmkv_plugin_la_SOURCES = \
 	mkv/util.hpp mkv/util.cpp \
@@ -90,6 +105,9 @@ libmkv_plugin_la_LDFLAGS = $(AM_LDFLAGS)
 if HAVE_ZLIB
 libmkv_plugin_la_LIBADD += -lz
 endif
+if HAVE_WIN32
+libmkv_plugin_la_DEPENDENCIES = libmkv_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += $(LTLIBmkv)
 EXTRA_LTLIBRARIES += libmkv_plugin.la
 
@@ -100,10 +118,16 @@ libmp4_plugin_la_LDFLAGS = $(AM_LDFLAGS)
 if HAVE_ZLIB
 libmp4_plugin_la_LIBADD += -lz
 endif
+if HAVE_WIN32
+libmp4_plugin_la_DEPENDENCIES = libmp4_plugin.rc.o
+endif
 
 libmpgv_plugin_la_SOURCES = mpeg/mpgv.c
 libmpgv_plugin_la_CFLAGS = $(AM_CFLAGS)
 libmpgv_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libmpgv_plugin_la_DEPENDENCIES = libmpgv_plugin.rc.o
+endif
 
 libplaylist_plugin_la_SOURCES = \
 	playlist/asx.c \
@@ -126,10 +150,16 @@ libplaylist_plugin_la_SOURCES = \
 	playlist/playlist.c playlist/playlist.h
 libplaylist_plugin_la_CFLAGS = $(AM_CFLAGS)
 libplaylist_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libplaylist_plugin_la_DEPENDENCIES = libplaylist_plugin.rc.o
+endif
 
 libts_plugin_la_SOURCES = ts.c ../mux/mpeg/csa.c ../mux/mpeg/dvbpsi_compat.h dvb-text.h
 libts_plugin_la_CFLAGS = $(AM_CFLAGS) $(DVBPSI_CFLAGS)
 libts_plugin_la_LIBADD = $(AM_LIBADD) $(DVBPSI_LIBS) $(SOCKET_LIBS)
+if HAVE_WIN32
+libts_plugin_la_DEPENDENCIES = libts_plugin.rc.o
+endif
 if HAVE_DVBPSI
 libvlc_LTLIBRARIES += libts_plugin.la
 endif
diff --git a/modules/genmf b/modules/genmf
index d5d1321b8053..adc40a1a4736 100755
--- a/modules/genmf
+++ b/modules/genmf
@@ -57,6 +57,9 @@ EOF
   do
     cat >> "${makf}" << EOF
 # The ${mod} plugin
+if HAVE_WIN32
+lib${mod}_plugin_la_DEPENDENCIES = lib${mod}_plugin.rc.o
+endif
 lib${mod}_plugin_la_SOURCES = \$(SOURCES_${mod})
 nodist_lib${mod}_plugin_la_SOURCES = \$(nodist_SOURCES_${mod})
 # Force per-target objects:
diff --git a/modules/gui/qt4/Makefile.am b/modules/gui/qt4/Makefile.am
index 692bd2f6da18..4dc3fa9fb491 100644
--- a/modules/gui/qt4/Makefile.am
+++ b/modules/gui/qt4/Makefile.am
@@ -23,6 +23,7 @@ if HAVE_OS2
 else
 if HAVE_WIN32
 libqt4_plugin_la_LIBADD += -lole32
+libqt4_plugin_la_DEPENDENCIES = libqt4_plugin.rc.o
 else
 libqt4_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIB) -lX11
 endif
diff --git a/modules/misc/Modules.am b/modules/misc/Modules.am
index d2d6a22e2c12..d2ed1e4cbef6 100644
--- a/modules/misc/Modules.am
+++ b/modules/misc/Modules.am
@@ -15,6 +15,9 @@ libexport_plugin_la_SOURCES = \
 	playlist/export.c
 libexport_plugin_la_CFLAGS = $(AM_CFLAGS)
 libexport_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libexport_plugin_la_DEPENDENCIES = libexport_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += libexport_plugin.la
 
 libgnutls_plugin_la_SOURCES = gnutls.c dhparams.h
@@ -22,6 +25,7 @@ libgnutls_plugin_la_CFLAGS = $(AM_CFLAGS) $(GNUTLS_CFLAGS)
 libgnutls_plugin_la_LIBADD = $(AM_LIBADD) $(GNUTLS_LIBS)
 if HAVE_WIN32
 libgnutls_plugin_la_LIBADD += $(SOCKET_LIBS)
+libgnutls_plugin_la_DEPENDENCIES = libgnutls_plugin.rc.o
 endif
 EXTRA_LTLIBRARIES += libgnutls_plugin.la
 libvlc_LTLIBRARIES += $(LTLIBgnutls)
@@ -47,10 +51,16 @@ liblogger_plugin_la_LIBADD = $(AM_LIBADD)
 if HAVE_ANDROID
 liblogger_plugin_la_LIBADD += -llog
 endif
+if HAVE_WIN32
+liblogger_plugin_la_DEPENDENCIES = liblogger_plugin.rc.o
+endif
 
 libstats_plugin_la_SOURCES = stats.c
 libstats_plugin_la_CFLAGS = $(AM_CFLAGS)
 libstats_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libstats_plugin_la_DEPENDENCIES = libstats_plugin.rc.o
+endif
 
 libvlc_LTLIBRARIES += \
 	libaudioscrobbler_plugin.la \
diff --git a/modules/mmx/Makefile.am b/modules/mmx/Makefile.am
index 38bf26793fa9..f9c7f0a32a8d 100644
--- a/modules/mmx/Makefile.am
+++ b/modules/mmx/Makefile.am
@@ -8,18 +8,27 @@ libi420_rgb_mmx_plugin_la_SOURCES = \
         i420_rgb_mmx.h
 libi420_rgb_mmx_plugin_la_CFLAGS = $(AM_CFLAGS)
 libi420_rgb_mmx_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libi420_rgb_mmx_plugin_la_DEPENDENCIES = libi420_rgb_mmx_plugin.rc.o
+endif
 
 libi420_yuy2_mmx_plugin_la_SOURCES = \
         ../video_chroma/i420_yuy2.c \
 	../video_chroma/i420_yuy2.h
 libi420_yuy2_mmx_plugin_la_CFLAGS = $(AM_CFLAGS)
 libi420_yuy2_mmx_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libi420_yuy2_mmx_plugin_la_DEPENDENCIES = libi420_yuy2_mmx_plugin.rc.o
+endif
 
 libi422_yuy2_mmx_plugin_la_SOURCES = \
         ../video_chroma/i422_yuy2.c \
 	../video_chroma/i422_yuy2.h
 libi422_yuy2_mmx_plugin_la_CFLAGS = $(AM_CFLAGS)
 libi422_yuy2_mmx_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libi422_yuy2_mmx_plugin_la_DEPENDENCIES = libi422_yuy2_mmx_plugin.rc.o
+endif
 
 libvlc_LTLIBRARIES = \
 	libi420_rgb_mmx_plugin.la \
diff --git a/modules/module.rc.in b/modules/module.rc.in
new file mode 100644
index 000000000000..275dbd7c5cd4
--- /dev/null
+++ b/modules/module.rc.in
@@ -0,0 +1,27 @@
+#define VERSION_NUMBER @VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_REVISION@,@VERSION_EXTRA@
+#define VERSION_NUMBER_STR "@VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_REVISION@,@VERSION_EXTRA@"
+
+1 VERSIONINFO
+FILETYPE 2
+FILEOS 4
+PRODUCTVERSION VERSION_NUMBER
+FILEVERSION VERSION_NUMBER
+BEGIN
+  BLOCK "StringFileInfo"
+  BEGIN
+    BLOCK "040904E4"
+    BEGIN
+      VALUE "CompanyName", "VideoLAN"
+      VALUE "ProductName", "VLC media player"
+      VALUE "ProductVersion", VERSION_NUMBER_STR
+      VALUE "FileVersion", "@VERSION@"
+      VALUE "FileDescription", MODULE_NAME
+      VALUE "LegalCopyright", "Copyright \251 @COPYRIGHT_YEARS@ VideoLAN and VLC Authors"
+      VALUE "LegalTrademarks", "VLC media player, VideoLAN and x264 are registered trademarks from VideoLAN"
+    END
+  END
+  BLOCK "VarFileInfo"
+  BEGIN
+    VALUE "Translation", 0x409, 1200
+  END
+END
diff --git a/modules/mux/Modules.am b/modules/mux/Modules.am
index 85aed68cdd33..742d4827622a 100644
--- a/modules/mux/Modules.am
+++ b/modules/mux/Modules.am
@@ -20,6 +20,9 @@ libmux_ps_plugin_la_SOURCES = \
 	mpeg/ps.c mpeg/bits.h
 libmux_ps_plugin_la_CFLAGS = $(AM_CLFAGS)
 libmux_ps_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libmux_ps_plugin_la_DEPENDENCIES = libmux_ps_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += libmux_ps_plugin.la
 
 libmux_ts_plugin_la_SOURCES = \
@@ -28,6 +31,9 @@ libmux_ts_plugin_la_SOURCES = \
 	mpeg/ts.c mpeg/bits.h mpeg/dvbpsi_compat.h
 libmux_ts_plugin_la_CFLAGS = $(AM_CFLAGS) $(DVBPSI_CFLAGS)
 libmux_ts_plugin_la_LIBADD = $(AM_LIBADD) $(DVBPSI_LIBS)
+if HAVE_WIN32
+libmux_ts_plugin_la_DEPENDENCIES = libmux_ts_plugin.rc.o
+endif
 if HAVE_DVBPSI
 libvlc_LTLIBRARIES += libmux_ts_plugin.la
 endif
diff --git a/modules/services_discovery/Modules.am b/modules/services_discovery/Modules.am
index 241eb684a17c..82a08a68ad6d 100644
--- a/modules/services_discovery/Modules.am
+++ b/modules/services_discovery/Modules.am
@@ -7,6 +7,9 @@ SOURCES_mediadirs = mediadirs.c
 libsap_plugin_la_SOURCES = sap.c
 libsap_plugin_la_CFLAGS = $(AM_CFLAGS) $(CFLAGS_sap)
 libsap_plugin_la_LIBADD = $(AM_LIBADD) $(LIBS_sap) $(SOCKET_LIBS)
+if HAVE_WIN32
+libsap_plugin_la_DEPENDENCIES = libsap_plugin.rc.o
+endif
 
 libpulselist_plugin_la_SOURCES = \
 	../audio_output/vlcpulse.c ../audio_output/vlcpulse.h \
@@ -39,6 +42,7 @@ libwindrive_plugin_la_CFLAGS = $(AM_CFLAGS)
 libwindrive_plugin_la_LIBADD = $(AM_LIBADD)
 if HAVE_WIN32
 libvlc_LTLIBRARIES += libwindrive_plugin.la
+libwindrive_plugin_la_DEPENDENCIES = libwindrive_plugin.rc.o
 endif
 
 libos2drive_plugin_la_SOURCES = os2drive.c
diff --git a/modules/sse2/Makefile.am b/modules/sse2/Makefile.am
index 9fc68940bbee..b9effd78c19b 100644
--- a/modules/sse2/Makefile.am
+++ b/modules/sse2/Makefile.am
@@ -8,18 +8,27 @@ libi420_rgb_sse2_plugin_la_SOURCES = \
         ../sse2/i420_rgb_sse2.h
 libi420_rgb_sse2_plugin_la_CFLAGS = $(AM_CFLAGS)
 libi420_rgb_sse2_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libi420_rgb_sse2_plugin_la_DEPENDENCIES = libi420_rgb_sse2_plugin.rc.o
+endif
 
 libi420_yuy2_sse2_plugin_la_SOURCES = \
         ../video_chroma/i420_yuy2.c \
 	../video_chroma/i420_yuy2.h
 libi420_yuy2_sse2_plugin_la_CFLAGS = $(AM_CFLAGS)
 libi420_yuy2_sse2_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libi420_yuy2_sse2_plugin_la_DEPENDENCIES = libi420_yuy2_sse2_plugin.rc.o
+endif
 
 libi422_yuy2_sse2_plugin_la_SOURCES = \
         ../video_chroma/i422_yuy2.c \
 	../video_chroma/i422_yuy2.h
 libi422_yuy2_sse2_plugin_la_CFLAGS = $(AM_CFLAGS)
 libi422_yuy2_sse2_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libi422_yuy2_sse2_plugin_la_DEPENDENCIES = libi422_yuy2_sse2_plugin.rc.o
+endif
 
 libvlc_LTLIBRARIES = \
 	libi420_rgb_sse2_plugin.la \
diff --git a/modules/stream_filter/Makefile.am b/modules/stream_filter/Makefile.am
index c14d3fda4b16..b97313b8d8c2 100644
--- a/modules/stream_filter/Makefile.am
+++ b/modules/stream_filter/Makefile.am
@@ -95,6 +95,9 @@ libdash_plugin_la_SOURCES = \
 libdash_plugin_la_CXXFLAGS = $(AM_CFLAGS) -I$(srcdir)/dash
 libdash_plugin_la_LIBADD = $(AM_LIBADD) $(SOCKET_LIBS)
 libvlc_LTLIBRARIES += libdash_plugin.la
+if HAVE_WIN32
+libdash_plugin_la_DEPENDENCIES = libdash_plugin.rc.o
+endif
 
 libsmooth_plugin_la_SOURCES = \
     smooth/smooth.c \
@@ -103,11 +106,17 @@ libsmooth_plugin_la_SOURCES = \
     smooth/smooth.h
 
 libsmooth_plugin_la_CFLAGS = $(AM_CFLAGS)
+if HAVE_WIN32
+libsmooth_plugin_la_DEPENDENCIES = libsmooth_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += libsmooth_plugin.la
 
 libhttplive_plugin_la_SOURCES = httplive.c
 libhttplive_plugin_la_CFLAGS = $(AM_CFLAGS) $(GCRYPT_CFLAGS)
 libhttplive_plugin_la_LIBADD = $(AM_LIBADD) $(GCRYPT_LIBS) -lgpg-error
+if HAVE_WIN32
+libhttplive_plugin_la_DEPENDENCIES = libhttplive_plugin.rc.o
+endif
 if HAVE_GCRYPT
 libvlc_LTLIBRARIES += libhttplive_plugin.la
 endif
@@ -115,4 +124,7 @@ endif
 librecord_plugin_la_SOURCES = record.c
 librecord_plugin_la_CFLAGS = $(AM_CFLAGS)
 librecord_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+librecord_plugin_la_DEPENDENCIES = librecord_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += librecord_plugin.la
diff --git a/modules/stream_out/Modules.am b/modules/stream_out/Modules.am
index 187b799f5659..7103932759db 100644
--- a/modules/stream_out/Modules.am
+++ b/modules/stream_out/Modules.am
@@ -20,6 +20,10 @@ libstream_out_transcode_plugin_la_SOURCES = \
 	transcode/osd.c transcode/spu.c transcode/audio.c transcode/video.c
 libstream_out_transcode_plugin_la_CFLAGS = $(AM_CFLAGS)
 libstream_out_transcode_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libstream_out_transcode_plugin_la_DEPENDENCIES = libstream_out_transcode_plugin.rc.o
+endif
+
 
 libvlc_LTLIBRARIES += \
 	libstream_out_dummy_plugin.la \
@@ -46,6 +50,9 @@ libstream_out_rtp_plugin_la_SOURCES = \
 	rtp.c rtp.h rtpfmt.c rtcp.c rtsp.c vod.c
 libstream_out_rtp_plugin_la_CFLAGS = $(AM_CFLAGS)
 libstream_out_rtp_plugin_la_LIBADD = $(AM_LIBADD) $(SOCKET_LIBS)
+if HAVE_WIN32
+libstream_out_rtp_plugin_la_DEPENDENCIES = libstream_out_rtp_plugin.rc.o
+endif
 if HAVE_GCRYPT
 SRTP_CFLAGS = -I$(top_srcdir)/modules/access/rtp
 SRTP_LIBS = $(top_builddir)/modules/access/rtp/libvlc_srtp.la
@@ -58,6 +65,9 @@ endif
 libstream_out_raop_plugin_la_SOURCES = raop.c
 libstream_out_raop_plugin_la_CFLAGS = $(AM_CFLAGS) $(GCRYPT_CFLAGS)
 libstream_out_raop_plugin_la_LIBADD = $(AM_LIBADD) $(GCRYPT_LIBS) -lgpg-error $(LIBS_stream_out_raop)
+if HAVE_WIN32
+libstream_out_raop_plugin_la_DEPENDENCIES = libstream_out_raop_plugin.rc.o
+endif
 if HAVE_GCRYPT
 libvlc_LTLIBRARIES += libstream_out_raop_plugin.la
 endif
diff --git a/modules/video_chroma/Modules.am b/modules/video_chroma/Modules.am
index 1b2525009568..2c49fc9b2334 100644
--- a/modules/video_chroma/Modules.am
+++ b/modules/video_chroma/Modules.am
@@ -36,10 +36,16 @@ SOURCES_rv32 = rv32.c
 
 libchain_plugin_la_SOURCES = chain.c
 libchain_plugin_la_CPPFLAGS = $(AM_CPPFLAGS)
+if HAVE_WIN32
+libchain_plugin_la_DEPENDENCIES = libchain_plugin.rc.o
+endif
 
 libswscale_plugin_la_SOURCES = swscale.c ../codec/avcodec/chroma.c
 libswscale_plugin_la_CFLAGS = $(AM_CFLAGS) $(SWSCALE_CFLAGS)
 libswscale_plugin_la_LIBADD = $(AM_LIBADD) $(SWSCALE_LIBS)
+if HAVE_WIN32
+libswscale_plugin_la_DEPENDENCIES = libswscale_plugin.rc.o
+endif
 EXTRA_LTLIBRARIES += libswscale_plugin.la
 
 libvlc_LTLIBRARIES += \
diff --git a/modules/video_filter/Modules.am b/modules/video_filter/Modules.am
index f53083b8ee9c..077b5a9d1ed4 100644
--- a/modules/video_filter/Modules.am
+++ b/modules/video_filter/Modules.am
@@ -30,6 +30,9 @@ if HAVE_NEON
 libdeinterlace_plugin_la_SOURCES += deinterlace/merge_arm.S
 libdeinterlace_plugin_la_CFLAGS += -DCAN_COMPILE_ARM
 endif
+if HAVE_WIN32
+libdeinterlace_plugin_la_DEPENDENCIES = libdeinterlace_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += libdeinterlace_plugin.la
 
 libdynamicoverlay_plugin_la_SOURCES = \
@@ -47,6 +50,9 @@ endif
 libremoteosd_plugin_la_SOURCES = remoteosd.c remoteosd_rfbproto.h
 libremoteosd_plugin_la_CFLAGS = $(AM_CFLAGS) $(GCRYPT_CFLAGS)
 libremoteosd_plugin_la_LIBADD = $(AM_LIBADD) $(GCRYPT_LIBS) $(LIBS_remoteosd)
+if HAVE_WIN32
+libremoteosd_plugin_la_DEPENDENCIES = libremoteosd_plugin.rc.o
+endif
 if HAVE_GCRYPT
 libvlc_LTLIBRARIES += libremoteosd_plugin.la
 endif
@@ -59,6 +65,9 @@ libpuzzle_plugin_la_SOURCES = \
 	puzzle_pce.c puzzle_pce.h
 libpuzzle_plugin_la_CFLAGS = $(AM_CFLAGS)
 libpuzzle_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libpuzzle_plugin_la_DEPENDENCIES = libpuzzle_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += libpuzzle_plugin.la
 
 SOURCES_magnify = magnify.c
diff --git a/modules/video_output/Modules.am b/modules/video_output/Modules.am
index cebab021c17d..c52ab3bb02bd 100644
--- a/modules/video_output/Modules.am
+++ b/modules/video_output/Modules.am
@@ -22,14 +22,23 @@ endif
 libgles2_plugin_la_SOURCES = opengl.c opengl.h gl.c
 libgles2_plugin_la_CFLAGS = $(AM_CFLAGS) $(GLES2_CFLAGS) -DUSE_OPENGL_ES=2
 libgles2_plugin_la_LIBADD = $(AM_LIBADD) $(GLES2_LIBS)
+if HAVE_WIN32
+libgles2_plugin_la_DEPENDENCIES = libgles2_plugin.rc.o
+endif
 
 libgles1_plugin_la_SOURCES = opengl.c opengl.h gl.c
 libgles1_plugin_la_CFLAGS = $(AM_CFLAGS) $(GLES1_CFLAGS) -DUSE_OPENGL_ES=1
 libgles1_plugin_la_LIBADD = $(AM_LIBADD) $(GLES1_LIBS)
+if HAVE_WIN32
+libgles1_plugin_la_DEPENDENCIES = libgles1_plugin.rc.o
+endif
 
 libgl_plugin_la_SOURCES = opengl.c opengl.h gl.c
 libgl_plugin_la_CFLAGS = $(AM_CFLAGS) $(GL_CFLAGS)
 libgl_plugin_la_LIBADD = $(AM_LIBADD) $(GL_LIBS)
+if HAVE_WIN32
+libgl_plugin_la_DEPENDENCIES = libgl_plugin.rc.o
+endif
 
 EXTRA_LTLIBRARIES += \
 	libgles2_plugin.la \
@@ -95,6 +104,9 @@ libdirect2d_plugin_la_SOURCES = msw/direct2d.c \
 	msw/common.c msw/common.h msw/events.c msw/events.h
 libdirect2d_plugin_la_CFLAGS = $(AM_CFLAGS)
 libdirect2d_plugin_la_LIBADD = $(AM_LIBADD) -lgdi32 -lole32 -luuid
+if HAVE_WIN32
+libdirect2d_plugin_la_DEPENDENCIES = libdirect2d_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += $(LTLIBdirect2d)
 EXTRA_LTLIBRARIES += libdirect2d_plugin.la
 
@@ -102,6 +114,9 @@ libdirect3d_plugin_la_SOURCES = msw/direct3d.c \
 	msw/common.c msw/common.h msw/events.c msw/events.h
 libdirect3d_plugin_la_CFLAGS = $(AM_CFLAGS)
 libdirect3d_plugin_la_LIBADD = $(AM_LIBADD) -lgdi32 -lole32 -luuid
+if HAVE_WIN32
+libdirect3d_plugin_la_DEPENDENCIES = libdirect3d_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += $(LTLIBdirect3d)
 EXTRA_LTLIBRARIES += libdirect3d_plugin.la
 
@@ -109,6 +124,9 @@ libdirectdraw_plugin_la_SOURCES = msw/directx.c \
 	msw/common.c msw/common.h msw/events.c msw/events.h
 libdirectdraw_plugin_la_CFLAGS = $(AM_CFLAGS)
 libdirectdraw_plugin_la_LIBADD = $(AM_LIBADD) -luser32 -lgdi32 -lole32 -luuid
+if HAVE_WIN32
+libdirectdraw_plugin_la_DEPENDENCIES = libdirectdraw_plugin.rc.o
+endif
 
 if HAVE_DIRECTX
 libvlc_LTLIBRARIES += libdirectdraw_plugin.la
@@ -118,6 +136,9 @@ libglwin32_plugin_la_SOURCES = msw/glwin32.c opengl.c opengl.h \
 	msw/common.c msw/common.h msw/events.c msw/events.h
 libglwin32_plugin_la_CFLAGS = $(AM_CFLAGS)
 libglwin32_plugin_la_LIBADD = $(AM_LIBADD) -lopengl32 -lgdi32 -lole32 -luuid
+if HAVE_WIN32
+libglwin32_plugin_la_DEPENDENCIES = libglwin32_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += $(LTLIBglwin32)
 EXTRA_LTLIBRARIES += libglwin32_plugin.la
 
@@ -127,6 +148,7 @@ libwingdi_plugin_la_CFLAGS = $(AM_CFLAGS)
 libwingdi_plugin_la_LIBADD = $(AM_LIBADD) -lgdi32 -lole32 -luuid
 if HAVE_WIN32
 libvlc_LTLIBRARIES += libwingdi_plugin.la
+libwingdi_plugin_la_DEPENDENCIES = libwingdi_plugin.rc.o
 endif
 
 libdrawable_plugin_la_SOURCES = drawable.c
@@ -134,6 +156,7 @@ libdrawable_plugin_la_CFLAGS = $(AM_CFLAGS)
 libdrawable_plugin_la_LIBADD = $(AM_LIBADD)
 if HAVE_WIN32
 libvlc_LTLIBRARIES += libdrawable_plugin.la
+libdrawable_plugin_la_DEPENDENCIES = libdrawable_plugin.rc.o
 endif
 
 ### OS/2 ###
@@ -154,6 +177,8 @@ libegl_plugin_la_CFLAGS = $(AM_CFLAGS) $(EGL_CFLAGS)
 libegl_plugin_la_LIBADD = $(AM_LIBADD) $(EGL_LIBS)
 if !HAVE_WIN32
 libegl_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIBS) -lX11
+else
+libegl_plugin_la_DEPENDENCIES = libegl_plugin.rc.o
 endif
 EXTRA_LTLIBRARIES += libegl_plugin.la
 libvlc_LTLIBRARIES += $(LTLIBegl)
@@ -162,6 +187,9 @@ libvlc_LTLIBRARIES += $(LTLIBegl)
 libglx_plugin_la_SOURCES = glx.c
 libglx_plugin_la_CFLAGS = $(AM_CFLAGS) $(GL_CFLAGS)
 libglx_plugin_la_LIBADD = $(AM_LIBADD) $(GL_LIBS) $(X_LIBS) $(X_PRE_LIBS) -lX11
+if HAVE_WIN32
+libglx_plugin_la_DEPENDENCIES = libglx_plugin.rc.o
+endif
 EXTRA_LTLIBRARIES += libglx_plugin.la
 libvlc_LTLIBRARIES += $(LTLIBglx)
 
@@ -173,6 +201,8 @@ if !HAVE_WIN32
 if !HAVE_DARWIN
 libcaca_plugin_la_LIBADD += $(X_LIBS) $(X_PRE_LIBS) -lX11
 endif
+else
+libcaca_plugin_la_DEPENDENCIES = libcaca_plugin.rc.o
 endif
 EXTRA_LTLIBRARIES += libcaca_plugin.la
 libvlc_LTLIBRARIES += $(LTLIBcaca)
@@ -181,6 +211,9 @@ libvlc_LTLIBRARIES += $(LTLIBcaca)
 libvdummy_plugin_la_SOURCES = vdummy.c
 libvdummy_plugin_la_CFLAGS = $(AM_CFLAGS)
 libvdummy_plugin_la_LIBADD = $(AM_LIBADD)
+if HAVE_WIN32
+libvdummy_plugin_la_DEPENDENCIES = libvdummy_plugin.rc.o
+endif
 
 libvlc_LTLIBRARIES += \
 	libvdummy_plugin.la \
diff --git a/modules/video_splitter/Makefile.am b/modules/video_splitter/Makefile.am
index b423bbc8ddb2..b6daec4a96cd 100644
--- a/modules/video_splitter/Makefile.am
+++ b/modules/video_splitter/Makefile.am
@@ -8,15 +8,22 @@ libvlc_LTLIBRARIES = \
 
 libclone_plugin_la_SOURCES = clone.c
 libclone_plugin_la_CPPFLAGS = $(AM_CPPFLAGS)
+if HAVE_WIN32
+libclone_plugin_la_DEPENDENCIES = libclone_plugin.rc.o
+endif
 
 libwall_plugin_la_SOURCES = wall.c
 libwall_plugin_la_CPPFLAGS = $(AM_CPPFLAGS)
+if HAVE_WIN32
+libwall_plugin_la_DEPENDENCIES = libwall_plugin.rc.o
+endif
 
 libpanoramix_plugin_la_SOURCES = panoramix.c
 libpanoramix_plugin_la_CFLAGS =  $(AM_CFLAGS)
 libpanoramix_plugin_la_LIBADD =  $(AM_LIBADD) $(LIBM)
 if HAVE_WIN32
 libvlc_LTLIBRARIES += libpanoramix_plugin.la
+libpanoramix_plugin_la_DEPENDENCIES = libpanoramix_plugin.rc.o
 else
 if HAVE_XCB_RANDR
 libpanoramix_plugin_la_CFLAGS += $(XCB_RANDR_CFLAGS)
diff --git a/modules/visualization/Modules.am b/modules/visualization/Modules.am
index af03750ac4b1..37bd60fdfe3e 100644
--- a/modules/visualization/Modules.am
+++ b/modules/visualization/Modules.am
@@ -7,6 +7,9 @@ libvisual_plugin_la_SOURCES = \
 	visual/fft.c visual/fft.h
 libvisual_plugin_la_CFLAGS = $(AM_CFLAGS)
 libvisual_plugin_la_LIBADD = $(AM_LIBADD) $(LIBM)
+if HAVE_WIN32
+libvisual_plugin_la_DEPENDENCIES = libvisual_plugin.rc.o
+endif
 libvlc_LTLIBRARIES += libvisual_plugin.la
 
 SOURCES_vsxu = vsxu.cpp cyclic_buffer.h
-- 
GitLab