2012年6月8日金曜日

Linux ローダブルモジュールの Makefileで


LinuxのローダブルモジュールのMakefileでよくあるサンプル。


obj-m   := foo.o


modules:
        $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules


clean:
        $(MAKE) -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean


みたいなやつ。
$(PWD) の部分は $(CURDIR) の方がいいですね。
再帰的make の中に組み込むと動かなくなってしまうので。
詳細理由は、一つ前の話題「make の -C オプションについて」で述べています。

というわけで、「Linuxデバイスドライバプログラミング」に載っているMakefileのサンプルはよくないですね。

O'REILLY の「Linuxデバイスドライバ」のサンプルの方は

PWD := $(shell pwd)

の1行が入っているのでOKです。

0 件のコメント:

コメントを投稿