ifneq在makefile中的使用举例
时间: 2024-10-15 13:19:47 浏览: 27
跟我写makeFile<陈皓>
在Makefile中,`ifneq`指令通常用于条件分支,当两个表达式不相等时执行某些操作。举个例子,如果你想创建一个自定义的编译步骤,只对特定的Linux内核版本(如4.9,4.14或4.19)应用,可以这样写:
```makefile
KERNEL_VERSIONS := kernel-4.9 kernel-4.14 kernel-4.19
ifeq ($(filter $(strip $(KERNEL_VERSIONS)),$(shell uname -r)..."
# 执行针对特定内核版本的特殊编译命令
else
build_step:
@echo "Unsupported kernel version $(uname -r). Skipping custom build."
endif
```
在这个例子中,`uname -r`命令获取当前系统的内核版本,然后`filter`函数和`strip`一起过滤掉`KERNEL_VERSIONS`中的空格并比较。如果系统内核版本匹配列表中的任何一个,`build_step`目标就会执行相应的定制编译命令,否则会提示用户正在使用的内核版本不受支持。
阅读全文