2022-01-07 10:14:32 +00:00
OUT := flamenco-manager-poc
2022-01-24 13:28:00 +00:00
PKG := gitlab.com/blender/flamenco-ng-poc
2022-01-03 14:05:10 +00:00
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 }
2022-01-06 16:46:43 +00:00
LDFLAGS := -X ${ PKG } /internal/appinfo.ApplicationVersion= ${ VERSION }
2022-01-03 14:05:10 +00:00
BUILD_FLAGS = -ldflags= " ${ LDFLAGS } "
i f n d e f P A C K A G E _ P A T H
# ${PACKAGE_PATH} is used in 'rm' commands, so it's important to check.
$( error PACKAGE_PATH is not set )
e n d i f
RESOURECS :=
i f e q ( $( OS ) , W i n d o w s _ N T )
OUT := $( OUT) .exe
STATIC_OUT := $( STATIC_OUT) .exe
LDFLAGS := $( LDFLAGS) -H= windowsgui
RESOURECS := resource.syso
e n d i f
all : application
2022-01-24 13:27:25 +00:00
# Install generators and build the software.
with-deps :
go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen
make -s application
2022-01-28 14:31:39 +00:00
application : ${RESOURCES } generate
2022-01-07 10:14:32 +00:00
go build -v ${ BUILD_FLAGS } ${ PKG } /cmd/flamenco-manager-poc
2022-01-07 10:11:50 +00:00
go build -v ${ BUILD_FLAGS } ${ PKG } /cmd/flamenco-worker-poc
2022-01-03 14:05:10 +00:00
2022-01-28 14:31:39 +00:00
generate :
go generate ${ PKG } /...
2022-01-24 15:59:48 +00:00
# resource.syso: resource/thermogui.ico resource/versioninfo.json
# goversioninfo -icon=resource/thermogui.ico -64 resource/versioninfo.json
2022-01-03 14:05:10 +00:00
version :
@echo " OS : ${ OS } "
@echo " Package: ${ PKG } "
@echo " Version: ${ VERSION } "
@echo " Target : ${ OUT } "
2022-01-06 16:46:43 +00:00
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",'
2022-01-03 15:54:38 +00:00
2022-01-28 14:31:39 +00:00
test : generate
2022-02-01 16:16:16 +00:00
go test -p 1 -short ${ PKG_LIST }
2022-01-03 14:05:10 +00:00
vet :
@go vet ${ PKG_LIST }
lint :
@for file in ${ GO_FILES } ; do \
golint $$ file ; \
done
clean :
@go clean -i -x
2022-01-07 10:37:28 +00:00
rm -f flamenco*-poc-v* flamenco*-poc *.exe resource.syso pkg/api/*.gen.go
2022-01-07 17:01:38 +00:00
go generate ./...
2022-01-03 14:05:10 +00:00
2022-01-24 15:59:48 +00:00
# static: vet lint resource.syso
2022-01-28 14:31:39 +00:00
static : vet lint generate
2022-01-25 16:27:44 +00:00
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
2022-01-03 14:05:10 +00:00
.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 }
2022-01-24 13:27:25 +00:00
.PHONY : run application version static vet lint deploy package release prepare