From 231f3617844eda2c823d723c2391223b3ed457c5 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Thu, 12 May 2011 15:09:26 +0200 Subject: [PATCH] Allow use alternative to default system SED program - SED4OMK. This is required on BSD system derivatives (i.e. Apple MAC OS X) where default sed program or its default mode does not interpret vertical bar/pipe as text alternatives separator. Signed-off-by: Pavel Pisa --- snippets/base.omk | 25 +++++++++++++++++++++---- snippets/config_h.omk | 6 +++--- snippets/gcc.omk | 10 +++++----- snippets/keil16x.omk | 8 ++++---- snippets/keil51.omk | 6 +++--- snippets/linux.omk | 18 +++++++++--------- snippets/rtems.omk | 10 +++++----- snippets/sdcc.omk | 2 +- snippets/sources-list.omk | 8 ++++---- snippets/vxworks.omk | 2 +- 10 files changed, 56 insertions(+), 39 deletions(-) diff --git a/snippets/base.omk b/snippets/base.omk index 69a1d85..ff5d24d 100644 --- a/snippets/base.omk +++ b/snippets/base.omk @@ -21,6 +21,23 @@ ifndef MAKERULES_DIR MAKERULES_DIR := $(abspath $(dir $(filter %Makefile.rules,$(MAKEFILE_LIST)))) endif +# The $(SED4OMK) command for BSD based systems requires -E option to allow +# extended regular expressions + +SED4OMK ?= sed +ifneq ($(shell ( echo A | $(SED4OMK) -n -e 's/A\|B/y/p' )),y) + SED4OMK := $(SED4OMK) -E + ifneq ($(shell ( echo A | $(SED4OMK) -n -e 's/A\|B/y/p' )),y) + SED4OMK := gsed + endif + ifneq ($(shell ( echo A | $(SED4OMK) -n -e 's/A\|B/y/p' )),y) + SED4OMK := gsed -E + endif + ifneq ($(shell ( echo A | $(SED4OMK) -n -e 's/A\|B/y/p' )),y) + $(error No SED program suitable for OMK found) + endif +endif + # OUTPUT_DIR is the place where _compiled, _build and possible other # files/directories are created. By default is the same as # $(MAKERULES_DIR). @@ -91,7 +108,7 @@ endif CONFIG_FILES ?= $(wildcard $(CONFIG_FILE)-default) $(wildcard $(OUTPUT_DIR)/config.target) $(wildcard $(CONFIG_FILE)) -export SOURCES_DIR MAKERULES_DIR RELATIVE_DIR INVOCATION_DIR +export SED4OMK SOURCES_DIR MAKERULES_DIR RELATIVE_DIR INVOCATION_DIR export CONFIG_FILE CONFIG_FILES OMK_SERIALIZE_INCLUDED OMK_VERBOSE OMK_SILENT # OMK_SERIALIZE_INCLUDED has to be exported to submakes because passes # must to be serialized only in the toplevel make. @@ -103,7 +120,7 @@ endif override RELATIVE_DIR := $(RELATIVE_DIR:/%=%) override RELATIVE_DIR := $(RELATIVE_DIR:\\%=%) #$(warning RELATIVE_DIR = "$(RELATIVE_DIR)") -#override BACK2TOP_DIR := $(shell echo $(RELATIVE_DIR)/ | sed -e 's_//_/_g' -e 's_/\./_/_g' -e 's_^\./__g' -e 's_\([^/][^/]*\)_.._g' -e 's_/$$__') +#override BACK2TOP_DIR := $(shell echo $(RELATIVE_DIR)/ | $(SED4OMK) -e 's_//_/_g' -e 's_/\./_/_g' -e 's_^\./__g' -e 's_\([^/][^/]*\)_.._g' -e 's_/$$__') #$(warning BACK2TOP_DIR = "$(BACK2TOP_DIR)") #$(warning SOURCES_DIR = "$(SOURCES_DIR)") @@ -162,7 +179,7 @@ print-hints: @echo 'Use "make V=1" to see the verbose compile lines.' check-make-ver: - @GOOD_MAKE_VERSION=`echo $(MAKE_VERSION) | sed -n -e 's/^[4-9]\..*\|^3\.9[0-9].*\|^3\.8[1-9].*/y/p'` ; \ + @GOOD_MAKE_VERSION=`echo $(MAKE_VERSION) | $(SED4OMK) -n -e 's/^[4-9]\..*\|^3\.9[0-9].*\|^3\.8[1-9].*/y/p'` ; \ if [ x$$GOOD_MAKE_VERSION != xy ] ; then \ echo "Your make program version is too old and does not support OMK system." ; \ echo "Please update to make program 3.81beta1 or newer." ; exit 1 ; \ @@ -272,7 +289,7 @@ default-config-pass-local: # @echo Default config for $(RELATIVE_DIR) @echo "# Config for $(RELATIVE_DIR)" >> "$(CONFIG_FILE)-default" @$(foreach x, $(default_CONFIG), echo '$(x)' | \ - sed -e 's/^[^=]*=x$$/#\0/' >> "$(CONFIG_FILE)-default" ; ) + $(SED4OMK) -e 's/^[^=]*=x$$/#\0/' >> "$(CONFIG_FILE)-default" ; ) omkize: diff --git a/snippets/config_h.omk b/snippets/config_h.omk index a7d46b1..3d78d43 100644 --- a/snippets/config_h.omk +++ b/snippets/config_h.omk @@ -20,10 +20,10 @@ $(addprefix $(1)/,$(notdir $(addsuffix .stamp,$(2)))) : $(CONFIG_FILES) $(if $(DOXYGEN),@echo "/** @file */" >> "$(2).tmp") @echo "#ifndef $(4)" >> "$(2).tmp" @echo "#define $(4)" >> "$(2).tmp" - @( $(foreach x, $(shell echo '$($(3))' | tr 'x\t ' 'x\n\n' | sed -e 's/^\([^ =]*\)\(=[^ ]\+\|\)$$/\1/' ), \ + @( $(foreach x, $(shell echo '$($(3))' | tr 'x\t ' 'x\n\n' | $(SED4OMK) -e 's/^\([^ =]*\)\(=[^ ]\+\|\)$$/\1/' ), \ echo '$(x).$($(x))' ; ) echo ; ) | \ - sed -e '/^[^.]*\.n$$$$/d' -e '/^[^.]*\.$$$$/d' -e 's/^\([^.]*\)\.[ym]$$$$/\1.1/' | \ - sed -n -e 's/^\([^.]*\)\.\(.*\)$$$$/#define \1 \2/p' \ + $(SED4OMK) -e '/^[^.]*\.n$$$$/d' -e '/^[^.]*\.$$$$/d' -e 's/^\([^.]*\)\.[ym]$$$$/\1.1/' | \ + $(SED4OMK) -n -e 's/^\([^.]*\)\.\(.*\)$$$$/#define \1 \2/p' \ >> "$(2).tmp" @echo "#endif /*$(4)*/" >> "$(2).tmp" @touch "$$@" diff --git a/snippets/gcc.omk b/snippets/gcc.omk index dee8140..dc24bc1 100644 --- a/snippets/gcc.omk +++ b/snippets/gcc.omk @@ -78,7 +78,7 @@ S_o_COMPILE = $$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ # Check GCC version for user build ifndef CC_MAJOR_VERSION -CC_MAJOR_VERSION = $$(shell $$(CC) -dumpversion | sed -e 's/\([^.]\)\..*/\1/') +CC_MAJOR_VERSION = $$(shell $$(CC) -dumpversion | $(SED4OMK) -e 's/\([^.]\)\..*/\1/') endif # Prepare suitable define for dependency building ifeq ($$(CC_MAJOR_VERSION),2) @@ -134,15 +134,15 @@ $(2): $(1) # Bellow, the tricks with redirection are for shells without set -o pipefail # (see http://www.mail-archive.com/dash@vger.kernel.org/msg00149.html) $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) $$<; echo $$$$? >&4; }\ - | sed -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2cond_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ + | $(SED4OMK) -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2cond_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ | sort >>$$@.tmp` && exit $$$$status $(Q)echo >>$$@.tmp '/* Defines from the values defined to symbols in hexadecimal format */' $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) $$<; echo $$$$? >&4; }\ - | sed -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2def_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ + | $(SED4OMK) -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2def_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ | sort >>$$@.tmp` && exit $$$$status $(Q)echo >>$$@.tmp '/* Defines from the values defined to symbols in decimal format */' $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) -td $$<; echo $$$$? >&4; }\ - | sed -n 's/^ *0*\(0\|[1-9][0-9]*\) *A *_cmetric2defdec_\([A-Za-z_0-9]*\) */#define \2 \1/p' \ + | $(SED4OMK) -n 's/^ *0*\(0\|[1-9][0-9]*\) *A *_cmetric2defdec_\([A-Za-z_0-9]*\) */#define \2 \1/p' \ | sort >>$$@.tmp` && exit $$$$status $(Q)mv $$@.tmp $$@ endef @@ -175,7 +175,7 @@ $(2)/$(1)$(3:%=-%): $$($(1)_OBJS) @echo "$(2)/$(1)$(3:%=-%): \\" >$(OBJS_DIR)/$(1)$(3:%=-%).exe.d @if [ -n "$(LD_SCRIPT)" ]; then \ echo " $(LIB_DIR)/$(LD_SCRIPT).ld$(3:%=-%) \\" >>$(OBJS_DIR)/$(1)$(3:%=-%).exe.d; fi - @sed -n -e 's|^LOAD \(.*\)$$$$| \1 \&|p' $(OBJS_DIR)/$(1)$(3:%=-%).map|tr '&' '\134' >>$(OBJS_DIR)/$(1)$(3:%=-%).exe.d + @$(SED4OMK) -n -e 's|^LOAD \(.*\)$$$$| \1 \&|p' $(OBJS_DIR)/$(1)$(3:%=-%).map|tr '&' '\134' >>$(OBJS_DIR)/$(1)$(3:%=-%).exe.d @echo >>$(OBJS_DIR)/$(1).exe.d endef diff --git a/snippets/keil16x.omk b/snippets/keil16x.omk index fd6a6e7..b8f741c 100644 --- a/snippets/keil16x.omk +++ b/snippets/keil16x.omk @@ -16,7 +16,7 @@ clean-keil: $(Q)rm -f $(USER_OBJS_DIR)/*.obj $(USER_OBJS_DIR)/*.lst -FILTER_KEIL_OUTPUT = | sed -e '/COPYRIGHT KEIL/d' -e '/^[ \r\t]*$$$$/d' +FILTER_KEIL_OUTPUT = | $(SED4OMK) -e '/COPYRIGHT KEIL/d' -e '/^[ \r\t]*$$$$/d' FILTER_KEIL_CC_OUTPUT = $(FILTER_KEIL_OUTPUT) -e '/C166 COMPIL/d' FILTER_KEIL_LINKER_OUTPUT = $(FILTER_KEIL_OUTPUT) -e '/L166 LINKER/d' -e '/^".*",\?\r$$$$/,/\(L166 RUN COMPLETE\|ERROR\)/d' FILTER_KEIL_LIB_OUTPUT = $(FILTER_KEIL_OUTPUT) -e '/LIB166 LIBRARY/d' @@ -36,7 +36,7 @@ LI = l166 ifndef DEFAULT_INCLUDES override DEFAULT_INCLUDES = $$(INCLUDES) -I $$(INCLUDE_DIR) -I $$(SOURCES_DIR) \ - $$(shell echo $$$${C166INC} | sed -e 's/;/ -I /g' -e 's/^\(.\)/-I \1/') + $$(shell echo $$$${C166INC} | $(SED4OMK) -e 's/;/ -I /g' -e 's/^\(.\)/-I \1/') endif #$$(warning DEFAULT_INCLUDES = $$(DEFAULT_INCLUDES)) @@ -52,7 +52,7 @@ define COMPILE_c_o_template $(2): $(1) $$(GEN_HEADERS) @$(QUIET_CMD_ECHO) " CC $$@" # Export include paths in an environment variable - $(Q)export C166INC=`echo '$$(shell cygpath -w $$(subst -I,,$$(DEFAULT_INCLUDES)))'|sed -e "s/ \+/;/g"`; \ + $(Q)export C166INC=`echo '$$(shell cygpath -w $$(subst -I,,$$(DEFAULT_INCLUDES)))'|$(SED4OMK) -e "s/ \+/;/g"`; \ $$(c_o_COMPILE) $(3) '$$(shell cygpath -w $$<)' 'OBJECT($$@)' 'PRINT($$(@:%$$(OBJ_EXT)=%.lst))' '$$(CCDIRECTIVES)' $(FILTER_KEIL_CC_OUTPUT); \ EL=$$$$?; if [ $$$$EL -le 1 ] ; then touch "$$@.d" ; \ else echo ERRORLEVEL $$$$EL ; exit 1; \ @@ -110,7 +110,7 @@ $(2)/$(1): $$($(1)_OBJS) $$(LIN_FILE:%=$$(USER_LIB_DIR)/%) $$(lib_LOADLIBES:%=$$(USER_LIB_DIR)/%$$(LIB_EXT)) \ $$($(1)_LIBS:%=$$(USER_LIB_DIR)/%$$(LIB_EXT)) \ $$(STARTUP_CODE:%=$$(USER_LIB_DIR)/%)\ - | sed -e 's/\(.*\)/"\1"/' -e '$$$$! s/$$$$/,/' > $(1).lnp; \ + | $(SED4OMK) -e 's/\(.*\)/"\1"/' -e '$$$$! s/$$$$/,/' > $(1).lnp; \ echo TO '$$(shell cygpath -w $$@)' >> $(1).lnp; \ echo '$$(LIDIRECTIVES)' >> $(1).lnp; \ if [[ "$$(LIN_FILE)" ]]; then cat $$(USER_LIB_DIR)/$$(LIN_FILE) >> $(1).lnp; fi; \ diff --git a/snippets/keil51.omk b/snippets/keil51.omk index 80e0234..e0bf46d 100644 --- a/snippets/keil51.omk +++ b/snippets/keil51.omk @@ -30,7 +30,7 @@ define COMPILE_c_o_template $(2): $(1) $$(GEN_HEADERS) @$(QUIET_CMD_ECHO) " CC $$@" $(Q) cp $$< .;\ - export C51INC=`echo "$$(DEFAULT_INCLUDES)" | sed -e 's/-I//' -e 's/-I/;/g' -e 's/ //g'`;\ + export C51INC=`echo "$$(DEFAULT_INCLUDES)" | $(SED4OMK) -e 's/-I//' -e 's/-I/;/g' -e 's/ //g'`;\ $$(c_o_COMPILE) $(3) `basename $$< ` SRC ; \ if [ $$$$? -le 1 ] ; \ then if a51 `basename $$< .c`.src ; \ @@ -81,7 +81,7 @@ define COMPILE_c_o_template $(2): $(1) $$(GEN_HEADERS) @$(QUIET_CMD_ECHO) " CC $$@" $(Q) cp $$< .;\ - export C51INC=`echo "$$(DEFAULT_INCLUDES)" | sed -e 's/-I//' -e 's/-I/;/g' -e 's/ //g'`;\ + export C51INC=`echo "$$(DEFAULT_INCLUDES)" | $(SED4OMK) -e 's/-I//' -e 's/-I/;/g' -e 's/ //g'`;\ $$(c_o_COMPILE) $(3) `basename $$< ` SRC ; \ if [ $$$$? -le 1 ] ; \ then if a51 `basename $$< .c`.src ; \ @@ -143,7 +143,7 @@ $(2)/$(1): $$($(1)_OBJS) $(Q) \ export C51LIB="$${C51LIB};$(USER_LIB_DIR)"; \ export LI_FILES="$$($(1)_OBJS) $$(lib_LOADLIBES:%=%$$(LIB_EXT))"; \ - export LI_FILES="`echo "$$$${LI_FILES}" | sed -e 's/\(.\) \(.\)/\1,\2/g'`";\ + export LI_FILES="`echo "$$$${LI_FILES}" | $(SED4OMK) -e 's/\(.\) \(.\)/\1,\2/g'`";\ $$(LI) $$$${LI_FILES} endef diff --git a/snippets/linux.omk b/snippets/linux.omk index b2ae836..7868aa3 100644 --- a/snippets/linux.omk +++ b/snippets/linux.omk @@ -184,7 +184,7 @@ idl_COMPILE = $(IDL_COMPILER) # Check GCC version for user build ifndef CC_MAJOR_VERSION -CC_MAJOR_VERSION := $(shell $(CC) -dumpversion | sed -e 's/\([^.]\)\..*/\1/') +CC_MAJOR_VERSION := $(shell $(CC) -dumpversion | $(SED4OMK) -e 's/\([^.]\)\..*/\1/') endif # Prepare suitable define for dependency building ifeq ($(CC_MAJOR_VERSION),2) @@ -240,15 +240,15 @@ $(2): $(1) # Bellow, the tricks with redirection are for shells without set -o pipefail # (see http://www.mail-archive.com/dash@vger.kernel.org/msg00149.html) $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) $$<; echo $$$$? >&4; }\ - | sed -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2cond_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ + | $(SED4OMK) -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2cond_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ | sort >>$$@.tmp` && exit $$$$status $(Q)echo >>$$@.tmp '/* Defines from the values defined to symbols in hexadecimal format */' $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) $$<; echo $$$$? >&4; }\ - | sed -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2def_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ + | $(SED4OMK) -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2def_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ | sort >>$$@.tmp` && exit $$$$status $(Q)echo >>$$@.tmp '/* Defines from the values defined to symbols in decimal format */' $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) -td $$<; echo $$$$? >&4; }\ - | sed -n 's/^ *0*\(0\|[1-9][0-9]*\) *A *_cmetric2defdec_\([A-Za-z_0-9]*\) */#define \2 \1/p' \ + | $(SED4OMK) -n 's/^ *0*\(0\|[1-9][0-9]*\) *A *_cmetric2defdec_\([A-Za-z_0-9]*\) */#define \2 \1/p' \ | sort >>$$@.tmp` && exit $$$$status $(Q)mv $$@.tmp $$@ endef @@ -288,7 +288,7 @@ $(2)/$(1)$(3): $$($(1)_OBJS) $(Q) $$(if $$(filter %.cc,$$($(1)_SOURCES:%.cxx=%.cc)),$$(CXX),$$(CC)) \ $$($(1)_OBJS) $$($(1)_LIBS:%=-l%) $$(LOADLIBES) $$(LDFLAGS) $$($(1)_LDFLAGS) -Wl,-rpath-link,$(USER_LIB_DIR) -Wl,-Map,$(USER_OBJS_DIR)/$(1).exe.map -o $$@ @echo "$(2)/$(1)$(3): \\" >$(USER_OBJS_DIR)/$(1).exe.d - @sed -n -e 's|^LOAD \(.*\)$$$$| \1 \&|p' $(USER_OBJS_DIR)/$(1).exe.map|tr '&' '\134' >>$(USER_OBJS_DIR)/$(1).exe.d + @$(SED4OMK) -n -e 's|^LOAD \(.*\)$$$$| \1 \&|p' $(USER_OBJS_DIR)/$(1).exe.map|tr '&' '\134' >>$(USER_OBJS_DIR)/$(1).exe.d @echo >>$(USER_OBJS_DIR)/$(1).exe.d endef @@ -434,7 +434,7 @@ ifeq ($(CONFIG_RTLINUX),y) include $(RTL_DIR)/rtl.mk KERN_CC = $(CC) -kern_GCCLIB_DIR=$(shell LANG=C LC_ALL=C LC_MESSAGES=C $(CC) -print-search-dirs | sed -n -e 's/^install: \(.*\)$$/\1/p' ) +kern_GCCLIB_DIR=$(shell LANG=C LC_ALL=C LC_MESSAGES=C $(CC) -print-search-dirs | $(SED4OMK) -n -e 's/^install: \(.*\)$$/\1/p' ) INCLUDES := -I $(KERN_INCLUDE_DIR) $(INCLUDE) $(rtlinux_INCLUDES) $(kernel_INCLUDES) #-DEXPORT_NO_SYMBOLS c_o_kern_COMPILE = $(KERN_CC) -idirafter $(kern_GCCLIB_DIR)/include $(INCLUDES) $(CFLAGS) -DOMK_FOR_KERNEL -DEXPORT_SYMTAB -nostdinc @@ -455,7 +455,7 @@ kernel_INCLUDES += -I $(KERN_INCLUDE_DIR) -I $(LINUX_DIR) -idirafter $(LINUX_SRC ifdef LINUX_CC KERN_CC = $(LINUX_CC) -kern_GCCLIB_DIR=$(shell LANG=C LC_ALL=C LC_MESSAGES=C $(LINUX_CC) -print-search-dirs | sed -n -e 's/^install: \(.*\)$$/\1/p' ) +kern_GCCLIB_DIR=$(shell LANG=C LC_ALL=C LC_MESSAGES=C $(LINUX_CC) -print-search-dirs | $(SED4OMK) -n -e 's/^install: \(.*\)$$/\1/p' ) else KERN_CC = echo KERN_CC not defined - compilation skipped endif @@ -494,7 +494,7 @@ KERN_LOADLIBES += $(kernel_LOADLIBES:%=-l%) # Check GCC version for kernel part of build ifndef kern_CC_MAJOR_VERSION -kern_CC_MAJOR_VERSION := $(shell $(KERN_CC) -dumpversion | sed -e 's/\([^.]\)\..*/\1/') +kern_CC_MAJOR_VERSION := $(shell $(KERN_CC) -dumpversion | $(SED4OMK) -e 's/\([^.]\)\..*/\1/') endif # Prepare suitable define for dependency building ifeq ($(kern_CC_MAJOR_VERSION),2) @@ -627,7 +627,7 @@ $(2)/$(1)$(KERN_LINK_SUFFIX): $$($(1)_OBJS) @$(QUIET_CMD_ECHO) " LD [K] $$@" $(Q) $$(KERN_LD) $$(KERN_LDFLAGS) -r $$($(1)_OBJS) -L$$(kern_GCCLIB_DIR) $$($(1)_LIBS:%=-l%) $$(KERN_LOADLIBES) -Map $(KERN_OBJS_DIR)/$(1).mod.map -o $$@ @echo "$(2)/$(1)$(KERN_LINK_SUFFIX): \\" >$(KERN_OBJS_DIR)/$(1).mod.d - @sed -n -e 's/^LOAD \(.*\)$$$$/ \1 \\/p' $(KERN_OBJS_DIR)/$(1).mod.map >>$(KERN_OBJS_DIR)/$(1).mod.d + @$(SED4OMK) -n -e 's/^LOAD \(.*\)$$$$/ \1 \\/p' $(KERN_OBJS_DIR)/$(1).mod.map >>$(KERN_OBJS_DIR)/$(1).mod.d @echo >>$(KERN_OBJS_DIR)/$(1).mod.d @if [ "$(KERN_EXE_SUFFIX)" = ".ko" ] ; then \ echo $(1) >>$(KERN_MODPOST_DIR)/module-changes ; \ diff --git a/snippets/rtems.omk b/snippets/rtems.omk index eada992..97a123c 100644 --- a/snippets/rtems.omk +++ b/snippets/rtems.omk @@ -119,7 +119,7 @@ S_o_COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ # Check GCC version for user build ifndef CC_MAJOR_VERSION -CC_MAJOR_VERSION := $(shell $(CC) -dumpversion | sed -e 's/\([^.]\)\..*/\1/') +CC_MAJOR_VERSION := $(shell $(CC) -dumpversion | $(SED4OMK) -e 's/\([^.]\)\..*/\1/') endif # Prepare suitable define for dependency building ifeq ($(CC_MAJOR_VERSION),2) @@ -173,15 +173,15 @@ $(2): $(1) # Bellow, the tricks with redirection are for shells without set -o pipefail # (see http://www.mail-archive.com/dash@vger.kernel.org/msg00149.html) $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) $$<; echo $$$$? >&4; }\ - | sed -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2cond_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ + | $(SED4OMK) -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2cond_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ | sort >>$$@.tmp` && exit $$$$status $(Q)echo >>$$@.tmp '/* Defines from the values defined to symbols in hexadecimal format */' $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) $$<; echo $$$$? >&4; }\ - | sed -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2def_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ + | $(SED4OMK) -n 's/^ *0*\(0[0-9A-Fa-f]*\) *A *_cmetric2def_\([A-Za-z_0-9]*\) */#define \2 0x\1/p' \ | sort >>$$@.tmp` && exit $$$$status $(Q)echo >>$$@.tmp '/* Defines from the values defined to symbols in decimal format */' $(Q)exec 3>&1; status=`exec 4>&1 >&3; { $(NM) -td $$<; echo $$$$? >&4; }\ - | sed -n 's/^ *0*\(0\|[1-9][0-9]*\) *A *_cmetric2defdec_\([A-Za-z_0-9]*\) */#define \2 \1/p' \ + | $(SED4OMK) -n 's/^ *0*\(0\|[1-9][0-9]*\) *A *_cmetric2defdec_\([A-Za-z_0-9]*\) */#define \2 \1/p' \ | sort >>$$@.tmp` && exit $$$$status $(Q)mv $$@.tmp $$@ endef @@ -224,7 +224,7 @@ $(2)/$(1): $$($(1)_OBJS) $$(AM_LDFLAGS) $$(LDFLAGS) $$($(1)_OBJS) $$(LOADLIBES) $$($(1)_LIBS:%=-l%) \ -o $(2)/$(1) #@echo "$(2)/$(1): \\" >$(USER_OBJS_DIR)/$(1).exe.d -#@sed -n -e 's/^LOAD \(.*\)$$$$/ \1 \\/p' $(USER_OBJS_DIR)/$(1).exe.map >>$(USER_OBJS_DIR)/$(1).exe.d +#@$(SED4OMK) -n -e 's/^LOAD \(.*\)$$$$/ \1 \\/p' $(USER_OBJS_DIR)/$(1).exe.map >>$(USER_OBJS_DIR)/$(1).exe.d #@echo >>$(USER_OBJS_DIR)/$(1).exe.d #-Wl,-Map,$(USER_OBJS_DIR)/$(1).exe.map # FIXME: Why the map file was commented out? diff --git a/snippets/sdcc.omk b/snippets/sdcc.omk index 57ea650..f84b69d 100644 --- a/snippets/sdcc.omk +++ b/snippets/sdcc.omk @@ -317,7 +317,7 @@ include-pass-local: @$(foreach f, $(lib_LDSCRIPTS), cmp --quiet $(SOURCES_DIR)/$(f) $(USER_LIB_DIR)/$(notdir $(f)) \ || $(call cp_cmd,$(SOURCES_DIR)/$(f),$(USER_LIB_DIR)/$(notdir $(f))) || exit 1 ; ) @$(foreach f, $(asm_build_HEADERS), \ - srcfname=`echo '$(f)' | sed -e 's/^\(.*\)->.*$$/\1/'` ; destfname=`echo '$(f)' | sed -e 's/^.*->\(.*\)$$/\1/'` ; \ + srcfname=`echo '$(f)' | $(SED4OMK) -e 's/^\(.*\)->.*$$/\1/'` ; destfname=`echo '$(f)' | $(SED4OMK) -e 's/^.*->\(.*\)$$/\1/'` ; \ cmp --quiet $(SOURCES_DIR)/$${srcfname} $(USER_OBJS_DIR)/$${destfname} \ || ( mkdir -p `dirname $(USER_OBJS_DIR)/$${destfname}` && \ $(A51TOASX) $(SOURCES_DIR)/$${srcfname} $(USER_OBJS_DIR)/$${destfname} ) || exit 1 ; ) diff --git a/snippets/sources-list.omk b/snippets/sources-list.omk index 8f3cc48..cfb6704 100644 --- a/snippets/sources-list.omk +++ b/snippets/sources-list.omk @@ -30,7 +30,7 @@ $(SOURCES_LIST): $(CONFIG_FILES) $(shell find -name $(MAKEFILE_OMK)) @mv "$(SOURCES_LIST).tmp2" "$(SOURCES_LIST)" @echo "$(SOURCES_LIST): \\" > "$(SOURCES_LIST_D).tmp2" @cat "$(SOURCES_LIST_D).tmp"|grep -v "$(SOURCES_LIST_D).tmp"|sort|uniq|\ - sed -e 's/$$/\\/' >> "$(SOURCES_LIST_D).tmp2" + $(SED4OMK) -e 's/$$/\\/' >> "$(SOURCES_LIST_D).tmp2" @rm "$(SOURCES_LIST_D).tmp" @mv "$(SOURCES_LIST_D).tmp2" "$(SOURCES_LIST_D)" endif @@ -43,7 +43,7 @@ sources-list-pass-local: echo "$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))$(h)" >> "$(SOURCES_LIST).tmp";) @$(foreach ch,$(config_include_HEADERS), \ echo "$(USER_INCLUDE_DIR:$(OUTPUT_DIR)/$(addsuffix /,$(SOURCES_LIST_DIR))%=%)/$(ch)" >> "$(SOURCES_LIST).tmp";) - @$(foreach h,$(renamed_include_HEADERS),echo '$(h)'|sed -e 's|\(.*\)->.*|$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))\1|' >> "$(SOURCES_LIST).tmp";) + @$(foreach h,$(renamed_include_HEADERS),echo '$(h)'|$(SED4OMK) -e 's|\(.*\)->.*|$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))\1|' >> "$(SOURCES_LIST).tmp";) @$(foreach bin,$(lib_LIBRARIES) $(shared_LIBRARIES) $(bin_PROGRAMS) $(test_PROGRAMS) $(utils_PROGRAMS) \ $(kernel_LIBRARIES) $(rtlinux_LIBRARIES) $(kernel_MODULES),\ $(foreach src,$(filter-out %.o,$($(bin)_SOURCES)),echo "$(addsuffix /,$(RELATIVE_DIR:$(SOURCES_LIST_DIR)/%=%))$(src)" >> "$(SOURCES_LIST).tmp";)) @@ -66,7 +66,7 @@ export TAGS_CMD ifeq ($(MAKECMDGOALS),do-tags) .PHONY: do-tags -do-tags: $(shell sed -e '/^\#/d' $(SOURCES_LIST)) +do-tags: $(shell $(SED4OMK) -e '/^\#/d' $(SOURCES_LIST)) @$(QUIET_CMD_ECHO) " TAGS $(SOURCES_LIST_FN)" $(Q)$(TAGS_CMD) $^ endif @@ -75,6 +75,6 @@ endif cscope: $(SOURCES_LIST) @$(QUIET_CMD_ECHO) " CSCOPE < $(SOURCES_LIST_FN)" - $(Q)sed -e '/^#/d' $(SOURCES_LIST) > cscope.files + $(Q)$(SED4OMK) -e '/^#/d' $(SOURCES_LIST) > cscope.files $(Q)cscope -b -icscope.files #FIXME: see doc to -i in cscope(1) diff --git a/snippets/vxworks.omk b/snippets/vxworks.omk index 9013edf..17d7429 100644 --- a/snippets/vxworks.omk +++ b/snippets/vxworks.omk @@ -115,7 +115,7 @@ $(2)/$(1).vxe: # $(Q) $$(shell if [ -z "$$(filter %.cc,$$($(1)_SOURCES:%.cxx=%.cc))" ] ; then echo $$(CC) ; else echo $$(CXX) ; fi) \ # $$($(1)_OBJS) $$($(1)_LIBS:%=-l%) $$(LOADLIBES) $$(LDFLAGS) -Wl,-Map,$(USER_OBJS_DIR)/$(1).exe.map -o $(2)/$(1) # @echo "$(2)/$(1): \\" >$(USER_OBJS_DIR)/$(1).exe.d -# @sed -n -e 's/^LOAD \(.*\)$$$$/ \1 \\/p' $(USER_OBJS_DIR)/$(1).exe.map >>$(USER_OBJS_DIR)/$(1).exe.d +# @$(SED4OMK) -n -e 's/^LOAD \(.*\)$$$$/ \1 \\/p' $(USER_OBJS_DIR)/$(1).exe.map >>$(USER_OBJS_DIR)/$(1).exe.d # @echo >>$(USER_OBJS_DIR)/$(1).exe.d endef -- 2.39.2