Makefile 清除冗余文件

Makefile 清除冗余文件,makefile,fastq,Makefile,Fastq,我有一个管道,在makefile的帮助下为我运行一些数据。 这个管道创建了大量我想要清理的冗余文件 我有一个makefile来运行管道。管道本身连接到许多其他makefiles。因此,我将此代码添加到管道chipcap.mk文件中: .PHONY cleanintermediate cleanintermediate: $(CHIPCAP_OUTPUT) rm -rf $(SAMPLE)clipsync.trimsync.fastq rm -rf $(SA

我有一个管道,在makefile的帮助下为我运行一些数据。 这个管道创建了大量我想要清理的冗余文件

我有一个makefile来运行管道。管道本身连接到许多其他makefiles。因此,我将此代码添加到管道chipcap.mk文件中:

.PHONY cleanintermediate    
cleanintermediate: $(CHIPCAP_OUTPUT)
        rm -rf $(SAMPLE)clipsync.trimsync.fastq
        rm -rf $(SAMPLE)clipsync.fastq
        rm -rf $(SAMPLE)clip.fastq
        rm -rf $(SAMPLE).fastq
        rm -rf $(SAMPLE).wig && $(RM) -rf $(SAMPLE).wig.idx
        rm -rf $(SAMPLE).sam
现在我像这样运行我的文件
make-f run\u samples.mk
此脚本将调用管道并开始分别运行所有样本。运行_samples.mk给管道的命令是:

all: pool1_negCTRL pool1R2R1 pool1SP1 pool2Posctrl pool2R2R2 pool2Input

getCommand = $(MAKE) -f /data/DIV5/SASC/project-064-ronald-svdz/analysis/pipelines/chipcap/chipcap.mk \
        IN_DIR=/data/DIV5/SASC/project-064-ronald-svdz/input/$(1) \
        OUT_DIR=/data/DIV5/SASC/project-064-ronald-svdz/analysis/runs/$(2) \
        CHIPCAP_VER=0.1.2 \
        FASTQ_EXT=fastq \
        CHIPCAP_INPUT=$(3) \
        CHIPCAP_QC_MODE=cliptrim \
        GZIP_EXT=gz \
        MACS14_EXE=/home/sajvanderzeeuw/.virtualenvs/ronald/bin/macs \
        PYTHON_EXE=/home/sajvanderzeeuw/.virtualenvs/ronald/bin/python2.7 \
        OPT_MACS14_mfold=$(4),$(5)
        #OPT_MACS14_control=control.bam

#Negative control sample
pool1_negCTRL:
        $(call getCommand,pool1,pool1_negCTRL_monday_test,pool1-negCTRL_S1_L001_R1_001.fastq.gz,15,30)
我怎么说运行_samples.mk也应该执行cleanintermediate(在chipcap.mk中)。我一直很困惑,但找不到正确的方法

cleanintermediate: $(CHIPCAP_OUTPUT)
在chipcap.mk中,应变为
cleanintermediate:all

在runchipcap.mk中,向getCommand添加cleanintermediate

getCommand = $(MAKE) -f /data/DIV5/SASC/project-064-ronald-svdz/analysis/pipelines/chipcap/chipcap.mk \
        IN_DIR=/data/DIV5/SASC/project-064-ronald-svdz/input/$(1) \
        OUT_DIR=/data/DIV5/SASC/project-064-ronald-svdz/analysis/runs/$(2) \
        CHIPCAP_VER=0.1.2 \
        FASTQ_EXT=fastq \
        CHIPCAP_INPUT=$(3) \
        CHIPCAP_QC_MODE=cliptrim \
        GZIP_EXT=gz \
        MACS14_EXE=/home/sajvanderzeeuw/.virtualenvs/ronald/bin/macs \
        PYTHON_EXE=/home/sajvanderzeeuw/.virtualenvs/ronald/bin/python2.7 \
        OPT_MACS14_mfold=$(4),$(5) cleanintermediate
        #OPT_MACS14_control=control.bam

getCommand是否只是运行chipchap.mk中的默认目标?(这就是它看起来的样子,但我只是确定一下。)如果默认目标有一个名称,您可能只需要将
cleanintermediate
添加到getCommand命令中并使其工作。如果没有,您也可以在
pool1\u negCTRL
正文中第二次运行make,而不使用所有变量,并将
cleantermediate
作为目标。@EtanReisner是的,确实这就是getcommand所做的。(很抱歉回复得太晚!)我想我会设法通过你的解释参加竞选的。谢谢你的解释!如果我让它工作,你会听到的!