합니다 메이크업을 릴리스 모든 부부에 대한 자료를 구축하기 위해GNU 내가 이동 프로젝트를위한 비교적 간단한 메이크가 나는 유사한 무언가 실행할 수 있도록하려면 간단하게 확장 변수와 자동 변수
다른 플랫폼 (예 : windows, linux, darwin).
내 메이크 파일은 현재 다음과 같습니다 : 나는 실제로 불구하고 구축 할 때
GOOSES = darwin windows linux
GOARCHS = amd64 386
.PHONY: release-all $(GOOSES) $(GOARCHS)
release: $(GOOSES)
$(GOOSES): GOOS := app [email protected]
$(GOOSES): $(GOARCHS)
$(GOARCHS): GOARCH := [email protected]
$(GOARCHS): build
build:
GOOS=$(GOOS) GOARCH=$(GOARCH) go install ...
, 내가 얻을 :
GOOS= GOARCH= go install ...
지금까지 내가 :=
을 말할 수있는 원인이되지 않는다 할당시 평가 될 [email protected]
. 어떻게 든 달성 할 수 있습니까? 그렇지 않다면 모든 옵션을 구축 할 때까지 기본적으로 OS의 목록에있는 각 항목을 반복 한 다음 각 아키텍처를 반복합니다. 적어도 각 아키텍처/OS 콤보를 명시 적으로 지정하지 않아도 될까요?
간단한 대답하면 자동 변수 (예 :'$ @ ') 전제 조건 목록에서 사용할 수없는 것입니다,하지만 ... 그것은이다 * 정말 *이 메이크 파일이 어떻게 작동하는지 예상 할 수 없다. 'GOOS = darwin GOARCH = 386 go install ... '과 같은 명령이 실제로 작동합니까? – Beta
그래, "..."분명히 지금은 redacted지만, 잘 프로그램을 구축을 위해 잘 작동합니다. – simpleproof