Makefile 変数のパスを検出するための複雑なロジックがあります。これをmake言語でやるのは諦めたので、Pythonでコーディングして、変数を設定するコードをMakefileに埋め込みたいと思います。ただし、これは機能しません。
define DETECT_SDK
import os
locations = [
"../google_appengine",
"/usr/local/google_appengine",
"../.locally/google_appengine",
]
for path in locations:
if os.path.exists(path):
print(path)
break
else:
print(".")
endef
SDK_PATH ?= $(shell python -c $(DETECT_SDK))
default:
python -c 'import sys; print(sys.argv)' $(SDK_PATH)
UPDATE : Makefile で複数行の文字列変数を作成することは可能ですか?から複数行の定義を更新しました。
以前は で失敗していましたMakefile:2: *** missing separator. Stop.
。今度は別のエラーで失敗します:
/bin/sh: 1: Syntax error: "(" unexpected
python -c 'import sys; print(sys.argv)'
['-c']