mirror of
https://github.com/clearlinux/mixer-tools.git
synced 2026-09-05 05:01:28 +00:00
Signed-off-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com>
78 lines
2.3 KiB
Makefile
78 lines
2.3 KiB
Makefile
# Makefile used to create packages for mixer-tools. It doesn't assume
|
|
# that the code is inside a GOPATH, and always copy the files into a
|
|
# new workspace to get the work done. Go tools doesn't reliably work
|
|
# with symbolic links.
|
|
#
|
|
# For historical purposes, it also works in a development environment
|
|
# when the repository is already inside a GOPATH.
|
|
|
|
.NOTPARALLEL:
|
|
|
|
GO_PACKAGE_PREFIX := github.com/clearlinux/mixer-tools
|
|
|
|
.PHONY: gopath
|
|
|
|
# Strictly speaking we should check if it the directory is inside an
|
|
# actual GOPATH, but the directory structure matching is likely enough.
|
|
ifeq (,$(findstring ${GO_PACKAGE_PREFIX},${CURDIR}))
|
|
LOCAL_GOPATH := ${CURDIR}/.gopath
|
|
export GOPATH := ${LOCAL_GOPATH}
|
|
gopath:
|
|
@rm -rf ${LOCAL_GOPATH}/src
|
|
@mkdir -p ${LOCAL_GOPATH}/src/${GO_PACKAGE_PREFIX}
|
|
@cp -af * ${LOCAL_GOPATH}/src/${GO_PACKAGE_PREFIX}
|
|
@echo "Prepared a local GOPATH=${GOPATH}"
|
|
else
|
|
LOCAL_GOPATH :=
|
|
GOPATH ?= ${HOME}/go
|
|
gopath:
|
|
@echo "Code already in existing GOPATH=${GOPATH}"
|
|
endif
|
|
|
|
.PHONY: all compliant build install clean check
|
|
|
|
.DEFAULT_GOAL := all
|
|
all: compliant build
|
|
|
|
compliant: gopath
|
|
CHANGED_FILES=$$(go fmt ${GO_PACKAGE_PREFIX}/... 2>&1) ; \
|
|
if [ -n "$$CHANGED_FILES" ]; then \
|
|
printf 'ERROR: go fmt had to fix the following:\n%s\n' "$CHANGED_FILES" >&2 ; \
|
|
exit 1 ;\
|
|
fi
|
|
go vet ${GO_PACKAGE_PREFIX}/...
|
|
|
|
build: gopath
|
|
go install ${GO_PACKAGE_PREFIX}/mixer
|
|
|
|
install: gopath
|
|
test -d $(DESTDIR)/usr/bin || install -D -d -m 00755 $(DESTDIR)/usr/bin;
|
|
install -m 00755 $(GOPATH)/bin/mixer $(DESTDIR)/usr/bin/.
|
|
install -m 00755 pack-maker.sh $(DESTDIR)/usr/bin/mixer-pack-maker.sh
|
|
install -m 00755 superpack-maker.sh $(DESTDIR)/usr/bin/mixer-superpack-maker.sh
|
|
install -D -m 00644 yum.conf.in $(DESTDIR)/usr/share/defaults/mixer/yum.conf.in
|
|
|
|
check: gopath
|
|
go test ${GO_PACKAGE_PREFIX}/...
|
|
|
|
clean:
|
|
ifeq (,${LOCAL_GOPATH})
|
|
go clean -i -x
|
|
else
|
|
rm -rf ${LOCAL_GOPATH}
|
|
endif
|
|
rm -f mixer-tools-*.tar.gz
|
|
|
|
release:
|
|
@if [ ! -d .git ]; then \
|
|
echo "Release needs to be used from a git repository"; \
|
|
exit 1; \
|
|
fi
|
|
@VERSION=$$(grep -e 'const Version' mixer/main.go | cut -d '"' -f 2) ; \
|
|
if [ -z "$$VERSION" ]; then \
|
|
echo "Couldn't extract version number from the source code"; \
|
|
exit 1; \
|
|
fi; \
|
|
git archive --format=tar.gz --verbose -o mixer-tools-$$VERSION.tar.gz HEAD --prefix=mixer-tools-$$VERSION/
|
|
|