-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
51 lines (39 loc) · 1.29 KB
/
Makefile
File metadata and controls
51 lines (39 loc) · 1.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
CC := g++
SRC_DIR := src
OBJ_DIR := build
SRC := $(wildcard $(SRC_DIR)/*.cpp)
OBJ := $(SRC:$(SRC_DIR)/%.cpp=$(OBJ_DIR)/%.o)
EXEC = cli_amp
#tests
TESTS_DIR := tests
TESTS_OBJ_DIR := $(OBJ_DIR)/tests
TESTS_SRC := $(wildcard $(TESTS_DIR)/*.cpp)
TESTS_OBJ := $(TESTS_SRC:$(TESTS_DIR)/%.cpp=$(TESTS_OBJ_DIR)/%.o)
TESTS_EXEC = run_tests
CFLAGS = -std=c++14 -I./$(SRC_DIR) -I/opt/homebrew/include
LDFLAGS = -L/opt/homebrew/lib -lportaudio -lsoundio -ljack -lgtest -lgtest_main -lhdf5 -lhdf5_cpp
#-framework AudioUnit -framework AudioToolbox -framework CoreAudio -framework CoreFoundation
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp | $(OBJ_DIR)
$(CC) -o $@ -c $^ $(CFLAGS)
$(EXEC): $(OBJ)
$(CC) -o $@ $^ $(LDFLAGS)
$(TESTS_OBJ_DIR)/%.o: $(TESTS_DIR)/%.cpp | $(TESTS_OBJ_DIR)
$(CC) -o $@ -c $^ $(CFLAGS)
$(TESTS_EXEC): $(TESTS_OBJ) $(filter-out $(OBJ_DIR)/main.o,$(OBJ))
$(CC) -o $@ $^ $(LDFLAGS)
$(OBJ_DIR):
mkdir -p $@
$(TESTS_OBJ_DIR):
mkdir -p $@
test: $(TESTS_EXEC)
./$(TESTS_EXEC)
.PHONY: test
install-deps:
brew install portaudio pulseaudio libsoundio jack nlohmann-json hdf5 googletest
.PHONY: install-deps
uninstall-deps:
brew uninstall portaudio pulseaudio libsoundio jack nlohmann-json hdf5 googletest
.PHONY: uninstall-deps
clean:
rm -f $(EXEC) $(TESTS_EXEC) $(OBJ_DIR)/*.o $(TESTS_OBJ_DIR)/*.o
.PHONY: clean