看MAKEFILE文件的遇到的问题

mh_z 2004-03-10 10:06:53
在编译内核时我们用到make clean , make mrproper等,按我的理解和书上所讲的,应该写成:

clean:
..........

mrproper:
............

不知道下面是什么意思?

下面是MAKEFILE中的一段,不明白为什么是样
clean: archclean
find . \( -name '*.[oas]' -o -name core -o -name '.*.flags' \) - type f -print \
| grep -v lxdialog/ | xargs rm -f
rm -f $(CLEAN_FILES)
rm -rf $(CLEAN_DIRS)
$(MAKE) -C Documentation/DocBook clean

mrproper: clean archmrproper
find . \( -size 0 -o -name .depend \) -type f -print | xargs rm -f
rm -f $(MRPROPER_FILES)
rm -rf $(MRPROPER_DIRS)
$(MAKE) -C Documentation/DocBook mrproper

distclean: mrproper
rm -f core `find . \( -not -type d \) -and \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -type f -print` TAGS tags

backup: mrproper
cd .. && tar cf - linux/ | gzip -9 > backup.gz
sync

sgmldocs:
chmod 755 $(TOPDIR)/scripts/docgen
chmod 755 $(TOPDIR)/scripts/gen-all-syms
chmod 755 $(TOPDIR)/scripts/kernel-doc
$(MAKE) -C $(TOPDIR)/Documentation/DocBook books

psdocs: sgmldocs
$(MAKE) -C Documentation/DocBook ps

pdfdocs: sgmldocs
$(MAKE) -C Documentation/DocBook pdf

htmldocs: sgmldocs
$(MAKE) -C Documentation/DocBook html


我理解的make的规则是这样的,直接执行make,缺省的文件名是MAKEFILE,执行的是MAKEFILE的第一个目标,要执行其它目标,必须在make后指明,如make clean。书上还讲
clean不能直接执行,不能作为其它规则的依赖,但上面的例子明显不是这样,不知怎样解释这些。
...全文
81 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

4,441

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧