多个linux内核模块之间共用的C文件如何防止其多次编译?

如图,有A、B两个Linux内核模块,还有一个公共的common.c文件,两个模块都需要调用common.c里面的函数。

现在的情况是每次编译一个模块,common.c都需要编译一次,等于说我有十个模块共用common.c,那么common.c就要重复编译十次。

如何编写Makefile文件实现多个模块全部编译时,共用的common.c只编译一次?

 

把common.c做成动态链接库最方便