diff --git a/Makefile b/Makefile
index 6b4cab0a7b95a60aee78e38a20226b0206efe517..e91763b9efea96191de1a609b37906adc95571ba 100644
--- a/Makefile
+++ b/Makefile
@@ -108,10 +108,7 @@ documentation:
 
 .PHONY: install
 
-install: all install-progs install-headers install-man $(INSTALLVHOOK)
-	$(MAKE) -C libavutil install
-	$(MAKE) -C libavcodec install
-	$(MAKE) -C libavformat install
+install: install-progs install-libs install-headers install-man $(INSTALLVHOOK)
 
 install-progs: $(PROG)
 	install -d "$(bindir)"
@@ -133,10 +130,19 @@ endif
 install-vhook:
 	$(MAKE) -C vhook install
 
-installlib:
-	$(MAKE) -C libavutil installlib
-	$(MAKE) -C libavcodec installlib
-	$(MAKE) -C libavformat installlib
+install-libs:
+	install -d $(libdir)
+ifeq ($(BUILD_SHARED),yes)
+	$(MAKE) -C libavutil   install-lib-shared
+	$(MAKE) -C libavcodec  install-lib-shared
+	$(MAKE) -C libavformat install-lib-shared
+	$(LDCONFIG) || true
+endif
+ifeq ($(BUILD_STATIC),yes)
+	$(MAKE) -C libavutil   install-lib-static
+	$(MAKE) -C libavcodec  install-lib-static
+	$(MAKE) -C libavformat install-lib-static
+endif
 
 install-headers:
 	$(MAKE) -C libavutil   install-headers
diff --git a/configure b/configure
index 275c31215fb5ca9ab710879c79f44f41222df273..efb833780d4e9852ea3f690e8d4f59089d504d44 100755
--- a/configure
+++ b/configure
@@ -1415,6 +1415,7 @@ echo "LDCONFIG=$LDCONFIG" >> config.mak
 echo "FFSLDFLAGS=$FFSLDFLAGS" >> config.mak
 echo "SHFLAGS=$SHFLAGS" >> config.mak
 echo "LIBOBJFLAGS=$LIBOBJFLAGS" >> config.mak
+echo "BUILD_STATIC=$lstatic" >> config.mak
 echo "BUILDSUF=$BUILDSUF" >> config.mak
 echo "LIBPREF=$LIBPREF" >> config.mak
 echo "LIBSUF=\${BUILDSUF}$LIBSUF" >> config.mak
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 428e293ccdf0b601d1a350098cac130a49e68659..777d94c86d21feec987d6b44c0767dde54d6fe1c 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -502,28 +502,23 @@ motion-test: motion_test.o $(LIB)
 fft-test: fft-test.o $(LIB)
 	$(CC) -o $@ $^ $(LIBAVUTIL) -lm
 
-ifeq ($(BUILD_SHARED),yes)
-install: all
+
+install-lib-shared: $(SLIBNAME)
 ifeq ($(CONFIG_WIN32),yes)
 	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
 else
-	install -d $(libdir)
 	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) \
 		$(libdir)/$(SLIBNAME_WITH_VERSION)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 		$(libdir)/$(SLIBNAME_WITH_MAJOR)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 		$(libdir)/$(SLIBNAME)
-	$(LDCONFIG) || true
 endif
 ifeq ($(CONFIG_PP),yes)
 	$(MAKE) -C libpostproc $@
 endif
-else
-install:
-endif
 
-installlib: all
+install-lib-static: $(LIB)
 	install -m 644 $(LIB) "$(libdir)"
 ifeq ($(CONFIG_PP),yes)
 	$(MAKE) -C libpostproc $@
diff --git a/libavcodec/libpostproc/Makefile b/libavcodec/libpostproc/Makefile
index 8f32bb62f4b7d9f24ad8522de08e387defd0b161..2f7ec1a0c0faa4e10fc6d1d4d100ac194ddfbdeb 100644
--- a/libavcodec/libpostproc/Makefile
+++ b/libavcodec/libpostproc/Makefile
@@ -48,23 +48,20 @@ $(LIB): $(OBJS)
 	$(AR) rc $@ $(OBJS)
 	$(RANLIB) $@
 
-install: all
-ifeq ($(BUILD_SHARED),yes)
+
+install-lib-shared: $(SLIBNAME)
 ifeq ($(CONFIG_WIN32),yes)
 	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
 else
-	install -d $(libdir)
 	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) \
 		$(libdir)/$(SLIBNAME_WITH_VERSION)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 		$(libdir)/$(SLIBNAME_WITH_MAJOR)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 		$(libdir)/$(SLIBNAME)
-	$(LDCONFIG) || true
-endif
 endif
 
-installlib: all
+install-lib-static: $(LIB)
 	install -m 644 $(LIB) "$(libdir)"
 
 install-headers:
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 6f4f680639e71cff69a2f0a72c151804c8cacc9e..a33143d10358734ffa812dfe4eddac7d800fd050 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -124,25 +124,20 @@ endif
 depend: $(SRCS)
 	$(CC) -MM $(CFLAGS) $^ 1>.depend
 
-ifeq ($(BUILD_SHARED),yes)
-install: all
+
+install-lib-shared: $(SLIBNAME)
 ifeq ($(CONFIG_WIN32),yes)
 	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
 else
-	install -d $(libdir)
 	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) \
 		$(libdir)/$(SLIBNAME_WITH_VERSION)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 		$(libdir)/$(SLIBNAME_WITH_MAJOR)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 		$(libdir)/$(SLIBNAME)
-	$(LDCONFIG) || true
-endif
-else
-install:
 endif
 
-installlib: all
+install-lib-static: $(LIB)
 	install -m 644 $(LIB) "$(libdir)"
 
 install-headers:
diff --git a/libavutil/Makefile b/libavutil/Makefile
index a27ed55a8bac4b21fc89f35a2f33ee54b87ee75c..2a75cb3a4e2a940cdef287d7e9d891d6824eb262 100644
--- a/libavutil/Makefile
+++ b/libavutil/Makefile
@@ -60,25 +60,19 @@ distclean: clean
 	rm -f .depend
 
 
-ifeq ($(BUILD_SHARED),yes)
-install: all
+install-lib-shared: $(SLIBNAME)
 ifeq ($(CONFIG_WIN32),yes)
 	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) "$(prefix)"
 else
-	install -d $(libdir)
 	install $(INSTALLSTRIP) -m 755 $(SLIBNAME) \
 		$(libdir)/$(SLIBNAME_WITH_VERSION)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 		$(libdir)/$(SLIBNAME_WITH_MAJOR)
 	ln -sf $(SLIBNAME_WITH_VERSION) \
 		$(libdir)/$(SLIBNAME)
-	$(LDCONFIG) || true
-endif
-else
-install:
 endif
 
-installlib: all
+install-lib-static: $(LIB)
 	install -m 644 $(LIB) "$(libdir)"
 
 install-headers: