# Just set OC_BASE to the opencore root, or set AMR_BASE directly to # a detached gsm_amr directory OC_BASE = ../opencore AMR_BASE = $(OC_BASE)/codecs_v2/audio/gsm_amr LIBDIR=lib BINDIR=bin # To compile as C instead of C++, define BUILD_AS_C ifneq (, $(BUILD_AS_C)) CXX = $(CC) CXXFLAGS += -x c -std=c99 endif ifeq (, $(PREFIX)) PREFIX = /usr/local endif DEC_DIR = $(AMR_BASE)/amr_wb/dec DEC_SRC_DIR = $(DEC_DIR)/src OSCL = ../oscl CPPFLAGS = -I$(OSCL) -I$(DEC_SRC_DIR) -I$(DEC_DIR)/include -I$(AMR_BASE)/common/dec/include # Find all the source files # Exclude only decoder_amr_wb.cpp, not dtx_decoder_amr_wb.cpp DEC_SRC := $(shell cd $(DEC_SRC_DIR) && echo *.cpp | sed 's/ decoder_amr_wb.cpp//') DEC_OBJS := $(DEC_SRC:.cpp=.o) DEC_OBJS := $(patsubst %,$(DEC_SRC_DIR)/%, $(DEC_OBJS)) OBJS = wrapper.o $(DEC_OBJS) SOBJS = $(OBJS:%.o=%.lo) #Versioning MAJOR = 0 MINOR = 1 REVISION = 1 VERSION = $(MAJOR).$(MINOR).$(REVISION) ifeq ($(shell uname), Darwin) SHLIB_EXT = dylib SHLIB_FLAGS = -dynamiclib else ifeq ($(shell uname | sed -e 's/\(MINGW32_NT\)\(.*\)/\1/'), MINGW32_NT) SHLIB_EXT = $(MAJOR).$(MINOR).$(REVISION).dll SHLIB_FLAGS = -shared SONAME = libopencore-amrwb-$(MAJOR).dll else SHLIB_EXT = so.$(MAJOR).$(MINOR).$(REVISION) SHLIB_FLAGS = -shared SONAME = libopencore-amrwb.so.$(MAJOR) endif endif SHLIB = libopencore-amrwb.$(SHLIB_EXT) all: libopencore-amrwb.a $(SHLIB) $(SHLIB): $(SOBJS) ifeq ($(shell uname), Darwin) $(CXX) $(SHLIB_FLAGS) -o $@ $+ $(LDFLAGS) else $(CXX) $(SHLIB_FLAGS) -o $@ $+ -Wl,-soname,$(SONAME) $(LDFLAGS) endif %.lo: %.c $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -DPIC -c $< -o $@ %.lo: %.cpp $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -DPIC -c $< -o $@ libopencore-amrwb.a: $(OBJS) ar rcs $@ $+ install: libopencore-amrwb.a $(SHLIB) install -d $(DESTDIR)$(PREFIX)/$(LIBDIR) install -m 644 libopencore-amrwb.a $(DESTDIR)$(PREFIX)/$(LIBDIR) ifeq ($(shell uname | sed -e 's/\(MINGW32_NT\)\(.*\)/\1/'), MINGW32_NT) install -d $(DESTDIR)$(PREFIX)/$(BINDIR) install $(SHLIB) $(DESTDIR)$(PREFIX)/$(BINDIR) else install $(SHLIB) $(DESTDIR)$(PREFIX)/$(LIBDIR) endif ifneq ($(shell uname), Darwin) ifeq ($(shell uname | sed -e 's/\(MINGW32_NT\)\(.*\)/\1/'), MINGW32_NT) ln -sf $(SHLIB) $(DESTDIR)$(PREFIX)/$(BINDIR)/$(SONAME) ln -sf $(DESTDIR)$(PREFIX)/$(BINDIR)/$(SONAME) $(DESTDIR)$(PREFIX)/$(BINDIR)/libopencore-amrwb.dll else ln -sf $(SHLIB) $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(SONAME) ln -sf $(SONAME) $(DESTDIR)$(PREFIX)/$(LIBDIR)/libopencore-amrwb.so endif endif install -d $(DESTDIR)$(PREFIX)/include/opencore-amrwb install -m 644 dec_if.h $(DESTDIR)$(PREFIX)/include/opencore-amrwb install -m 644 if_rom.h $(DESTDIR)$(PREFIX)/include/opencore-amrwb clean: rm -f $(SHLIB) libopencore-amrwb.a *.o *.lo $(OBJS) $(SOBJS)