Skip to content

Commit f4077ef

Browse files
author
Daniele Briggi
committed
feat(miniaudio): build along the other modules
1 parent b9ac340 commit f4077ef

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

Makefile

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,31 +27,39 @@ MAKEFLAGS += -j$(CPUS)
2727
# Compiler and flags
2828
CC = gcc
2929
CXX = g++
30-
CFLAGS = -Wall -Wextra -Wno-unused-parameter -I$(SRC_DIR) -I$(LLAMA_DIR)/ggml/include -I$(LLAMA_DIR)/include
31-
LDFLAGS = -L./$(BUILD_LLAMA)/common -L./$(BUILD_LLAMA)/ggml/src -L./$(BUILD_LLAMA)/src -L./$(BUILD_WHISPER)/src -lcommon -lggml -lggml-cpu -lggml-base -lllama -lwhisper
30+
CFLAGS = -Wall -Wextra -Wno-unused-parameter -I$(SRC_DIR) -I$(LLAMA_DIR)/ggml/include -I$(LLAMA_DIR)/include -I$(MINIAUDIO_DIR)
31+
LDFLAGS = $(LLAMA_LDFLAGS) $(WHISPER_LDFLAGS) $(MINIAUDIO_LDFLAGS)
3232
LLAMA_OPTIONS = $(LLAMA) -DLLAMA_CURL=OFF -DLLAMA_BUILD_EXAMPLES=OFF -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_TOOLS=OFF -DLLAMA_BUILD_SERVER=OFF
3333
WHISPER_OPTIONS = $(WHISPER) -DWHISPER_BUILD_EXAMPLES=OFF -DWHISPER_BUILD_TESTS=OFF -DWHISPER_BUILD_SERVER=OFF
3434

35+
# Module-specific linking flags
36+
LLAMA_LDFLAGS = -L./$(BUILD_LLAMA)/common -L./$(BUILD_LLAMA)/ggml/src -L./$(BUILD_LLAMA)/src -lcommon -lggml -lggml-cpu -lggml-base -lllama
37+
WHISPER_LDFLAGS = -L./$(BUILD_WHISPER)/src -lwhisper
38+
MINIAUDIO_LDFLAGS = -L./$(BUILD_MINIAUDIO) -lminiaudio
39+
3540
# Directories
3641
SRC_DIR = src
3742
DIST_DIR = dist
3843
VPATH = $(SRC_DIR)
3944
BUILD_DIR = build
4045
LLAMA_DIR = modules/llama.cpp
4146
WHISPER_DIR = modules/whisper.cpp
47+
MINIAUDIO_DIR = modules/miniaudio
4248
BUILD_LLAMA = $(BUILD_DIR)/llama.cpp
4349
BUILD_WHISPER = $(BUILD_DIR)/whisper.cpp
50+
BUILD_MINIAUDIO = $(BUILD_DIR)/miniaudio
4451

4552
# Files
4653
SRC_FILES = $(wildcard $(SRC_DIR)/*.c)
4754
OBJ_FILES = $(patsubst %.c, $(BUILD_DIR)/%.o, $(notdir $(SRC_FILES)))
4855
LLAMA_LIBS = $(BUILD_LLAMA)/common/libcommon.a $(BUILD_LLAMA)/ggml/src/libggml.a $(BUILD_LLAMA)/ggml/src/libggml-base.a $(BUILD_LLAMA)/ggml/src/libggml-cpu.a $(BUILD_LLAMA)/src/libllama.a
4956
WHISPER_LIBS = $(BUILD_WHISPER)/src/libwhisper.a
57+
MINIAUDIO_LIBS = $(BUILD_MINIAUDIO)/libminiaudio.a
5058

5159
# Platform-specific settings
5260
ifeq ($(PLATFORM),windows)
5361
TARGET := $(DIST_DIR)/ai.dll
54-
LDFLAGS = -L./$(BUILD_LLAMA)/common -L./$(BUILD_LLAMA)/ggml/src -L./$(BUILD_LLAMA)/src -L./$(BUILD_WHISPER)/src -l:libllama.a -l:libwhisper.a -l:libcommon.a -l:ggml.a -l:ggml-cpu.a -l:ggml-base.a -fopenmp -static-libgcc -static-libstdc++ -shared
62+
LDFLAGS = -L./$(BUILD_LLAMA)/common -L./$(BUILD_LLAMA)/ggml/src -L./$(BUILD_LLAMA)/src -L./$(BUILD_WHISPER)/src -L./$(BUILD_MINIAUDIO) -l:libllama.a -l:libwhisper.a -l:libminiaudio.a -l:libcommon.a -l:ggml.a -l:ggml-cpu.a -l:ggml-base.a -fopenmp -static-libgcc -static-libstdc++ -shared
5563
# Create .def file for Windows
5664
DEF_FILE := $(BUILD_DIR)/ai.def
5765
STRIP = strip --strip-unneeded $@
@@ -110,6 +118,8 @@ else # linux
110118
# using -DGGML_CPU_ALL_VARIANTS=ON
111119
LDFLAGS := $(filter-out -lggml-cpu,$(LDFLAGS))
112120
LDFLAGS += -shared -L./$(BUILD_LLAMA)/bin -Wl,-rpath,./$(BUILD_LLAMA)/bin -Wl,-rpath,./$(BUILD_LLAMA)/common -Wl,-rpath,./$(BUILD_LLAMA)/ggml/src -Wl,-rpath,./$(BUILD_LLAMA)/src -Wl,-rpath,./$(BUILD_WHISPER)/src
121+
# Add miniaudio Linux-specific flags (as per miniaudio docs)
122+
MINIAUDIO_LDFLAGS += -lpthread -lm
113123
LLAMA_OPTIONS += -DBUILD_SHARED_LIBS=ON -DGGML_OPENMP=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON
114124
WHISPER_OPTIONS += -DBUILD_SHARED_LIBS=ON -DGGML_OPENMP=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON
115125
STRIP = strip --strip-unneeded $@
@@ -131,7 +141,7 @@ extension: $(TARGET)
131141
all: $(TARGET)
132142

133143
# Loadable library
134-
$(TARGET): $(OBJ_FILES) $(DEF_FILE) $(LLAMA_LIBS) $(WHISPER_LIBS)
144+
$(TARGET): $(OBJ_FILES) $(DEF_FILE) $(LLAMA_LIBS) $(WHISPER_LIBS) $(MINIAUDIO_LIBS)
135145
$(CXX) $(OBJ_FILES) $(DEF_FILE) -o $@ $(LDFLAGS)
136146
ifeq ($(PLATFORM),windows)
137147
# Generate import library for Windows
@@ -158,8 +168,14 @@ build/whisper.cpp.stamp:
158168
cmake --build $(BUILD_WHISPER) --config Release -- -j$(CPUS)
159169
touch $@
160170

171+
build/miniaudio.stamp:
172+
cmake -B $(BUILD_MINIAUDIO) -DMINIAUDIO_BUILD_EXAMPLES=OFF -DMINIAUDIO_BUILD_TESTS=OFF $(MINIAUDIO_DIR)
173+
cmake --build $(BUILD_MINIAUDIO) --config Release -- -j$(CPUS)
174+
touch $@
175+
161176
$(LLAMA_LIBS): build/llama.cpp.stamp
162177
$(WHISPER_LIBS): build/whisper.cpp.stamp
178+
$(MINIAUDIO_LIBS): build/miniaudio.stamp
163179

164180
# Tools
165181
version:

0 commit comments

Comments
 (0)