我想用这样的参数调用另一个任务:
FILES = `find . -type d -name '*_server' -maxdepth 1`
UNAME = $(shell uname)
build:
ifeq (${UNAME}, Darwin)
build: build-os os=darwin # I want to set os to darwin, then call build-os
else
build: build-os os=linux
endif
build-os:
gox -verbose \
-os="${os}" \
-arch="amd64" \
-output="${DIST}/{{.OS}}-{{.Arch}}/{{.Dir}}" ${FILES}
正如您所看到的,我想要致电build
的任务build-os
取决于shell uname
答案 0 :(得分:1)
首先设置操作系统,然后在目标中使用它:
FILES = `find . -type d -name '*_server' -maxdepth 1`
UNAME = $(shell uname)
ifeq ($(UNAME), Darwin)
os=darwin
else
os=linux
endif
build: build-os
build-os:
gox -verbose \
-os="${os}" \
-arch="amd64" \
-output="${DIST}/{{.OS}}-{{.Arch}}/{{.Dir}}" ${FILES}
请注意,建议您的目标名称与构建的实际输出相匹配。如果不是这样,最好使用.PHONY目标,如下:
.PHONY: build build-output