array-mumu 0.1.13

Array tools plugin for the Mumu ecosystem
Documentation
# Makefile — build & install the MuMu "array" plugin
# ------------------------------------------------------------------------
# Defaults:
#   - Native (.so/.dylib) builds should export `Cargo_lock` so extend("array")
#     works. This crate exports Cargo_lock unconditionally on native, so no
#     feature flag is required — but we keep FEATURES override for consistency.
#   - You can override FEATURES on the CLI, e.g.:
#       make release FEATURES=""
# ------------------------------------------------------------------------

PLUGIN := array

# 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 (kept for parity with other plugins)
FEATURES ?=

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)