【问题标题】:Alternative uses for makefilesmakefile 的替代用途
【发布时间】:2010-10-08 13:21:37
【问题描述】:

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;否则,请注明版本。

【问题讨论】:

    标签: makefile


    【解决方案1】:

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

    【讨论】:

    • 现在这是一个非常酷的想法。我想知道为什么它从来没有起飞。
    【解决方案2】:

    在我在工作中管理的系统上,我们使用 makefile 和一些脚本来生成用于命名、dhcpd 和 pxe 引导的配置文件。输入文件大致如下:

    ipaddr           name         alias1 alias2    #  model os      printer
    

    例如:

    192.168.0.1      battledown   nfs dns ldap     #  x3550 RHEL5u4 brother-color
    

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

    【讨论】:

      猜你喜欢
      • 2011-06-26
      • 1970-01-01
      • 2016-05-25
      • 1970-01-01
      • 2011-01-09
      • 2010-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多