| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #
- # Makefile for Silk SDK
- #
- # Copyright (c) 2012, Skype Limited
- # All rights reserved.
- #
- #Platform detection and settings
- BUILD_OS := $(shell uname | sed -e 's/^.*Darwin.*/MacOS-X/ ; s/^.*CYGWIN.*/Windows/')
- BUILD_ARCHITECTURE := $(shell uname -m | sed -e 's/i686/i386/')
- EXESUFFIX =
- LIBPREFIX = lib
- LIBSUFFIX = .a
- OBJSUFFIX = .o
- CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX)
- CXX = $(TOOLCHAIN_PREFIX)g++$(TOOLCHAIN_SUFFIX)
- AR = $(TOOLCHAIN_PREFIX)ar
- RANLIB = $(TOOLCHAIN_PREFIX)ranlib
- CP = $(TOOLCHAIN_PREFIX)cp
- cppflags-from-defines = $(addprefix -D,$(1))
- cppflags-from-includes = $(addprefix -I,$(1))
- ldflags-from-ldlibdirs = $(addprefix -L,$(1))
- ldlibs-from-libs = $(addprefix -l,$(1))
- ifneq (,$(TARGET_CPU))
- CFLAGS += -mcpu=$(TARGET_CPU)
- ifneq (,$(TARGET_TUNE))
- CFLAGS += -mtune=$(TARGET_TUNE)
- else
- CFLAGS += -mtune=$(TARGET_CPU)
- endif
- endif
- ifneq (,$(TARGET_FPU))
- CFLAGS += -mfpu=$(TARGET_FPU)
- endif
- ifneq (,$(TARGET_ARCH))
- CFLAGS += -march=$(TARGET_ARCH)
- endif
- # Helper to make NEON testing easier, when using USE_NEON=yes do not set TARGET_CPU or TARGET_FPU
- ifeq (yes,$(USE_NEON))
- CFLAGS += -mcpu=cortex-a8 -mfloat-abi=softfp -mfpu=neon
- endif
- CFLAGS += -Wall -O3
- CFLAGS += $(call cppflags-from-defines,$(CDEFINES))
- CFLAGS += $(call cppflags-from-defines,$(ADDED_DEFINES))
- CFLAGS += $(call cppflags-from-includes,$(CINCLUDES))
- LDFLAGS += $(call ldflags-from-ldlibdirs,$(LDLIBDIRS))
- LDLIBS += $(call ldlibs-from-libs,$(LIBS))
- COMPILE.c.cmdline = $(CC) -c $(CFLAGS) $(ADDED_CFLAGS) -o $@ $<
- COMPILE.S.cmdline = $(CC) -c $(CFLAGS) $(ADDED_CFLAGS) -o $@ $<
- COMPILE.cpp.cmdline = $(CXX) -c $(CFLAGS) $(ADDED_CFLAGS) -o $@ $<
- LINK.o = $(CXX) $(LDPREFLAGS) $(LDFLAGS)
- LINK.o.cmdline = $(LINK.o) $^ $(LDLIBS) -o $@$(EXESUFFIX)
- ARCHIVE.cmdline = $(AR) $(ARFLAGS) $@ $^ && $(RANLIB) $@
- %$(OBJSUFFIX):%.c
- $(COMPILE.c.cmdline)
- %$(OBJSUFFIX):%.cpp
- $(COMPILE.cpp.cmdline)
- %$(OBJSUFFIX):%.S
- $(COMPILE.S.cmdline)
- # Directives
- CINCLUDES += interface src test
- # VPATH e.g. VPATH = src:../headers
- VPATH = ./ \
- interface \
- src \
- test
- # Variable definitions
- LIB_NAME = SKP_SILK_SDK
- TARGET = $(LIBPREFIX)$(LIB_NAME)$(LIBSUFFIX)
- SRCS_C = $(wildcard src/*.c)
- ifneq (,$(TOOLCHAIN_PREFIX))
- SRCS_S = $(wildcard src/*.S)
- OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SRCS_C)) $(patsubst %.S,%$(OBJSUFFIX),$(SRCS_S))
- else
- OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SRCS_C))
- endif
- ENCODER_SRCS_C = test/Encoder.c
- ENCODER_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(ENCODER_SRCS_C))
- DECODER_SRCS_C = test/Decoder.c
- DECODER_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(DECODER_SRCS_C))
- SIGNALCMP_SRCS_C = test/signalCompare.c
- SIGNALCMP_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SIGNALCMP_SRCS_C))
- LIBS = \
- $(LIB_NAME)
- LDLIBDIRS = ./
- # Rules
- default: all
- all: $(TARGET) decoder
- lib: $(TARGET)
- $(TARGET): $(OBJS)
- $(ARCHIVE.cmdline)
- encoder$(EXESUFFIX): $(ENCODER_OBJS)
- $(LINK.o.cmdline)
- decoder$(EXESUFFIX): $(DECODER_OBJS)
- $(LINK.o.cmdline)
- signalcompare$(EXESUFFIX): $(SIGNALCMP_OBJS)
- $(LINK.o.cmdline)
- clean:
- $(RM) $(TARGET)* $(OBJS) $(ENCODER_OBJS) $(DECODER_OBJS) \
- $(SIGNALCMP_OBJS) $(TEST_OBJS) \
- encoder$(EXESUFFIX) decoder$(EXESUFFIX) signalcompare$(EXESUFFIX)
|