audio: Move build result to build result folder. [1/2]

PD#SWPL-150466

Problem:
Move build result to build result folder.

Solution:
Move build result to build result folder.

Verify:
Yocto: :AP222

Change-Id: I8070607ddaf3f1c22faf5b766d18432e02e352fb
Signed-off-by: xingri.gao <xingri.gao@amlogic.com>
diff --git a/Makefile b/Makefile
index 129d832..b8c1f5d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,15 @@
-OBJS=src/primitives.o \
-	src/resampler.o \
-	src/speexresample/resample.o \
-	src/IpcBuffer/IpcBuffer.o
+AML_BUILD_DIR?=.
 
-CUTILS_OBJS=src/cutils/hashmap.o \
-	src/cutils/properties.o \
-	src/cutils/str_parms.o \
-	src/cutils/threads.o \
-	src/cutils/strlcpy.o
+SRCS=src/primitives.c \
+	src/resampler.c \
+	src/speexresample/resample.c
+SRCPPS = src/IpcBuffer/IpcBuffer.cpp
+
+CUTILS_SRCS=src/cutils/strlcpy.c
+CUTILS_SRCPPS = src/cutils/hashmap.cpp \
+	src/cutils/properties.cpp \
+	src/cutils/str_parms.cpp \
+	src/cutils/threads.cpp
 
 #Allow to configure NEON support of SPEEX
 TOOLCHAIN_NEON_SUPPORT ?= y
@@ -18,29 +20,40 @@
 CFLAGS+=-fPIC -O2 -I./include -I./include/speex -I./include/IpcBuffer -I. -I./src $(TOOLCHAIN_NEON_FLAGS) -DNDEBUG -DFIXED_POINT -DRESAMPLE_FORCE_FULL_SINC_TABLE -DEXPORT=
 LDFLAGS+=-llog -ldl -lrt -lpthread -lstdc++
 
-%.o: %.cpp
-	$(CC) -c $(CFLAGS) $(CXXFLAGS) -o $@ $<
+CUTILS_OBJCTS = $(patsubst %.c, $(AML_BUILD_DIR)/%.o, $(notdir $(CUTILS_SRCS)))
+CUTILS_OBJCTS += $(patsubst %.cpp, $(AML_BUILD_DIR)/%.o, $(notdir $(CUTILS_SRCPPS)))
+SRCS_OBJCTS = $(patsubst %.c, $(AML_BUILD_DIR)/%.o, $(notdir $(SRCS)))
+SRCS_OBJCTS += $(patsubst %.cpp, $(AML_BUILD_DIR)/%.o, $(notdir $(SRCPPS)))
+SRCS_DIR = $(dir $(SRCS) $(SRCPPS))
+CUTILS_DIR = $(dir $(CUTILS_SRCS) $(SRCPPS))
 
-%.o: %.cc
-	$(CC) -c $(CFLAGS) $(CXXFLAGS) -o $@ $<
+vpath %.c $(SRCS_DIR):$(CUTILS_DIR)
 
-%.o: %.c
+$(AML_BUILD_DIR)/%.o: %.c
 	$(CC) -c $(CFLAGS) -o $@ $<
 
-all: libamaudioutils.so libcutils.so
+$(AML_BUILD_DIR)/%.o: %.cc
+	$(CC) -c $(CFLAGS) $(CXXFLAGS) -o $@ $<
 
-libamaudioutils.so: $(OBJS)
+vpath %.cpp $(SRCS_DIR):$(CUTILS_DIR)
+
+$(AML_BUILD_DIR)/%.o: %.cpp
+	$(CC) -c $(CFLAGS) $(CXXFLAGS) -o $@ $<
+
+all: $(AML_BUILD_DIR)/libamaudioutils.so $(AML_BUILD_DIR)/libcutils.so
+
+$(AML_BUILD_DIR)/libamaudioutils.so: $(SRCS_OBJCTS)
 	$(CC) $(CFLAGS) -shared -o $@ $^ $(LDFLAGS)
 
-libcutils.so: $(CUTILS_OBJS)
+$(AML_BUILD_DIR)/libcutils.so: $(CUTILS_OBJCTS)
 	$(CC) $(CFLAGS) -shared -o $@ $^ $(LDFLAGS)
 
 .PHONY: install
 install:
-	install -m 644 -D libamaudioutils.so -t $(STAGING_DIR)/usr/lib
-	install -m 644 -D libamaudioutils.so -t $(TARGET_DIR)/usr/lib
-	install -m 644 -D libcutils.so -t $(STAGING_DIR)/usr/lib
-	install -m 644 -D libcutils.so -t $(TARGET_DIR)/usr/lib
+	install -m 644 -D $(AML_BUILD_DIR)/libamaudioutils.so -t $(STAGING_DIR)/usr/lib
+	install -m 644 -D $(AML_BUILD_DIR)/libamaudioutils.so -t $(TARGET_DIR)/usr/lib
+	install -m 644 -D $(AML_BUILD_DIR)/libcutils.so -t $(STAGING_DIR)/usr/lib
+	install -m 644 -D $(AML_BUILD_DIR)/libcutils.so -t $(TARGET_DIR)/usr/lib
 	for f in $(@D)/include/audio_utils/*.h; do \
 		install -m 644 -D $${f} -t $(STAGING_DIR)/usr/include/audio_utils; \
 	done
@@ -52,7 +65,8 @@
 clean:
 	rm -rf $(STAGING_DIR)/usr/include/audio_utils
 	rm -rf $(STAGING_DIR)/usr/include/cutils
-	rm -f libamaudioutils.so
+	rm -f $(AML_BUILD_DIR)/*.so
+	rm -f $(AML_BUILD_DIR)/*.o
 	rm -f $(TARGET_DIR)/usr/lib/libamaudioutils.so
 	rm -f $(STAGING_DIR)/usr/lib/libamaudioutils.so