66 lines
1.9 KiB
Makefile
66 lines
1.9 KiB
Makefile
|
|
export PATH := /usr/lib/mxe/usr/bin:$(PATH)
|
|
GOFLAGS := -ldflags='-s -w' -gcflags='-trimpath=$(CURDIR)' -asmflags='-trimpath=$(CURDIR)'
|
|
VERSION := 1.0.0
|
|
|
|
.PHONY: all dist clean
|
|
|
|
all: \
|
|
qbolt/qbolt.a \
|
|
build/linux/qbolt \
|
|
build/win32/release/qbolt.exe
|
|
|
|
dist: \
|
|
build/dist/qbolt-${VERSION}-win32.zip \
|
|
build/dist/qbolt-${VERSION}-src.tar.gz \
|
|
build/dist/qbolt-${VERSION}-linux_amd64.tar.xz
|
|
|
|
clean:
|
|
if [ -f qbolt/qbolt.a ] ; then rm qbolt/qbolt.a ; fi
|
|
if [ -f qbolt ] ; then rm qbolt ; fi
|
|
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
|
|
|
|
build/linux/qbolt: build/linux/qbolt.a qbolt/*
|
|
cd build/linux && qmake ../../qbolt/qbolt.pro && make
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
# Source code archives
|
|
|
|
build/dist/qbolt-${VERSION}-src.tar.gz:
|
|
hg archive build/dist/qbolt-${VERSION}-src.tar.gz
|