automake (альтернатива для pattern rules)

Модератор: Модераторы разделов

AGE
Сообщения: 3

automake

Сообщение AGE »

Имеется проект, собираемый с помощью autotools, часть *.cpp файлов создается непосредственно перед компиляцией парсером специальных файлов.
С использованием GNU make extensions (а конкретно -- pattern rules) проблема решается изящно:

Код: Выделить всё

%Wrp.cpp: Makefile
    $(WRPCC) ../entities/$*.ent $*Wrpc.cpp

libwrappers_a_SOURCES = \
    Name.cpp \ <-- статические файлы, лежащие в папке
    ...
    Entity1Wrp.cpp \ <-- вот эти генерятся
    Entity2Wrp.cpp \


А как решить проблему, НЕ используя GNU Make extensions (если я собираю другой версией make)???
Спасибо сказали:
Аватара пользователя
oav
Бывший модератор
Сообщения: 296

Re: automake

Сообщение oav »

AGE писал(а):
09.11.2006 14:47
Имеется проект, собираемый с помощью autotools, часть *.cpp файлов создается непосредственно перед компиляцией парсером специальных файлов.
С использованием GNU make extensions (а конкретно -- pattern rules) проблема решается изящно:

Код: Выделить всё

%Wrp.cpp: Makefile
    $(WRPCC) ../entities/$*.ent $*Wrpc.cpp

libwrappers_a_SOURCES = \
    Name.cpp \ <-- статические файлы, лежащие в папке
    ...
    Entity1Wrp.cpp \ <-- вот эти генерятся
    Entity2Wrp.cpp \


А как решить проблему, НЕ используя GNU Make extensions (если я собираю другой версией make)???

Этими же тулзами догенерировать makefile? :) т.е. сначала gen .cpp&make file потом только сборка
Спасибо сказали:
AGE
Сообщения: 3

Re: automake

Сообщение AGE »

oav писал(а):
09.11.2006 15:13
Этими же тулзами догенерировать makefile? :) т.е. сначала gen .cpp&make file потом только сборка

Не совсем тебя понял.
Собственно я привел пример файла Makefile.am
Как ты его предлагаешь изменить?
Спасибо сказали:
Аватара пользователя
oav
Бывший модератор
Сообщения: 296

Re: automake

Сообщение oav »

AGE писал(а):
09.11.2006 16:20
oav писал(а):
09.11.2006 15:13

Этими же тулзами догенерировать makefile? :) т.е. сначала gen .cpp&make file потом только сборка

Не совсем тебя понял.
Собственно я привел пример файла Makefile.am
Как ты его предлагаешь изменить?

Makefile.pre.am - в нем только неизменяемая часть.
а та часть которая зависит от сгенеренных cpp-шников _генерируется_ еще одно утилитой. и только потом autoconf и компания. Это если не юзать чего-то готового
Спасибо сказали:
AGE
Сообщения: 3

Re: automake

Сообщение AGE »

oav писал(а):
09.11.2006 16:29
Makefile.pre.am - в нем только неизменяемая часть.
а та часть которая зависит от сгенеренных cpp-шников _генерируется_ еще одно утилитой. и только потом autoconf и компания. Это если не юзать чего-то готового

Необходимо сгенерить несколько *.cpp файлов.
Содержание Makefile.am/in статическое -- не изменяется.
Можно было бы явно прописать там, что сгенерить, но тогда дублируется список файлов, которые одним правилом генерятся, а другим компилятся.

Возможно составить Makefile.am так, чтобы там было два списка libwrappers_a_SOURCES, но чтобы один из них перед компиляцией еще и генерился??
Спасибо сказали: