另类风格的makefiles

既然我们的make可以自动推导命令,那么我看到那堆 .o.h 的依赖就有点不爽,那么多的重复的 .h ,能不能把其收拢起来,好吧,没有问题,这个对于make来说很容易,谁叫它提供了自动推导命令和文件的功能呢?来看看最新风格的makefile吧。

  1. objects = main.o kbd.o command.o display.o \
  2. insert.o search.o files.o utils.o
  3.  
  4. edit : $(objects)
  5. cc -o edit $(objects)
  6.  
  7. $(objects) : defs.h
  8. kbd.o command.o files.o : command.h
  9. display.o insert.o search.o files.o : buffer.h
  10.  
  11. .PHONY : clean
  12. clean :
  13. rm edit $(objects)

这种风格,让我们的makefile变得很简单,但我们的文件依赖关系就显得有点凌乱了。鱼和熊掌不可兼得。还看你的喜好了。我是不喜欢这种风格的,一是文件的依赖关系看不清楚,二是如果文件一多,要加入几个新的 .o 文件,那就理不清楚了。