david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

Yet another attempt to autodetect an appropriate "echo -e".

This commit is contained in:
Michael Brown 2007-12-07 14:25:02 -06:00
parent 27b414da81
commit 3ab571006e
2 changed files with 32 additions and 11 deletions

View File

@ -73,6 +73,7 @@ TOUCH ?= touch
MKDIR ?= mkdir MKDIR ?= mkdir
CP ?= cp CP ?= cp
ECHO ?= echo ECHO ?= echo
PRINTF ?= printf
PERL ?= /usr/bin/perl PERL ?= /usr/bin/perl
CC ?= $(CROSS_COMPILE)gcc CC ?= $(CROSS_COMPILE)gcc
AS ?= $(CROSS_COMPILE)as AS ?= $(CROSS_COMPILE)as

View File

@ -41,27 +41,47 @@ VERYCLEANUP += .toolcheck
# Find a usable "echo -e" substitute. # Find a usable "echo -e" substitute.
# #
TAB := $(shell printf "\t") TAB := $(shell $(PRINTF) '\t')
ifeq ($(shell echo '\t'),$(TAB)) ECHO_E_ECHO := $(ECHO)
ECHO_E ?= 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 endif
ifeq ($(shell echo -e '\t'),$(TAB)) ifeq ($(ECHO_E_ECHO_E_TAB),$(TAB))
ECHO_E ?= echo -e ECHO_E ?= $(ECHO_E_ECHO_E)
endif endif
ifeq ($(shell /bin/echo '\t'),$(TAB)) ifeq ($(ECHO_E_BIN_ECHO_TAB),$(TAB))
ECHO_E ?= /bin/echo ECHO_E ?= $(ECHO_E_BIN_ECHO)
endif endif
ifeq ($(shell /bin/echo -e '\t'),$(TAB)) ifeq ($(ECHO_E_BIN_ECHO_E_TAB),$(TAB))
ECHO_E ?= /bin/echo -e ECHO_E ?= $(ECHO_E_BIN_ECHO_E)
endif endif
.echocheck : .echocheck :
ifdef ECHO_E ifdef ECHO_E
$(TOUCH) $@ @$(TOUCH) $@
else 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 @exit 1
endif endif
VERYCLEANUP += .echocheck VERYCLEANUP += .echocheck
echo : echo :
@$(ECHO) "Using \"$(ECHO_E)\" for \"echo -e\"" @$(ECHO) "Using \"$(ECHO_E)\" for \"echo -e\""