makefile的替代用途

时间:2010-10-08 13:21:38

标签: makefile

makefile通常用于源代码编译;但是,作为依赖机制,make可以有更多用途。

对于一个小例子,我有一个每天运行的脚本,它可能会根据一些网络抓取更新或创建一个目录中的'* .csv.gz'文件;所有gzip压缩文件需要合并到一个文件中,如果有新文件,显然需要运行合并过程。
在我的例子中,以下makefile完成了这项工作:

consolidation: datasummary.pcl

datasummary.pcl: *.csv.gz
    consolidate.py

cron作业运行更新过程,然后make consolidation;如果datasummary.pcl文件比任何*.csv.gz文件旧,则consolidate.py会运行。

我对有关makefile的异常(即不是源代码编译)用法的想法非常感兴趣。还有什么其他有趣的makefile用法示例?

我们假设我们谈论GNU make;否则,请注明版本。

2 个答案:

答案 0 :(得分:1)

我记得几年前看到过使用Makefiles启动Linux系统的事情。将各个系统组件设置为目标,make会首先加载依赖项,就像make一样。我相信它们的启动速度令人印象深刻。这就是导致Debian / Ubuntu中的dependency-based boot的原因。

答案 1 :(得分:1)

在我工作的系统上,我们使用makefile和一些脚本为named,dhcpd和pxe引导生成配置文件。输入文件的行如下:

ipaddr           name         alias1 alias2    #  model os      printer

例如:

192.168.0.1      battledown   nfs dns ldap     #  x3550 RHEL5u4 brother-color

然后我们有一个makefile,它通过各种脚本运行该输入文件以生成适当的配置。然后它将重新启动其配置已更改的任何守护进程。