mapserver/Makefile

79 lines
2.0 KiB
Makefile
Raw Normal View History

2019-06-13 09:04:32 +03:00
STATIC_VFS=vfs/static.go
2019-01-23 11:11:55 +03:00
OUT_DIR=output
2019-06-13 09:04:32 +03:00
ENV=GO111MODULE=on
2019-03-29 12:18:23 +03:00
VERSION=git-$(shell git rev-parse HEAD)
2019-01-23 11:11:55 +03:00
2019-06-13 09:04:32 +03:00
# -ldflags="-X mapserver/app.Version=1.0"
GO_LDFLAGS=-ldflags "-linkmode external -extldflags -static -X mapserver/app.Version=$(VERSION)"
GO_LDFLAGS_WIN=-ldflags "-X mapserver/app.Version=$(VERSION)"
GO_BUILD=CGO_ENABLED=1 go build
BINARIES = $(OUT_DIR)/mapserver-linux-x86_64
BINARIES += $(OUT_DIR)/mapserver-linux-x86
BINARIES += $(OUT_DIR)/mapserver-windows-x86.exe
BINARIES += $(OUT_DIR)/mapserver-windows-x86-64.exe
BINARIES += $(OUT_DIR)/mapserver-linux-arm
all: $(STATIC_VFS)
go build
$(OUT_DIR):
mkdir $@
fmt:
go fmt ./...
test: $(OUT_DIR)
go generate
go build
go vet ./...
$(ENV) go test ./...
clean:
rm -rf $(STATIC_VFS) test-output
rm -rf $(OUT_DIR)
jshint:
2019-09-01 13:06:47 +03:00
jshint static/js/*.js static/js/components static/js/map static/js/util
2019-06-13 09:04:32 +03:00
$(STATIC_VFS):
go generate
$(OUT_DIR)/mapserver-linux-x86_64: $(OUT_DIR)
# native (linux x86_64)
GOOS=linux GOARCH=amd64 CC=x86_64-linux-gnu-gcc $(GO_BUILD) $(GO_LDFLAGS) -o $@
$(OUT_DIR)/mapserver-linux-x86: $(OUT_DIR)
# apt install gcc-8-i686-linux-gnu
GOOS=linux GOARCH=386 CC=i686-linux-gnu-gcc-7 $(GO_BUILD) $(GO_LDFLAGS) -o $@
$(OUT_DIR)/mapserver-windows-x86.exe: $(OUT_DIR)
# apt install gcc-mingw-w64
GOARCH=386 GOOS=windows CC=i686-w64-mingw32-gcc $(GO_BUILD) $(GO_LDFLAGS_WIN) -o $@
$(OUT_DIR)/mapserver-windows-x86-64.exe: $(OUT_DIR)
GOARCH=amd64 GOOS=windows CC=x86_64-w64-mingw32-gcc $(GO_BUILD) $(GO_LDFLAGS_WIN) -o $@
$(OUT_DIR)/mapserver-linux-arm: $(OUT_DIR)
# apt install gcc-5-arm-linux-gnueabihf
GOARCH=arm GOARM=7 CC=arm-linux-gnueabihf-gcc-5 $(GO_BUILD) $(GO_LDFLAGS) -o $@
release: builder_image $(OUT_DIR) $(MOD_ZIP)
2019-03-29 11:07:06 +03:00
# build all with the docker image
sudo docker run --rm -it\
2019-06-20 09:12:11 +03:00
-v $(shell pwd):/app\
2019-03-29 11:07:06 +03:00
-v mapserver-volume:/root/go\
-w /app\
mapserver-builder\
2019-06-13 09:04:32 +03:00
make test jshint release-all VERSION=$(VERSION)
2019-03-29 11:07:06 +03:00
# copy generated files to output dir
2019-01-23 11:11:55 +03:00
2019-04-02 20:12:53 +03:00
builder_image:
# build the docker image with all dependencies
$(MAKE) -C docker_builder build
2019-06-13 09:04:32 +03:00
release-all: $(STATIC_VFS) $(BINARIES)