URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4034
[ Назад ]

Исходное сообщение
"Make и вложеные зависимости"

Отправлено Xela , 05-Мрт-05 12:08 
Госпада! Подскажите, что тут не так:

Есть проект, который состоит из файлов .c и .ec. Последние пропускаются через некий парсер, результат работы парсера файл .c

Есть Makefile:
.ec.c:
    ${ESQL} $^
.c.o:
    $(CC) $(DEFS) -c $^

repo2dbf: repo2dbf.o common.o dbfengine.o sqlengine.o
    $(CC) $(DEFS) $(CFLAGS) $^ $(LIBS) ${ADD_LIBS} -o ${OUTDIR}/$@${EXT}
    ${STRIP} ${OUTDIR}/$@${EXT}

Так вот. sqlengine.o как раз и должен получаться из sqlengine.c, который в свою очередь получается из sqlengine.ec И все бы хорошо, но GNU Make упрямо не хочет запускать цель .ec.c: что бы получить sqlengine.c, что бы получить sqlengine.o

В Borland Make такое пракатывало. А как будет правильно для GNU Make?

Спасибо


Содержание

Сообщения в этом обсуждении
"Make и вложеные зависимости"
Отправлено Pablo , 05-Мрт-05 12:19 
>Госпада! Подскажите, что тут не так:
>
>Есть проект, который состоит из файлов .c и .ec. Последние пропускаются через
>некий парсер, результат работы парсера файл .c
>
>Есть Makefile:
>.ec.c:
> ${ESQL} $^
>.c.o:
> $(CC) $(DEFS) -c $^
>
>repo2dbf: repo2dbf.o common.o dbfengine.o sqlengine.o
> $(CC) $(DEFS) $(CFLAGS) $^ $(LIBS) ${ADD_LIBS} -o ${OUTDIR}/$@${EXT}
> ${STRIP} ${OUTDIR}/$@${EXT}
>
>Так вот. sqlengine.o как раз и должен получаться из sqlengine.c, который в
>свою очередь получается из sqlengine.ec И все бы хорошо, но GNU
>Make упрямо не хочет запускать цель .ec.c: что бы получить sqlengine.c,
>что бы получить sqlengine.o
>
>В Borland Make такое пракатывало. А как будет правильно для GNU Make?
>
>
>Спасибо

попробуй добавить зависимости

sqlengine.c: sqlengine.ec

sqlengine.o: sqlengine.c

но, возможно, это избыточно



"Make и вложеные зависимости"
Отправлено Xela , 05-Мрт-05 12:25 
>попробуй добавить зависимости
>
>sqlengine.c: sqlengine.ec
>
>sqlengine.o: sqlengine.c
>
>но, возможно, это избыточно

Пробывал. Не помогает. Помогает только
sqlengine.c: sqlengine.ec
    ${ESQL} $^

Но этого хотелось бы избежать, так как .ec файлов будет много. Хотелось бы автоматизма...


"Make и вложеные зависимости"
Отправлено Soldier , 05-Мрт-05 12:22 
>Госпада! Подскажите, что тут не так:
>
>Есть проект, который состоит из файлов .c и .ec. Последние пропускаются через
>некий парсер, результат работы парсера файл .c
>
>Есть Makefile:
>.ec.c:
> ${ESQL} $^
>.c.o:
> $(CC) $(DEFS) -c $^
>
>repo2dbf: repo2dbf.o common.o dbfengine.o sqlengine.o
> $(CC) $(DEFS) $(CFLAGS) $^ $(LIBS) ${ADD_LIBS} -o ${OUTDIR}/$@${EXT}
> ${STRIP} ${OUTDIR}/$@${EXT}
>
>Так вот. sqlengine.o как раз и должен получаться из sqlengine.c, который в
>свою очередь получается из sqlengine.ec И все бы хорошо, но GNU
>Make упрямо не хочет запускать цель .ec.c: что бы получить sqlengine.c,
>что бы получить sqlengine.o
>
>В Borland Make такое пракатывало. А как будет правильно для GNU Make?
>
>
>Спасибо

.SUFFIXES: .ec
?
Первой строчкой?


"Make и вложеные зависимости"
Отправлено Xela , 05-Мрт-05 12:26 
>.SUFFIXES: .ec
>?
>Первой строчкой?

Точно! Спасибо.


"Make и вложеные зависимости"
Отправлено DeadMustdie , 05-Мрт-05 18:43 
%.c: %.ec
  $(ESQL) $<