mirror of
ssh://git.janware.com/srv/git/janware/proj/jw-pkg
synced 2026-01-15 12:03:31 +01:00
54 lines
1.8 KiB
Makefile
54 lines
1.8 KiB
Makefile
SOURCE_FILES ?= $(filter-out CVS .git $(LOCAL_MKFILES) %.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))
|
|
|
|
include $(MODDIR)/make/defs.mk
|
|
include $(MODDIR)/make/dev-utils.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 [ -L "$<" -o -f "$<" ]; then \
|
|
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) "$<" "$@" ;\
|
|
else \
|
|
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) "$@" ;\
|
|
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 $@
|