我正在使用共享源代码构建一组 Linux 内核模块。据我了解,Makefile 必须命名为“Makefile”,因此我必须使用相同的 Makefile 来构建两个不同的模块。如何在同一个 Makefile 中使用相同的源代码构建两个不同的模块,但使用两个不同的构建选项?
例如,我的模块被称为 module1 和 module2。所以我有以下行来定义它们:
obj-m := module1.o module2.o
在其他文件中,module1 和 module2 都需要使用相同的源文件code.c
,但使用不同的构建选项构建。例如,Makefile 包含以下几行:
module1-objs = module1_code.o other_code.o
module2-objs = module2_code.o other_code.o
我想要module1_code.o
并module2_code.o
从 code.c 构建,但有不同的选项。具体来说,我想要一个module1_code.o
定义了宏-DPREPROCEFFOR_FLAG=1
,并module2_code.o
在没有宏的情况下构建的。
据我了解,Linux 中使用的 Makefile 系统隐含地推断,对于名为“code.o”的目标文件,源文件名为“code.c”,那么我将如何实现呢?有可能吗?有一个更好的方法吗?