gpt4 book ai didi

makefile - 如何在Makefile中自动创建(和删除)临时目录?

转载 作者:行者123 更新时间:2023-12-04 02:32:33 25 4
gpt4 key购买 nike

make是否可以在执行第一个目标之前创建一个临时目录?也许使用一些技巧,一些其他目标等?

Makefile中的所有命令都可以将自动创建的目录称为$TMPDIR,并且make命令结束时将自动删除该目录。

最佳答案

我似乎想起了能够递归调用make的方式,类似于:

all:
-mkdir $(TEMPDIR)
$(MAKE) $(MLAGS) old_all
-rm -rf $(TEMPDIR)

old_all: ... rest of stuff.


我在子目录中做了类似的技巧:

all:
@for i in $(SUBDIRS); do \
echo "make all in $$i..."; \
(cd $$i; $(MAKE) $(MLAGS) all); \
done


刚刚检查它,这很好用:

$ cat Makefile
all:
-mkdir tempdir
-echo hello >tempdir/hello
-echo goodbye >tempdir/goodbye
$(MAKE) $(MFLAGS) old_all
-rm -rf tempdir

old_all:
ls -al tempdir

$ make all
mkdir tempdir
echo hello >tempdir/hello
echo goodbye >tempdir/goodbye
make old_all
make[1]: Entering directory '/home/pax'
ls -al tempdir
total 2
drwxr-xr-x+ 2 allachan None 0 Feb 26 15:00 .
drwxrwxrwx+ 4 allachan None 0 Feb 26 15:00 ..
-rw-r--r-- 1 allachan None 8 Feb 26 15:00 goodbye
-rw-r--r-- 1 allachan None 6 Feb 26 15:00 hello
make[1]: Leaving directory '/home/pax'
rm -rf tempdir

$ ls -al tempdir
ls: cannot access tempdir: No such file or directory

关于makefile - 如何在Makefile中自动创建(和删除)临时目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/589252/

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