From 3ab571006ef76d839e1eb24d11c62630c9757dfb Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 7 Dec 2007 14:25:02 -0600 Subject: Yet another attempt to autodetect an appropriate "echo -e". --- src/Makefile | 1 + src/Makefile.housekeeping | 42 +++++++++++++++++++++++++++++++----------- 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/Makefile b/src/Makefile index a65ce2bc..181537ea 100644 --- a/src/Makefile +++ b/src/Makefile @@ -73,6 +73,7 @@ TOUCH ?= touch MKDIR ?= mkdir CP ?= cp ECHO ?= echo +PRINTF ?= printf PERL ?= /usr/bin/perl CC ?= $(CROSS_COMPILE)gcc AS ?= $(CROSS_COMPILE)as 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\"" -- cgit v1.2.3-55-g7522