69 lines
2.6 KiB
Makefile
69 lines
2.6 KiB
Makefile
#
|
|
##
|
|
# Take a note - you MUST set CGO_ENABLED to true for cross-compilation
|
|
##
|
|
#
|
|
#
|
|
PROJECT_NAME := "alchemyst-go"
|
|
PKG := "lab.zaar.be/thefish/$(PROJECT_NAME)"
|
|
GO=$(shell which go)
|
|
CWD=$(shell pwd)
|
|
OS=$(shell basename $(shell echo $@ | tr '.' '/' ))
|
|
DISTFOLDER=$(CWD)/dist/$(OS)
|
|
PKG_VER=$(shell git describe --tags | head)
|
|
|
|
LDFLAGS="-X \"main.versionInfo=${PKG_VER}-${CI_PIPELINE_ID} built at $(shell date) on $(shell hostname) with $(shell go version)\""
|
|
|
|
.PHONY: all build test
|
|
|
|
all: build test
|
|
|
|
build: distclean build.deps build.game
|
|
|
|
# build.game: build.game.linux64 build.game.win64 build.game.mac
|
|
build.game: build.game.linux64 build.game.win64
|
|
|
|
build.deps:
|
|
GIT_SSL_NO_VERIFY=true $(GO) mod vendor
|
|
|
|
build.game.linux64:
|
|
php update-config-version.php
|
|
cp $(CWD)/vendor/lab.zaar.be/thefish/bearlibterminal/libBearLibTerminal.so $(DISTFOLDER) && \
|
|
cp $(CWD)/config.json $(DISTFOLDER) && \
|
|
cp -r $(CWD)/assets $(DISTFOLDER) && \
|
|
$(GO) build -ldflags $(LDFLAGS) -o $(DISTFOLDER)/game $(CWD)/cmd/game/main.go && \
|
|
strip $(DISTFOLDER)/game && \
|
|
chmod +x $(DISTFOLDER)/game && \
|
|
cd $(DISTFOLDER) && zip -r ../$(PROJECT_NAME)-$(OS)-${PKG_VER}.zip . -x *.git*
|
|
|
|
build.game.win64:
|
|
php update-config-version.php
|
|
cp $(CWD)/lib/win64/BearLibTerminal.dll $(DISTFOLDER) && \
|
|
cp $(CWD)/config.json $(DISTFOLDER) && \
|
|
cp -r $(CWD)/assets $(DISTFOLDER) && \
|
|
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ $(GO) build -o $(DISTFOLDER)/game.exe -ldflags $(LDFLAGS) $(CWD)/cmd/game/main.go && \
|
|
/usr/bin/x86_64-w64-mingw32-strip $(DISTFOLDER)/game.exe && \
|
|
cd $(DISTFOLDER) && zip -r ../$(PROJECT_NAME)-$(OS)-${PKG_VER}.zip . -x *.git*
|
|
|
|
|
|
|
|
# OSXCROSS_NO_INCLUDE_PATH_WARNINGS=1 MACOSX_DEPLOYMENT_TARGET=10.6 CC=o64-clang CXX=o64-clang++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 $(GO) build -ldflags $(LDFLAGS) -o $(DISTFOLDER)/game $(CWD)/cmd/game/main.go &&
|
|
build.game.mac:
|
|
cp $(CWD)/lib/mac/libBearLibTerminal.dylib $(DISTFOLDER) && \
|
|
cp $(CWD)/config.json $(DISTFOLDER) && \
|
|
cp -r $(CWD)/assets $(DISTFOLDER) && \
|
|
OSXCROSS_NO_INCLUDE_PATH_WARNINGS=1 MACOSX_DEPLOYMENT_TARGET=10.6 CC=clang CXX=clang++ GOOS=darwin GOARCH=amd64 CGO_ENABLED=1 $(GO) build -ldflags $(LDFLAGS) -o $(DISTFOLDER)/game $(CWD)/cmd/game/main.go && \
|
|
strip $(DISTFOLDER)/game.exe && \
|
|
cd $(DISTFOLDER) && zip -r ../$(PROJECT_NAME)-$(OS)-${PKG_VER}.zip . -x *.git*
|
|
|
|
test:
|
|
$(GO) test -v $(go list ./... | grep -v /vendor/)
|
|
|
|
distclean:
|
|
cd $(CWD)/dist && find . -type f -not \( -name .gitkeep -o -name README \) -delete && \
|
|
find . -type d -not \( -name .gitkeep -o -name linux64 -o -name win64 -o -name mac \) -delete
|
|
|
|
|
|
|
|
|