-
Notifications
You must be signed in to change notification settings - Fork 0
/
makefile
84 lines (73 loc) · 2.96 KB
/
makefile
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
CXX := g++
CC := gcc
INCLUDES := -I./includes
CXX_FLAGS := -Wall -std=c++17 -pthread
CXX_FLAGS_LIB := -Wall -std=c++17 -pthread -shared
C_FLAGS := -Wall
DEBUG := -g3
EX :=
OS :=Linux
LINKER_OPTIONS :=
LIB :=0
LIBS:=
SO_DIRS:=
USE_SYS_LIBS:=0
#FINAL_LINKER := -lopenal -lvorbisfile
#FINAL_LINKER := -lvorbis
OBJECTS := rpaudio.o commontools.o test.o
OBJECTS_LIB := rpaudio.o commontools.o
TEST_OBJECTS := rpaudio.o commontools.o rptest.o
#SO_DIRS := -L./includes/ogg -L./includes/libopenal -L./includes/vorbis
#SO_DIRS := -L./includes/libopenal/libopenal.so.1 -L./includes/vorbis/libvorbisfile.so.3
#SO_DIRS := -Wl,-rpath,./includes/libopenal -L./includes/libopenal -lopenal -Wl,-rpath,./includes/vorbis -L./includes/vorbis -lvorbisfile
#SO_DIRS :=
ifeq ($(OS), Linux)
ifeq ($(USE_SYS_LIBS), 1)
FINAL_LINKER+=-lopenal -logg -lvorbisfile
else
LIBS := ./includes/libopenal/libopenal.so.1.21.0 ./includes/vorbisfile/libvorbisfile.so.3 ./includes/oggvorbis/libogg.so.0
SO_DIRS := -Wl,-rpath,./includes/libopenal -L./includes/libopenal -Wl,-rpath,./includes/vorbis -L./includes/vorbis -Wl,-rpath,./includes/vorbisfile -L./includes/vorbisfile -Wl,-rpath,./includes/oggvorbis -L./includes/oggvorbis
endif
ifeq ($(LIB), 1)
LIB_OPTIONS := -fPIC
#libsndio.so.7.0 is no longer available on ArchLinux - We should build against a version > 7
#SO_DIRS += -Wl,-rpath,./includes/libsndio -L./includes/libsndio
#LIBS += ./includes/libsndio/libsndio.so.7.0
EX := .so
endif
endif
ifeq ($(OS), Windows)
SO_DIRS := -Wl,-rpath,./ -L./ -Wl,-rpath,./includes/libopenal -L./includes/libopenal -Wl,-Bdynamic -Wl,-rpath,./includes/vorbis -L./includes/vorbis -Wl,-rpath,./includes/vorbisfile -L./includes/vorbisfile -Wl,-rpath,./includes/oggvorbis -L./includes/oggvorbis
#LIBS := ./includes/vorbisfile/libvorbisfile.dll ./includes/oggvorbis/libogg.dll ./includes/vorbis/libvorbis.dll
LIBS := libvorbisfile-3.dll
FINAL_LINKER := -lOpenAL32 -logg
#FINAL_LINKER += -lvorbisfile
CXX_FLAGS +=
ifeq ($(LIB), 1)
LIB_OPTIONS := -fPIC
CXX_FLAGS_LIB := --shared
FINAL_LINKER += -lstdc++ -Wl,--out-implib,librpaudio.a
CXX_FLAGS += -DBUILDING_EXAMPLE_DLL
EX := .dll
endif
endif
SRC := ./src
release: test.o
$(CXX) $(CXX_FLAGS) $(INCLUDES) $(DEBUG) $(OBJECTS) $(LIBS) -o RPtest$(EX) $(SO_DIRS) $(FINAL_LINKER)
make clean
lib: rpaudio.o
$(CXX) $(CXX_FLAGS_LIB) $(INCLUDES) $(DEBUG) $(OBJECTS_LIB) $(LIBS) -o rpaudio$(EX) $(SO_DIRS) $(FINAL_LINKER)
make clean
test: rptest.o
$(CXX) $(CXX_FLAGS) $(INCLUDES) $(DEBUG) $(TEST_OBJECTS) $(LIBS) -o RPtest$(EX) $(SO_DIRS) $(LINKER_OPTIONS)
make clean
rptest.o: rpaudio.o
$(CXX) -c $(CXX_FLAGS) $(DEBUG) $(SRC)/rptest.cpp -o rptest.o $(LINKER_OPTIONS)
test.o: rpaudio.o
$(CXX) -c $(CXX_FLAGS) $(DEBUG) $(SRC)/test.cpp -o test.o $(LINKER_OPTIONS)
rpaudio.o: commontools.o
$(CXX) -c $(LIB_OPTIONS) $(CXX_FLAGS) $(DEBUG) $(SRC)/rpaudio.cpp -o rpaudio.o $(LINKER_OPTIONS)
commontools.o:
$(CXX) -c $(LIB_OPTIONS) $(CXX_FLAGS) $(DEBUG) $(SRC)/commontools.cpp -o commontools.o $(LINKER_OPTIONS)
clean:
-rm *.o