我需要做这样的事情:
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)
不起作用.
使用 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)