`
izuoyan
  • 浏览: 8942049 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

制作一个遍历当前子目录的Makefile

阅读更多

要对子目录执行make,需要在当前目录制作一个Makefile,遍历所有子目录的Makefile,并运行相应的make target. 以下是我用来编译内核模块的一个Makefile

#

# Reference http://www.gnu.org/software/make/manual/make.html

#

# 需要排除的目录

exclude_dirs := include bin

# 取得当年子目录深度为1的所有目录名称

dirs := $(shell find . -maxdepth 1 -type d)

dirs := $(basename $(patsubst ./%,%,$(dirs)))

dirs := $(filter-out $(exclude_dirs),$(dirs))

# 避免clean子目录操作同名,加上_clean_前缀

SUBDIRS := $(dirs)

clean_dirs := $(addprefix _clean_,$(SUBDIRS) )

#

.PHONY: subdirs $(SUBDIRS) clean

# 执行默认make target

$(SUBDIRS):

$(MAKE) -C $@

subdirs: $(SUBDIRS)

# 执行clean

$(clean_dirs):

$(MAKE) -C $(patsubst _clean_%,%,$@) clean

clean: $(clean_dirs)

@find . \

\( -name '*.[oas]' -o -name '*.ko' -o -name '.*.cmd' \

-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \

-o -name '*.symtypes' \) \

-type f -print | xargs rm -f

分享到:
评论

相关推荐

    Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录

    Makefile自动搜所目录及子目录下的的所有文件、自动生成编译目录,主要实现的功能入校描述: 1. myMath、myRecord、myString要分别能够单独生成各自对应的 .a 静态库文件 2. 将生成的 .a 文件统一放在根目录下 lib ...

    Makefile的使用和编写.ppt

    Makefile的概念 Make的调用格式 Makefile的基本格式 Makefile的扩展话题 常见项目的Makefile格式 直接编译 遍历子目录 autoconf生成形

    Tinyxml 源代码(VC6 & VS2005)

    提供了一个Linux Makefile和一个Windows Visual C++ .dsw 文件。只需要简单地编译和运行,它就会在你的磁盘上生成demotest.xml文件并在屏幕上输出。它还尝试用不同的方法遍历DOM并打印出结点数。 那个Linux ...

    精通Windows.API-函数、接口、编程实例.pdf

    4.3.5 查找文件、遍历指定目录下的文件和子目录 100 4.3.6 递归遍历目录树 103 4.3.7 获取、设置文件属性和时间 105 4.4 内存映射文件 110 4.4.1 使用Mapping File提高文件读写的效率 110 4.4.2 通过...

    精通WindowsAPI 函数 接口 编程实例

    4.3.5 查找文件、遍历指定目录下的文件和子目录 100 4.3.6 递归遍历目录树 103 4.3.7 获取、设置文件属性和时间 105 4.4 内存映射文件 110 4.4.1 使用Mapping File提高文件读写的效率 110 4.4.2 通过...

    Tcl_TK编程权威指南pdf

    同学们在努力编制一个新式的内核程序,而John编写了一个新的编辑器和终端仿真程序。他使用Tcl作为这两种工具的命令语言,这样用户就可以定义菜单或者对那些程序进行定制。那时还处在使用X10的时代,他计划编写一个...

    精通WindowsAPI.pdf

    1.1 第一个实例程序............................................................................................................16 1.1.1 sta rt.exe..........................................................

Global site tag (gtag.js) - Google Analytics