diff --git a/Makefile b/Makefile index 20e9696..7b8d9a1 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,7 @@ -# UID/GID -# UID or GID is the UNIX user ID or group ID of the user who executes -# make. If the UID or GID is not passed as a make variable, an attempt -# is made to determine it. -UID?=$(shell id --user) -GID?=$(shell id --group) - # VERSION/RELEASE # If no version is specified as a parameter of make, the last git hash # value is taken. -VERSION?=$(shell git describe --abbrev=0)+hash.$(shell git rev-parse --short HEAD) +VERSION?=$(shell git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g') RELEASE?=1 # CONTAINER_IMAGE_VERSION @@ -27,13 +20,6 @@ CONTAINER_IMAGE_VERSION:=latest CONTAINER_RUNTIME?=$(shell which docker) BUILD_IMAGE:=volkerraschek/build-image:latest -# GH_USER/GITHUB_TOKEN -# It's the user name from github.com and his token. This token and the username -# can be set over encrypted environment variables in the ci/cd pipeline. It's -# necessary to push the releases on github.com -GITHUB_USER=volker-raschek -GITHUB_TOKEN?="" - # EXECUTABLE # Executable binary which should be compiled for different architecures EXECUTABLE:=flucky @@ -83,34 +69,11 @@ EXECUTABLES:=\ EXECUTABLE_TARGETS:= \ ${UNIX_EXECUTABLE_TARGETS} -# COMPRSSED_EXECUTABLES -# Append to all defined executables the compression extentions to detect the -# different make steps which compress the binary -COMPRESSED_EXECUTABLES:= \ - ${UNIX_EXECUTABLES:%=%.tar.bz2} \ - ${UNIX_EXECUTABLES:%=%.tar.gz} \ - ${UNIX_EXECUTABLES:%=%.tar.xz} \ - ${UNIX_EXECUTABLES:%=%.zip} -COMPRESSED_EXECUTABLE_TARGETS:=${COMPRESSED_EXECUTABLES:%=bin/%} - -# RPM_TARGETS -RPM_EXECUTABLES:=${LINUX_EXECUTABLES:%=%.rpm} -RPM_EXECUTABLE_TARGETS:=${RPM_EXECUTABLES:%=bin/%} - -# RELEASE_TARGETS -RELEASE_EXECUTABLES:= \ - ${COMPRESSED_EXECUTABLE_TARGETS} \ - ${RPM_EXECUTABLE_TARGETS} - -RELEASE_EXECUTABLE_TARGETS:= \ - ${COMPRESSED_EXECUTABLE_TARGETS:%=release/%} \ - ${RPM_EXECUTABLE_TARGETS:%=release/%} - # BINARIES # ============================================================================== # current os ${EXECUTABLE}: bindata - CGO_ENABLED=0 go build -ldflags "-X main.version=${VERSION}" -o "$@" + CGO_ENABLED=0 go build -ldflags "-X main.version=${VERSION}" -o ${@} # build all binaries PHONY:=all @@ -118,27 +81,27 @@ all: ${EXECUTABLE_TARGETS} # darwin os bin/darwin/386/${EXECUTABLE}: bindata - CGO_ENABLED=0 GOARCH=386 GOOS=darwin go build -ldflags "-X main.version=${VERSION}" -o "$@" + CGO_ENABLED=0 GOARCH=386 GOOS=darwin go build -ldflags "-X main.version=${VERSION}" -o ${@} bin/darwin/amd64/${EXECUTABLE}: bindata - CGO_ENABLED=0 GOARCH=amd64 GOOS=darwin go build -ldflags "-X main.version=${VERSION}" -o "$@" + CGO_ENABLED=0 GOARCH=amd64 GOOS=darwin go build -ldflags "-X main.version=${VERSION}" -o ${@} # freebsd os bin/freebsd/amd64/${EXECUTABLE}: bindata - CGO_ENABLED=0 GOARCH=amd64 GOOS=freebsd go build -ldflags "-X main.version=${VERSION}" -o "$@" + CGO_ENABLED=0 GOARCH=amd64 GOOS=freebsd go build -ldflags "-X main.version=${VERSION}" -o ${@} # linux os bin/linux/386/${EXECUTABLE}: bindata - CGO_ENABLED=0 GOARCH=386 GOOS=linux go build -ldflags "-X main.version=${VERSION}" -o "$@" + CGO_ENABLED=0 GOARCH=386 GOOS=linux go build -ldflags "-X main.version=${VERSION}" -o ${@} bin/linux/amd64/${EXECUTABLE}: bindata - CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -ldflags "-X main.version=${VERSION}" -o "$@" + CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -ldflags "-X main.version=${VERSION}" -o ${@} bin/linux/arm/5/${EXECUTABLE}: bindata - CGO_ENABLED=0 GOARM=5 GOARCH=arm GOOS=linux go build -ldflags "-X main.version=${VERSION}" -o "$@" + CGO_ENABLED=0 GOARM=5 GOARCH=arm GOOS=linux go build -ldflags "-X main.version=${VERSION}" -o ${@} bin/linux/arm/7/${EXECUTABLE}: bindata - CGO_ENABLED=0 GOARM=7 GOARCH=arm GOOS=linux go build -ldflags "-X main.version=${VERSION}" -o "$@" + CGO_ENABLED=0 GOARM=7 GOARCH=arm GOOS=linux go build -ldflags "-X main.version=${VERSION}" -o ${@} # GO-BINDATA # ============================================================================== @@ -161,55 +124,12 @@ test-update-all: ${EXECUTABLE} rpm-builder \ --exec-file "$<:/usr/bin/${EXECUTABLE}" \ --dir "systemd:/usr/lib/systemd/system" \ - --license AGFA_PROPERTERY \ + --license "Apache 2.0" \ --version ${VERSION} \ --release ${RELEASE} \ - --out $@ \ + --out ${@} \ ${EXECUTABLE} -# RELEASE -# ============================================================================== -PHONY+=release/all -release/all: clean ${RELEASE_EXECUTABLES} - - github-release release \ - --user ${GITHUB_USER} \ - --repo ${EXECUTABLE} \ - --tag ${VERSION} - - $(foreach FILE,${RELEASE_EXECUTABLES},github-release upload --user ${GITHUB_USER} --repo ${EXECUTABLE} --tag ${VERSION} --name $(subst /,-,${FILE}) --file bin/${FILE} --replace;) - -PHONY+=${RELEASE_EXECUTABLE_TARGETS} -${RELEASE_EXECUTABLE_TARGETS}: clean - $(MAKE) $(subst release/,,$@) - - github-release release \ - --user ${GITHUB_USER} \ - --repo ${EXECUTABLE} \ - --tag ${VERSION} - - github-release upload \ - --user ${GITHUB_USER} \ - --repo ${EXECUTABLE} \ - --tag ${VERSION} \ - --name $(subst /,-,$(subst release/bin/,,$@)) \ - --file $(subst release/,,$@) \ - --replace - -# COMPRESSION -# ============================================================================== -%.tar.bz2: % - tar --create --bzip2 --file "$@" "$<" - -%.tar.gz: % - tar --create --gunzip --file "$@" "$<" - -%.tar.xz: % - tar --create --xz --file "$@" "$<" - -%.zip: % - zip "$@" "$<" - # OTHER STUFF # ============================================================================== PHONY+=clean @@ -218,7 +138,6 @@ clean: rm ${EXECUTABLE}.* || true rm --recursive --force bin/ || true - # CONTAINER IMAGE STEPS # ============================================================================== PHONY+=container-image/build/amd64 @@ -236,54 +155,38 @@ container-image/push/amd64: container-image/build/amd64 # current os PHONY+=container-run/${EXECUTABLE} container-run/${EXECUTABLE}: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) + $(MAKE) container-run COMMAND=${@:container-run/%=%} # build all binaries for any operating system PHONY+=container-run/all container-run/all: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) + $(MAKE) container-run COMMAND=${@:container-run/%=%} PHONY+=${UNIX_EXECUTABLE_TARGETS:%=container-run/%} ${UNIX_EXECUTABLE_TARGETS:%=container-run/%}: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) + $(MAKE) container-run COMMAND=${@:container-run/%=%} # CONTAINER STEPS - GO-BINDATA # ============================================================================== PHONY+=container-run/bindata container-run/bindata: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) + $(MAKE) container-run COMMAND=${@:container-run/%=%} # CONTAINER STEPS - TEST # ============================================================================== PHONY+=container-run/test container-run/test: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) + $(MAKE) container-run COMMAND=${@:container-run/%=%} PHONY+=container-run/test-update-all container-run/test-update-all: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) - -# CONTAINER STEPS - COMPRESSED BINARIES AND PACKAGES -# ============================================================================== -PHONY+=${COMPRESSED_EXECUTABLE_TARGETS:%=container-run/%} -${COMPRESSED_EXECUTABLE_TARGETS:%=container-run/%}: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) - -PHONY+=${RPM_EXECUTABLE_TARGETS:%=container-run/%} -${RPM_EXECUTABLE_TARGETS:%=container-run/%}: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) - -# CONTAINER STEPS - RELEASE COMPRESSED BINARIES AND PACKAGES -# ============================================================================== -PHONY+=${RELEASE_EXECUTABLE_TARGETS%=container-run/%} -${RELEASE_EXECUTABLE_TARGETS:%=container-run/%}: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) + $(MAKE) container-run COMMAND=${@:container-run/%=%} # CONTAINER STEPS - OTHER STUF # ============================================================================== PHONY+=container-run/clean container-run/clean: - $(MAKE) container-run COMMAND=$(subst container-run/,,$@) + $(MAKE) container-run COMMAND=${@:container-run/%=%} # GENERAL CONTAINER COMMAND # ============================================================================== @@ -294,8 +197,6 @@ container-run: --volume ${PWD}:/workspace \ ${BUILD_IMAGE} \ make ${COMMAND} \ - UID=${UID} \ - GID=${GID} \ VERSION=${VERSION} \ RELEASE=${RELEASE}