【发布时间】:2021-09-13 20:54:56
【问题描述】:
我想收集一些源文件并使用 Makefile 对它们进行 tar。源文件分布如下:
project
│
├── Makefile
│
├── folder(name is arbitrary)
│ │
│ ├── test1.txt
│ ├── test2.txt
│ .
│ .
│ .
│
├── source.cpp
│
├── source2.cpp
│
├── source.h
.
.
现在,当我在根目录(项目)中调用 make 时,我想要一个扁平的 tarball 文件,其中包含该 tarball 文件根目录下的所有源文件,如下所示:
myTarball.tar.gz
│
├── Makefile
│
├── source.cpp
│
├── source2.cpp
│
├── source.h
│
├── test1.txt
│
├── test2.txt
│
.
.
.
当前的 make 文件如下所示:
FILES=$($(wildcard Makefile *.h *.hpp *.cpp test*.txt */test*.txt))
$(NAME): $(FILES)
COPYFILE_DISABLE=true tar -vczf $(NAME) $(FILES)
我不熟悉 makefile 和 bash,但我尽我所能玩弄并进行了一些搜索,但一无所获。当前的只能生成类似
NAME.tar.gz
│
├── Makefile
│
├── folder
│ │
│ ├── test1.txt
│ ├── test2.txt
│ .
│ .
│ .
│
├── source.cpp
│
├── source2.cpp
│
├── source.h
.
.
与文件夹结构。我想我可能会先将文件夹中的所有源文件复制到根目录,然后将它们 tar 后删除。有没有更好的方法来优雅地做到这一点?
【问题讨论】: