37 lines
1016 B
Makefile
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)
|