54 lines
1.1 KiB
Makefile
54 lines
1.1 KiB
Makefile
EXECUTABLE=project-ely
|
|
|
|
GO=go
|
|
MINGW64=x86_64-w64-mingw32-gcc
|
|
MINGW32=i686-w64-mingw32-gcc
|
|
MUSL_GCC="${HOME}/musl/bin/musl-gcc -static"
|
|
|
|
GO_BUILD=build -x -v
|
|
GO_BUILD_DEBUG=${GO_BUILD} -gcflags=all="-N -l"
|
|
GO_BUILD_RELEASE=${GO_BUILD} -trimpath -ldflags '-s -w'
|
|
GO_BUILD_RELEASE_STATIC=${GO_BUILD} -trimpath -ldflags '-s -w -linkmode external -extldflags "-static"'
|
|
|
|
all: release
|
|
|
|
dependencies:
|
|
${GO} mod tidy
|
|
|
|
prebuild: dependencies
|
|
|
|
debug: prebuild
|
|
${GO} ${GO_BUILD_DEBUG}
|
|
|
|
release: prebuild
|
|
${GO} ${GO_BUILD_RELEASE}
|
|
|
|
# release_static only works on Alpine, see the Dockerfile
|
|
release_static: prebuild
|
|
CGO_ENABLED=1 \
|
|
CGO_LDFLAGS="-Wl,-rpath -L${HOME}/pkg/lib -L/usr/lib -L/usr/lib/x86_64-linux-gnu" \
|
|
${GO} ${GO_BUILD_RELEASE_STATIC}
|
|
|
|
lint: linter
|
|
linter:
|
|
golangci-lint run
|
|
|
|
clean:
|
|
rm -f ${EXECUTABLE}
|
|
rm -f ${EXECUTABLE}-*
|
|
rm -f output.log
|
|
rm -f cpu.prof
|
|
|
|
cross_windows:
|
|
CC=${MINGW64} \
|
|
NAME=${EXECUTABLE} \
|
|
./scripts/build-windows-amd64.sh
|
|
|
|
cross_windows_x86:
|
|
CC=${MINGW32} \
|
|
NAME=${EXECUTABLE} \
|
|
./scripts/build-windows-386.sh
|
|
|
|
goimports_everything:
|
|
find . -name "*.go" -exec goimports -w {} \;
|