sqlite-mumu 0.2.0-rc-3

sqlite-mumu is a plugin for the mumu ecosystem
Documentation
# Makefile — build & install the MuMu "sqlite" plugin
# ------------------------------------------------------------------------
# Defaults:
#   - Native (.so/.dylib) builds enable the 'host' feature so the dynamic
#     entrypoint `Cargo_lock` is exported for extend("sqlite").
#   - You can override FEATURES on the CLI, e.g.:
#       make release FEATURES=""
# ------------------------------------------------------------------------

PLUGIN := sqlite

# Detect platform-specific dynamic library suffix and ldconfig availability
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
  DLL      := dylib
  LDCONFIG := true
else
  DLL      := so
  LDCONFIG := ldconfig
endif

TARGET   := libmumu$(PLUGIN).$(DLL)
PREFIX  ?= /usr/local
LIBDIR  ?= $(PREFIX)/lib

# Build-time features:
#  - Default to 'host' for native .so so Cargo_lock is present.
#  - Override as needed:  make release FEATURES=""
FEATURES ?= host

CARGO   ?= cargo

# ------------------------------------------------------------------------
# Targets
# ------------------------------------------------------------------------
.PHONY: all debug release install install-debug uninstall clean print-target print-features

all: debug

debug:
	$(CARGO) build --features "$(FEATURES)"

release:
	$(CARGO) build --release --features "$(FEATURES)"

install: release
	sudo install -m 0755 target/release/$(TARGET) $(LIBDIR)/$(TARGET)
	sudo $(LDCONFIG)

install-debug: debug
	sudo install -m 0755 target/debug/$(TARGET) $(LIBDIR)/$(TARGET)
	sudo $(LDCONFIG)

uninstall:
	sudo rm -f $(LIBDIR)/$(TARGET)
	sudo $(LDCONFIG)

clean:
	$(CARGO) clean

print-target:
	@echo $(TARGET)

print-features:
	@echo $(FEATURES)