Makefile编译文件

代码变成可执行文件,叫做编译(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)


更多 makefile

Buy me a 肥仔水!