电子文章 | 电子资料下载 | 家电维修 | 维修资料下载 | 加入收藏 | 全站地图
您现在所在位置:电子爱好者电子文章arm嵌入式关于Linux 内核配置系统浅析

关于Linux 内核配置系统浅析

11-20 15:52:17 | http://www.5idzw.com | arm嵌入式 | 人气:797
标签:arm嵌入式系统,arm系统,arm开发,http://www.5idzw.com 关于Linux 内核配置系统浅析,http://www.5idzw.com

  4.3 Makefile

  1)drivers/test/Makefile

  #       drivers/test/Makefile

  #

  #       Makefile for the TEST.

  #

  SUB_DIRS     :=

  MOD_SUB_DIRS := $(SUB_DIRS)

  ALL_SUB_DIRS := $(SUB_DIRS) cpu

  L_TARGET := test.a

  export-objs := test.o test_client.o

  obj-$(CONFIG_TEST)              += test.o test_queue.o test_client.o

  obj-$(CONFIG_TEST_USER)         += test_ioctl.o

  obj-$(CONFIG_PROC_FS)           += test_proc.o

  subdir-$(CONFIG_TEST_CPU)       += cpu

  include $(TOPDIR)/Rules.make

  clean:

  for dir in $(ALL_SUB_DIRS); do make -C $$dir clean; done

  rm -f *.[oa] .*.flags

  drivers/test 目录下最终生成的目标文件是 test.a。在 test.c 和 test-client.c 中使用了 EXPORT_SYMBOL 输出符号,所以 test.o 和 test-client.o 位于 export-objs 列表中。然后,根据用户的选择(具体来说,就是配置变量的取值),构建各自对应的 obj-* 列表。由于 TEST Driver 中包一个子目录 cpu,当 CONFIG_TEST_CPU=y(即用户选择了此功能)时,需要将 cpu 目录加入到 subdir-y 列表中。

  2)drivers/test/cpu/Makefile

  #       drivers/test/test/Makefile

  #

  #       Makefile for the TEST CPU

  #

  SUB_DIRS     :=

  MOD_SUB_DIRS := $(SUB_DIRS)

  ALL_SUB_DIRS := $(SUB_DIRS)

  L_TARGET := test_cpu.a

  obj-$(CONFIG_test_CPU)       += cpu.o

  include $(TOPDIR)/Rules.make

  clean:

  rm -f *.[oa] .*.flags

  3)drivers/Makefile

  ……

  subdir-$(CONFIG_TEST)  += test

  ……

  include $(TOPDIR)/Rules.make

  在 drivers/Makefile 中加入 subdir-$(CONFIG_TEST)+= test,使得在用户选择 TEST Driver 功能后,内核编译时能够进入 test 目录。

  4)Makefile

  ……

  DRIVERS-$(CONFIG_PLD) += drivers/pld/pld.o

  DRIVERS-$(CONFIG_TEST) += drivers/test/test.a

  DRIVERS-$(CONFIG_TEST_CPU) += drivers/test/cpu/test_cpu.a

  DRIVERS := $(DRIVERS-y)

  ……

  在顶层 Makefile 中加入 DRIVERS-$(CONFIG_TEST) += drivers/test/test.a 和 DRIVERS-$(CONFIG_TEST_CPU) += drivers/test/cpu/test_cpu.a。如何用户选择了 TEST Driver,那么 CONFIG_TEST 和 CONFIG_TEST_CPU 都是 y,test.a 和 test_cpu.a 就都位于 DRIVERS-y 列表中,然后又被放置在 DRIVERS 列表中。在前面曾经提到过,Linux 内核文件 vmlinux 的组成中包括 DRIVERS,所以 test.a 和 test_cpu.a 最终可被链接到 vmlinux 中。



  

上一页  [1] [2] [3] [4] 

,关于Linux 内核配置系统浅析
关于《关于Linux 内核配置系统浅析》的更多文章