From 6fccc12905556e0690569af113b8c5f3d3e66040 Mon Sep 17 00:00:00 2001 From: edeso Date: Tue, 28 Nov 2017 21:29:56 +0100 Subject: [PATCH] make sure folder paths used in gluon buildroot are absolute, so they can be reused in subfolder package makefiles w/o headaches uses a call function to the shell realpath because - gnu make realpath function returns "" on non existing folders (some folders to test are created during the build only) - gnu make abspath function chokes on spaces in path - shell realpath accepts a parameter to ignore non-existing path components --- Makefile | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 20998277..e10c394f 100644 --- a/Makefile +++ b/Makefile @@ -5,13 +5,30 @@ LANG:=C export LC_ALL LANG +# initialize (possibly already user set) folder vars GLUON_SITEDIR ?= $(CURDIR)/site GLUON_TMPDIR ?= $(CURDIR)/tmp - GLUON_OUTPUTDIR ?= $(CURDIR)/output GLUON_IMAGEDIR ?= $(GLUON_OUTPUTDIR)/images GLUON_PACKAGEDIR ?= $(GLUON_OUTPUTDIR)/packages +# resolve possibly relative paths or symlinks to make vars reusable in subfolder packages +makeAbsolute = $(shell realpath -m "$(1)") +override GLUON_SITEDIR := $(call makeAbsolute,$(GLUON_SITEDIR)) +override GLUON_TMPDIR := $(call makeAbsolute,$(GLUON_TMPDIR)) +override GLUON_OUTPUTDIR := $(call makeAbsolute,$(GLUON_OUTPUTDIR)) +override GLUON_IMAGEDIR := $(call makeAbsolute,$(GLUON_IMAGEDIR)) +override GLUON_PACKAGEDIR := $(call makeAbsolute,$(GLUON_PACKAGEDIR)) + +ifeq ($(V),s) +$(info GLUON_SITEDIR="$(GLUON_SITEDIR)") +$(info GLUON_TMPDIR="$(GLUON_TMPDIR)") +$(info GLUON_OUTPUTDIR="$(GLUON_OUTPUTDIR)") +$(info GLUON_IMAGEDIR="$(GLUON_IMAGEDIR)") +$(info GLUON_PACKAGEDIR="$(GLUON_PACKAGEDIR)") +endif + + export GLUON_TMPDIR GLUON_IMAGEDIR GLUON_PACKAGEDIR DEVICES