bsys5/Makefile

226 lines
8.6 KiB
Makefile

.PHONY : help clean veryclean prune docker push rmi build update work docker-debian11 debian11 docker-mint20 mint20 docker-mint21 mint21 docker-ubuntu20 ubuntu20 docker-ubuntu21 ubuntu21 docker-ubuntu22 ubuntu22 docker-fedora34 fedora34 docker-fedora35 fedora35 docker-fedora36 fedora36 docker-macos-x86_64 macos-x86_64 docker-macos-aarch64 macos-aarch64 docker-tumbleweed tumbleweed tarball docker-dind
version:=$(shell cat version)
release:=$(shell cat release)
source_release:=$(shell cat source_release)
full_version:=$(version)-$(source_release)$(shell [ $(release) -gt 1 ] && echo "-$(release)")
help :
@echo "Use: make [help]"
@echo " [docker] [push] [rmi] - handle docker images"
@echo " [build] - building all artifacts"
@echo " [clean] [veryclean] - cleaning up"
@echo " [update] [prune] - misc."
@echo ""
@echo "docker targets:"
@echo " [docker-debian11], [docker-mint20], [docker-mint21]"
@echo " [docker-ubuntu20], [docker-ubuntu21], [docker-ubuntu22]"
@echo " [docker-fedora34], [docker-fedora35], [docker-fedora36]"
@echo " [docker-macos-x86_64], [docker-macos-aarch64]"
@echo " [docker-tumbleweed]"
@echo " [docker-dind]"
@echo ""
@echo "build targets:"
@echo " [debian11], [mint20], [mint21], [ubuntu20], [ubuntu21]"
@echo " [ubuntu22]"
@echo " [fedora34], [fedora35], [fedora36]"
@echo " [macos-x64_64], [macos-aarch64]"
@echo " [tumbleweed]"
@echo " [tarball]"
@echo ""
clean :
sudo rm -rf work
veryclean : clean
rm -f $(tarball) $(tarball).sha256sum
rm -f librewolf-*-*.en-US.*-x86_64.tar.bz2 librewolf-*-*.en-US.*-x86_64.tar.bz2.sha256sum librewolf-*-*.en-US.mac.*
rm -f librewolf-*-*.en-US.*.x86_64.deb librewolf-*-*.en-US.*.x86_64.deb.sha256sum
rm -f librewolf-*-*.*.x86_64.rpm librewolf-*-*.*.x86_64.rpm.sha256sum
prune :
docker system prune --all --force
docker : docker-debian11 docker-mint20 docker-mint21 docker-ubuntu20 docker-ubuntu21 docker-ubuntu22 docker-fedora34 docker-fedora35 docker-fedora36 docker-tumbleweed docker-macos-x86_64 docker-macos-aarch64 docker-dind
build :
${MAKE} clean
${MAKE} debian11
${MAKE} clean
${MAKE} mint20
${MAKE} clean
${MAKE} mint21
${MAKE} clean
${MAKE} ubuntu20
${MAKE} clean
${MAKE} ubuntu21
${MAKE} clean
${MAKE} ubuntu22
${MAKE} clean
${MAKE} fedora34
${MAKE} clean
${MAKE} fedora35
${MAKE} clean
${MAKE} fedora36
${MAKE} clean
${MAKE} tumbleweed
${MAKE} clean
${MAKE} macos-x86_64
${MAKE} clean
${MAKE} macos-aarch64
${MAKE} clean
push :
docker push registry.gitlab.com/librewolf-community/browser/bsys5/debian11
docker push registry.gitlab.com/librewolf-community/browser/bsys5/mint20
docker push registry.gitlab.com/librewolf-community/browser/bsys5/mint21
docker push registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu20
docker push registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu21
docker push registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu22
docker push registry.gitlab.com/librewolf-community/browser/bsys5/fedora34
docker push registry.gitlab.com/librewolf-community/browser/bsys5/fedora35
docker push registry.gitlab.com/librewolf-community/browser/bsys5/fedora36
docker push registry.gitlab.com/librewolf-community/browser/bsys5/tumbleweed
docker push registry.gitlab.com/librewolf-community/browser/bsys5/macos-x86_64
docker push registry.gitlab.com/librewolf-community/browser/bsys5/macos-aarch64
docker push registry.gitlab.com/librewolf-community/browser/bsys5/dind
rmi :
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/debian11
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/mint20
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/mint21
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu20
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu21
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/ubuntu22
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/fedora34
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/fedora35
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/fedora36
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/tumbleweed
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/macos-x86_64
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/macos-aarch64
docker rmi registry.gitlab.com/librewolf-community/browser/bsys5/dind
update :
@wget -q -O version "https://gitlab.com/librewolf-community/browser/source/-/raw/main/version"
@wget -q -O source_release "https://gitlab.com/librewolf-community/browser/source/-/raw/main/release"
@echo Source version: $(shell cat version)-$(shell cat source_release)
@echo Bsys5 release: $(shell cat release)
## setting up the work folder
tarball=librewolf-$(version)-$(source_release).source.tar.gz
$(tarball) :
ifeq ($(SOURCE_URL),)
wget -q -O $(tarball) "https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/$(version)-$(source_release)/$(tarball)"
wget -q -O $(tarball).sha256sum "https://gitlab.com/api/v4/projects/32320088/packages/generic/librewolf-source/$(version)-$(source_release)/$(tarball).sha256sum"
sha256sum -c $(tarball).sha256sum
else
wget -q -O $(tarball) "$(SOURCE_URL)"
endif
work : $(tarball)
mkdir work
(cd work && tar xf ../$(tarball))
#
# Linux
#
## debian11
docker-debian11 :
${MAKE} -f assets/linux.mk distro=debian11 "distro_image=debian:bullseye" docker
debian11 :
${MAKE} -f assets/linux.mk distro=debian11 build
${MAKE} -f assets/linux.artifacts.mk distro=debian11 artifacts-deb
## mint20
docker-mint20 :
${MAKE} -f assets/linux.mk distro=mint20 "distro_image=linuxmintd/mint20.2-amd64" docker
mint20 :
${MAKE} -f assets/linux.mk distro=mint20 build
${MAKE} -f assets/linux.artifacts.mk distro=mint20 artifacts-deb
## mint21
docker-mint21 :
${MAKE} -f assets/linux.mk distro=mint21 "distro_image=linuxmintd/mint21-amd64" docker
mint21 :
${MAKE} -f assets/linux.mk distro=mint21 build
${MAKE} -f assets/linux.artifacts.mk distro=mint21 artifacts-deb
## ubuntu20
docker-ubuntu20 :
${MAKE} -f assets/linux.mk distro=ubuntu20 "distro_image=ubuntu:focal" docker
ubuntu20 :
${MAKE} -f assets/linux.mk distro=ubuntu20 build
${MAKE} -f assets/linux.artifacts.mk distro=ubuntu20 artifacts-deb
## ubuntu21
docker-ubuntu21 :
${MAKE} -f assets/linux.mk distro=ubuntu21 "distro_image=ubuntu:impish" docker
ubuntu21 :
${MAKE} -f assets/linux.mk distro=ubuntu21 build
${MAKE} -f assets/linux.artifacts.mk distro=ubuntu21 artifacts-deb
## ubuntu22
docker-ubuntu22 :
${MAKE} -f assets/linux.mk distro=ubuntu22 "distro_image=ubuntu:jammy" docker
ubuntu22 :
${MAKE} -f assets/linux.mk distro=ubuntu22 build
${MAKE} -f assets/linux.artifacts.mk distro=ubuntu22 artifacts-deb
## fedora34
docker-fedora34 :
${MAKE} -f assets/linux.mk distro=fedora34 "distro_image=fedora:34" docker
fedora34 :
${MAKE} -f assets/linux.mk distro=fedora34 build
${MAKE} -f assets/linux.artifacts.mk fc=fc34 distro=fedora34 artifacts-rpm
## fedora35
docker-fedora35 :
${MAKE} -f assets/linux.mk distro=fedora35 "distro_image=fedora:35" docker
fedora35 :
${MAKE} -f assets/linux.mk distro=fedora35 build
${MAKE} -f assets/linux.artifacts.mk fc=fc35 distro=fedora35 artifacts-rpm
## fedora36
docker-fedora36 :
${MAKE} -f assets/linux.mk distro=fedora36 "distro_image=fedora:36" docker
fedora36 :
${MAKE} -f assets/linux.mk distro=fedora36 build
${MAKE} -f assets/linux.artifacts.mk fc=fc36 distro=fedora36 artifacts-rpm
## opensuse tumbleweed
docker-tumbleweed :
${MAKE} -f assets/linux.mk distro=tumbleweed "distro_image=opensuse/tumbleweed" docker
tumbleweed :
${MAKE} -f assets/linux.mk distro=tumbleweed build
${MAKE} -f assets/linux.artifacts.mk fc=tumbleweed distro=tumbleweed artifacts-rpm
## tarball
tarball :
${MAKE} -f assets/linux.mk distro=ubuntu20 build
mv -v librewolf-$(full_version).en-US.ubuntu20-x86_64.tar.bz2 librewolf-$(full_version).en-US.generic-x86_64.tar.bz
sha256sum librewolf-$(full_version).en-US.generic-x86_64.tar.bz > librewolf-$(full_version).en-US.generic-x86_64.tar.bz.sha256sum
cat librewolf-$(full_version).en-US.generic-x86_64.tar.bz.sha256sum
#
# MacOS
#
## macos-x86_64
docker-macos-x86_64 :
${MAKE} -f assets/macos.mk arch=x86_64 docker
macos-x86_64 :
${MAKE} -f assets/macos.mk arch=x86_64 build
## macos-aarch64
docker-macos-aarch64 :
${MAKE} -f assets/macos.mk arch=aarch64 docker
macos-aarch64 :
${MAKE} -f assets/macos.mk arch=aarch64 build
#
# Docker in Docker (for GitLab CI)
#
docker-dind :
docker build -f assets/dind.Dockerfile -t registry.gitlab.com/librewolf-community/browser/bsys5/dind:latest .