gpt4 book ai didi

makefile - 如何检测 GNU make 中使用的 shell?

转载 作者:行者123 更新时间:2023-12-05 04:12:20 25 4
gpt4 key购买 nike

如何检测 gnu make 将使用的 shell?我希望我的产品在以下平台上运行:

  • Linux
  • window
  • 带有 cygwin 的 Windows(请注意,在带有 cygwin 的 Windows 上,make 使用 cygwin shell)

然后我想检测 gcc 是否独立于操作系统存在于系统上。

最佳答案

到目前为止,我想出了这个解决方案:

# detect what shell is used
ifeq ($(findstring cmd.exe,$(SHELL)),cmd.exe)
$(info "shell Windows cmd.exe")
DEVNUL := NUL
WHICH := where
else
$(info "shell Bash")
DEVNUL := /dev/null
WHICH := which
endif

# detect platform independently if gcc is installed
ifeq ($(shell ${WHICH} gcc 2>${DEVNUL}),)
$(error "gcc is not in your system PATH")
else
$(info "gcc found")
endif

可选地,当我需要检测更多我可以使用的工具时:

EXECUTABLES = ls dd 
K := $(foreach myTestCommand,$(EXECUTABLES),\
$(if $(shell ${WHICH} $(myTestCommand) 2>${DEVNUL} ),\
$(myTestCommand) found,\
$(error "No $(myTestCommand) in PATH)))
$(info ${K})

关于makefile - 如何检测 GNU make 中使用的 shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40751021/

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