亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

Linux認證

簡單的驅(qū)動makefile詳解

時間:2024-10-18 20:12:08 Linux認證 我要投稿
  • 相關(guān)推薦

簡單的驅(qū)動makefile詳解

  一個工程中的源文件不計數(shù),其按類型、功能、模塊分別放在若干個目錄中,makefile定義了一系列的規(guī)則來指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進行更復雜的功能操作,因為 makefile就像一個Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。

  Linux 2.6 (PC)簡單驅(qū)動Makefile詳解

  ifneq ($(KERNELRELEASE),)

  module-objs := book.o

  obj-m := book.o

  else

  KERNELDIR ?= /lib/modules/$(shell uname -r)/build

  PWD := $(shell pwd)

  modules:

  $(MAKE) -C $(KERNELDIR) M=$(PWD) modules

  endif

  clean:

  rm -rf *.o *~core.depend.*.cmd *.ko *.mod.c.tmp versions

  KERNELRELEASE 內(nèi)核頂層目錄Makefile的一個變量。

  KERNELDIR ?= /lib/modules/$(shell uname -r)/build

  內(nèi)核源碼樹目錄。

  該Makefile 共讀取兩次,在輸入Makefile時,$(KERNELDIR) 第一次讀取KERNELRELEASE并沒有被定義,然后就開始讀取內(nèi)核源碼的目錄,開始定義KERNELRELEASE,然后到當前模塊的目錄里面,M=$(PWD) 進入該Makefile時KERNELRELEAS已經(jīng)被定義了,讀取要編譯的模塊,然后再返回到modules

  編譯完成,產(chǎn)生.KO文件

  Linux 2.6 (ARM)簡單驅(qū)動Makefile詳解

  ifneq ($(KERNELRELEASE),)

  obj-m := fgpio011.o

  else

  KDIR := /home/linux-2.6.30/

  all:

  make -C $(KDIR) M=$(PWD) modules ARCH=arm CROSS_COMPILE=arm-linux-

  clean:

  rm -f *.ko *.o *.mod.o *.mod.c *.symvers

  endif

  注釋:

  KDIR := /home/linux-2.6.30/

  KDIR 指定開發(fā)板內(nèi)核所在目錄。

  CROSS_COMPILE=arm-linux- 指定編譯器。

  其它項目與PC機的一樣。

  驅(qū)動模塊編譯進內(nèi)核

【簡單的驅(qū)動makefile詳解】相關(guān)文章:

javascript 單例模式詳解及簡單實例07-08

顯卡驅(qū)動怎么更新08-19

顯示器的驅(qū)動故障06-13

again用法詳解08-25

英德紅茶詳解10-01

韓語動詞詳解06-11

EXCEL技巧詳解10-28

ping入門詳解09-09

javascript函數(shù)詳解07-22

詳解唱歌技巧10-03