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"