专栏名称: 生信菜鸟团
生信菜鸟团荣誉归来,让所有想分析生物信息学数据的小伙伴找到归属,你值得拥有!
目录
相关文章推荐
BioArt  ·  Nature︱微观世界的防御战:DRT9逆转 ... ·  8 小时前  
生信人  ·  Cell ... ·  昨天  
BioArt  ·  江南大学无锡医学院人才招聘信息 ·  2 天前  
51好读  ›  专栏  ›  生信菜鸟团

Makefile

生信菜鸟团  · 公众号  · 生物  · 2025-03-31 21:40

正文

请到「今天看啥」查看全文




NAME = xiaoming

hello:
> @ echo Hello ${NAME}

输出结果为:

$ make -f anyfile hello
Hello xiaoming

make 的开发目的是跟踪目标之间的相互依赖关系,并在任何文件发生更改时,仅执行必要的步骤。例如,如果你已经有一个基因组索引, make 命令将跳过索引步骤。

# Set the prefix from tabs to >
.RECIPEPREFIX = >

counts.txt:
echo 100 > counts.txt

names.txt:
echo Joe > names.txt

results.txt: counts.txt names.txt
> cat counts.txt names.txt > results.txt

在上面的 Makefile 中,输入 make results.txt 将首先生成 counts.txt names.txt ,如果它们不存在的话。然后,它将从这两个文件生成 results.txt 。如果你再次运行 make ,它将不会执行任何操作,因为所有文件已经存在。

makefile 的小技巧

默认设置

在 Makefile 中添加上这些设置后可以让 makefile 更加强大:

.RECIPEPREFIX = >
.DELETE_ON_ERROR:
SHELL := bash
.ONESHELL:
.SHELLFLAGS := -eu -o pipefail -c
MAKEFLAGS += --warn-undefined-variables --no-print-directory

.DELETE_ON_ERROR:

这个特殊目标告诉 make 在命令执行失败时删除生成的目标文件,以防止生成不完整或损坏的文件。 SHELL := bash

这行代码指定 make 使用 bash 作为默认的 shell 来执行命令。默认情况下, make







请到「今天看啥」查看全文