Мне нужно сгенерировать .c
и .h
из спецификации буфера протокола Google .proto
в моей сборке.Как сгенерировать исходный код с помощью внешнего инструмента из самой конфигурации?
В настоящее время я следил за тем, как вручную регистрировать зависимости для моего сгенерированного файла .h
. То есть, я добавил несколько:
somefilethatincludesthegenerated.$(OBJEXT): mygenerated.h
и что вместе с моими правилами строить mygenerated.h
и mygenerated.c
работ. Я знаю о BUILT_SOURCES
, но это работает только для make all
не для make mytarget
.
Итак, я хотел изучить возможность генерации источников от configure
вместо этого, как описано в Automake manual.
AC_CONFIG_FILES
позволит мне сгенерировать mygenerated.h
с mygenerated.h.in
, но реально этот файл не предназначен для создания из шаблона. Файлы должны создаваться с помощью внешнего инструмента под названием protoc
. В моем Makefile.am
файле правила для создания сгенерированные источников является:
mygenerated.c mygenerated.c: myprotofile.proto
$(PROTOC) --proto_path=$(srcdir) --c_out=$(builddir) $^
Как можно добиться что-то подобное из самого configure
?. Что я после строить сгенерированные источники всегда, и прежде, чем какой-либо другой цели (BUILT_SOURCES
не будет работать для других, чем all
, check
целей, а также некоторые другие)
Вам нужно будет скомпилировать прото-файл для генерации источников. Взгляните на руководство [protobuf manual] (https://developers.google.com/protocol-buffers/docs/overview). – petersv
Я уже знаю, что, как описано в самом вопросе. Теперь я хочу скомпилировать proto-файл из самого скрипта 'configure', а не компилировать его в' Makefile' – ecerulm
, почему вы хотите скомпилировать код на шаге 'configure'? 'configure' действительно пытается отделить шаги * настройки * и * building *; вы не должны пытаться их смешивать. –