
Ubuntu日本語フォーラム
ログインしていません。
学習のため、Ubuntu12.04上で簡単なデバイスドライバ"hello.c"を作成し、makeしようとしましたが
"make: `all' に対して行うべき事はありません."と言われてしまいます。
ソース"hello.c"は、
http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html
の"hello.c"を参考にしました。
また、Makefileの内容は下記の通りです。
obj-m = hello.o
KVERSION = $(shell uname -r)
all:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
ソースコードとMakefileを作成した後の1回目のmakeから"make: `all' に対して行うべき事はありません."と言われてしまいます。
Linuxとデバイスドライバにはあまり詳しくないので、何か良いアドバイスをよろしくお願いします。
オフライン
たぶん、ターゲットのコマンド行頭がタブになっていないのではないでしょうか?
obj-m = hello.o KVERSION = $(shell uname -r) all: (ここにスペースではなくタブをひとつ)make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules clean: (ここにスペースではなくタブをひとつ)make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean
このタブの使い方ですが、Linuxやローダブルモジュール、デバイスドライバとは関係なく、Makefileの作法となります。
オフライン
Mocchiさん回答ありがとうございます。
教えて頂いた通り、makeの先頭にtabを入れてみましたが結果は同じで、
"make: `all' に対して行うべき事はありません."と言われてしまいます。
何か他に良いアドバイスはありませんでしょうか?
よろしくお願いします。
オフライン
Pokota による投稿:
Mocchiさん回答ありがとうございます。
教えて頂いた通り、makeの先頭にtabを入れてみましたが結果は同じで、
"make: `all' に対して行うべき事はありません."と言われてしまいます。
何か他に良いアドバイスはありませんでしょうか?
よろしくお願いします。
エディタの設定を改めて確認した所、tabの代わりにスペースを挿入する設定になっていました。
この設定をやめて、makeの前にtabを挿入した所、makeが成功しました。
Mocchiさんどうもありがとうございました。
オフライン