1. Fix out-of-build-tree support (hit a few snags).
2. Enable ${bindir} support.
Signed-off-by: Garrett Cooper <yanegomi@gmail.com>
diff --git a/Makefile b/Makefile
index 007b7a8..75e38dd 100644
--- a/Makefile
+++ b/Makefile
@@ -79,7 +79,11 @@
endif
define target_to_dir_dep_mapping
-$(1): | $$(abs_top_builddir)/$(patsubst %-,%,$(1))
+ifeq ($$(filter %-clean,$(1)),) # not *-clean
+$(1): | $$(abs_top_builddir)/$$(basename $$(subst -,.,$(1)))
+else # clean
+$(1):: | $$(abs_top_builddir)/$$(basename $$(subst -,.,$(1)))
+endif
endef
COMMON_TARGETS += testcases tools
@@ -105,7 +109,7 @@
INSTALL_DIR := $(DESTDIR)/$(prefix)
# build tree bootstrap targets and $(INSTALL_DIR) target.
-$(addprefix $(abs_top_builddir)/,$(BOOTSTRAP_TARGETS)) $(INSTALL_DIR):
+$(addprefix $(abs_top_builddir)/,$(BOOTSTRAP_TARGETS)) $(INSTALL_DIR) $(DESTDIR)/$(bindir):
mkdir -m 00755 -p "$@"
## Pattern based subtarget rules.
@@ -152,11 +156,13 @@
$(RM) -f Version
$(if $(DESTDIR)$(prefix),-$(RM) -Rf "$(INSTALL_DIR)")
-$(foreach tgt,$(eval $(call target_to_dir_dep_mapping,$(tgt))),\
+$(foreach tgt,\
$(MAKE_TARGETS) include-all lib-all $(CLEAN_TARGETS) \
- $(INSTALL_TARGETS) include-install lib-install)
+ $(INSTALL_TARGETS) include-install lib-install,\
+ $(eval $(call target_to_dir_dep_mapping,$(tgt))))
-SRCDIR_INSTALL_SCRIPTS := execltp IDcheck.sh runalltests.sh runltp runltplite.sh ver_linux
+BINDIR_INSTALL_SCRIPTS := execltp
+SRCDIR_INSTALL_SCRIPTS := IDcheck.sh runalltests.sh runltp runltplite.sh ver_linux
SRCDIR_INSTALL_READONLY := Version
SRCDIR_INSTALL_TARGETS := $(SRCDIR_INSTALL_SCRIPTS) $(SRCDIR_INSTALL_READONLY)
@@ -167,14 +173,18 @@
$(INSTALL_DIR)/Version: Version
install -m 00644 "$(top_builddir)/$(@F)" "$@"
-$(addprefix $(DESTDIR)/$(bindir)/,$(BINDIR_INSTALL_SCRIPTS)) \
+$(addprefix $(DESTDIR)/$(bindir)/,$(BINDIR_INSTALL_SCRIPTS)): %:
+ install -m 00755 "$(top_builddir)/$(@F)" "$@"
+
$(addprefix $(INSTALL_DIR)/,$(SRCDIR_INSTALL_SCRIPTS)): %:
install -m 00755 "$(top_srcdir)/$(@F)" "$@"
INSTALL_TARGETS += $(addprefix $(INSTALL_DIR)/,\
- $(SRCDIR_INSTALL_TARGETS))
+ $(SRCDIR_INSTALL_TARGETS))\
+ $(addprefix $(DESTDIR)/$(bindir)/,\
+ $(BINDIR_INSTALL_SCRIPTS))
-$(INSTALL_TARGETS): $(INSTALL_DIR)
+$(INSTALL_TARGETS): $(INSTALL_DIR) $(DESTDIR)/$(bindir)
## Install
install: $(INSTALL_TARGETS)