2

私は、makefile を使用してツリー ソース ファイルを含めるようにカーネル モジュールをコンパイルするのは初めてです。いくつかのチュートリアルを読みましたが、まだ不足しています。詳細は省きますが、問題とその結果の makefile を説明するシナリオを作成しました。

dir1/main.c

dir2/subdir2/file.c
dir2/subdir2/include/file.h

以下は、結果のメイクファイルです

obj-m:=main.o
main-y := ../dir2/include/file.o
KDIR := /home/userid/rowboat-android/kernel/
PWD := $(shell pwd)


default:
      $(MAKE) ARCH=arm CROSS_COMPILE=/home/userid/rowboat-android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-  -C $(KDIR) SUBDIRS=$(PWD) modules

clean
      $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean

説明されているシナリオごとに、この Makefile は正しいですか?

参考資料では、ccflags-y と EXTRA_CFLAGS について説明しています。誰かがこれらのスイッチの目的を説明できますか?

私の主な参照元は

  1. 外部モジュールの構築
  2. Linux カーネル Makefile
  3. Stackoverflow に関する質問と回答

よろしくお願いいたします。

4

1 に答える 1