12bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#################### COMPILE OPTIONS ####################### 22bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 32bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Uncomment this for fixed-point build 42bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#FIXED_POINT=1 52bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 62bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# It is strongly recommended to uncomment one of these 72bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# VAR_ARRAYS: Use C99 variable-length arrays for stack allocation 82bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# USE_ALLOCA: Use alloca() for stack allocation 92bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# If none is defined, then the fallback is a non-threadsafe global array 102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCFLAGS := -DUSE_ALLOCA $(CFLAGS) 112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#CFLAGS := -DVAR_ARRAYS $(CFLAGS) 122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# These options affect performance 142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# HAVE_LRINTF: Use C99 intrinsics to speed up float-to-int conversion 152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian#CFLAGS := -DHAVE_LRINTF $(CFLAGS) 162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian###################### END OF OPTIONS ###################### 182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian-include package_version 202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianinclude silk_sources.mk 222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianinclude celt_sources.mk 232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianinclude opus_sources.mk 242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianifdef FIXED_POINT 262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianSILK_SOURCES += $(SILK_SOURCES_FIXED) 272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianelse 282bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianSILK_SOURCES += $(SILK_SOURCES_FLOAT) 292bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianOPUS_SOURCES += $(OPUS_SOURCES_FLOAT) 302bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianendif 312bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 322bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianEXESUFFIX = 332bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLIBPREFIX = lib 342bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLIBSUFFIX = .a 352bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianOBJSUFFIX = .o 362bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 372bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCC = $(TOOLCHAIN_PREFIX)cc$(TOOLCHAIN_SUFFIX) 382bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianAR = $(TOOLCHAIN_PREFIX)ar 392bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianRANLIB = $(TOOLCHAIN_PREFIX)ranlib 402bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCP = $(TOOLCHAIN_PREFIX)cp 412bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 422bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancppflags-from-defines = $(addprefix -D,$(1)) 432bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancppflags-from-includes = $(addprefix -I,$(1)) 442bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianldflags-from-ldlibdirs = $(addprefix -L,$(1)) 452bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianldlibs-from-libs = $(addprefix -l,$(1)) 462bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 472bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianWARNINGS = -Wall -W -Wstrict-prototypes -Wextra -Wcast-align -Wnested-externs -Wshadow 482bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCFLAGS += -O2 -g $(WARNINGS) -DOPUS_BUILD 492bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCINCLUDES = include silk celt 502bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 512bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianifdef FIXED_POINT 522bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCFLAGS += -DFIXED_POINT=1 -DDISABLE_FLOAT_API 532bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCINCLUDES += silk/fixed 542bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianelse 552bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCINCLUDES += silk/float 562bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianendif 572bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 582bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 592bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLIBS = m 602bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 612bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLDLIBDIRS = ./ 622bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 632bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCFLAGS += $(call cppflags-from-defines,$(CDEFINES)) 642bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCFLAGS += $(call cppflags-from-includes,$(CINCLUDES)) 652bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLDFLAGS += $(call ldflags-from-ldlibdirs,$(LDLIBDIRS)) 662bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLDLIBS += $(call ldlibs-from-libs,$(LIBS)) 672bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 682bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianCOMPILE.c.cmdline = $(CC) -c $(CFLAGS) -o $@ $< 692bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLINK.o = $(CC) $(LDPREFLAGS) $(LDFLAGS) 702bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLINK.o.cmdline = $(LINK.o) $^ $(LDLIBS) -o $@$(EXESUFFIX) 712bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 722bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianARCHIVE.cmdline = $(AR) $(ARFLAGS) $@ $^ && $(RANLIB) $@ 732bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 742bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian%$(OBJSUFFIX):%.c 752bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $(COMPILE.c.cmdline) 762bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 772bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian%$(OBJSUFFIX):%.cpp 782bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $(COMPILE.cpp.cmdline) 792bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 802bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Directives 812bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 822bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 832bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Variable definitions 842bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianLIB_NAME = opus 852bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianTARGET = $(LIBPREFIX)$(LIB_NAME)$(LIBSUFFIX) 862bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 872bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianSRCS_C = $(SILK_SOURCES) $(CELT_SOURCES) $(OPUS_SOURCES) 882bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 892bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianOBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SRCS_C)) 902bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 912bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianOPUSDEMO_SRCS_C = src/opus_demo.c 922bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianOPUSDEMO_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(OPUSDEMO_SRCS_C)) 932bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 942bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianOPUSCOMPARE_SRCS_C = src/opus_compare.c 952bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh VenkatasubramanianOPUSCOMPARE_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(OPUSCOMPARE_SRCS_C)) 962bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 972bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian# Rules 982bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianall: lib opus_demo opus_compare 992bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1002bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianlib: $(TARGET) 1012bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1022bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian$(TARGET): $(OBJS) 1032bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $(ARCHIVE.cmdline) 1042bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1052bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopus_demo$(EXESUFFIX): $(OPUSDEMO_OBJS) $(TARGET) 1062bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $(LINK.o.cmdline) 1072bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1082bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianopus_compare$(EXESUFFIX): $(OPUSCOMPARE_OBJS) 1092bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $(LINK.o.cmdline) 1102bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1112bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancelt/celt.o: CFLAGS += -DPACKAGE_VERSION='$(PACKAGE_VERSION)' 1122bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramaniancelt/celt.o: package_version 1132bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1142bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianpackage_version: force 1152bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian @if [ -x ./update_version ]; then \ 1162bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian ./update_version || true; \ 1172bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian elif [ ! -e ./package_version ]; then \ 1182bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian echo 'PACKAGE_VERSION="unknown"' > ./package_version; \ 1192bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian fi 1202bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1212bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianforce: 1222bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1232bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanianclean: 1242bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian rm -f opus_demo$(EXESUFFIX) opus_compare$(EXESUFFIX) $(TARGET) \ 1252bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian $(OBJS) $(OPUSDEMO_OBJS) $(OPUSCOMPARE_OBJS) 1262bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian 1272bd8b54017b5320bc0c1df9bf86f4cdc9f8db242Vignesh Venkatasubramanian.PHONY: all lib clean 128