53 lines
1.6 KiB
Makefile
53 lines
1.6 KiB
Makefile
SOURCE_FILES ?= $(filter-out CVS .git Makefile %.done, $(wildcard *))
|
|||
|
|
TARGET_DIR ?= $(PREFIX)/share
|
||
|
|||
|
|
SOURCE_BASE ?= .
|
||
|
|
|
||
RELPATHS = $(foreach f,$(SOURCE_FILES),$(shell realpath -s --relative-to $(SOURCE_BASE) $f))
|
|||
INSTALLED_FILES = $(addprefix $(TARGET_DIR)/,$(RELPATHS))
|
|||
|
install-files.mk: Include defs.mk in install-files.mk
Signed-off-by: Jan Lindemann <jan@janware.com>
|
include $(MODDIR)/make/defs.mk
|
||
|
|||
ifeq ($(DEVELOPMENT),true)
|
|||
TARGET_OWNER ?= $(shell id -un)
|
|||
TARGET_GROUP ?= $(shell id -gn)
|
|||
else
|
|||
TARGET_OWNER ?= root
|
|||
TARGET_GROUP ?= root
|
|||
endif
|
|||
TARGET_DIR_OWNER ?= $(TARGET_OWNER)
|
|||
TARGET_DIR_GROUP ?= $(TARGET_GROUP)
|
|||
TARGET_MODE ?= 440
|
|||
TARGET_DIR_MODE ?= 770
|
|||
|
|||
|
|
all:
|
||
install: install.done
|
|||
clean: done.clean
|
|||
distclean:
|
|||
|
|||
done.clean:
|
|||
$(RM) -f *.done
|
|||
|
|
|
||
$(TARGET_DIR)/%: $(SOURCE_BASE)/%
|
|||
@if [ -d $< ]; then \
|
|||
echo $(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $@ ;\
|
|||
$(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $@ ;\
|
|||
else \
|
|||
echo $(INSTALL) -p -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) $< $@ ;\
|
|||
$(INSTALL) -p -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) $< $@ ;\
|
|||
fi
|
|||
|
|||
install.done: $(INSTALLED_FILES)
|
|||
touch $@
|
|||
|
|||
# this used to work fine until an enormous $(SOURCE_FILES) was encountered
|
|||
install-old.done:
|
|||
|
|
for f in $(SOURCE_FILES); do \
|
||
relpath=`realpath -s --relative-to $(SOURCE_BASE) $$f` ;\
|
|||
|
|
if [ -d $$f ]; then \
|
||
$(INSTALL) -d -D -m $(TARGET_DIR_MODE) -o $(TARGET_DIR_OWNER) -g $(TARGET_DIR_GROUP) $(TARGET_DIR)/$$relpath ;\
|
|||
else \
|
|||
$(INSTALL) -p -D -m $(TARGET_MODE) -o $(TARGET_OWNER) -g $(TARGET_GROUP) $$f $(TARGET_DIR)/$$relpath ;\
|
|||
|
|
fi ;\
|
||
done
|
|||
|
|
touch $@
|
||
|