add new build environment for cross compile

master
Kevin Schoon 5 years ago
parent 63b1e5497b
commit 952ebbf1fc

@ -0,0 +1,24 @@
# Dockerfile for cross-platform Pomo builds
FROM golang:1.12-stretch
ENV OSXCROSS_REPO="https://github.com/tpoechtrager/osxcross.git"
ENV OSX_SDK_TARBALL="https://s3.dockerproject.org/darwin/v2/MacOSX10.11.sdk.tar.xz"
RUN \
apt-get update -yyq \
&& apt-get install -yyq \
clang \
libxml2 \
patch \
xz-utils
RUN \
mkdir /build \
&& cd /build \
&& git clone --depth=1 "$OSXCROSS_REPO" \
&& cd osxcross/tarballs \
&& wget "$OSX_SDK_TARBALL" \
&& cd .. \
&& UNATTENDED=1 ./build.sh
ENV PATH="$PATH:/build/osxcross/target/bin"

@ -1,25 +1,22 @@
DOCKER_CMD=docker run --rm -ti --user 1000 -w /build/pomo -v $$PWD:/build/pomo
DOCKER_IMAGE=pomo-build
VERSION ?= $(shell git describe --tags 2>/dev/null)
ifeq "$(VERSION)" ""
VERSION := UNKNOWN
endif
.PHONY: \
all \
test \
docs \
pomo-build \
readme \
release \
release-linux \
release-darwin
all: bin/pomo
bin/pomo: test
go build -o $@
clean:
-rm -rfv bin/* docs/*
bindata.go: tomato-icon.png
go-bindata -pkg main -o $@ $^
@ -27,16 +24,23 @@ test:
go test ./...
go vet ./...
pomo-build:
docker build -t $(DOCKER_IMAGE) .
bin/pomo-linux: bin/pomo-$(VERSION)-linux-amd64
bin/pomo-darwin: bin/pomo-$(VERSION)-darwin-amd64
bin/pomo-$(VERSION)-linux-amd64: bin bindata.go
go build -ldflags "-X main.Version=$(VERSION)" -o $@
$(DOCKER_CMD) --env GOOS=linux --env GOARCH=amd64 $(DOCKER_IMAGE) go build -ldflags "-X main.Version=$(VERSION)" -o $@
bin/pomo-$(VERSION)-linux-amd64.md5:
md5sum bin/pomo-$(VERSION)-linux-amd64 | sed -e 's/bin\///' > $@
bin/pomo-$(VERSION)-darwin-amd64: bin bindata.go
# This is used to cross-compile a Darwin compatible Mach-O executable
# This is used to cross-compile a Darwin compatible Mach-O executable
# on Linux for OSX, you need to install https://github.com/tpoechtrager/osxcross
PATH="$$PATH:/usr/local/osx-ndk-x86/bin" GOOS=darwin GOARCH=amd64 CC=/usr/local/osx-ndk-x86/bin/x86_64-apple-darwin15-cc CGO_ENABLED=1 go build $(FLAGS) -o $@
$(DOCKER_CMD) --env GOOS=darwin --env GOARCH=amd64 --env CC=x86_64-apple-darwin15-cc --env CGO_ENABLED=1 $(DOCKER_IMAGE) go build -ldflags "-X main.Version=$(VERSION)" -o $@
bin/pomo-$(VERSION)-darwin-amd64.md5:

Loading…
Cancel
Save