github.com/letsencrypt/boulder@v0.20251208.0/Makefile (about) 1 # TODO(#8338): Remove Makefile 2 OBJDIR ?= $(shell pwd)/bin 3 DESTDIR ?= /usr/local/bin 4 ARCHIVEDIR ?= /tmp 5 6 VERSION ?= 1.0.0 7 EPOCH ?= 1 8 MAINTAINER ?= "Community" 9 10 CMDS = admin boulder ceremony ct-test-srv pardot-test-srv chall-test-srv zendesk-test-srv 11 CMD_BINS = $(addprefix bin/, $(CMDS) ) 12 OBJECTS = $(CMD_BINS) 13 14 # Build environment variables (referencing core/util.go) 15 COMMIT_ID = $(shell git rev-parse --short=8 HEAD) 16 17 BUILD_ID = $(shell git symbolic-ref --short=8 HEAD 2>/dev/null) +$(COMMIT_ID) 18 BUILD_ID_VAR = github.com/letsencrypt/boulder/core.BuildID 19 20 BUILD_HOST = $(shell whoami)@$(shell hostname) 21 BUILD_HOST_VAR = github.com/letsencrypt/boulder/core.BuildHost 22 23 BUILD_TIME = $(shell date -u) 24 BUILD_TIME_VAR = github.com/letsencrypt/boulder/core.BuildTime 25 26 GO_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 deb tar 29 all: build 30 31 build: $(OBJECTS) 32 33 $(OBJDIR): 34 @mkdir -p $(OBJDIR) 35 36 $(CMD_BINS): build_cmds 37 38 build_cmds: | $(OBJDIR) 39 echo $(OBJECTS) 40 GOBIN=$(OBJDIR) go install -mod=vendor $(GO_BUILD_FLAGS) ./... 41 42 # Building a .deb requires `fpm` from https://github.com/jordansissel/fpm 43 # which you can install with `gem install fpm`. 44 # It is recommended that maintainers use environment overrides to specify 45 # Version and Epoch, such as: 46 # 47 # VERSION=0.1.9 EPOCH=52 MAINTAINER="$(whoami)" ARCHIVEDIR=/tmp make build deb 48 deb: build 49 fpm -f -s dir -t deb --name "boulder" \ 50 --license "Mozilla Public License v2.0" --vendor "ISRG" \ 51 --url "https://github.com/letsencrypt/boulder" --prefix=/opt/boulder \ 52 --version "$(VERSION)" --iteration "$(COMMIT_ID)" --epoch "$(EPOCH)" \ 53 --package "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).x86_64.deb" \ 54 --description "Boulder is an ACME-compatible X.509 Certificate Authority" \ 55 --maintainer "$(MAINTAINER)" \ 56 test/config/ sa/db data/ $(OBJECTS) 57 58 tar: build 59 fpm -f -s dir -t tar --name "boulder" --prefix=/opt/boulder \ 60 --package "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).amd64.tar" \ 61 test/config/ sa/db data/ $(OBJECTS) 62 gzip -f "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).amd64.tar"