GNU make - Как объединить переменную в зависимости от результата команды оболочки (версия GCC)?

В ваши выходные данные включены следующие отзывы о запуске PulseAudio в качестве системного пользователя:

Прочтите http://www.freedesktop.org / wiki / Software / PulseAudio / Documentation / User / WhatIsWrongWithSystemWide / для объяснения, почему системный режим обычно является плохой идеей.

Альтернативный вариант - запустить PulseAudio от имени пользователя, под которым вы вошли. Как это сделать - вопрос, на который уже дан ответ .

1
30.10.2017, 20:05
1 ответ

Есть много решений, включая это. В вашем Makefile используйте

VERSION5 := $(shell \
 GCC_VERSION=$$(gcc -dumpversion); \
 [[ $$GCC_VERSION > 5.0 ]]; \
 echo $$? )

ifeq (${VERSION5}, 0)
  CFLAGS += -D _POSIX_C_SOURCE=199309L
endif

Обратите внимание, что вам нужно использовать $$для каждого $в вашем сценарии оболочки. Эта оболочка выводит 0, если сравнение строк с 5.0истинно, иначе 1, и это сохраняется в переменной make VERSION5.

Затем тест ifeqв Makefile сравнивает переменную с 0 и, если она совпадает, редактирует переменную CFLAGS.

3
27.01.2020, 23:24

Теги

Похожие вопросы