jw-pkg/make/subtree.mk
Jan Lindemann 28dfd4d4d6 subtree.mk: Fix installation from tar archive
install target fails because the unpacked tar archive has no git
ls-files, fix that.

Signed-off-by: Jan Lindemann <jan@janware.com>
2014-07-21 11:46:24 +00:00

40 lines
1.3 KiB
Makefile

ifeq ($(DEVELOPMENT),false)
SUBTREE_OWNER ?= root
SUBTREE_GROUP ?= root
SUBTREE_MODE ?= 0644
SUBTREE_DIROWNER ?= root
SUBTREE_DIRGROUP ?= root
SUBTREE_DIRMODE ?= 0755
else
SUBTREE_OWNER ?= $(shell id -un)
SUBTREE_GROUP ?= $(shell id -gn)
SUBTREE_MODE ?= 0644
SUBTREE_DIROWNER ?= $(shell id -un)
SUBTREE_DIRGROUP ?= $(shell id -gn)
SUBTREE_DIRMODE ?= 0755
SUBTREE_INSTALL_PREFIX ?= /srv/www/proj/$(PROJECT)
endif
#ifeq ($(SUBTREE_SRC),)
#SUBTREE_SRC = $(shell find .)
#endif
SUBTREE_DIRS = $(shell for f in `git ls-files . || find | sed 's%/[^/]\+$$%%' | sort -u | grep -v Makefile`; do if [ -d "$$f" ]; then echo $$f; fi; done)
SUBTREE_FILES = $(shell for f in `git ls-files . || find | grep -v Makefile`; do if [ -f "$$f" ]; then echo $$f; fi; done)
INSTALLED_SUBTREE_DIRS = $(addprefix $(ENV_PREFIX)$(SUBTREE_INSTALL_PREFIX)/,$(SUBTREE_DIRS))
INSTALLED_SUBTREE_FILES = $(addprefix $(ENV_PREFIX)$(SUBTREE_INSTALL_PREFIX)/,$(SUBTREE_FILES))
include $(MODDIR)/make/defs.mk
all:
install: $(INSTALLED_SUBTREE_DIRS) $(INSTALLED_SUBTREE_FILES)
clean:
distclean:
$(INSTALLED_SUBTREE_DIRS):
$(INSTALL) -d -o $(SUBTREE_DIROWNER) -g $(SUBTREE_DIRGROUP) -m $(SUBTREE_DIRMODE) $@
$(ENV_PREFIX)$(SUBTREE_INSTALL_PREFIX)/%: %
$(INSTALL) -o $(SUBTREE_OWNER) -g $(SUBTREE_GROUP) -m $(SUBTREE_MODE) $< $@