Message ID | 20220414063651.81341-1-stefanha@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Revert "make: let src/Makefile set *dir vars properly" | expand |
On 4/14/22 12:36 AM, Stefan Hajnoczi wrote: > 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. I think this should have gone to io-uring@vger.kernel.org, the patch had me confused for a second.
On Thu, 14 Apr 2022 07:36:51 +0100, Stefan Hajnoczi wrote: > 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. > > [...] Applied, thanks! [1/1] Revert "make: let src/Makefile set *dir vars properly" commit: 415c62fca6b8014bf9b03517c4d6e0e2e7ad02a9 Best regards,
On Thu, Apr 14, 2022 at 06:55:48AM -0600, Jens Axboe wrote: > On 4/14/22 12:36 AM, Stefan Hajnoczi wrote: > > 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. > > I think this should have gone to io-uring@vger.kernel.org, the patch had > me confused for a second. Sorry about that. I have updated my configuration to send patches to the correct list. Stefan
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) \ relativelibdir=$(relativelibdir) $(INSTALL) -D -m 644 $(NAME).pc $(DESTDIR)$(libdevdir)/pkgconfig/$(NAME).pc $(INSTALL) -m 755 -d $(DESTDIR)$(mandir)/man2
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 <darwinskernel@gmail.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- Makefile | 3 +++ 1 file changed, 3 insertions(+)