UP | HOME

Makefile 使用备注

Table of Contents

Makefile 使用备注

概述

用于linux平台,管理软件项目的编译,连接等作用。

格式

一般在项目根目录下,创建Makefile文件。如:

#
# Makefile
# josephzeng, 2018-08-02 23:13
#

SHELL=/bin/bash
export GOPATH=$(shell pwd):/home/josephzeng/go
GOBIN=go
GLIDE=glide
GOBUILD=$(GOBIN) build
GOCLEAN=$(GOBIN) clean
GOTEST=$(GOBIN) test
GOGET=$(GOBIN) get
GATEWAYBIN=./bin/gateway
GATEWAYSRC=./src/gateway

all: test_gateway build_gateway

test: test_gateway
build: build_gateway

test_gateway:
	$(GOTEST) -v $(GATEWAYSRC)

build_gateway:
	rm -rf $(GATEWAYBIN)
	$(GOBUILD) -o $(GATEWAYBIN) $(GATEWAYSRC)

run_gateway: build_gateway
	ps -eaf| grep $(GATEWAYBIN) | grep -v grep | awk '{print $$2}' | xargs kill -9
	$(GATEWAYBIN)

deps:
	cd ./src ;\
	$(GLIDE) get github.com/go-ini/ini#v1.38.1 ;\
	$(GLIDE) get github.com/urfave/cli#v1.20.0 ;\
	$(GLIDE) install

clean:
	rm -rf ./bin/*
	rm -rf ./logs/*

#执行多个目标

.PHONY:test_gateway build_gateway

语法

基本语法

target: dependencies
      command
#target 执行目标,比如 make target 执行对应的目标
#dependencies 依赖项 如 target: before 表示依赖before执行target
#command 执行目标使用命令集合

变量

VARIABLE = value
# 在执行时扩展,允许递归扩展。
VARIABLE := value
# 在定义时扩展。
VARIABLE ?= value
# 只有在该变量为空时才设置值。
VARIABLE += value
# 将值追加到变量的尾端。

备注

Last updated: 2023-04-18 Tue 22:10
Power by Emacs emacs-28.2 (Org mode 9.6)
© 2017 – 2023 by JosephTseng