我在使用KBUILD选择性地从不同的目录构建模块时遇到了麻烦 . 我有2个内核目录Kernel / kernel-XXX
让驱动程序目录结构如下所示
----kernel
| |
| |-----drivers
| |
| |-----boom
| |
| |----virtual_driver.c
| |----a.c
| |----b.c
| |----c.c
|
|---kernel-XXX
|
|-----drivers
|
|-----boom
|
|---virtual_driver_XXX.c
虚拟驱动程序需要a.c,b.c,c.c进行编译 . 我在kernel-XXX中有一个更新版本的virtual_driver_XXX.c,它还依赖于a.c,b.c,c.c
如何修改kernel / drivers / boom目录中的makefile以从kernel-XXX目录中获取virtual_directory_XXX.o . 这里的方法应该是什么 .
kernel / drivers / boom目录中的当前makefile如下所示 .
Makefile
obj-y += t.o
t-y += a.o
t-y += b.o
t-y += c.o
t-y += virtual_driver.o
obj-y += <...>.o
我想要类似的东西
Makefile
obj-y += t.o
t-y += a.o
t-y += b.o
t-y += c.o
if (a give condition)
t-y += virtual_driver_XXX.o
else
t-y += virtual_driver.o
obj-y += <...>.o
问题是我在kernel-XXX / drivers / boom中没有Makefile,因为我不知道如何使用kernel / drivers / boom目录中的a.o / b.o / c.o构建virtual_driver_XXX .