kirmes 0.0.2

A library providing access to systemd's userdb varlink interface
CRATE := kirmes
VERSION ?= $(shell git describe --tags --abbrev=0)

# ABI versioning
SOVERSION ?= $(shell head -40 Cargo.toml | crudini --get - package.metadata.capi.library version | sed 's/"//g')
SOVERSION_MAJOR := $(word 1,$(subst ., ,$(SOVERSION)))
HOST_TUPLE ?= $(shell rustc --print host-tuple)

all: debug

debug:
	command -v cargo || (echo "cargo isn't installed" && exit 1)
	cargo build --features binaries
	command -v cargo-cbuild || (echo "cargo cbuild isn't installed" && exit 1)
	cargo cbuild

release:
	command -v cargo || (echo "cargo isn't installed" && exit 1)
	cargo build --release

doc:
	command -v cargo || (echo "cargo isn't installed" && exit 1)
	cargo doc

clean:
	command -v cargo || (echo "cargo isn't installed" && exit 1)
	cargo clean

dist:
	git archive --format=tar.gz --output ./$(CRATE)-$(VERSION).tar.gz HEAD

test:
	command -v cargo || (echo "cargo isn't installed" && exit 1)
	cargo ctest

clippy:
	command -v cargo || (echo "cargo isn't installed" && exit 1)
	cargo clippy -- -W clippy::pedantic

examples: all
	gcc -O0 -ggdb example/user_record.c -o target/$(HOST_TUPLE)/debug/user_record -Itarget/$(HOST_TUPLE)/debug/include -Ltarget/$(HOST_TUPLE)/debug/ -lkirmes
	gcc -O0 -ggdb example/group_record.c -o target/$(HOST_TUPLE)/debug/group_record -Itarget/$(HOST_TUPLE)/debug/include -Ltarget/$(HOST_TUPLE)/debug/ -lkirmes
	gcc -O0 -ggdb example/user_in_group.c -o target/$(HOST_TUPLE)/debug/user_in_group -Itarget/$(HOST_TUPLE)/debug/include -Ltarget/$(HOST_TUPLE)/debug/ -lkirmes
	gcc -O0 -ggdb example/groups_of_user.c -o target/$(HOST_TUPLE)/debug/groups_of_user -Itarget/$(HOST_TUPLE)/debug/include -Ltarget/$(HOST_TUPLE)/debug/ -lkirmes
	gcc -O0 -ggdb example/user_record_from_json.c -o target/$(HOST_TUPLE)/debug/user_record_from_json -Itarget/$(HOST_TUPLE)/debug/include -Ltarget/$(HOST_TUPLE)/debug/ -lkirmes
	ln -sf libkirmes.so target/$(HOST_TUPLE)/debug/libkirmes.so.$(SOVERSION_MAJOR)
	ln -sf libkirmes.so.$(SOVERSION_MAJOR) target/$(HOST_TUPLE)/debug/libkirmes.so.$(SOVERSION)