powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / как в make-файле присвоить макросу вместо +
5 сообщений из 5, страница 1 из 1
как в make-файле присвоить макросу вместо +
    #32480040
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
явного списка файлов, что нибудь типа "все файлы из заданного каталога"?

что бы при добавлении файлов в проект не надо было трогать make-файл
...
Рейтинг: 0 / 0
как в make-файле присвоить макросу вместо +
    #32480058
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри сдесь
правла я не понял, но я сильно не вникал :-)
...
Рейтинг: 0 / 0
как в make-файле присвоить макросу вместо +
    #32480068
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, сейчас пойду читать.

есть макрос, который содержит явно заданный список файлов

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
EDOCS =  \
        $(O)/cap_t10.rsl.i\
        $(O)/cap_t9.rsl.i\
        $(O)/cap_t8.rsl.i\
        $(O)/cap_t7.rsl.i\
        $(O)/cap_t6.rsl.i\
        $(O)/cap_t5.rsl.i\
        $(O)/cap_t4.rsl.i\
        $(O)/cap_t3.rsl.i\
        $(O)/cap_t2.rsl.i\
        $(O)/cap_t1.rsl.i\
        $(O)/capf.rsl.i  \
        $(O)/tel21.mk.i  \



есть файл - цель $(GOAL).idx, которая зависит от макроса $(EDOCS).
строится из файлов, перечисленных в списке.

Код: plaintext
1.
2.
3.
4.
$(O)/$(GOAL).idx:  $(O)/$(GOAL).tex $(O)/page.hr.i  $(EDOCS)  $(DOCS)
	 -$(LATEX) $(LATEX_F)  $<
	 $(IDX)   $(O)/$(GOAL).idx  -o $(O)/$(GOAL).ind



есть правило построения файлов из макроса (списка) $(EDOCS)


Код: plaintext
1.
2.
3.
$(O)/%.rsl.i: $(R)/%.rsl
	 $(SED) $(SED_C) $<  | $(MKTEX)  >$@  


------
вот
явно перечислять файлы не хочется:
добавил/убрал файл из зависимостей - надо менять список $(EDOCS)
...
Рейтинг: 0 / 0
как в make-файле присвоить макросу вместо +
    #32480212
Фотография Yet another cat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если используешь GNU make, то для построения таких списков можно использовать ее функции. Например,
Код: plaintext
$(wildcard *.i)

Даст тебе список всех файлов с расширением .i в текущей директории.

Тогда, можно будет переписать правило вот в таком виде

Код: plaintext
1.
2.
$(O)/$(GOAL).idx:  $(O)/$(GOAL).tex $(O)/page.hr.i  $(wildcard $(O)/*.i)  $(DOCS)
	 -$(LATEX) $(LATEX_F)  $<
	 $(IDX)   $(O)/$(GOAL).idx  -o $(O)/$(GOAL).ind


А если нет, то может и стоит. Стандартный bsd-ишный Berkley make - отстой полный.

Вот неплохая дока по GNU make: тынц
=====
Не дождетесь!
...
Рейтинг: 0 / 0
как в make-файле присвоить макросу вместо +
    #32481897
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо Yac. мне так больше понравилось.\r
\r
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
\r
                    ## 1                             to list of files with *.rsl extention\r
                    ##                             in R folder\r
                    ## 2             and later change list of files\r
                    ## R +> O to change folders and\r
                    ##   rsl +> rsl.i to change extentions\r
EDOCS =  \\\r
        $(patsubst  $R/%.rsl,$O/%.rsl.i,  $(shell  $(LS) $R/*.rsl  )) \\\r
        $O/tel21.mk.i  \\\r
\r
\r
\r
файлы с расширением .rsl.i (как и все .i) временные, их может и не быть,\r
я на файлы - исходники более правильно ориентироваться.\r
\r
ps.\r
make у меня GNUсный\r
pps\r
эта. я тут твоего друга \r
Chicago \r
вспоминал.\r
-))))\r
может тебе интересно.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / как в make-файле присвоить макросу вместо +
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]