dpkg --print-architectureを使用してmakefileのビルドを制御します。

dpkg --print-architectureを使用してmakefileのビルドを制御します。

dpkg --print-architectureMakefileで利用可能ないくつかの回避策を見つけようとしています。 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)

関連情報