merge manifest file
[external/opencore-amr.git] / amrwb / Makefile.alt
1 # Just set OC_BASE to the opencore root, or set AMR_BASE directly to
2 # a detached gsm_amr directory
3 OC_BASE = ../opencore
4 AMR_BASE = $(OC_BASE)/codecs_v2/audio/gsm_amr
5 LIBDIR=lib
6 BINDIR=bin
7
8 # To compile as C instead of C++, define BUILD_AS_C
9 ifneq (, $(BUILD_AS_C))
10     CXX = $(CC)
11     CXXFLAGS += -x c -std=c99
12 endif
13
14 ifeq (, $(PREFIX))
15     PREFIX = /usr/local
16 endif
17
18 DEC_DIR = $(AMR_BASE)/amr_wb/dec
19 DEC_SRC_DIR = $(DEC_DIR)/src
20 OSCL = ../oscl
21
22 CPPFLAGS = -I$(OSCL) -I$(DEC_SRC_DIR) -I$(DEC_DIR)/include -I$(AMR_BASE)/common/dec/include
23
24 # Find all the source files
25 # Exclude only decoder_amr_wb.cpp, not dtx_decoder_amr_wb.cpp
26 DEC_SRC := $(shell cd $(DEC_SRC_DIR) && echo *.cpp | sed 's/ decoder_amr_wb.cpp//')
27
28 DEC_OBJS := $(DEC_SRC:.cpp=.o)
29 DEC_OBJS := $(patsubst %,$(DEC_SRC_DIR)/%, $(DEC_OBJS))
30
31 OBJS = wrapper.o $(DEC_OBJS)
32 SOBJS = $(OBJS:%.o=%.lo)
33
34 #Versioning
35 MAJOR = 0
36 MINOR = 1
37 REVISION = 1
38 VERSION = $(MAJOR).$(MINOR).$(REVISION)
39
40 ifeq ($(shell uname), Darwin)
41     SHLIB_EXT = dylib
42     SHLIB_FLAGS = -dynamiclib
43 else
44     ifeq ($(shell uname | sed -e 's/\(MINGW32_NT\)\(.*\)/\1/'), MINGW32_NT)
45         SHLIB_EXT = $(MAJOR).$(MINOR).$(REVISION).dll
46         SHLIB_FLAGS = -shared
47         SONAME = libopencore-amrwb-$(MAJOR).dll
48     else
49         SHLIB_EXT = so.$(MAJOR).$(MINOR).$(REVISION)
50         SHLIB_FLAGS = -shared
51         SONAME = libopencore-amrwb.so.$(MAJOR)
52     endif
53 endif
54 SHLIB = libopencore-amrwb.$(SHLIB_EXT)
55
56 all: libopencore-amrwb.a $(SHLIB)
57
58 $(SHLIB): $(SOBJS)
59 ifeq ($(shell uname), Darwin)
60         $(CXX) $(SHLIB_FLAGS) -o $@ $+ $(LDFLAGS)
61 else
62         $(CXX) $(SHLIB_FLAGS) -o $@ $+ -Wl,-soname,$(SONAME) $(LDFLAGS)
63 endif
64
65 %.lo: %.c
66         $(CC) $(CPPFLAGS) $(CFLAGS) -fPIC -DPIC -c $< -o $@
67
68 %.lo: %.cpp
69         $(CXX) $(CPPFLAGS) $(CXXFLAGS) -fPIC -DPIC -c $< -o $@
70
71 libopencore-amrwb.a: $(OBJS)
72         ar rcs $@ $+
73
74 install: libopencore-amrwb.a $(SHLIB)
75         install -d $(DESTDIR)$(PREFIX)/$(LIBDIR)
76         install -m 644 libopencore-amrwb.a $(DESTDIR)$(PREFIX)/$(LIBDIR)
77 ifeq ($(shell uname | sed -e 's/\(MINGW32_NT\)\(.*\)/\1/'), MINGW32_NT)
78         install -d $(DESTDIR)$(PREFIX)/$(BINDIR)
79         install $(SHLIB) $(DESTDIR)$(PREFIX)/$(BINDIR)
80 else
81         install $(SHLIB) $(DESTDIR)$(PREFIX)/$(LIBDIR)
82 endif
83 ifneq ($(shell uname), Darwin)
84 ifeq ($(shell uname | sed -e 's/\(MINGW32_NT\)\(.*\)/\1/'), MINGW32_NT)
85         ln -sf $(SHLIB) $(DESTDIR)$(PREFIX)/$(BINDIR)/$(SONAME)
86         ln -sf $(DESTDIR)$(PREFIX)/$(BINDIR)/$(SONAME) $(DESTDIR)$(PREFIX)/$(BINDIR)/libopencore-amrwb.dll
87 else
88         ln -sf $(SHLIB) $(DESTDIR)$(PREFIX)/$(LIBDIR)/$(SONAME)
89         ln -sf $(SONAME) $(DESTDIR)$(PREFIX)/$(LIBDIR)/libopencore-amrwb.so
90 endif
91 endif
92         install -d $(DESTDIR)$(PREFIX)/include/opencore-amrwb
93         install -m 644 dec_if.h $(DESTDIR)$(PREFIX)/include/opencore-amrwb
94         install -m 644 if_rom.h $(DESTDIR)$(PREFIX)/include/opencore-amrwb
95
96 clean:
97         rm -f $(SHLIB) libopencore-amrwb.a *.o *.lo $(OBJS) $(SOBJS)
98