折腾:
【已解决】更新gitbook发布脚本Makefile忽略某些book
期间,希望实现:
再upload这个target目标中,根据当前是否需要被过滤而执行不同动作
所以需要去搞清楚:
如何再目标内,而不是全局,去实现条件判断,执行不同动作
而在:
【未解决】Makefile中如何定义和判断布尔类型变量
期间,无意间参考:
GNU make – Conditional Parts of Makefiles
libs_for_gcc = -lgnu normal_libs = foo: $(objects) ifeq ($(CC),gcc) $(CC) -o foo $(objects) $(libs_for_gcc) else $(CC) -o foo $(objects) $(normal_libs) endif
调试期间,可以用:
upload: @echo ================================================================================ ifeq ($(SHOULD_IGNORE), true) @echo Upload for $(BOOK_NAME) # sshpass -f $(PASSWORD_FILE) rsync -avzh --progress --stats --delete --force $(OUTPUT_PATH) $(REMOTE_USER)@$(REMOTE_SERVER):$(REMOTE_PATH) else @echo Ignore to upload $(BOOK_NAME) to book.crifan.com endif
【总结】
在target中用条件判断的话:
ifeq之类的条件判断,顶格写
注意ifeq,else,endif成对使用即可
其余的代码,正常缩进去写
比如:
upload: @echo demo how conditional do action within target ifeq ($(YOUR_VARIABLE_NAME), some_value_to_check) @echo do_what_when_true else @echo do_what_when_false endif
即可。
转载请注明:在路上 » 【已解决】Makefile中如何在目标中根据条件判断执行不同动作