g13gui/Makefile
2024-03-29 10:53:17 -05:00

97 lines
2.2 KiB
Makefile

VERSION := `grep "VERSION" g13gui/common.py |awk '{ print $$3 }' |tr -d "'"`
GITBRANCH ?= master
PIPENV := pipenv
PYTHON := `which python3`
PIP := ${PYTHON} -m pip
DISTRO := $(shell \
lsb_release -i \
|awk -F: '{ print $$2 }' \
|sed -e 's/[ \t]*//g' \
|tr '[A-Z]' '[a-z]' \
|sed -e 's/linux//g')
ifeq (${DISTRO},ubuntu)
DISTRO := debian
endif
ifeq (${DISTRO},manjaro)
DISTRO := archlinux
else ifeq (${DISTRO},arch)
DISTRO := archlinux
endif
$(warning Building on ${DISTRO})
all: ${DISTRO}
clean: ${DISTRO}-clean
rm -rf build/
rm -rf env/
install: ${DISTRO}-install
archlinux:
mkdir -p build
makepkg --nodeps
mv g13gui*.pkg.tar.zst build
archlinux-clean:
rm -f g13gui-git-*-any.pkg.tar.zst
rm -rf g13gui-git/
rm -rf pkg/
rm -rf src/
archlinux-install:
makepkg -i
fedora:
rpmdev-setuptree
cp g13gui.spec ~/rpmbuild/SPECS
tar -zcf ~/rpmbuild/SOURCES/g13gui-${VERSION}.tar.gz .
rpmbuild -bb ~/rpmbuild/SPECS/g13gui.spec
mkdir -p build
mv ~/rpmbuild/RPMS/*/g13gui*.rpm build/
fedora-clean:
rm -rf ~/rpmbuild
fedora-install:
debian:
mkdir -p build
gbp buildpackage --git-verbose --git-ignore-branch --git-debian-branch=$(GITBRANCH) -us -ui -uc
mv ../g13gui_$(VERSION)* build
debian-install:
sudo dpkg -i g13gui_$(VERSION).deb
debian-clean:
debclean
debian-build-source: debian-clean
mkdir -p build
gbp buildpackage -S --git-verbose --git-ignore-branch --git-debian-branch=$(GITBRANCH) -us -uc
mv ../g13gui_$(VERSION)* build
debian-release: debian-build-source
env:
python3 -m venv env
tools/in-env python3 -m pip install -r requirements.txt
test: env
PYTHONPATH=. tools/in-env python3 -m g13gui.tests
dist: clean
mkdir -p build
tar --exclude=build --exclude=.drone.yml --exclude-vcs -zcf build/g13gui_$(VERSION).tar.gz .
docker run -ti -v ${PWD}:/srcs -w /srcs fedora:latest tools/dockerbuild.sh fedora
docker run -ti -v ${PWD}:/srcs -w /srcs debian:latest tools/dockerbuild.sh debian
docker run -ti -v ${PWD}:/srcs -w /srcs archlinux:latest tools/dockerbuild.sh archlinux
.PHONY: all clean install test
.PHONY: archlinux archlinux-clean archlinux-install
.PHONY: debian debian-build debian-clean debian-build-source debian-release