В моем make-файле я пытаюсь захватить вывод вызова функции оболочки из переменной make, содержащей командную строку, без успеха. Когда я запускаю функцию оболочки в строке напрямую, она работает. Я не понимаю, в чем разница между запуском функции оболочки в командной строке и запуском функции оболочки в переменной make, содержащей командную строку.выполнить функцию оболочки по команде в переменной make
PG_CONFIG = "/usr/pgsql-9.4/bin/pg_config/"
PG_INCLUDE1 = $(shell $$PG_CONFIG)
PG_INCLUDE2 = $(shell /usr/pgsql-9.4/bin/pg_config --includedir-server)
.PHONY: print
print:
@echo "PG_CONFIG="$(PG_CONFIG)
@echo "PG_INCLUDE1="$(PG_INCLUDE1)
@echo "PG_INCLUDE2="$(PG_INCLUDE2)
Выход:
$make -f Makefile.test print
PG_CONFIG=/usr/pgsql-9.4/bin/pg_config/
PG_INCLUDE1=
PG_INCLUDE2=/usr/pgsql-9.4/include/server
попробовать 'PG_INCLUDE1 = $ (оболочка $ (PG_CONFIG))' –