GNU Make 实用功能与技巧解析
1. 关联数组与defined函数
在处理关联数组时,可使用defined函数来测试某个键是否存在。其使用方式如下:
defined Arguments: 1: Name of associative array 2: The key to test Returns: $(true) if the key is defined (i.e., not empty)defined函数返回一个布尔值,用于指示该键是否已定义。
2. 命名栈的使用
栈是一个有序的字符串列表(其中字符串不能包含空格)。在 GMSL 中,栈是内部存储的,并且和关联数组一样有名称。以下是一个使用栈遍历目录树的示例:
traverse-tree = $(foreach d,$(patsubst %/.,%,$(wildcard $1/*/.)), \ $(call push,dirs,$d)$(call traverse-tree,$d)) $(call traverse-tree,sources) dump-tree = $(if $(call sne,$(call depth,dirs),0),$(call pop,dirs) \ $(call dump-tree)) $(info $(call dump-tree))