diff --git a/Makefile b/Makefile
index 3b87f46a6f1a3d782afca4ba4cb55f9804c722e6..77dfc9dc6d63f9f41741a2ad1d0ab0eaa01bf600 100644
--- a/Makefile
+++ b/Makefile
@@ -30,19 +30,20 @@ macos: MKL_LIB = $(MKLPATH_MAC)/lib/universal
 macos: CFLAGS += -I$(MKL_INC)
 macos: LDFLAGS += $(MKL_LIB)/libmkl_solver_lp64_sequential.a $(MKL_LIB)/libmkl_intel_lp64.a $(MKL_LIB)/libmkl_sequential.a $(MKL_LIB)/libmkl_core.a -lpthread
 
-# suitable for Debian 
+# suitable for Debian's MinGW
 win32: CC = i586-mingw32msvc-gcc
 win32: TARGET_HOST=i586-mingw32msvc
 win32: BUILD_HOST=i386-linux
 win32: CFLAGS += -DMINGW_WIN32
 win32: CROSS_SPEC = --host=$(TARGET_HOST) --build=$(BUILD_HOST) --with-our-malloc16
+win32: CFLAGS += -I$(PWD)/win32/imkl/include
+win32: LDFLAGS += $(PWD)/win32/imkl/lib/mkl_solver_sequential.lib $(PWD)/win32/imkl/lib/mkl_intel_c.lib $(PWD)/win32/imkl/lib/mkl_sequential.lib $(PWD)/win32/imkl/lib/mkl_core.lib
 win32: CFLAGS += -I$(PWD)/win32/acml/include
-win32: LDFLAGS += -Wl,-Bdynamic
-win32: LDFLAGS += $(PWD)/win32/acml/lib/libacml.lib
+win32: LDFLAGS += $(PWD)/win32/acml/lib/libacml.lib $(PWD)/win32/ifc/lib/ia32/libifcoremd.lib $(PWD)/win32/ifc/lib/ia32/libmmd.lib $(PWD)/win32/psdk/lib/WbemUuid.Lib $(PWD)/win32/psdk/lib/comsupp.lib $(PWD)/win32/psdk/lib/bufferoverflowu.lib $(PWD)/win32/psdk/lib/chkstk.obj $(PWD)/win32/psdk/lib/lldiv.obj -lmsvcr80 -loleaut32
 
 
 $(TARGET): fft-bench.c $(FFTW_ROOT)/install/lib/libfftw3f.a Makefile
-	$(CC) $(CFLAGS) fft-bench.c $(LDFLAGS) -o $(TARGET)
+	$(CC) $(CFLAGS) fft-bench.c $(LDFLAGS) -o $(if $(findstring file,$(origin CROSS_SPEC)),$(TARGET).exe,$(TARGET))
 
 $(FFTW_ROOT)/install/lib/libfftw3f.a: $(FFTW_ROOT)/fftw-$(FFTW_VERS).tar.gz Makefile
 	mkdir -p $(FFTW_ROOT)/build
@@ -58,4 +59,4 @@ $(FFTW_ROOT)/fftw-$(FFTW_VERS).tar.gz:
 
 clean:
 	rm -rf $(FFTW_ROOT)
-	rm -f $(TARGET)
+	rm -f $(TARGET) $(TARGET).exe