gpt4 book ai didi

linux - GNU Make 无故删除下载的 zip 文件

转载 作者:太空宇宙 更新时间:2023-11-04 09:44:00 24 4
gpt4 key购买 nike

我有这个 makefile,应该下载并构建 openssh(以及其他东西):

ROOT_DIR=$(PWD)
DATA_DIR=$(ROOT_DIR)/data
SOURCES_DIR=$(ROOT_DIR)/sources
RESOURCES_DIR=$(ROOT_DIR)/resources
DRAFTS_DIR=$(ROOT_DIR)/drafts

$(SOURCES_DIR):
mkdir $(SOURCES_DIR)

$(RESOURCES_DIR):
mkdir $(RESOURCES_DIR)

$(DRAFTS_DIR):
mkdir $(DRAFTS_DIR)

openssh-tar-url="ftp://ftp.cc.uoc.gr/mirrors/OpenBSD/OpenSSH/portable/openssh-6.2p2.tar.gz"
TAR_PROJECTS += openssh
openssh:
echo "Building $@"

openssh-clean: openssh-archive-clean

.SECONDEXPANSION :
$(TAR_PROJECTS) : $(SOURCES_DIR) $(SOURCES_DIR)/$$@-archive

$(DRAFTS_DIR)/%.tar.gz: $(DRAFTS_DIR)
echo "Pulling $*."
wget $($*-tar-url) -O $(DRAFTS_DIR)/$*.tar.gz

.SECONDEXPANSION :
$(SOURCES_DIR)/%-archive : | $(DRAFTS_DIR)/$$*.tar.gz
mkdir $@
cd $@ && tar xvzf $(DRAFTS_DIR)/$*.tar.gz

%-archive-clean:
rm -rf $(SOURCES_DIR)/$*-archive $(DRAFTS_DIR)/$*.tar.gz

当我运行 make openssh 时,它运行正确,但最后它删除了它下载的存档。这对我来说很奇怪:

$ make openssh --just-print
echo "Pulling openssh."
wget "ftp://ftp.cc.uoc.gr/mirrors/OpenBSD/OpenSSH/portable/openssh-6.2p2.tar.gz" -O /home/fakedrake/Projects/ThinkSilicon/xilinx-zynq-bootstrap/drafts/openssh.tar.gz
mkdir /home/fakedrake/Projects/ThinkSilicon/xilinx-zynq-bootstrap/sources/openssh-archive
cd /home/fakedrake/Projects/ThinkSilicon/xilinx-zynq-bootstrap/sources/openssh-archive && tar xvzf /home/fakedrake/Projects/ThinkSilicon/xilinx-zynq-bootstrap/drafts/openssh.tar.gz
echo "Building openssh"
rm /home/fakedrake/Projects/ThinkSilicon/xilinx-zynq-bootstrap/drafts/openssh.tar.gz

最佳答案

很确定您可以将目标(和中间体)列为 .PRECIOUS 以避免它们被删除。恐怕您需要 RTFM 了解更多详细信息 - 这些天我在 visual studio 而不是 make,所以我的 make 技能有点生疏...

关于linux - GNU Make 无故删除下载的 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18455348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com