From 4ee8cf5610bdf81cf88b078a7046832ea7371823 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 25 Oct 2019 15:39:35 -0400 Subject: Make: make "make DESTDIR=../foo install" work right. This makes the normal DESTDIR= variable work on the command line, and makes relative paths always relative to the top-level directory. Signed-off-by: Peter Jones --- Make.defaults | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Make.defaults b/Make.defaults index d663397..516caad 100755 --- a/Make.defaults +++ b/Make.defaults @@ -45,7 +45,19 @@ TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi) # Where to install the package. GNU-EFI will create and access # lib and include under the root # -INSTALLROOT := / +DESTDIR ?= / +ifeq ($(origin INSTALLROOT),undefined) +INSTALLROOT = $(DESTDIR) +endif + +empty := +space := $(empty) $(empty) +stripped = $(subst $(space),/,$(strip $(subst /,$(space),$(1)))) +unstripped = $(subst $(space),/,$(subst /,$(space),$(1))) +is_absolute = $(subst $(call stripped,$(1)),$(empty),$(call unstripped,$(1))) + +override INSTALLROOT:=$(if $(call is_absolute,$(INSTALLROOT)),,$(TOPDIR)/)$(INSTALLROOT) + PREFIX := /usr/local LIBDIR := $(PREFIX)/lib INSTALL := install -- cgit v1.2.1