mirror of
https://github.com/TECHNOFAB11/dbmate.git
synced 2025-12-12 16:10:03 +01:00
Cross-compile macOS and Windows builds (#89)
Adds support for cross-compiling macOS and Windows builds with cgo (using https://github.com/techknowlogick/xgo). Closes #41
This commit is contained in:
parent
23d48e48aa
commit
aa72a39a29
4 changed files with 46 additions and 22 deletions
31
Makefile
31
Makefile
|
|
@ -1,5 +1,4 @@
|
|||
DC := docker-compose
|
||||
BUILD_FLAGS := -ldflags '-s'
|
||||
LDFLAGS := -ldflags '-s'
|
||||
|
||||
.PHONY: all
|
||||
all: test lint build
|
||||
|
|
@ -22,13 +21,27 @@ clean:
|
|||
rm -rf dist
|
||||
|
||||
.PHONY: build
|
||||
build: clean
|
||||
GOARCH=amd64 go build $(BUILD_FLAGS) -o dist/dbmate-linux-amd64 .
|
||||
# musl target does not support sqlite
|
||||
GOARCH=amd64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o dist/dbmate-linux-musl-amd64 .
|
||||
build: clean build-linux build-macos build-windows
|
||||
ls -lh dist
|
||||
|
||||
.PHONY: build-linux
|
||||
build-linux:
|
||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=1 \
|
||||
go build $(LDFLAGS) -o dist/dbmate-linux-amd64 .
|
||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \
|
||||
go build $(LDFLAGS) -o dist/dbmate-linux-musl-amd64 .
|
||||
|
||||
.PHONY: build-macos
|
||||
build-macos:
|
||||
GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 CC=o64-clang CXX=o64-clang++ \
|
||||
go build $(LDFLAGS) -o dist/dbmate-macos-amd64 .
|
||||
|
||||
.PHONY: build-windows
|
||||
build-windows:
|
||||
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc-posix CXX=x86_64-w64-mingw32-g++-posix \
|
||||
go build $(LDFLAGS) -o dist/dbmate-windows-amd64.exe .
|
||||
|
||||
.PHONY: docker
|
||||
docker:
|
||||
$(DC) pull
|
||||
$(DC) build
|
||||
$(DC) run --rm dbmate make
|
||||
docker-compose build
|
||||
docker-compose run --rm dbmate make
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue