# SPDX-License-Identifier: MIT AUDIO_CPP_VERSION?=f8fb0c19739193adfad0d9e58da99f25eda65256 AUDIO_CPP_REPO?=https://github.com/0xShug0/audio.cpp AUDIO_CPP_SRC?= CURRENT_MAKEFILE_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) BUILD_DIR := build BUILD_TYPE ?= JOBS ?= $(shell nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 4) UNAME_S := $(shell uname -s) CMAKE_ARGS ?= -DCMAKE_BUILD_TYPE=Release CMAKE_ARGS += -DENGINE_ENABLE_CUDA=OFF CMAKE_ARGS += -DENGINE_ENABLE_VULKAN=OFF CMAKE_ARGS += -DENGINE_ENABLE_METAL=OFF ifeq ($(BUILD_TYPE),cublas) CMAKE_ARGS += -DENGINE_ENABLE_CUDA=ON else ifeq ($(BUILD_TYPE),vulkan) CMAKE_ARGS += -DENGINE_ENABLE_VULKAN=ON else ifeq ($(UNAME_S),Darwin) CMAKE_ARGS += -DENGINE_ENABLE_METAL=ON endif .PHONY: all grpc-server test test-unit clean purge all: grpc-server audio.cpp: ifneq ($(AUDIO_CPP_SRC),) ln -sfn $(abspath $(AUDIO_CPP_SRC)) audio.cpp else mkdir -p audio.cpp cd audio.cpp && \ git init -q && \ git remote add origin $(AUDIO_CPP_REPO) && \ git fetch --depth 1 origin $(AUDIO_CPP_VERSION) && \ git checkout --detach FETCH_HEAD && \ git submodule update --init --recursive --depth 1 endif grpc-server: audio.cpp mkdir -p $(BUILD_DIR) cd $(BUILD_DIR) && cmake $(CMAKE_ARGS) $(CURRENT_MAKEFILE_DIR) cmake --build $(BUILD_DIR) --config Release \ --target audio-cpp-grpc-server -j $(JOBS) cp $(BUILD_DIR)/audio-cpp-grpc-server grpc-server test: bash tests/build_contract_test.sh test-unit: audio.cpp mkdir -p $(BUILD_DIR)-unit cd $(BUILD_DIR)-unit && cmake $(CMAKE_ARGS) \ -DAUDIO_CPP_BUILD_TESTS=ON -DAUDIO_CPP_BUILD_GRPC=OFF \ $(CURRENT_MAKEFILE_DIR) cmake --build $(BUILD_DIR)-unit --config Release \ --target audio-cpp-runtime-test -j $(JOBS) ctest --test-dir $(BUILD_DIR)-unit --output-on-failure clean: rm -rf $(BUILD_DIR) $(BUILD_DIR)-unit grpc-server purge: clean rm -rf audio.cpp