Update SILK code using the CELT range coder
[opus.git] / Makefile
1 #                                       \r
2 # Makefile for Silk SDK                 \r
3 #\r
4 # Copyright (c) 2010, Skype Limited\r
5 # All rights reserved.\r
6 #\r
7 \r
8 #Platform detection and settings\r
9 \r
10 BUILD_OS := $(shell uname | sed -e 's/^.*Darwin.*/MacOS-X/ ; s/^.*CYGWIN.*/Windows/')\r
11 \r
12 BUILD_ARCHITECTURE := $(shell uname -m | sed -e 's/i686/i386/')\r
13 \r
14 EXESUFFIX = \r
15 LIBPREFIX = lib\r
16 LIBSUFFIX = .a\r
17 OBJSUFFIX = .o\r
18 \r
19 CC     = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX)\r
20 AR     = $(TOOLCHAIN_PREFIX)ar\r
21 RANLIB = $(TOOLCHAIN_PREFIX)ranlib\r
22 CP     = $(TOOLCHAIN_PREFIX)cp\r
23 \r
24 cflags-from-defines    = $(addprefix -D,$(1))\r
25 cflags-from-includes   = $(addprefix -I,$(1))\r
26 ldflags-from-ldlibdirs = $(addprefix -L,$(1))\r
27 ldlibs-from-libs       = $(addprefix -l,$(1))\r
28 \r
29 CFLAGS  += -Wall -enable-threads -O3\r
30 \r
31 CFLAGS  += $(call cflags-from-defines,$(CDEFINES))\r
32 CFLAGS  += $(call cflags-from-includes,$(CINCLUDES))\r
33 LDFLAGS += $(call ldflags-from-ldlibdirs,$(LDLIBDIRS))\r
34 LDLIBS  += $(call ldlibs-from-libs,$(LIBS))\r
35 \r
36 COMPILE.c.cmdline   = $(CC) -c $(CFLAGS) -o $@ $<\r
37 LINK.o.cmdline      = $(LINK.o) -lm $^ $(LDLIBS) -o $@$(EXESUFFIX) \r
38 ARCHIVE.cmdline     = $(AR) $(ARFLAGS) $@ $^ && $(RANLIB) $@\r
39 \r
40 %$(OBJSUFFIX):%.c\r
41         $(COMPILE.c.cmdline)\r
42 \r
43 ifneq (,$(filter FIXED_POINT, $(CDEFINES)))\r
44 \r
45 # Directives\r
46 \r
47 CINCLUDES += interface src_common src_fix src_SigProc_FIX test\r
48 \r
49 # VPATH e.g. VPATH = src:../headers\r
50 VPATH = ./ \\r
51         interface \\r
52           src_common \\r
53           src_fix \\r
54           src_SigProc_FIX \\r
55         test \r
56 \r
57 SRCS_C = $(wildcard src_common/*.c src_fix/*.c src_SigProc_FIX/*.c )\r
58 \r
59 else\r
60 \r
61 # Directives\r
62 \r
63 CINCLUDES += interface src_common src_fix src_SigProc_FIX src_SigProc_FLP test\r
64 \r
65 # VPATH e.g. VPATH = src:../headers\r
66 VPATH = ./ \\r
67         interface \\r
68           src_common \\r
69           src_flp \\r
70           src_SigProc_FIX \\r
71           src_SigProc_FLP \\r
72         test \r
73 \r
74 SRCS_C = $(wildcard src_common/*.c src_flp/*.c src_SigProc_FIX/*.c  src_SigProc_FLP/*.c )\r
75 \r
76 endif\r
77 \r
78 # Variable definitions\r
79 LIB_NAME = SKP_SILK_SDK\r
80 TARGET = $(LIBPREFIX)$(LIB_NAME)$(LIBSUFFIX)\r
81 \r
82 \r
83 OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SRCS_C))\r
84 \r
85 ENCODER_SRCS_C = test/Encoder.c test/SKP_debug.c\r
86 ENCODER_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(ENCODER_SRCS_C))\r
87 \r
88 DECODER_SRCS_C = test/Decoder.c test/SKP_debug.c\r
89 DECODER_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(DECODER_SRCS_C))\r
90 \r
91 SIGNALCMP_SRCS_C = test/signalCompare.c\r
92 SIGNALCMP_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SIGNALCMP_SRCS_C))\r
93 \r
94 LIBS = \\r
95         $(LIB_NAME)\r
96 \r
97 LDLIBDIRS = ./\r
98 \r
99 # Rules\r
100 default: all\r
101 \r
102 all: $(TARGET) encoder decoder signalcompare\r
103 \r
104 lib: $(TARGET)\r
105 \r
106 $(TARGET): $(OBJS)\r
107         $(ARCHIVE.cmdline)\r
108 \r
109 encoder$(EXESUFFIX): $(ENCODER_OBJS)    \r
110         $(LINK.o.cmdline)\r
111 \r
112 decoder$(EXESUFFIX): $(DECODER_OBJS)    \r
113         $(LINK.o.cmdline)\r
114 \r
115 signalcompare$(EXESUFFIX): $(SIGNALCMP_OBJS)    \r
116         $(LINK.o.cmdline)\r
117 \r
118 clean:\r
119         $(RM) $(TARGET)* $(OBJS) $(ENCODER_OBJS) $(DECODER_OBJS) \\r
120                   $(SIGNALCMP_OBJS) $(TEST_OBJS) \\r
121                   encoder$(EXESUFFIX) decoder$(EXESUFFIX) signalcompare$(EXESUFFIX)\r
122 \r