1 # Just set OC_BASE to the opencore root, or set AMR_BASE directly to
2 # a detached gsm_amr directory
4 AMR_BASE = $(OC_BASE)/codecs_v2/audio/gsm_amr
8 # To compile as C instead of C++, define BUILD_AS_C
9 ifneq (, $(BUILD_AS_C))
11 CXXFLAGS += -x c -std=c99
18 DEC_DIR = $(AMR_BASE)/amr_nb/dec
19 ENC_DIR = $(AMR_BASE)/amr_nb/enc
20 COMMON_DIR = $(AMR_BASE)/amr_nb/common
21 DEC_SRC_DIR = $(DEC_DIR)/src
22 ENC_SRC_DIR = $(ENC_DIR)/src
23 COMMON_SRC_DIR = $(COMMON_DIR)/src
26 CPPFLAGS = -I$(OSCL) -I$(DEC_SRC_DIR) -I$(COMMON_DIR)/include -I$(DEC_DIR)/include -I$(AMR_BASE)/common/dec/include -I$(ENC_SRC_DIR)
28 # Find all the source files
29 DEC_SRC := $(shell cd $(DEC_SRC_DIR) && echo *.cpp)
30 ENC_SRC := $(shell cd $(ENC_SRC_DIR) && echo *.cpp)
31 COMMON_SRC := $(shell cd $(COMMON_SRC_DIR) && echo *.cpp)
34 DEC_SRC := $(DEC_SRC:decoder_gsm_amr.cpp=)
35 DEC_SRC := $(DEC_SRC:pvgsmamrdecoder.cpp=)
36 ENC_SRC := $(ENC_SRC:gsmamr_encoder_wrapper.cpp=)
37 COMMON_SRC := $(COMMON_SRC:bits2prm.cpp=)
38 COMMON_SRC := $(COMMON_SRC:copy.cpp=)
39 COMMON_SRC := $(COMMON_SRC:div_32.cpp=)
40 COMMON_SRC := $(COMMON_SRC:l_abs.cpp=)
41 COMMON_SRC := $(COMMON_SRC:vad1.cpp=)
42 COMMON_SRC := $(COMMON_SRC:r_fft.cpp=)
43 COMMON_SRC := $(COMMON_SRC:vad2.cpp=)
45 DEC_OBJS := $(DEC_SRC:.cpp=.o)
46 DEC_OBJS := $(patsubst %,$(DEC_SRC_DIR)/%, $(DEC_OBJS))
47 ENC_OBJS := $(ENC_SRC:.cpp=.o)
48 ENC_OBJS := $(patsubst %,$(ENC_SRC_DIR)/%, $(ENC_OBJS))
49 COMMON_OBJS := $(COMMON_SRC:.cpp=.o)
50 COMMON_OBJS := $(patsubst %,$(COMMON_SRC_DIR)/%, $(COMMON_OBJS))
52 OBJS = wrapper.o $(DEC_OBJS) $(ENC_OBJS) $(COMMON_OBJS)
53 SOBJS = $(OBJS:%.o=%.lo)
59 VERSION = $(MAJOR).$(MINOR).$(REVISION)
61 ifeq ($(shell uname), Darwin)
63 SHLIB_FLAGS = -dynamiclib
65 ifeq ($(shell uname | sed -e 's/\(MINGW32_NT\)\(.*\)/\1/'), MINGW32_NT)
66 SHLIB_EXT = $(MAJOR).$(MINOR).$(REVISION).dll
68 SONAME = libopencore-amrnb-$(MAJOR).dll
70 SHLIB_EXT = so.$(MAJOR).$(MINOR).$(REVISION)
72 SONAME = libopencore-amrnb.so.$(MAJOR)
75 SHLIB = libopencore-amrnb.$(SHLIB_EXT)
77 all: libopencore-amrnb.a $(SHLIB)
80 ifeq ($(shell uname), Darwin)
81 $(CXX) $(SHLIB_FLAGS) -o $@ $+ $(LDFLAGS)
83 $(CXX) $(SHLIB_FLAGS) -o $@ $+ -Wl,-soname,$(SONAME) $(LDFLAGS)
87 $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -DPIC -c $< -o $@
90 $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -DPIC -c $< -o $@
92 libopencore-amrnb.a: $(OBJS)
95 install: libopencore-amrnb.a $(SHLIB)
96 install -d $(DESTDIR)$(PREFIX)/$(LIBDIR)
97 install -m 644 libopencore-amrnb.a $(DESTDIR)$(PREFIX)/$(LIBDIR)
98 ifeq ($(shell uname | sed -e 's/\(MINGW32_NT\)\(.*\)/\1/'), MINGW32_NT)
99 install -d $(DESTDIR)$(PREFIX)/$(BINDIR)
100 install $(SHLIB) $(DESTDIR)$(PREFIX)/$(BINDIR)
102 install $(SHLIB) $(DESTDIR)$(PREFIX)/$(LIBDIR)
104 ifneq ($(shell uname), Darwin)
105 ifeq ($(shell uname | sed -e 's/\(MINGW32_NT\)\(.*\)/\1/'), MINGW32_NT)
106 ln -sf $(SHLIB) $(DESTDIR)$(PREFIX)/$(BINDIR)/$(SONAME)
107 ln -sf $(DESTDIR)$(PREFIX)/$(BINDIR)/$(SONAME) $(DESTDIR)$(PREFIX)/$(BINDIR)/libopencore-amrnb.dll
109 ln -sf $(SHLIB) $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(SONAME)
110 ln -sf $(SONAME) $(DESTDIR)$(PREFIX)/$(LIBDIR)/libopencore-amrnb.so
113 install -d $(DESTDIR)$(PREFIX)/include/opencore-amrnb
114 install -m 644 interf_dec.h $(DESTDIR)$(PREFIX)/include/opencore-amrnb
115 install -m 644 interf_enc.h $(DESTDIR)$(PREFIX)/include/opencore-amrnb
118 rm -f $(SHLIB) libopencore-amrnb.a *.o *.lo $(OBJS) $(SOBJS)