Я пытался добиться чего-то похожего на ОП;Я хотел вставить Git commit-id в строку версии Postgres.Код в файле configure.in Postgres, в той же строке, которую я намеревался изменить, уже имел пример.
Суть его в том, что вы можете встроить фрагмент оболочки в строковые литералы в configure.in
, ирезультирующий файл configure
(на самом деле оболочка, выполняющая скрипт оболочки) всегда будет выполнять этот фрагмент оболочки для построения результирующей строки.
Пожалуйста, смотрите патч .Ниже приведены исправления к configure.in
и соответствующий раздел из результирующего файла configure
.
AC_DEFINE_UNQUOTED(PG_VERSION_STR,
- ["PostgreSQL $PACKAGE_VERSION on $host, compiled by $cc_string, `expr $ac_cv_sizeof_void_p \* 8`-bit"],
+ ["PostgreSQL $PACKAGE_VERSION (commit `cd $srcdir && git log -1 --format=format:%h`) on $host, compiled by $cc_string, `expr $ac_cv_sizeof_void_p \* 8`-bit"],
[A string containing the version number, platform, and C compiler])
Результирующий configure
код:
cat >>confdefs.h <<_ACEOF
-#define PG_VERSION_STR "PostgreSQL $PACKAGE_VERSION on $host, compiled by $cc_string, `expr $ac_cv_sizeof_void_p \* 8`-bit"
+#define PG_VERSION_STR "PostgreSQL $PACKAGE_VERSION (commit `cd $srcdir && git log -1 --format=format:%h`) on $host, compiled by $cc_string, `expr $ac_cv_sizeof_void_p \* 8`-bit"
_ACEOF
Строка версии Postgres до и после исправления:
PostgreSQL 9.3.0 on x86_64-unknown-linux-gnu, compiled by ...
PostgreSQL 9.3.0 (commit 2cf9dac) on x86_64-unknown-linux-gnu, compiled by ...