Files
2026-05-20 14:35:34 +02:00

37 lines
1016 B
Makefile

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)