免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4389 | 回复: 5
打印 上一主题 下一主题

驱动开发 Makefile文件的写法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-01 14:27 |只看该作者 |倒序浏览
刚开始看linux驱动程序开发,对其中makefile感到很迷惑,
比如下面程序中的,$(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)/../include modules,起到什么作用
而且下面这段代码并没有指出文件的依赖关系,所使用的编译器等等
关于内核模块的makefile写法,有没有相关的资料
  1. ifeq ($(DEBUG),y)
  2.   DEBFLAGS = -O -g -DSCULL_DEBUG # "-O" is needed to expand inlines
  3. else
  4.   DEBFLAGS = -O2
  5. endif

  6. EXTRA_CFLAGS += $(DEBFLAGS)
  7. EXTRA_CFLAGS += -I$(LDDINC)

  8. ifneq ($(KERNELRELEASE),)
  9. # call from kernel build system

  10. scull-objs := main.o pipe.o access.o

  11. obj-m        := scull.o

  12. else

  13. KERNELDIR ?= /lib/modules/$(shell uname -r)/build
  14. PWD       := $(shell pwd)

  15. modules:
  16.         $(MAKE) -C $(KERNELDIR) M=$(PWD) LDDINC=$(PWD)/../include modules
  17. endif



  18. clean:
  19.         rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions

  20. depend .depend dep:
  21.         $(CC) $(EXTRA_CFLAGS) -M *.c > .depend


  22. ifeq (.depend,$(wildcard .depend))
  23. include .depend
  24. endif
复制代码

论坛徽章:
1
NBA常规赛纪念章
日期:2015-05-04 22:32:03
2 [报告]
发表于 2010-06-03 10:18 |只看该作者
Google 《跟我一起学写Makefile》

论坛徽章:
0
3 [报告]
发表于 2010-06-03 21:19 |只看该作者
内核模块的makefile,不是有相关工具么

论坛徽章:
0
4 [报告]
发表于 2010-06-04 21:23 |只看该作者
编译器是用的内核中指定的编译器    而内核的路径给出来了 就可以了

论坛徽章:
0
5 [报告]
发表于 2012-05-03 20:11 |只看该作者
顶楼主,哈哈哈哈哈

论坛徽章:
0
6 [报告]
发表于 2012-05-04 10:13 |只看该作者
因为这个makefile实际上是调用了kernel源码中的makefile来进行实际的编译工作
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP