Есть архитектурно независимые скрипты, разложены по каталожикам.
В мэйк файле:
Есть цель - упаковать код в tar.gz.
Есть цель - install.
Обе работают с одинаковым списком файлов.Я хочу этот список файлов объявить в начале Makefile, а затем в разных местах использовать его. Есть такая возможность? Объявить массив строк и потом работать с ним внутри разных целей.
Почему список - потому как хочется, чтобы если в момент установки что-то "лишнее" лежит в дереве, то чтобы оно игнорировалось при make install. Можно сразу "забирать" целиком дерево файлов, задним числом ставить права доступа и т.д. Но так не хочу. Хочу мучаться со списком файлов (шаблонов-регулярок).
Писать инсталлятор и упаковщик в tar.gz, на том языке, который "умеет массивы", вызывать их обоих из мейка - чего-то тут не так, это, значит, свой мэйк выписывать заново.
Как бы это всё красиво организовать...? Таки держать чистым дерево "сырцов", забирать его "как есть" при упаковках и установках?
Таки есть способ использовать массив в мейк файле?
> Я хочу этот список файлов объявить в начале Makefile, а затем в
> разных местах использовать его. Есть такая возможность? Объявить массив строк и
> потом работать с ним внутри разных целей.Есть.
>ак бы это всё красиво организовать...?
Укради кусок кода - никто не смотрит!
http://git.drbd.org/gitweb.cgi?p=drbd-utils.git;a=blob;f=doc...> Таки есть способ использовать массив в мейк файле?
Есть.
Спасибо! У меня имена файлов без пробелов и это выход. :)Если правильно понял, это не массивы, а использование авто разбиения строки на слова по разделителю (по пробелу). Нельзя обратиться к элементу по индексу. А такие трюки как "dirname/${array[@]}" вообще недоступны.
> Спасибо! У меня имена файлов без пробелов и это выход. :)
> Если правильно понял, это не массивы, а использование авто разбиения строки на
> слова по разделителю (по пробелу).files := $(shell find dirname)
> Нельзя обратиться к элементу по индексу.
> А такие трюки как "dirname/${array[@]}" вообще недоступны.бог знает о чем вы, если не об этом:
files := $(addprefix dirname/,$(leafs))