From 8f5d62f2ad01be735bd9ee149522156f18d63493 Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Mon, 1 Aug 2016 21:05:35 +0000 Subject: [PATCH] install-files.mk: Allow recursive installation of directories Signed-off-by: Jan Lindemann --- make/install-files.mk | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/make/install-files.mk b/make/install-files.mk index a8da9747..1b5fd67f 100644 --- a/make/install-files.mk +++ b/make/install-files.mk @@ -1,8 +1,12 @@ -LOCAL_FILES ?= $(filter-out CVS .git Makefile %.done, $(wildcard *)) -TARGET_DIR ?= $(PREFIX)/share -TARGET_MODE ?= 440 -TARGET_OWNER ?= root -TARGET_GROUP ?= root +LOCAL_FILES ?= $(filter-out CVS .git Makefile %.done, $(wildcard *)) +TARGET_DIR ?= $(PREFIX)/share +TARGET_MODE ?= 440 +TARGET_OWNER ?= root +TARGET_GROUP ?= root +TARGET_DIR_MODE ?= 770 +TARGET_DIR_OWNER ?= root +TARGET_DIR_GROUP ?= root +SOURCE_BASE ?= . include $(MODDIR)/make/defs.mk @@ -15,7 +19,13 @@ done.clean: rm -f *.done install.done: - mkdir -p $(TARGET_DIR) - $(INSTALL) -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) $(LOCAL_FILES) $(TARGET_DIR)/ + for f in $(SOURCE_FILES); do \ + relpath=`realpath $$f --relative-to $(SOURCE_BASE)` ;\ + if [ -d $$f ]; then \ + $(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $(TARGET_DIR)/$$relpath ;\ + else \ + $(INSTALL) -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) $$f $(TARGET_DIR)/$$relpath ;\ + fi ;\ + done touch $@