]> rtime.felk.cvut.cz Git - omk.git/commitdiff
sysless and gcc: use make if for decision between C and C++ linker.
authorPavel Pisa <pisa@cmp.felk.cvut.cz>
Wed, 9 Jan 2019 23:30:13 +0000 (00:30 +0100)
committerPavel Pisa <pisa@cmp.felk.cvut.cz>
Wed, 9 Jan 2019 23:30:13 +0000 (00:30 +0100)
Use of echo leads to problem when strings protected by aposthrophes
are used in TARGET_ARCH variable. FOr example

TARGET_ARCH += '-D__weak=__attribute__((weak))'

Apostrophes are stripped by echo and then brackets are
misinterpreted by shell.

Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
snippets/gcc.omk

index 75ce844ae15938a923c94c9bfef03aaa19519f5a..b9c3f0c0fd2adc00e7d657565df6a54164ab635c 100644 (file)
@@ -41,6 +41,7 @@ LIB_PREF = lib
 ASM_EXT = .S
 
 CC = $(CROSS_COMPILE)gcc
+CXX = $(CROSS_COMPILE)g++
 LINK = $(CROSS_COMPILE)ld
 AR = $(CROSS_COMPILE)ar
 OBJCOPY = $(CROSS_COMPILE)objcopy
@@ -139,9 +140,9 @@ endif
 
 $(2)/$(1)$(3:%=-%): $$($(1)_OBJS)
        @$(QUIET_CMD_ECHO) "  LINK    $$@"
-       $(Q) $$(shell if [ -z "$$(filter %.cc,$$($(1)_SOURCES))" ] ; \
-         then echo $$(CC)  $$(CPPFLAGS) $$(OMK_CPPFLAGS) $$(OMK_CFLAGS)   $$(CFLAGS) ; \
-         else echo $$(CXX) $$(CPPFLAGS) $$(OMK_CPPFLAGS) $$(OMK_CXXFLAGS) $$(CXXFLAGS) ; fi) \
+       $(Q) $$(if $$(filter %.cc,$$($(1)_SOURCES)) , \
+         $$(CXX) $$(CPPFLAGS) $$(OMK_CPPFLAGS) $$(OMK_CXXFLAGS) $$(CXXFLAGS) , \
+         $$(CC)  $$(CPPFLAGS) $$(OMK_CPPFLAGS) $$(OMK_CFLAGS)   $$(CFLAGS) ) \
          $$(OMK_LDFLAGS) $$(LDFLAGS) $$($(1)$(3:%=-%)_LDFLAGS) -Wl,-Map,$(1)$(3:%=-%).map \
          $$($(1)_OBJS) $$($(1)_MOREOBJS) $$(LOADLIBES) $$($(1)_LIBS:%=-l%) \
          -o $$@