Я пытаюсь написать Makefile, который возьмет директорию, в которой есть некоторые файлы.Как создать каталоги, используя имя исходных файлов с помощью make
file1.txt file2.txt file3.txt other.conf
Я хочу создавать папки file1/ file2/ file3/
с соответствующим файлом и other.conf в там
Затем я хочу, чтобы пронестись эту папку.
Моя проблема с моим текущим Makefile заключается в том, что я не уверен, как создавать папки и объекты на основе имени файла. Я даже не уверен, что это возможно.
Мой текущий Makefile
[email protected] -p $(@D)
CP=cp -r
file1/file1.txt: file1.txt
$(dir_guard)
cp file1.txt file1/file1.txt
file1/other.conf: other.conf
$(dir_guard)
cp other.conf file1/other.conf
file1.zip: file1/other.conf file1/file1.txt
zip file1.zip $?
build: file1.zip
clean:
-rm -r *.zip
Если у вас есть переменная $ (имя файла), который является примером file1/file1.txt вы можете получить 'file1', как это: $ (basename $ (notdir $ (имя файла))). Теперь я не уверен, как это может быть в целевом имени, и я не могу проверить его на данный момент. Если переменная является file1.txt, у вас будет полный путь и имя: $ (basename $ (filename))/$ (filename) – Tim
Является ли каталог значительным артефактом вашего процесса сборки? Или вам нужен только zip-файл в качестве вывода? – Leon
@Leon Каталог не имеет значения. Мне просто нужен zip-файл в конце – cmp