8

私はこのようなことをする必要があります:

case `uname -m` in
i?86) echo "CFLAGS += -march=i486 -mtune=native" > configparms ;;
esac

しかし、特定のターゲットのmakefileでこれを行う必要があります。正規表現でif条件を作成する方法が見つかりませんでした。

私はこれを試しました:

ifeq ($(shell uname -m), i*86)

しかし、それは機能しません。平

ifeq ($(shell uname -m), i686)

動作しません。

4

3 に答える 3

6

Makefileの組み込み条件を使用する(ΩmegaのBashソリューションの反対として)

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

このアプローチを使用してGitタグを検証する方法についてはこちらをご覧くださいhttps://gist.github.com/jesugmz/a155b4a6686c4172048fabc6836c59e1

于 2019-03-05T15:32:01.047 に答える
-1

あなたはこれを行うことができます。case行の終わりをエスケープして、ステートメントが「1行に」あることを確認してください。

uname -m | grep -E 'i.86' >/dev/null \
case $$? in \
   0) echo Matches \
   ;; \
   1) echo No match \
   ;; \
esac

$?また、これは実際には、インタプリタに渡す前に拡張しようとするの$$?を防ぐためであることに注意してください。make

于 2012-07-04T11:47:15.120 に答える
-6
if uname -m | grep -Eq 'i.86'
then
  echo 'Yesss!'
fi
于 2012-07-04T11:56:01.900 に答える