Fix configure output formatting.
[opus.git] / Makefile.unix
index bd980c6..90a48f0 100644 (file)
@@ -12,16 +12,12 @@ CFLAGS := -DUSE_ALLOCA $(CFLAGS)
 
 # These options affect performance
 # HAVE_LRINTF: Use C99 intrinsics to speed up float-to-int conversion
-#      inline: Don't use the 'inline' keyword (for ANSI C compilers)
-#    restrict: Don't use the 'restrict' keyword (for pre-C99 compilers)
 #CFLAGS := -DHAVE_LRINTF $(CFLAGS)
-#CFLAGS := -Dinline= $(CFLAGS)
-CFLAGS := -Drestrict= $(CFLAGS)
 
 ###################### END OF OPTIONS ######################
 
-include version.mk
-CFLAGS += -DOPUS_VERSION='$(OPUS_VERSION)'
+-include package_version
+
 include silk_sources.mk
 include celt_sources.mk
 include opus_sources.mk
@@ -46,29 +42,19 @@ 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))
+ldlibs-from-libs        = $(addprefix -l,$(1))
 
 WARNINGS = -Wall -W -Wstrict-prototypes -Wextra -Wcast-align -Wnested-externs -Wshadow
 CFLAGS  += -O2 -g $(WARNINGS) -DOPUS_BUILD
+CINCLUDES = include silk celt
+
 ifdef FIXED_POINT
 CFLAGS += -DFIXED_POINT=1 -DDISABLE_FLOAT_API
+CINCLUDES += silk/fixed
+else
+CINCLUDES += silk/float
 endif
 
-CINCLUDES += include/ \
-       silk/ \
-       silk/float/ \
-       silk/fixed/ \
-       celt/ \
-       src/
-
-# VPATH e.g. VPATH = src:../headers
-VPATH = ./ \
-       silk/interface \
-       silk/src_FIX \
-       silk/src_FLP \
-       silk/src_SigProc_FIX \
-       silk/src_SigProc_FLP \
-       test
 
 LIBS = m
 
@@ -105,24 +91,69 @@ OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(SRCS_C))
 OPUSDEMO_SRCS_C = src/opus_demo.c
 OPUSDEMO_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(OPUSDEMO_SRCS_C))
 
+TESTOPUSAPI_SRCS_C = tests/test_opus_api.c
+TESTOPUSAPI_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(TESTOPUSAPI_SRCS_C))
+
+TESTOPUSDECODE_SRCS_C = tests/test_opus_decode.c
+TESTOPUSDECODE_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(TESTOPUSDECODE_SRCS_C))
+
+TESTOPUSENCODE_SRCS_C = tests/test_opus_encode.c tests/opus_encode_regressions.c
+TESTOPUSENCODE_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(TESTOPUSENCODE_SRCS_C))
+
+TESTOPUSPADDING_SRCS_C = tests/test_opus_padding.c
+TESTOPUSPADDING_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(TESTOPUSPADDING_SRCS_C))
+
 OPUSCOMPARE_SRCS_C = src/opus_compare.c
 OPUSCOMPARE_OBJS := $(patsubst %.c,%$(OBJSUFFIX),$(OPUSCOMPARE_SRCS_C))
 
-# Rules
-default: all
+TESTS := test_opus_api test_opus_decode test_opus_encode test_opus_padding
 
-all: $(TARGET) lib opus_demo opus_compare
+# Rules
+all: lib opus_demo opus_compare $(TESTS)
 
 lib: $(TARGET)
 
+check: all
+       for test in $(TESTS); do ./$$test; done
+
 $(TARGET): $(OBJS)
        $(ARCHIVE.cmdline)
 
 opus_demo$(EXESUFFIX): $(OPUSDEMO_OBJS) $(TARGET)
        $(LINK.o.cmdline)
 
+test_opus_api$(EXESUFFIX): $(TESTOPUSAPI_OBJS) $(TARGET)
+       $(LINK.o.cmdline)
+
+test_opus_decode$(EXESUFFIX): $(TESTOPUSDECODE_OBJS) $(TARGET)
+       $(LINK.o.cmdline)
+
+test_opus_encode$(EXESUFFIX): $(TESTOPUSENCODE_OBJS) $(TARGET)
+       $(LINK.o.cmdline)
+
+test_opus_padding$(EXESUFFIX): $(TESTOPUSPADDING_OBJS) $(TARGET)
+       $(LINK.o.cmdline)
+
 opus_compare$(EXESUFFIX): $(OPUSCOMPARE_OBJS)
        $(LINK.o.cmdline)
 
+celt/celt.o: CFLAGS += -DPACKAGE_VERSION='$(PACKAGE_VERSION)'
+celt/celt.o: package_version
+
+package_version: force
+       @if [ -x ./update_version ]; then \
+               ./update_version || true; \
+       elif [ ! -e ./package_version ]; then \
+               echo 'PACKAGE_VERSION="unknown"' > ./package_version; \
+       fi
+
+force:
+
 clean:
-       rm -f opus_demo$(EXESUFFIX) opus_compare$(EXESUFFIX) $(TARGET) $(OBJS) $(OPUSDEMO_OBJS)
+       rm -f opus_demo$(EXESUFFIX) opus_compare$(EXESUFFIX) $(TARGET) \
+                test_opus_api$(EXESUFFIX) test_opus_decode$(EXESUFFIX) \
+                test_opus_encode$(EXESUFFIX) test_opus_padding$(EXESUFFIX) \
+               $(OBJS) $(OPUSDEMO_OBJS) $(OPUSCOMPARE_OBJS) $(TESTOPUSAPI_OBJS) \
+                $(TESTOPUSDECODE_OBJS) $(TESTOPUSENCODE_OBJS) $(TESTOPUSPADDING_OBJS)
+
+.PHONY: all lib clean force check