代码变成可执行文件,叫做编译(compile)
先编译这个,还是先编译那个(即编译的安排),叫做构建(build)
Make
是最常用的构建工具
,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,就要重新构建的项目,都可以用Make构建。
Make
make 需要知道规则
rules.txt
a.txt: b.txt c.txt
cat b.txt c.txt > a.txt
make -f rules.txt
make --file=rules.txt
makefile 的格式
Makefile文件由一系列规则(rules)构成。每条规则的形式如下。
<target> : <prerequisites>
[tab] <commands>
实例:
VERSION = 1.0.1
SOURCE_NAME = SOURCE_NAME
MODULE_NAME = SOURCE_NAME
PNAME = $(MODULE_NAME)-$(VERSION)
GOSOURCES := $(shell find src -name *.go)
ifeq "$(GOROOT)" ""
go := go
else
go := $(GOROOT)/bin/go
endif
GOPATH = $(shell pwd)
build: install
- rm -rf target
mkdir -p target/$(PNAME)
cp -r bin target/$(PNAME)
chmod +x target/$(PNAME)/bin/*
cd target && fpm -s dir -t rpm -n $(MODULE_NAME) -v $(VERSION) --iteration 1 --rpm-defattrfile=0755 --prefix=/usr/local/name/prog.d $(PNAME)
- rm -rf target/$(PNAME)
install:
$(go) install $(SOURCE_NAME)
.PHONY : clean
clean:
- $(go) clean $(PNAME)