gitea 源码阅读笔记 002 生成无依赖单文件可执行包
2017-11-23 01:13
337 查看
gitea bindata static
gitea 可以通过make generate生成一个单文件可执行程序,
该文件不需要任何其它依赖,直接可以单独执行。
对于用户的安装、升级和生成docker image等都会方便很多。
makefile
gitea安装指南有说:TAGS="bindata" make generate build
那么,上面这句执行后,发生了什么?
强制指定了
TAGS变量 makefile里会自动读取
执行任务
generate任务
build任务
generate 任务
从makefile看GO ?= go ## 使用go list 列出目录中所有导入包 ## 过滤掉所有包含 /vendor/ 目录的结果 ## 过滤掉 code.gitea.io/gitea/integrations PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations,$(shell $(GO) list ./... | grep -v /vendor/)) .PHONY: generate generate: @hash go-bindata > /dev/null 2>&1; if [ $$? -ne 0 ]; then \ $(GO) get -u github.com/jteeuwen/go-bindata/...; \ fi $(GO) generate $(PACKAGES)
通过注释,基本已经清楚generate需要做的动作了。
列出所有导入包
过滤掉不需要的路径
使用
go generate指令执行go源码文件内设定的指令
背景知识
makefilehash 指令
text functions
go build tags
go generate
相关文章推荐
- 《程序员自我修养》阅读笔记-可执行文件装载与进程
- 一个文件重复生成的小工具[附源码和可执行文件]
- 【GDB调试学习笔记】Makefile生成多个可执行文件
- 【学习笔记】使用eclipse生成可执行的jar文件
- Discuz!NT代码阅读笔记(7)--模板初探:生成的模板是怎样执行的
- 一个文件重复生成的小工具[附源码和可执行文件] 推荐
- 借助WDK7.1让高版本VC生成的可执行文件不依赖msvcrtXX.dll
- spark SQL源码阅读002——sql.core包核心类——002执行SQL语法2次解析SQL词(analyse)
- 【linux c】c语言源程序到最终生成可执行文件的过程_学习笔记_001
- 一个文件重复生成的小工具[附源码和可执行文件]
- 【GDB调试学习笔记】Makefile多级目录生成多个可执行文件
- CI框架源码阅读笔记4 引导文件CodeIgniter.php
- java源码生成jar可执行文件
- Python学习笔记 --- pip生成依赖文件说明
- spark源码阅读笔记RDD(六) RDD的依赖关系
- 【jbpm4.4源码阅读笔记】engine的解析与生成
- CI框架源码阅读笔记4 引导文件CodeIgniter.php
- 1.预处理,生成预编译文件(.文件): Gcc –E hello.c –o hello.i 2.编译,生成汇编代码(.s文件): Gcc –S hello.i –o hello.s 3.汇编,生成目标文件(.o文件): Gcc –c hello.s –o hello.o 4.链接,生成可执行文件: linux笔记
- 一个文件重复生成的小工具[附源码和可执行文件]
- ThinkPHP源码阅读笔记(1)-入口文件