2013-03-04 102 views
0

我有一些源代碼,我想用於內核模塊和用戶空間程序。我只想在源代碼樹中保留一份該代碼的副本。我正在考慮將共享源文件放在共享文件夾(內核樹之外),讓kbuild從外部目錄構建這些文件,並在模塊目錄內生成.o文件。使用kbuild從外部目錄中包含源文件是否有很好的方法?Kbuild - 包括來自外部目錄的源文件

我的目標目錄將是這個樣子:

+ linux 
| + drivers 
| + foo 
|  + Makefile 
|  + foomain.c 
|  + foomain.o 
|  + shared.o 
+ shared 
| + shared.c 
+ bar 
    + Makefile 
    + barmain.c 
    + barmain.o 
    + shared.o 

雖然有可能shared.c複製到foo目錄作爲構建過程的一部分,它似乎是一個醜陋的解決方案,我想知道是否有更好的方法。

回答

0

我認爲這是可能的。

在共享目錄下創建Makefile,該目錄可以支持爲用戶空間應用程序欄的內核模塊foo和shared.o構建shared.o。

這意味着要在Makefile中創建兩個不同的構建目標,這兩個目標可以具有相同的名稱,但需要使用諸如KERNEL_BUILD之類的宏來區別它們。