Я пытаюсь запустить случай переключателя bash в глобальной переменной make. Сам коммутатор работает нормально:
#!/bin/bash
case "$(uname -s)" in CYGWIN*|MINGW*|MSYS*) echo "Hi!";; esac;
# Hi!
Я пытался использовать этот ответ в качестве примера: Назначить значение переменной makefile для результата команды bash? , но когда я поставил внутри VARAIBLE := $(shell thing)
у меня неправильный синтаксис:
SHELL := /bin/bash
.SHELLFLAGS := -eu -o pipefail -c ${SHELLFLAGS}
IS_UNIX := $(shell case "$$(uname -s)" in CYGWIN*|MINGW*|MSYS*) printf "Hi!";; esac;)
all:
echo IS_UNIX ${IS_UNIX}
# /bin/bash: -c: line 0: syntax error near unexpected token `newline'
echo IS_UNIX
и printf "Hi!"
- просто глупые вещи, чтобы сделать этот пример простым. В моем реальном коде я использую их так:
...
ifeq (${OS},Windows_NT)
ifndef PYTHON_BIN
PYTHON_BIN := $(shell which python)
IS_UNIX := $(shell case "$$(uname -s)" in CYGWIN*|MINGW*|MSYS*) printf "Hi!";; esac;)
ifneq (,${IS_UNIX})
PYTHON_BIN := $(shell cygpath -w "${PYTHON_BIN}")
endif
endif
else
...