dpkg --print-architecture
Makefileで利用可能ないくつかの回避策を見つけようとしています。 gnustepに対する以前のクエリへの応答を受け取らなかったので、前回失敗した解決策をもう一度やり直してください。私が読んだすべてのことから、私は次のことがうまくいくと思います。しかし、それは本当ではなく、非常に基本的なものを見逃しているようです。TARGETS
一度も設定されたことがないようです。これに関連するいくつかの情報は私が信じているものと一致しませんが、間違いなく間違った情報があります。以前これをプレイした人はいますか?
CPU=`dpkg --print-architecture`
amd64_TARGETS = one two
arm64_TARGETS = two
armhf_TARGETS = one
define SET_TARGETS =
TARGETS = $$($(1)_TARGETS)
endef
$(eval $(call SET_TARGETS,$(CPU)))
.PHONY: all
all: $(TARGETS)
echo all $(TARGETS)
one:
echo do one
two:
echo do two
答え1
中Makefile
、
CPU=`dpkg --print-architecture`
バックティックを含む変数をCPU
リテラル文字列に設定します`dpkg --print-architecture`
。必要な出力を実行してdpkg --print-architecture
設定するにはCPU
CPU=$(shell dpkg --print-architecture)
代わりに。
それからあなたMakefile
の意志は意図したとおりに働きます。
構成はTARGETS
次のように単純化できます。
amd64_TARGETS = one two
arm64_TARGETS = two
armhf_TARGETS = one
TARGETS = $($(CPU)_TARGETS)