pep_engine_sequoia_backend 1.1.0

An implementation of the p≡p Engine's cryptotech interface using Sequoia.
Documentation
# Copyleft 2023, pEp Foundation
# This file is part of pEpEngineSequoiaBackend
# This file may be used under the terms of the GNU General Public License version 3
# see COPYING

# Build config defaults
DEBUG?=debug
PREFIX?=/usr/local
CARGO?=cargo
BUILD?=_build
# Build config overrides
-include ./local.conf

# Make sure CARGO_TARGET_DIR is not set by the user -- it would be ignored.
CARGO_TARGET_DIR?=
ifneq ($(CARGO_TARGET_DIR),)
    $(error "the user should not set 'CARGO_TARGET_DIR': 'BUILD' can be used \
             instead.")
endif

#export as env var to sub-shells
export CARGO_TARGET_DIR=$(BUILD)

# constants
LIB_NAME=libpep_engine_sequoia_backend

# determine library file extension
PLATFORM:=$(shell uname)
ifeq ($(PLATFORM),Linux)
    DYNLIB_EXT=so
else ifeq ($(PLATFORM),Darwin)
    DYNLIB_EXT=dylib
else
    $(error "Dont know how to build for '$(PLATFORM)'")
endif

# DEBUG can be defined as "release", "debug" or "maintainer".
ifeq ($(DEBUG),maintainer)  # For compatibility with other pEp repos.
    VARIANT_NAME=debug
    VARIANT_FLAGS=
else ifeq ($(DEBUG),debug)
    VARIANT_NAME=debug
    VARIANT_FLAGS=
else ifeq ($(DEBUG),release)
    VARIANT_NAME=release
    VARIANT_FLAGS=--release
else
    $(error "build option 'DEBUG' must be 'release', 'debug' or 'maintainer'")
endif

LIB_DYNAMIC_PATH=$(CARGO_TARGET_DIR)/$(VARIANT_NAME)/$(LIB_NAME).$(DYNLIB_EXT)
LIB_STATIC_PATH=$(CARGO_TARGET_DIR)/$(VARIANT_NAME)/$(LIB_NAME).a
PKGCONFIG_PATH=$(CARGO_TARGET_DIR)/$(VARIANT_NAME)/pep_engine_sequoia_backend.pc
LIB_DIR=$(PREFIX)/lib/
PKGCONFIG_DIR=$(PREFIX)/share/pkgconfig/

CARGO_FLAGS+=$(VARIANT_FLAGS)

ifneq ($(filter Darwin %BSD,$(shell uname -s)),)
    INSTALL?=ginstall
else
    INSTALL?=install
endif

.PHONY: all build install uninstall test clean
all: build

build:
	$(CARGO) build $(CARGO_FLAGS)

install: build
	mkdir -p $(LIB_DIR) $(PKGCONFIG_DIR)
	$(INSTALL) $(LIB_DYNAMIC_PATH) $(LIB_DIR)
	$(INSTALL) $(LIB_STATIC_PATH) $(LIB_DIR)
	$(INSTALL) $(PKGCONFIG_PATH) $(PKGCONFIG_DIR)

uninstall:
	rm -f $(LIB_DIR)/$(LIB_NAME).$(DYNLIB_EXT)
	rm -f $(LIB_DIR)/$(LIB_NAME).a
	rm -f $(PKGCONFIG_DIR)/pep_engine_sequoia_backend.pc

test:
	$(CARGO) test $(CARGO_FLAGS)

clean:
	$(CARGO) clean