PRIV_DIR := $(MIX_APP_PATH)/priv BUILD_DIR := $(MIX_APP_PATH)/cmake_build NIF_SO := $(PRIV_DIR)/chromaprint_nif.so JOBS ?= $(shell nproc 2>/dev/null || echo 4) CMAKE_BUILD_TYPE ?= Release CHROMAPRINT_USE_SYSTEM ?= OFF CMAKE_EXTRA_ARGS ?= ifneq ($(strip $(CHROMAPRINT_INCLUDE_DIR)),) CMAKE_EXTRA_ARGS += -DCHROMAPRINT_INCLUDE_DIR=$(CHROMAPRINT_INCLUDE_DIR) endif ifneq ($(strip $(CHROMAPRINT_LIB_DIR)),) CMAKE_EXTRA_ARGS += -DCMAKE_LIBRARY_PATH=$(CHROMAPRINT_LIB_DIR) endif .PHONY: all clean all: $(NIF_SO) $(NIF_SO): $(BUILD_DIR)/CMakeCache.txt @mkdir -p $(PRIV_DIR) cmake --build $(BUILD_DIR) --config $(CMAKE_BUILD_TYPE) -j $(JOBS) cmake --install $(BUILD_DIR) $(BUILD_DIR)/CMakeCache.txt: @mkdir -p $(BUILD_DIR) cmake -S c_src -B $(BUILD_DIR) \ -DCMAKE_BUILD_TYPE=$(CMAKE_BUILD_TYPE) \ -DERTS_INCLUDE_DIR=$(ERTS_INCLUDE_DIR) \ -DPRIV_DIR=$(PRIV_DIR) \ -DCHROMAPRINT_USE_SYSTEM=$(CHROMAPRINT_USE_SYSTEM) \ $(CMAKE_EXTRA_ARGS) clean: rm -rf $(BUILD_DIR) $(NIF_SO)