Как выполнить команду оболочки и назначить вывод переменной AC_DEFINE в файле configure.ac

Мне нужно определить основную версию программного обеспечения, чтобы сделать это главным образом для выполнения

команда --version | голова | awk -F "." '{print $1}'

Теперь мне нужно присвоить этот вывод переменной AC_DEFINE.

Я пробовал;

majorvar = $ (команда --version | head | awk -F "." '{print $1}')

AC_DEFINE_UNQUOTED ([MYVAR],["$majorvar"],[далее])

здесь "команда" появилась в результирующем файле config.h

а также

AC_DEFINE([MyVar],0,[DESCR])

AC_SUBST ([myVar], [$ (команда --version | head | awk -F "." '{Print $1}')])

где значение, установленное define (0), появляется в результате.

Можно ли получить желаемый результат, т.е.

#define myVar 5

или я поступаю неправильно, и если да, то как мне поступить?

BR / Patrik

0 ответов

Мне понадобилось несколько месяцев, чтобы осмыслить концепцию макросов. Как видно из названия, макросы "больше", чем скрипты. Надеюсь, этот пример поможет.

AC_DEFUN([VERSION],
[$(test -f $srcdir/VERSION && cat $srcdir/VERSION || AS_ECHO(["$PACKAGE_VERSION"]); )])

am_stable_version_rx='[[1-9]\.[0-9]+(\.[0-9]+)?]'
am_beta_version_rx="[$am_stable_version_rx[bdfhjlnprtvxz]]"

am_release_type=`AS_ECHO(["$VERSION"]) | LC_ALL=C awk ["
  /^$am_stable_version_rx$/ { print \"stable\"; exit(0); }
  /^$am_beta_version_rx$/ { print \"beta version\"; exit(0); }
  { print \"development snapshot\"; }"]`

test "$am_release_type" = stable || cat <<EOF

WARNING: You are about to use a $am_release_type of AC_PACKAGE_NAME VERSION.
WARNING: It might easily suffer from new bugs or regressions.
WARNING: You are strongly advised not to use it in production code.

Please report bugs, problems and feedback to <AC_PACKAGE_BUGREPORT>.
EOF

Фрагмент кода определяет:

  1. макрос функция DEFUN с именем VERSION
  2. переменная сценария с регулярным выражением для управления версиями
  3. назначение переменной сценария, содержащее макрос AS_ECHO, который помещает сценарий VERSION во время генерации сценария конфигурации.
Другие вопросы по тегам