LINUX.ORG.RU

Подскажите как красивее описать такую задачку в make-файле

 


0

1

Здравствуйте.

В процессе сборки програмы нужно некоторые файлы из исходников скопировать в директории с програмой. Например файл foo/bar/file1 в baz/, файл a/b/c/file2 в d/e/ и.т.д.

Может как-нибудь можно описать это одним правилом? Чтобы не писать для каждого:

baz/file1: foo/bar/file1
  cp $< $@
★★★★★

Последнее исправление: makoven (всего исправлений: 1)

Советую взглянуть в сторону cmake. Завести 2 списочка и правило, которое, пробегаясь по элементам обоих списков, будет файл из списка 1 копировать в директорию из списка 2. А вообще, нафиг тебе такое поведение? Этим же make install должен заниматься, не?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Советую взглянуть в сторону cmake

Не осилить мне cmake. По крайней мере в ближайшее время.

А вообще, нафиг тебе такое поведение?

Потомучто, я такой умник, что использую make-файл для сборки html/js файлов из исходников на typescript) И есть несколько файлов из серверной части, которые надо копировать в директорию с клиентом если они изменились.

makoven ★★★★★
() автор топика

Например файл foo/bar/file1 в baz/, файл a/b/c/file2 в d/e/ и.т.д.

Может как-нибудь можно описать это одним правилом? Чтобы не писать для каждого:

Как бы закономерности пока не наблюдается. Может быть, приведёшь какой-нибудь другой пример?

theNamelessOne ★★★★★
()
Ответ на: комментарий от unsigned

Надеялся не доводить до метапрограмирования. Но, видать, придется

makoven ★★★★★
() автор топика
Ответ на: комментарий от theNamelessOne

В том то и дело, что нет закономерности. Есть список файлов и есть список директорий. Придумать бы такое правило, которое проверяет, если файл изменился - копировать его в соответствующую файлу директорию.

makoven ★★★★★
() автор топика
Ответ на: комментарий от makoven

В том то и дело, что нет закономерности. Есть список файлов и есть список директорий.

Ну сгенерируй makefile по списку и включай его в основной.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.