99 lines
2.4 KiB
Makefile
99 lines
2.4 KiB
Makefile
|
#
|
||
|
# 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)
|
||
|
AR = $(TOOLCHAIN_PREFIX)ar
|
||
|
RANLIB = $(TOOLCHAIN_PREFIX)ranlib
|
||
|
CP = $(TOOLCHAIN_PREFIX)cp
|
||
|
|
||
|
cflags-from-defines = $(addprefix -D,$(1))
|
||
|
cflags-from-includes = $(addprefix -I,$(1))
|
||
|
ldflags-from-ldlibdirs = $(addprefix -L,$(1))
|
||
|
ldlibs-from-libs = $(addprefix -l,$(1))
|
||
|
|
||
|
CFLAGS += -Wall -enable-threads -O3
|
||
|
|
||
|
CFLAGS += $(call cflags-from-defines,$(CDEFINES))
|
||
|
CFLAGS += $(call cflags-from-defines,$(ADDED_DEFINES))
|
||
|
CFLAGS += $(call cflags-from-includes,$(CINCLUDES))
|
||
|
LDFLAGS += $(call ldflags-from-ldlibdirs,$(LDLIBDIRS))
|
||
|
LDLIBS += $(call ldlibs-from-libs,$(LIBS))
|
||
|
|
||
|
COMPILE.c.cmdline = $(CC) -c $(CFLAGS) -o $@ $<
|
||
|
LINK.o.cmdline = $(LINK.o) $^ $(LDLIBS) -lm -o $@$(EXESUFFIX)
|
||
|
ARCHIVE.cmdline = $(AR) $(ARFLAGS) $@ $^ && $(RANLIB) $@
|
||
|
|
||
|
%$(OBJSUFFIX):%.c
|
||
|
$(COMPILE.c.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)
|
||
|
|
||
|
OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SRCS_C))
|
||
|
|
||
|
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) encoder decoder signalcompare
|
||
|
|
||
|
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)
|
||
|
|