Current section
Files
Jump to
Current section
Files
Makefile
.PHONY: build build_if_needed test publish clean docs
# Auto-detect platform
ifeq ($(OS),Windows_NT)
DLL_EXT := .dll
NIF_NAME := sied.dll
else
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Linux)
DLL_EXT := .so
NIF_NAME := sied.so
endif
ifeq ($(UNAME_S),Darwin)
DLL_EXT := .dylib
NIF_NAME := sied.dylib
endif
endif
# Locate cargo: prefer PATH, fall back to the default rustup location.
CARGO := $(shell command -v cargo 2>/dev/null || echo $(HOME)/.cargo/bin/cargo)
build:
cd native/sied && $(CARGO) build --release
mkdir -p priv
cp native/sied/target/release/*$(DLL_EXT) priv/$(NIF_NAME)
build_if_needed:
@if [ ! -f "priv/$(NIF_NAME)" ]; then $(MAKE) build; fi
test: build
rebar3 do eunit, ct
publish: test docs
rebar3 hex publish
docs:
rebar3 edoc
clean:
rm -rf _build native/sied/target priv/*