diff options
authorStefan Hajnoczi <>2022-04-14 07:36:51 +0100
committerJens Axboe <>2022-04-14 06:55:01 -0600
commit415c62fca6b8014bf9b03517c4d6e0e2e7ad02a9 (patch)
parentc47b44afb686d794f8ed62feb77e9c42431c8444 (diff)
Revert "make: let src/Makefile set *dir vars properly"
This reverts commit 9236f53a8ffe96cc2430f7131bbcba5756b97bc2. "make install DESTDIR=..." specifies a root directory where files are installed. For example, includedir=/usr/include DESTDIR=/a should install header files into /a/usr/include. Commit 9236f53a8ffe removed the includedir=, etc arguments on the make command-line in ./Makefile, leaving only prefix=$(DESTDIR)$(prefix). It claimed "prefix suffice for setting *dir variables in src/Makefile" but this is incorrect. "make install DESTDIR=..." now has no effect and files are not installed with a DESTDIR prefix. The GNU make manual 9.5 Overriding Variables says: all ordinary assignments of the same variable in the makefile are ignored; we say they have been overridden by the command line argument. This explains why it was necessary to set includedir=, etc on the make command-line in ./Makefile. We need to override these variables with DESTDIR from the command-line so they are not clobbered in src/Makefile when config-host.mak is included. Cc: Paymon MARANDI <> Signed-off-by: Stefan Hajnoczi <> Link: Signed-off-by: Jens Axboe <>
1 files changed, 3 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index d6f8520..28c0fd8 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,9 @@ endif
install: $(NAME).pc
@$(MAKE) -C src install prefix=$(DESTDIR)$(prefix) \
+ includedir=$(DESTDIR)$(includedir) \
+ libdir=$(DESTDIR)$(libdir) \
+ libdevdir=$(DESTDIR)$(libdevdir) \
$(INSTALL) -D -m 644 $(NAME).pc $(DESTDIR)$(libdevdir)/pkgconfig/$(NAME).pc
$(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man2