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
This commit is contained in:
edeso 2017-11-28 21:29:56 +01:00
parent d21c3e4964
commit 6fccc12905

View File

@ -5,13 +5,30 @@ LANG:=C
export LC_ALL LANG export LC_ALL LANG
# initialize (possibly already user set) folder vars
GLUON_SITEDIR ?= $(CURDIR)/site GLUON_SITEDIR ?= $(CURDIR)/site
GLUON_TMPDIR ?= $(CURDIR)/tmp GLUON_TMPDIR ?= $(CURDIR)/tmp
GLUON_OUTPUTDIR ?= $(CURDIR)/output GLUON_OUTPUTDIR ?= $(CURDIR)/output
GLUON_IMAGEDIR ?= $(GLUON_OUTPUTDIR)/images GLUON_IMAGEDIR ?= $(GLUON_OUTPUTDIR)/images
GLUON_PACKAGEDIR ?= $(GLUON_OUTPUTDIR)/packages 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 export GLUON_TMPDIR GLUON_IMAGEDIR GLUON_PACKAGEDIR DEVICES