106 lines
3.7 KiB
Makefile
106 lines
3.7 KiB
Makefile
# Makefile
|
|
#
|
|
# Copyright (c) 2021-2022 Bartek Kryza <bkryza@gmail.com>
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
SHELL := /bin/bash
|
|
.ONESHELL:
|
|
|
|
.PHONY: download deb clean conda
|
|
|
|
NAME ?= clang-uml
|
|
REBUILD ?= 1
|
|
MAINTAINER_NAME ?= Bartek Kryza
|
|
MAINTAINER_EMAIL ?= bkryza@gmail.com
|
|
GPG_KEY ?= 702014E322FE5CA9B5D920F66CDA4566635E93B1
|
|
OS ?= ubuntu
|
|
DIST ?= focal
|
|
TAR_EXT ?= gz
|
|
|
|
build_dir = _BUILD/$(OS)/$(DIST)
|
|
|
|
VERSION ?= $(shell git describe --tags --always --abbrev=7)
|
|
COMMIT ?= $(shell git rev-parse HEAD)
|
|
BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
|
|
SOURCE_ARCHIVE ?= $(NAME)-$(VERSION).tar.$(TAR_EXT)
|
|
CONDA_TOKEN ?=
|
|
|
|
#
|
|
# Replace mustache template variable in all files in directory recursively,
|
|
# e.g.:
|
|
# $(call subst_template,VERSION,${VERSION},debian)
|
|
#
|
|
define subst_template_dir
|
|
find $(3) -type f -exec sed -i "s/{{$(1)}}/$(2)/g" {} \;
|
|
endef
|
|
|
|
define subst_conda_meta_yaml
|
|
find $(3) -name meta.yaml -exec sed -i "s/{{$(1)}}/$(2)/g" {} \;
|
|
endef
|
|
|
|
|
|
|
|
_BUILD/$(SOURCE_ARCHIVE):
|
|
echo "############################"
|
|
echo "Creating source archive from latest commit $(COMMIT) - $(SOURCE_ARCHIVE)"
|
|
echo "############################"
|
|
mkdir -p $(build_dir)
|
|
git-archive-all --prefix=$(NAME)-$(VERSION)/ _BUILD/$(SOURCE_ARCHIVE)
|
|
|
|
deb: _BUILD/$(SOURCE_ARCHIVE)
|
|
echo "############################"
|
|
echo "Creating deb source package for $(OS) $(DIST)"
|
|
echo "Creating directory: ", $(build_dir)/$(NAME)-$(VERSION)
|
|
echo "Extracting source archive..."
|
|
echo "############################"
|
|
rm -rf $(build_dir)
|
|
mkdir -p $(build_dir)
|
|
cp _BUILD/$(SOURCE_ARCHIVE) $(build_dir)
|
|
cd $(build_dir)
|
|
mkdir -p $(NAME)-$(VERSION)
|
|
tar xf $(SOURCE_ARCHIVE) -C $(NAME)-$(VERSION) --strip-components 1
|
|
cp -R ../../../debian $(NAME)-$(VERSION)/debian
|
|
cd $(NAME)-$(VERSION)
|
|
$(call subst_template_dir,DATETIME,$(shell date -R),debian)
|
|
$(call subst_template_dir,OS,${OS},debian)
|
|
$(call subst_template_dir,NAME,${NAME},debian)
|
|
$(call subst_template_dir,VERSION,${VERSION},debian)
|
|
$(call subst_template_dir,REBUILD,${REBUILD},debian)
|
|
$(call subst_template_dir,DISTRIBUTION,${DIST},debian)
|
|
$(call subst_template_dir,MAINTAINER_NAME,${MAINTAINER_NAME},debian)
|
|
$(call subst_template_dir,MAINTAINER_EMAIL,${MAINTAINER_EMAIL},debian)
|
|
$(call subst_template_dir,GIT_COMMIT,${COMMIT},debian)
|
|
$(call subst_template_dir,GIT_BRANCH,${BRANCH},debian)
|
|
mk-origtargz ../$(NAME)-$(VERSION).tar.$(TAR_EXT)
|
|
cp debian/control.$(DIST) debian/control
|
|
# BUILD SOURCE PACKAGE FOR LAUNCHPAD
|
|
debuild -S -sa -us -d -k$(GPG_KEY)
|
|
# BUILD LOCALLY BINARY PACKAGE
|
|
# debuild -us -uc
|
|
|
|
conda: _BUILD/$(SOURCE_ARCHIVE)
|
|
echo "############################"
|
|
echo "Creating conda archive from source file $(SOURCE_ARCHIVE)"
|
|
echo "############################"
|
|
conda config --add channels conda-forge
|
|
conda config --set channel_priority strict
|
|
mkdir -p _BUILD/conda
|
|
cp _BUILD/$(SOURCE_ARCHIVE) _BUILD/conda/
|
|
cp conda/meta.yaml.in conda/meta.yaml
|
|
$(call subst_conda_meta_yaml,PKG_VERSION,${VERSION},conda)
|
|
$(call subst_conda_meta_yaml,PKG_SOURCE,..\/_BUILD\/clang-uml-$(VERSION).tar.$(TAR_EXT),conda)
|
|
$(call subst_conda_meta_yaml,GIT_COMMIT,${COMMIT},conda)
|
|
$(call subst_conda_meta_yaml,GIT_BRANCH,${BRANCH},conda)
|
|
conda build --user bkryza --token $(CONDA_TOKEN) conda
|