使用正则表达式创建文件'if'条件

Kro*_*ron 6 regex makefile

我需要做这样的事情:

case `uname -m` in
i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;;
esac
Run Code Online (Sandbox Code Playgroud)

但我需要在makefile中为特定目标执行此操作.我还没有找到一个用正则表达式创建if条件的方法.

我试过这个:

ifeq ($(shell uname -m), i*86)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.甚至

ifeq ($(shell uname -m), i686)
Run Code Online (Sandbox Code Playgroud)

不起作用.

jes*_*gmz 6

使用 Makefile 内置条件(与?mega 的 Bash 解决方案相反)

ifeq ($(shell uname -m | egrep "i.86"),) # empty result from egrep
    @echo "No match"
else
    @echo "Match"
endif
Run Code Online (Sandbox Code Playgroud)

请参阅此处使用此方法来验证 Git 标签https://gist.github.com/jesugmz/a155b4a6686c4172048fabc6836c59e1


Ωme*_*ega -6

if uname -m | grep -Eq 'i.86'
then
  echo 'Yesss!'
fi
Run Code Online (Sandbox Code Playgroud)

  • Makefile 语法与 bash 不同。您不能简单地嵌入 bash 代码。 (4认同)