qbolt/Makefile

73 lines
2.1 KiB
Makefile
Raw Normal View History

2017-05-16 07:34:54 +00:00
2017-05-21 02:33:46 +00:00
export PATH := /usr/lib/mxe/usr/bin:$(PATH)
GOFLAGS := -ldflags='-s -w' -gcflags='-trimpath=$(CURDIR)' -asmflags='-trimpath=$(CURDIR)'
2017-06-19 09:04:40 +00:00
VERSION := 1.0.2
2017-05-21 02:33:46 +00:00
2017-05-21 03:59:00 +00:00
.PHONY: all libs dist clean
2017-05-16 07:34:54 +00:00
2017-05-21 02:33:46 +00:00
all: \
build/linux/qbolt \
2017-05-21 02:51:22 +00:00
build/win32/release/qbolt.exe
2017-05-21 03:59:00 +00:00
libs: \
build/linux/qbolt.a \
build/win32/qbolt.a
2017-05-21 02:51:22 +00:00
dist: \
build/dist/qbolt-${VERSION}-win32.zip \
2021-04-12 05:43:59 +00:00
build/dist/qbolt-${VERSION}-linux_amd64.tar.xz
2017-05-16 07:34:54 +00:00
clean:
2017-05-21 02:33:46 +00:00
if [ -f qbolt/qbolt.a ] ; then rm qbolt/qbolt.a ; fi
2017-05-16 07:34:54 +00:00
if [ -f qbolt ] ; then rm qbolt ; fi
2017-05-21 02:33:46 +00:00
if [ -d build ] ; then rm -r build ; fi
# Build core golang shared library (linux)
build/linux/qbolt.a: *.go
mkdir -p build/linux
go build ${GOFLAGS} -buildmode=c-archive -o build/linux/qbolt.a
# Build core golang shared library (win32)
build/win32/qbolt.a: *.go
mkdir -p build/win32
CC=/usr/lib/mxe/usr/bin/i686-w64-mingw32.static-gcc CGO_ENABLED=1 GOARCH=386 GOOS=windows \
go build ${GOFLAGS} -buildmode=c-archive -o build/win32/qbolt.a
# Linux binaries
2017-05-20 02:57:19 +00:00
2017-05-21 02:33:46 +00:00
build/linux/qbolt: build/linux/qbolt.a qbolt/*
cd build/linux && qmake ../../qbolt/qbolt.pro && make
2017-05-21 02:51:22 +00:00
# Linux distribution
build/dist/qbolt-${VERSION}-linux_amd64.tar.xz: build/linux/qbolt
XZ_OPTS=-9 tar caf build/dist/qbolt-${VERSION}-linux_amd64.tar.xz -C build/linux qbolt --owner=0 --group=0
2017-05-21 02:33:46 +00:00
# Windows binaries
build/win32/release/qbolt.exe: build/win32/qbolt.a qbolt/*
cd build/win32 && i686-w64-mingw32.static-qmake-qt5 ../../qbolt/qbolt.pro && make
2017-05-21 02:51:22 +00:00
# Dockerized Windows build
.PHONY: build-docker-build-environment
build-docker-build-environment:
cd docker && docker build -t win32-cross-qt-mxe:latest -f win32-cross-qt-mxe.Dockerfile
.PHONY: build-windows-in-docker
build-windows-in-docker:
docker run --rm -v $(CURDIR):/qbolt win32-cross-qt-mxe:latest /bin/sh -c 'cd /qbolt && make build/win32/release/qbolt.exe'
2017-05-21 02:51:22 +00:00
# Windows distribution
build/win32/dist/qbolt.exe: build/win32/release/qbolt.exe
mkdir -p build/win32/dist
cp build/win32/release/qbolt.exe build/win32/dist/qbolt.exe
upx --lzma build/win32/dist/qbolt.exe
build/dist/qbolt-${VERSION}-win32.zip: build/win32/dist/qbolt.exe
mkdir -p build/dist
zip -0 -j build/dist/qbolt-${VERSION}-win32.zip build/win32/dist/qbolt.exe