美文网首页
Makefile编写

Makefile编写

作者: scriptllh | 来源:发表于2018-07-24 11:21 被阅读0次

背景


  1. 以前学的一些东西需要记录下

Makefile 编写


  1. 以自己实际项目来阐述每个的用法
  2. 目录结构


    15324023686513.jpg
  1. 代码

PROJECT_ROOT?=$(shell pwd)
//项目名称
PROJECT_PKG?=ai-exam
//可执行文件名称
TARGET=exam
TARGET_PKG=$(PROJECT_PKG)/cmd
IMAGE_PREFIX_PRD= 线上环境仓库名称
IMAGE_PREFIX?=测试环境仓库名称
TARGET_IMAGE=$(IMAGE_PREFIX)/$(TARGET):0.1.0
TARGET_IMAGE_PRD=$(IMAGE_PREFIX_PRD)/$(TARGET):0.1.0

// make 执行image-tst
all:image-tst


// 编译项目
binary:
    CGO_ENABLED=0 go build -ldflags "-X main.version=$(GITVERSION)" \
         -o /go/src/$(PROJECT_PKG)/dist/$(TARGET) $(TARGET_PKG)
// 进入容器编译项目、并将项目的可执行文件移出
target:
    mkdir -p $(PROJECT_ROOT)/dist
    docker run --rm -i -v $(PROJECT_ROOT):/go/src/$(PROJECT_PKG) \
      -w /go/src/$(PROJECT_PKG) golang:1.10.2 \
      make binary  GITVERSION=`git describe --tags --always --dirty`

//测试环境打包成docker镜像
image-tst:target
    temp=`mktemp -d` && \
    cp $(PROJECT_ROOT)/dist/$(TARGET) $$temp && cp Dockerfile $$temp && \
    docker build -t $(TARGET_IMAGE) $$temp && \
    rm -rf $$temp
push-tst:
    docker push $(TARGET_IMAGE)

//线上环境打包成docker镜像
image-prd:target
    temp=`mktemp -d` && \
    cp $(PROJECT_ROOT)/dist/$(TARGET) $$temp && cp Dockerfile $$temp && \
    docker build -t $(IMAGE_PREFIX_PRD) $$temp && \
    rm -rf $$temp
push-prd:
    docker push $(TARGET_IMAGE_PRD)

// make clean
clean:
    rm -rf dist

.PHONY: image target clean push binary

相关文章

  • makefile编写,GDB调试

    1.makefile编写的三要素 在学习编写makefile文件以前,我们先来看makefile编写的三要素。 1...

  • 编写Makefile及简单分析

    makefile的好处:一次编写,终身受益 makefile的命名规则: makefile Makefile ma...

  • 二 . 树莓派A20驱动程序编写(模板程序)

    1 Makefile Makefile文件编写如下: 2 *.c文件 建立一个test.文件,编写内容如下: 3 ...

  • Makefile 编写

    1. 原生 Makefile 自己编写 Makefile 文件 2. CMakeLists.txt 文件 CMak...

  • Makefile编写

    背景 以前学的一些东西需要记录下 Makefile 编写 以自己实际项目来阐述每个的用法 目录结构15324023...

  • 编写Makefile

    最近学习了如何编写Makefile,以下是一则实例 文件结构 Makefile实例

  • Makefile 编写

    通配符 $? 所有比目标新的依赖目标的集合 $^ 所有依赖 的集合 $+ 所有依赖的目标的集合,但是不去重 $% ...

  • makefile编写

    1、若是同一个目录下的C文件比如目录下有a.c、b.c两个文件,可编写如下

  • makefile 编写

    1. Makefile 中::=,?=, +=, =的区别 = 是最基本的赋值:= 是覆盖之前的值?= 是如果没有...

  • makefile入门一

    Linux下Makefile详解 下面就来看如何写Makefile文件:Makefile文件编写规范: 下来看事例...

网友评论

      本文标题:Makefile编写

      本文链接:https://www.haomeiwen.com/subject/pheemftx.html