Flamenco/Makefile

136 lines
4.0 KiB
Makefile

OUT := flamenco-manager-poc
PKG := gitlab.com/blender/flamenco-ng-poc
VERSION := $(shell git describe --tags --dirty --always)
PKG_LIST := $(shell go list ${PKG}/... | grep -v /vendor/)
STATIC_OUT := ${OUT}-${VERSION}
PACKAGE_PATH := dist/${OUT}-${VERSION}
LDFLAGS := -X ${PKG}/internal/appinfo.ApplicationVersion=${VERSION}
BUILD_FLAGS = -ldflags="${LDFLAGS}"
ifndef PACKAGE_PATH
# ${PACKAGE_PATH} is used in 'rm' commands, so it's important to check.
$(error PACKAGE_PATH is not set)
endif
RESOURECS :=
ifeq ($(OS),Windows_NT)
OUT := $(OUT).exe
STATIC_OUT := $(STATIC_OUT).exe
LDFLAGS := $(LDFLAGS) -H=windowsgui
RESOURECS := resource.syso
endif
all: application
# Install generators and build the software.
with-deps:
go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen
make -s application
application: ${RESOURCES}
go generate ${PKG}/...
go build -v ${BUILD_FLAGS} ${PKG}/cmd/flamenco-manager-poc
go build -v ${BUILD_FLAGS} ${PKG}/cmd/flamenco-worker-poc
# resource.syso: resource/thermogui.ico resource/versioninfo.json
# goversioninfo -icon=resource/thermogui.ico -64 resource/versioninfo.json
version:
@echo "OS : ${OS}"
@echo "Package: ${PKG}"
@echo "Version: ${VERSION}"
@echo "Target : ${OUT}"
list-embedded:
@go list -f '{{printf "%10s" .Name}}: {{.EmbedFiles}}' ${PKG}/...
swagger-ui:
git clone --depth 1 https://github.com/swagger-api/swagger-ui.git tmp-swagger-ui
rm -rf pkg/api/static/swagger-ui
mv tmp-swagger-ui/dist pkg/api/static/swagger-ui
rm -rf tmp-swagger-ui
@echo
@echo 'Now update pkg/api/static/swagger-ui/index.html to have url: "/api/openapi3.json",'
test:
go test -short ${PKG_LIST}
vet:
@go vet ${PKG_LIST}
lint:
@for file in ${GO_FILES} ; do \
golint $$file ; \
done
clean:
@go clean -i -x
rm -f flamenco*-poc-v* flamenco*-poc *.exe resource.syso pkg/api/*.gen.go
go generate ./...
# static: vet lint resource.syso
static: vet lint
CGO_ENABLED=0 go build -v -o flamenco-manager-poc-static -tags netgo -ldflags="-extldflags \"-static\" -w -s ${LDFLAGS}" ${PKG}/cmd/flamenco-manager-poc
CGO_ENABLED=0 go build -v -o flamenco-worker-poc-static -tags netgo -ldflags="-extldflags \"-static\" -w -s ${LDFLAGS}" ${PKG}/cmd/flamenco-worker-poc
.gitlabAccessToken:
$(error gitlabAccessToken does not exist, visit Visit https://gitlab.com/profile/personal_access_tokens, create a Personal Access Token with API access then save it to the file .gitlabAccessToken)
release: .gitlabAccessToken package
rsync ${PACKAGE_PATH}* stuvel@stuvel.eu:files/beatstripper/ -va
go run release/release.go -version ${VERSION} -fileglob ${PACKAGE_PATH}\*
package:
@$(MAKE) _prepare_package
@$(MAKE) _package_linux
@$(MAKE) _package_windows
#@$(MAKE) _package_darwin
@$(MAKE) _finish_package
package_linux:
@$(MAKE) _prepare_package
@$(MAKE) _package_linux
@$(MAKE) _finish_package
package_windows:
@$(MAKE) _prepare_package
@$(MAKE) _package_windows
@$(MAKE) _finish_package
package_darwin:
@$(MAKE) _prepare_package
@$(MAKE) _package_darwin
@$(MAKE) _finish_package
_package_linux:
@$(MAKE) --no-print-directory GOOS=linux MONGOOS=linux GOARCH=amd64 STATIC_OUT=${PACKAGE_PATH}/${OUT} _package_tar
_package_windows:
@$(MAKE) --no-print-directory GOOS=windows MONGOOS=windows GOARCH=amd64 STATIC_OUT=${PACKAGE_PATH}/${OUT}.exe _package_zip
_package_darwin:
@$(MAKE) --no-print-directory GOOS=darwin MONGOOS=osx GOARCH=amd64 STATIC_OUT=${PACKAGE_PATH}/${OUT} _package_zip
_prepare_package:
rm -rf ${PACKAGE_PATH}
mkdir -p ${PACKAGE_PATH}
cp -ua README.md LICENSE ${PACKAGE_PATH}/
_finish_package:
rm -r ${PACKAGE_PATH}
rm -f ${PACKAGE_PATH}.sha256
sha256sum ${PACKAGE_PATH}* | tee ${PACKAGE_PATH}.sha256
_package_tar: static
tar -C $(dir ${PACKAGE_PATH}) -zcf $(PWD)/${PACKAGE_PATH}-${GOOS}.tar.gz $(notdir ${PACKAGE_PATH})
rm ${STATIC_OUT}
_package_zip: static
cd $(dir ${PACKAGE_PATH}) && zip -9 -r -q $(notdir ${PACKAGE_PATH})-${GOOS}.zip $(notdir ${PACKAGE_PATH})
rm ${STATIC_OUT}
.PHONY: run application version static vet lint deploy package release prepare