...

Text file src/github.com/letsencrypt/boulder/Makefile

Documentation: github.com/letsencrypt/boulder

     1OBJDIR ?= $(shell pwd)/bin
     2DESTDIR ?= /usr/local/bin
     3ARCHIVEDIR ?= /tmp
     4
     5VERSION ?= 1.0.0
     6EPOCH ?= 1
     7MAINTAINER ?= "Community"
     8
     9CMDS = $(shell find ./cmd -maxdepth 1 -mindepth 1 -type d | grep -v testdata)
    10CMD_BASENAMES = $(shell echo $(CMDS) | xargs -n1 basename)
    11CMD_BINS = $(addprefix bin/, $(CMD_BASENAMES) )
    12OBJECTS = $(CMD_BINS)
    13
    14# Build environment variables (referencing core/util.go)
    15COMMIT_ID = $(shell git rev-parse --short=8 HEAD)
    16
    17BUILD_ID = $(shell git symbolic-ref --short=8 HEAD 2>/dev/null) +$(COMMIT_ID)
    18BUILD_ID_VAR = github.com/letsencrypt/boulder/core.BuildID
    19
    20BUILD_HOST = $(shell whoami)@$(shell hostname)
    21BUILD_HOST_VAR = github.com/letsencrypt/boulder/core.BuildHost
    22
    23BUILD_TIME = $(shell date -u)
    24BUILD_TIME_VAR = github.com/letsencrypt/boulder/core.BuildTime
    25
    26GO_BUILD_FLAGS = -ldflags "-X \"$(BUILD_ID_VAR)=$(BUILD_ID)\" -X \"$(BUILD_TIME_VAR)=$(BUILD_TIME)\" -X \"$(BUILD_HOST_VAR)=$(BUILD_HOST)\""
    27
    28.PHONY: all build build_cmds rpm deb tar
    29all: build
    30
    31build: $(OBJECTS)
    32
    33$(OBJDIR):
    34	@mkdir -p $(OBJDIR)
    35
    36$(CMD_BINS): build_cmds
    37
    38build_cmds: | $(OBJDIR)
    39	echo $(OBJECTS)
    40	GOBIN=$(OBJDIR) GO111MODULE=on go install -mod=vendor $(GO_BUILD_FLAGS) ./...
    41	./link.sh
    42
    43# Building an RPM requires `fpm` from https://github.com/jordansissel/fpm
    44# which you can install with `gem install fpm`.
    45# It is recommended that maintainers use environment overrides to specify
    46# Version and Epoch, such as:
    47#
    48# VERSION=0.1.9 EPOCH=52 MAINTAINER="$(whoami)" ARCHIVEDIR=/tmp make build rpm
    49rpm: build
    50	fpm -f -s dir -t rpm --rpm-digest sha256 --name "boulder" \
    51		--license "Mozilla Public License v2.0" --vendor "ISRG" \
    52		--url "https://github.com/letsencrypt/boulder" --prefix=/opt/boulder \
    53		--version "$(VERSION)" --iteration "$(COMMIT_ID)" --epoch "$(EPOCH)" \
    54		--package "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).x86_64.rpm" \
    55		--description "Boulder is an ACME-compatible X.509 Certificate Authority" \
    56		--maintainer "$(MAINTAINER)" \
    57		test/config/ sa/db data/ $(OBJECTS)
    58
    59deb: build
    60	fpm -f -s dir -t deb --name "boulder" \
    61		--license "Mozilla Public License v2.0" --vendor "ISRG" \
    62		--url "https://github.com/letsencrypt/boulder" --prefix=/opt/boulder \
    63		--version "$(VERSION)" --iteration "$(COMMIT_ID)" --epoch "$(EPOCH)" \
    64		--package "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).x86_64.deb" \
    65		--description "Boulder is an ACME-compatible X.509 Certificate Authority" \
    66		--maintainer "$(MAINTAINER)" \
    67		test/config/ sa/db data/ $(OBJECTS) bin/ct-test-srv
    68
    69tar: build
    70	fpm -f -s dir -t tar --name "boulder" --prefix=/opt/boulder \
    71		--package "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).amd64.tar" \
    72		test/config/ sa/db data/ $(OBJECTS)
    73	gzip -f "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).amd64.tar"

View as plain text