2010-10-08 46 views
3

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

对于一个小例子,我有一个每天运行的脚本,它可能会更新或创建一些基于某些网页抓取的“* .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;否则,请指定版本。

回答

1

我记得几年前看到有关使用Makefiles启动Linux系统的东西。单独的系统组件被设置为目标,并且make将首先加载依赖项,就像make一样。我相信他们从中获得了令人印象深刻的启动速度。这导致了Debian/Ubuntu中的dependency-based boot

+0

现在这是一个非常酷的想法。我想知道为什么它从未起飞。 – 2010-10-11 23:27:19

1

在我管理的系统上,我们使用makefile和一些脚本为named,dhcpd和pxe引导生成配置文件。输入文件是沿着线:

ipaddr   name   alias1 alias2 # model os  printer 

例如:

192.168.0.1  battledown nfs dns ldap  # x3550 RHEL5u4 brother-color 

然后,我们有它运行的是输入的文件,虽然各种脚本生成相应的配置生成文件。然后它将重新启动其配置已更改的任何守护程序。