gpt4 book ai didi

linux - 是否可以有条件地在 makefile 中定义宏?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:00:54 25 4
gpt4 key购买 nike

我正在编写一个必须与 LINUX 和 HP-UX 操作系统兼容的 makefile。我知道 LINUX 中的某些 shell 命令与 HP-UX 不兼容。因此,我想知道是否有可能有条件地声明宏,以便如果确定操作系统是 HP-UX,宏将以某种方式定义,如果操作系统是 LINUX,它将以不同的方式定义?

OS       = `uname`
myOS = Linux


ifeq ($(OS),$(myOS))
message = "HELLO LINUX"
else
message = "HELLO FOO"
endif

all: install

install:
echo $(message)

我试过使用上面的方法;但是,似乎 ifeq 确定 OS 和 myOS 不一样。它们都应该是“Linux”,但它输出的是 else block 。

最佳答案

你应该使用 $(shell ...) 来执行 SHELL 命令,这会起作用

OS       := $(shell uname)
myOS := Linux


ifeq ($(OS),$(myOS))
message := "HELLO LINUX"
else
message := "HELLO FOO"
endif

all: install

install:
echo $(message)

关于linux - 是否可以有条件地在 makefile 中定义宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10950292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com