Добрый день!Буквально только что начал разбираться с синтаксисом make/Makefile и сразу наткнулся на проблему.
Вот синтетический пример для наглядности:
$cat Makefile
TEST_VAR1 := $(shell uname -a | awk '{print $1}')
TEST_VAR2 := $(shell uname -a | cut -d\ -f2)
show:
@echo "TEST_VAR1: $(TEST_VAR1)"
@echo "TEST_VAR2: $(TEST_VAR2)"
По идее, значения переменных TEST_VAR1 и TEST_VAR2 должны получаться одинаковыми, потому что будучи выполнеными в командной строке эти конструкции дают один и тот же результат:
$uname -a | awk '{print $2}'
home
$uname -a | cut -d\ -f2
home
Однако:
$make show
TEST_VAR1: Linux home 2.6.24-22-generic #1 SMP Mon Nov 24 18:32:42 UTC 2008 i686 GNU/Linux
TEST_VAR2: home
Т.е. не отрабатывает часть с awk....
Что тут не так?
Спасибо!