The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"нельзя ли как-нибудь указать зависимость, не перегружая"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"нельзя ли как-нибудь указать зависимость, не перегружая"  
Сообщение от make email on 08-Авг-06, 15:48 
готовый сценарий для расширения? хочу указать зависимость от .h .hpp, а приходится переписывать сценарий заново

proga.o: proga.h another_header.hpp
    ${CXX} ${CXXFLAGS} -c $@ .....

а если таких файлов много? для каждого цель писать - это как-то по-ламерски.
т.е. для однотипных зависимостей можно одну написать

.cpp.o: *.h
      ${CXX} ${CXXFLAGS} -c $@ ${LDLIBS}

но если файл в зависимости от третьего хёадера, приходиться полностью переписывать
этот красивый сценарий. а надо всего лишь зависимость от времени создания учесть,
сценарий не надо менять.

может есть способ?


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

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


1. "нельзя ли как-нибудь указать зависимость, не перегружая"  
Сообщение от DeadMustdie email(??) on 10-Авг-06, 09:09 
Из вопроса понятно, что нужна автоматическая генерация зависимостей.
Поможет нечто типа:

*************

%.d: %.c
    @echo "## depend $<"
    @set -e; $(CC) -M $(CFLAGS) $< \
     | sed 's@\($*\)\.o[ :]*@\1.o $@ : @g' > $@; [ -s $@ ] || $(RM) $@

%.o: %.c
    $(CC) -c $(CCFLAGS) -o $@ $<

SOURCEFILES=file1.c file2.c file3.c

DEPFILES=$(SOURCEFILES:.c=.d)
OBJFILES=$(SOURCEFILES:.o=.d)

all: proga

proga: $(OBJFILES)
    $(LD) $(LDFLAGS) -o $@ $<

-include $(DEPFILES)

*************

Единственно что для цели clean (которой в приведенном примере нету)
нужно оный '-include' отрубить, иначе он перед очисткой будет .d-файлики
генерировать - что явно не требуется.

Вообще аналогичный пример, весьма подробно разобранный, есть в документации
на GNU make.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

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

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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