qod*_*nja 4 conditional makefile target
我想运行基于是否不同版本的清理目标的make dev或者make prod是在一个makefile运行.
我本身并没有编译任何东西,只是想根据变量有条件地调用特定目标或一组目标,例如:
ifeq ($(BUILD_ENV),"development")
clean: -clean
else
clean: -clean-info
endif
#---------------------------------
dev: BUILD_ENV = development
dev: dev-setup which-env
#---------------------------------
prod: BUILD_ENV = production
prod: prod-setup which-env
#---------------------------------
which-env: clean
@echo -e "$(GREEN)$(BUILD_ENV)!$(CLEAR)"
-clean: -clean-info -clean-logs | silent
@echo -e "$(GREEN)</CLEAN>$(CLEAR)"
-clean-info:
@echo -e "$(GREEN)<CLEAN>...$(CLEAR)"
-clean-logs:
@echo -e " $(GREY)Removing log and status files $(CLEAR)";
@if [ -d .stat ]; then rm -rf .stat; fi
@rm -f *.log || true
Run Code Online (Sandbox Code Playgroud)
有没有办法用Makefiles做到这一点?我还没有找到任何可以说明这个用例的内容.
我不是要特意清理任何东西或构建任何东西,这只是我试图有条件地调用一组目标的一个例子.实际目标可能是其他任何目标.
Bet*_*eta 10
你要求的确实是你想要的东西并不是很清楚,但是这里有:
all:
ifeq ($(BUILD_ENV),development)
all: clean-dev
else
all: clean-other
endif
clean-dev:
@echo running $@, doing something
clean-other:
@echo running $@, doing something else
Run Code Online (Sandbox Code Playgroud)
如果你跑make BUILD_ENV=development,你会得到一些东西; 如果你跑,make或者make BUILD_ENV=production你会得到别的东西.
| 归档时间: |
|
| 查看次数: |
7630 次 |
| 最近记录: |