From 6fccc12905556e0690569af113b8c5f3d3e66040 Mon Sep 17 00:00:00 2001 From: edeso Date: Tue, 28 Nov 2017 21:29:56 +0100 Subject: [PATCH 1/3] 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 From c03e78e94bc002c0e626579ba4d942eb97d9603e Mon Sep 17 00:00:00 2001 From: edeso Date: Fri, 1 Dec 2017 17:43:07 +0100 Subject: [PATCH 2/3] use make absPath check for spaces and err out --- Makefile | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) mode change 100644 => 100755 Makefile diff --git a/Makefile b/Makefile old mode 100644 new mode 100755 index e10c394f..9a00f511 --- a/Makefile +++ b/Makefile @@ -12,13 +12,19 @@ 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)) +# check for spaces & resolve possibly relative paths to make vars reusable in subfolder packages +define Absolve + ifneq (1,$(words [$($(1))])) + $$(error $(1) must not contain spaces!) + endif + override $(1) = $(abspath $($(1))) +endef + +$(eval $(call Absolve,GLUON_SITEDIR)) +$(eval $(call Absolve,GLUON_TMPDIR)) +$(eval $(call Absolve,GLUON_OUTPUTDIR)) +$(eval $(call Absolve,GLUON_IMAGEDIR)) +$(eval $(call Absolve,GLUON_PACKAGEDIR)) ifeq ($(V),s) $(info GLUON_SITEDIR="$(GLUON_SITEDIR)") @@ -28,7 +34,6 @@ $(info GLUON_IMAGEDIR="$(GLUON_IMAGEDIR)") $(info GLUON_PACKAGEDIR="$(GLUON_PACKAGEDIR)") endif - export GLUON_TMPDIR GLUON_IMAGEDIR GLUON_PACKAGEDIR DEVICES From a18f42a24019f3d27248ccce480adc550d41b790 Mon Sep 17 00:00:00 2001 From: edeso Date: Fri, 1 Dec 2017 17:44:25 +0100 Subject: [PATCH 3/3] use make absPath check for spaces and err out --- Makefile | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 Makefile diff --git a/Makefile b/Makefile old mode 100755 new mode 100644