看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不能直接执行,不能作为其它规则的依赖,但上面的例子明显不是这样,不知怎样解释这些。