summaryrefslogtreecommitdiffstats
path: root/src/Makefile.housekeeping
diff options
context:
space:
mode:
authorMichael Brown2007-12-07 21:25:02 +0100
committerMichael Brown2007-12-07 21:25:02 +0100
commit3ab571006ef76d839e1eb24d11c62630c9757dfb (patch)
tree807f5a916b3e8d01a4c375a7af6bc2179b4b139f /src/Makefile.housekeeping
parentIgnore .echocheck internal housekeeping file. (diff)
downloadipxe-3ab571006ef76d839e1eb24d11c62630c9757dfb.tar.gz
ipxe-3ab571006ef76d839e1eb24d11c62630c9757dfb.tar.xz
ipxe-3ab571006ef76d839e1eb24d11c62630c9757dfb.zip
Yet another attempt to autodetect an appropriate "echo -e".
Diffstat (limited to 'src/Makefile.housekeeping')
-rw-r--r--src/Makefile.housekeeping42
1 files changed, 31 insertions, 11 deletions
diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping
index 7ffa24ba..3694402b 100644
--- a/src/Makefile.housekeeping
+++ b/src/Makefile.housekeeping
@@ -41,27 +41,47 @@ VERYCLEANUP += .toolcheck
# Find a usable "echo -e" substitute.
#
-TAB := $(shell printf "\t")
-ifeq ($(shell echo '\t'),$(TAB))
-ECHO_E ?= echo
+TAB := $(shell $(PRINTF) '\t')
+ECHO_E_ECHO := $(ECHO)
+ECHO_E_ECHO_E := $(ECHO) -e
+ECHO_E_BIN_ECHO := /bin/echo
+ECHO_E_BIN_ECHO_E := /bin/echo -e
+ECHO_E_ECHO_TAB := $(shell $(ECHO_E_ECHO) '\t' | cat)
+ECHO_E_ECHO_E_TAB := $(shell $(ECHO_E_ECHO_E) '\t' | cat)
+ECHO_E_BIN_ECHO_TAB := $(shell $(ECHO_E_BIN_ECHO) '\t')
+ECHO_E_BIN_ECHO_E_TAB := $(shell $(ECHO_E_BIN_ECHO_E) '\t')
+
+ifeq ($(ECHO_E_ECHO_TAB),$(TAB))
+ECHO_E ?= $(ECHO_E_ECHO)
endif
-ifeq ($(shell echo -e '\t'),$(TAB))
-ECHO_E ?= echo -e
+ifeq ($(ECHO_E_ECHO_E_TAB),$(TAB))
+ECHO_E ?= $(ECHO_E_ECHO_E)
endif
-ifeq ($(shell /bin/echo '\t'),$(TAB))
-ECHO_E ?= /bin/echo
+ifeq ($(ECHO_E_BIN_ECHO_TAB),$(TAB))
+ECHO_E ?= $(ECHO_E_BIN_ECHO)
endif
-ifeq ($(shell /bin/echo -e '\t'),$(TAB))
-ECHO_E ?= /bin/echo -e
+ifeq ($(ECHO_E_BIN_ECHO_E_TAB),$(TAB))
+ECHO_E ?= $(ECHO_E_BIN_ECHO_E)
endif
+
.echocheck :
ifdef ECHO_E
- $(TOUCH) $@
+ @$(TOUCH) $@
else
- @echo "No usable \"echo -e\" substitute found"
+ @$(PRINTF) '%24s : x%sx\n' 'tab' '$(TAB)'
+ @$(PRINTF) '%24s : x%sx\n' '"$(ECHO_E_ECHO) \t"' \
+ '$(ECHO_E_ECHO_TAB)'
+ @$(PRINTF) '%24s : x%sx\n' '"$(ECHO_E_ECHO_E) \t"' \
+ '$(ECHO_E_ECHO_E_TAB)'
+ @$(PRINTF) '%24s : x%sx\n' '"$(ECHO_E_BIN_ECHO) \t"' \
+ '$(ECHO_E_BIN_ECHO_TAB)'
+ @$(PRINTF) '%24s : x%sx\n' '"$(ECHO_E_BIN_ECHO_E) \t"' \
+ '$(ECHO_E_BIN_ECHO_E_TAB)'
+ @$(ECHO) "No usable \"echo -e\" substitute found"
@exit 1
endif
VERYCLEANUP += .echocheck
+
echo :
@$(ECHO) "Using \"$(ECHO_E)\" for \"echo -e\""