У меня есть две переменные foo
& bar
, foo
будет иметь значение, тогда как bar
может или не может.Я хочу объединить их вместе, разделенные дефисом, если bar
имеет значение.У меня есть кое-что, что работает в bash:
$ foo=foo
$ bar=bar
$ case "${bar}" in "") echo $foo ;; *) echo ${foo}-${bar}; esac
foo-bar
$ unset bar
$ case "${bar}" in "") echo $foo ;; *) echo ${foo}-${bar}; esac
foo
Пока все хорошо.Теперь я хочу сделать то же самое в Makefile, используя make shell
function , но не могу понять синтаксис.Здесь демонстрируется проблема:
$ cat Makefile
foobar = $(shell $(case "$${bar}" in "") echo $${foo} ;; *) echo $${foo}-$${bar};; esac))
default:
echo ${foobar}
$ make
/bin/sh: -c: line 0: syntax error near unexpected token `;;'
/bin/sh: -c: line 0: `echo ${foo} ;; *'
echo echo ${foo}-${bar};; esac))
/bin/sh: -c: line 0: syntax error near unexpected token `;;'
/bin/sh: -c: line 0: `echo echo ${foo}-${bar};; esac))'
make: *** [default] Error 2
Как я могу объединить две переменные среды таким образом, чтобы я мог использовать их в своем Makefile?
Я абсолютный нуб, когда дело доходит доmake
так что, если я пойду совершенно неправильно, дайте мне знать.ТНХ.