简单的makefile编写


根据个人所需,整理的比较简单,目前够用,后期遇到需要使用的再新增。哪里不对欢迎指出。

示例文件

需要的目录中创建makefile或者Makefile,内容如下:

  1. # 变量定义
  2. var1=1111
  3. # 定义函数
  4. define push-github
  5. cd $(1) \ # 接收参数
  6. && git pull \
  7. && git push github
  8. endef
  9. .PHONY:
  10. push_github:
  11. $(call push-github,/root/project/li-calendar-gin) # 调用函数
  12. $(call push-github,/root/project/li-calendar-vue) # 每行目录复位
  13. .PHONY:
  14. pull:
  15. git pull
  16. .PHONY:
  17. test_var1:
  18. echo $(var1)
  19. .PHONY:
  20. test_var2: # 运行此命令需要命令行传递 make var2=2222 test_var2
  21. echo $(var2)
  22. .PHONY:
  23. test_if: # if语句 make var2=v2 test_var2
  24. ifeq ($(var2),v1) # 还有其他的,如:nep...
  25. echo $(var2)
  26. else ifeq ($(var2),v2)
  27. echo $(var2)
  28. echo "这个是v2"
  29. else
  30. echo "这个是else:"$(var2)
  31. endif

注意

  • 每一行执行完目录都会复位
  • 变量引用$(变量名称/函数名称)
  • 函数引用$(call 函数名称,参数1,参数2)
  • 缩进使用一定要用tab,否则报错

运行

  1. # 普通运行
  2. make pull
  3. # 传递参数
  4. make var2=2222 test_var2

参考:
中文文档:https://seisman.github.io/how-to-write-makefile/variables.html#id7
命令行参数:https://blog.csdn.net/xiaowanbiao123/article/details/78274556
GNU Makefile—命令行参数的传递:https://blog.csdn.net/yeholmes/article/details/118884204
Makefile中条件分支ifeq/else/endif/else ifeq/ifneq/ifdef/ifndef用法详解 :https://www.cnblogs.com/SoaringLee/p/10532151.html

BLOG

搜索文章