カーネル モジュールとユーザー空間プログラムの両方で使用したいソース コードがあります。ソース ツリー内にそのコードのコピーを 1 つだけ保持したいと考えています。共有ソース ファイルを共有フォルダー (カーネル ツリーの外部) に置き、kbuild でこれらのファイルを外部ディレクトリからビルドし、モジュールのディレクトリ内に .o ファイルを生成することを考えていました。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 ディレクトリにコピーすることは可能ですが、それは醜い解決策のように思えます。より良い方法があるかどうか疑問に思っています。