从 Makefile 中的源文件中排除目录?
Exlude Directory from Source Files in Makefile?
注意:我使用 Mingw Make。
基本上,我有一个包含以下源文件片段的 makefile:
SRC_FILES = $(wildcard $(SRC_DIR)/*.c $(SRC_DIR)/*/*.c $(SRC_DIR)/*/*/*.c)
SRC_FILES := $(filter-out $(SRC_DIR)/sys/mswin/win_main.c, $(SRC_FILES))
不是最漂亮的,我承认我还是个初学者,但它确实有效。但是,第二行显示了我想排除的内容。问题是,我目前必须对每个要排除的文件执行此操作。 (注意:我试过用 *.c 替换 win_main.c,但没有用)。
我想做的是从 SRC_FILES
中排除整个 'sys' 目录,但老实说我不确定如何执行此操作。我试图拥有:
SRC_FILES := $(filter-out $(SRC_DIR)/sys, $(SRC_FILES))
但这也没有用。老实说,我现在不确定这是否可能,但我希望我只是遗漏了一些东西。感谢您的帮助!
编辑:我知道项目结构本身并不理想,但这并不是重点,但是改进技巧当然值得赞赏,如果您需要任何其他信息来回答问题,请直接提问。
很简单; filter-out
将 % 模式作为参数:
SRC_FILES := $(filter-out $(SRC_DIR)/sys/%,$(SRC_FILES))
注意:我使用 Mingw Make。
基本上,我有一个包含以下源文件片段的 makefile:
SRC_FILES = $(wildcard $(SRC_DIR)/*.c $(SRC_DIR)/*/*.c $(SRC_DIR)/*/*/*.c)
SRC_FILES := $(filter-out $(SRC_DIR)/sys/mswin/win_main.c, $(SRC_FILES))
不是最漂亮的,我承认我还是个初学者,但它确实有效。但是,第二行显示了我想排除的内容。问题是,我目前必须对每个要排除的文件执行此操作。 (注意:我试过用 *.c 替换 win_main.c,但没有用)。
我想做的是从 SRC_FILES
中排除整个 'sys' 目录,但老实说我不确定如何执行此操作。我试图拥有:
SRC_FILES := $(filter-out $(SRC_DIR)/sys, $(SRC_FILES))
但这也没有用。老实说,我现在不确定这是否可能,但我希望我只是遗漏了一些东西。感谢您的帮助!
编辑:我知道项目结构本身并不理想,但这并不是重点,但是改进技巧当然值得赞赏,如果您需要任何其他信息来回答问题,请直接提问。
很简单; filter-out
将 % 模式作为参数:
SRC_FILES := $(filter-out $(SRC_DIR)/sys/%,$(SRC_FILES))