62 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
OBJDIR ?= $(shell pwd)/bin
 | 
						|
DESTDIR ?= /usr/local/bin
 | 
						|
ARCHIVEDIR ?= /tmp
 | 
						|
 | 
						|
VERSION ?= 1.0.0
 | 
						|
EPOCH ?= 1
 | 
						|
MAINTAINER ?= "Community"
 | 
						|
 | 
						|
CMDS = admin boulder ceremony ct-test-srv pardot-test-srv chall-test-srv
 | 
						|
CMD_BINS = $(addprefix bin/, $(CMDS) )
 | 
						|
OBJECTS = $(CMD_BINS)
 | 
						|
 | 
						|
# Build environment variables (referencing core/util.go)
 | 
						|
COMMIT_ID = $(shell git rev-parse --short=8 HEAD)
 | 
						|
 | 
						|
BUILD_ID = $(shell git symbolic-ref --short=8 HEAD 2>/dev/null) +$(COMMIT_ID)
 | 
						|
BUILD_ID_VAR = github.com/letsencrypt/boulder/core.BuildID
 | 
						|
 | 
						|
BUILD_HOST = $(shell whoami)@$(shell hostname)
 | 
						|
BUILD_HOST_VAR = github.com/letsencrypt/boulder/core.BuildHost
 | 
						|
 | 
						|
BUILD_TIME = $(shell date -u)
 | 
						|
BUILD_TIME_VAR = github.com/letsencrypt/boulder/core.BuildTime
 | 
						|
 | 
						|
GO_BUILD_FLAGS = -ldflags "-X \"$(BUILD_ID_VAR)=$(BUILD_ID)\" -X \"$(BUILD_TIME_VAR)=$(BUILD_TIME)\" -X \"$(BUILD_HOST_VAR)=$(BUILD_HOST)\""
 | 
						|
 | 
						|
.PHONY: all build build_cmds deb tar
 | 
						|
all: build
 | 
						|
 | 
						|
build: $(OBJECTS)
 | 
						|
 | 
						|
$(OBJDIR):
 | 
						|
	@mkdir -p $(OBJDIR)
 | 
						|
 | 
						|
$(CMD_BINS): build_cmds
 | 
						|
 | 
						|
build_cmds: | $(OBJDIR)
 | 
						|
	echo $(OBJECTS)
 | 
						|
	GOBIN=$(OBJDIR) GO111MODULE=on go install -mod=vendor $(GO_BUILD_FLAGS) ./...
 | 
						|
 | 
						|
# Building a .deb requires `fpm` from https://github.com/jordansissel/fpm
 | 
						|
# which you can install with `gem install fpm`.
 | 
						|
# It is recommended that maintainers use environment overrides to specify
 | 
						|
# Version and Epoch, such as:
 | 
						|
#
 | 
						|
# VERSION=0.1.9 EPOCH=52 MAINTAINER="$(whoami)" ARCHIVEDIR=/tmp make build deb
 | 
						|
deb: build
 | 
						|
	fpm -f -s dir -t deb --name "boulder" \
 | 
						|
		--license "Mozilla Public License v2.0" --vendor "ISRG" \
 | 
						|
		--url "https://github.com/letsencrypt/boulder" --prefix=/opt/boulder \
 | 
						|
		--version "$(VERSION)" --iteration "$(COMMIT_ID)" --epoch "$(EPOCH)" \
 | 
						|
		--package "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).x86_64.deb" \
 | 
						|
		--description "Boulder is an ACME-compatible X.509 Certificate Authority" \
 | 
						|
		--maintainer "$(MAINTAINER)" \
 | 
						|
		test/config/ sa/db data/ $(OBJECTS)
 | 
						|
 | 
						|
tar: build
 | 
						|
	fpm -f -s dir -t tar --name "boulder" --prefix=/opt/boulder \
 | 
						|
		--package "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).amd64.tar" \
 | 
						|
		test/config/ sa/db data/ $(OBJECTS)
 | 
						|
	gzip -f "$(ARCHIVEDIR)/boulder-$(VERSION)-$(COMMIT_ID).amd64.tar"
 |