The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Makefile - использовать список имён файлов. Типа: массив."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Разное)
Изначальное сообщение [ Отслеживать ]

"Makefile - использовать список имён файлов. Типа: массив."  –1 +/
Сообщение от Aick on 17-Мрт-15, 20:53 
Есть архитектурно независимые скрипты, разложены по каталожикам.
В мэйк файле:
Есть цель - упаковать код в tar.gz.
Есть цель - install.
Обе работают с одинаковым списком файлов.

Я хочу этот список файлов объявить в начале Makefile, а затем в разных местах использовать его. Есть такая возможность? Объявить массив строк и потом работать с ним внутри разных целей.

Почему список - потому как хочется, чтобы если в момент установки что-то "лишнее" лежит в дереве, то чтобы оно игнорировалось при make install. Можно сразу "забирать" целиком дерево файлов, задним числом ставить права доступа и т.д. Но так не хочу. Хочу мучаться со списком файлов (шаблонов-регулярок).

Писать инсталлятор и упаковщик в tar.gz, на том языке, который "умеет массивы", вызывать их обоих из мейка - чего-то тут не так, это, значит, свой мэйк выписывать заново.

Как бы это всё красиво организовать...? Таки держать чистым дерево "сырцов", забирать его "как есть" при упаковках и установках?

Таки есть способ использовать массив в мейк файле?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Makefile - использовать список имён файлов. Типа: массив."  +/
Сообщение от Andrey Mitrofanov on 17-Мрт-15, 21:42 
> Я хочу этот список файлов объявить в начале Makefile, а затем в
> разных местах использовать его. Есть такая возможность? Объявить массив строк и
> потом работать с ним внутри разных целей.

Есть.

>ак бы это всё красиво организовать...?

Укради кусок кода - никто не смотрит!
http://git.drbd.org/gitweb.cgi?p=drbd-utils.git;a=blob;f=doc...

> Таки есть способ использовать массив в мейк файле?

Есть.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Makefile - использовать список имён файлов. Типа: массив."  +/
Сообщение от Aick on 18-Мрт-15, 13:05 
Спасибо! У меня имена файлов без пробелов и это выход. :)

Если правильно понял, это не массивы, а использование авто разбиения строки на слова по разделителю (по пробелу). Нельзя обратиться к элементу по индексу. А такие трюки как "dirname/${array[@]}" вообще недоступны.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Makefile - использовать список имён файлов. Типа: массив."  +/
Сообщение от me (??) on 19-Мрт-15, 10:28 
> Спасибо! У меня имена файлов без пробелов и это выход. :)
> Если правильно понял, это не массивы, а использование авто разбиения строки на
> слова по разделителю (по пробелу).

files := $(shell find dirname)

> Нельзя обратиться к элементу по индексу.
> А такие трюки как "dirname/${array[@]}" вообще недоступны.

бог знает о чем вы, если не об этом:
files := $(addprefix dirname/,$(leafs))

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру