diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 6c9e53645f2b57548f01670efe601443f88e8bb5..b12dff032717502b65e50adbc9045ef33f4989b1 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -9,6 +9,11 @@ VPATH=$(SRC_PATH)/libavcodec
 # NOTE: -I.. is needed to include config.h
 CFLAGS=$(OPTFLAGS) -DHAVE_AV_CONFIG_H -I.. -I$(SRC_PATH)/libavutil -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE $(AMR_CFLAGS)
 
+#FIXME: This should be in configure/config.mak
+ifeq ($(CONFIG_WIN32),yes)
+    LDFLAGS=-Wl,--output-def,$(@:.dll=.def)
+endif
+
 OBJS= bitstream.o utils.o mem.o allcodecs.o \
       mpegvideo.o jrevdct.o jfdctfst.o jfdctint.o\
       mpegaudio.o ac3enc.o mjpeg.o resample.o resample2.o dsputil.o \
@@ -421,11 +426,9 @@ $(SLIBNAME): $(OBJS)
 ifeq ($(CONFIG_PP),yes)
 	$(MAKE) -C libpostproc
 endif
+	$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
 ifeq ($(CONFIG_WIN32),yes)
-	$(CC) $(SHFLAGS) -Wl,--output-def,$(@:.dll=.def) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
 	-lib /machine:i386 /def:$(@:.dll=.def)
-else
-	$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
 endif
 
 dsputil.o: dsputil.c dsputil.h
diff --git a/libavformat/Makefile b/libavformat/Makefile
index bae7342c3b6939dad7b64efc39f4a5f643aac285..92a1e686e8bd47097f3dc728ff8b165a71b7b397 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -8,6 +8,11 @@ VPATH=$(SRC_PATH)/libavformat
 
 CFLAGS=$(OPTFLAGS) -I.. -I$(SRC_PATH) -I$(SRC_PATH)/libavutil -I$(SRC_PATH)/libavcodec -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
 
+#FIXME: This should be in configure/config.mak
+ifeq ($(CONFIG_WIN32),yes)
+    LDFLAGS=-Wl,--output-def,$(@:.dll=.def)
+endif
+
 OBJS= utils.o cutils.o os_support.o allformats.o
 PPOBJS=
 
@@ -106,11 +111,9 @@ $(LIB): $(OBJS) $(PPOBJS)
 	$(RANLIB) $@
 
 $(SLIBNAME): $(OBJS)
+	$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(PPOBJS) $(AVCLIBS) $(EXTRALIBS)
 ifeq ($(CONFIG_WIN32),yes)
-	$(CC) $(SHFLAGS) -Wl,--output-def,$(@:.dll=.def) -o $@ $(OBJS) $(PPOBJS) $(AVCLIBS) $(EXTRALIBS)
 	-lib /machine:i386 /def:$(@:.dll=.def)
-else
-	$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(PPOBJS) $(AVCLIBS) $(EXTRALIBS)
 endif
 
 depend: $(SRCS)
diff --git a/libavutil/Makefile b/libavutil/Makefile
index 54dd347fbf99a47bd682203b8674904c8a2a225a..9d02aab4ef28fb746cd787155ef5a825cf357a23 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -8,6 +8,11 @@ VPATH=$(SRC_PATH)/libavutil
 # NOTE: -I.. is needed to include config.h
 CFLAGS=$(OPTFLAGS) -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE
 
+#FIXME: This should be in configure/config.mak
+ifeq ($(CONFIG_WIN32),yes)
+    LDFLAGS=-Wl,--output-def,$(@:.dll=.def)
+endif
+
 OBJS= mathematics.o \
       integer.o \
       rational.o \
@@ -34,11 +39,9 @@ $(LIB): $(OBJS)
 	$(RANLIB) $@
 
 $(SLIBNAME): $(OBJS)
+	$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
 ifeq ($(CONFIG_WIN32),yes)
-	$(CC) $(SHFLAGS) -Wl,--output-def,$(@:.dll=.def) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
 	-lib /machine:i386 /def:$(@:.dll=.def)
-else
-	$(CC) $(SHFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(EXTRALIBS) $(AMREXTRALIBS)
 endif
 
 %.o: %.c