+ifdef CONFIG_WIN32
+
+INSTALLER = qemu-setup-$(VERSION)$(EXESUF)
+
+nsisflags = -V2 -NOCD
+
+ifneq ($(wildcard $(SRC_PATH)/dll),)
+ifeq ($(ARCH),x86_64)
+# 64 bit executables
+DLL_PATH = $(SRC_PATH)/dll/w64
+nsisflags += -DW64
+else
+# 32 bit executables
+DLL_PATH = $(SRC_PATH)/dll/w32
+endif
+endif
+
+.PHONY: installer
+installer: $(INSTALLER)
+
+INSTDIR=/tmp/qemu-nsis
+
+$(INSTALLER): $(SRC_PATH)/qemu.nsi
+ make install prefix=${INSTDIR}
+ifdef SIGNCODE
+ (cd ${INSTDIR}; \
+ for i in *.exe; do \
+ $(SIGNCODE) $${i}; \
+ done \
+ )
+endif # SIGNCODE
+ (cd ${INSTDIR}; \
+ for i in qemu-system-*.exe; do \
+ arch=$${i%.exe}; \
+ arch=$${arch#qemu-system-}; \
+ echo Section \"$$arch\" Section_$$arch; \
+ echo SetOutPath \"\$$INSTDIR\"; \
+ echo File \"\$${BINDIR}\\$$i\"; \
+ echo SectionEnd; \
+ done \
+ ) >${INSTDIR}/system-emulations.nsh
+ makensis $(nsisflags) \
+ $(if $(BUILD_DOCS),-DCONFIG_DOCUMENTATION="y") \
+ $(if $(CONFIG_GTK),-DCONFIG_GTK="y") \
+ -DBINDIR="${INSTDIR}" \
+ $(if $(DLL_PATH),-DDLLDIR="$(DLL_PATH)") \
+ -DSRCDIR="$(SRC_PATH)" \
+ -DOUTFILE="$(INSTALLER)" \
+ $(SRC_PATH)/qemu.nsi
+ rm -r ${INSTDIR}
+ifdef SIGNCODE
+ $(SIGNCODE) $(INSTALLER)
+endif # SIGNCODE
+endif # CONFIG_WIN
+