Я пишу свой первый Makefile для компиляции некоторых определений CORBA .idl
для использования в составе более крупной системы.Я использую программу omniidl
от omniORB, которая берет file.idl
и создает file.hh
и fileSK.cc
.Каждый .idl
не имеет зависимостей и создается с помощью команды omniidl -bcxx file.idl
.
Из прочтения учебника GNU Make кажется, что Pattern Rules будет делать именно то, что мне нужно.Цель преобразования .idl
основана на примере bison
в Разделе 10.5.2 руководства GNU.Мой главный вопрос: как я могу активировать эти правила?Я попытался поставить цель целиком и ввести зависимость от .idl
s, но безрезультатно.
OMNIIDL := omniidl
DEPENDFLAGS := -g
CXX := g++
CXXFLAGS := $(DEPENDFLAGS) -Wall -Werror -ansi
%.o : %.cc
$(CXX) $(CXXFLAGS) -c $< -o $@
%.hh %SK.cc : %.idl
$(OMNIIDL) -bcxx $<
all : $(wildcard *.idl)
В соответствующей заметке, где обычно должен размещаться автоматически сгенерированный код?Я намереваюсь скопировать скомпилированные файлы .o
в каталог моего проекта /lib
или /include
, но следует ли файлы .hh
и .cc
оставить в папке src
или поместить в другое место, чтобы облегчить процесс очистки?