AML_BUILD_DIR?=. VPATH:=src:src/binder:$(AML_BUILD_DIR)/src PROTO_SRCS=audio_service.grpc.pb.cc audio_service.pb.cc PROTO_OBJS=$(PROTO_SRCS:.cc=.o) SHARED_BINDER_OBJS=src/binder/common.o ifeq ($(use_binder),y) SERVER_OBJS=src/audio_if.o src/binder/main_audio_service_binder.o src/binder/audio_service_binder.o src/binder/service_death_recipient.o else SERVER_OBJS=src/audio_server.o src/audio_if.o endif ifeq ($(rm_audioserver),y) CLIENT_OBJS=src/audio_if.o else ifeq ($(use_binder),y) CLIENT_OBJS=src/binder/audio_client_binder.o src/binder/audio_if_client_binder.o src/binder/client_death_recipient.o CLIENT_OBJS+=$(SHARED_BINDER_OBJS) else CLIENT_OBJS=src/audio_client.o src/audio_if_client.o CLIENT_OBJS+=$(PROTO_OBJS) endif endif AMLAUDIOSET_OBJS = $(AML_BUILD_DIR)/AML_Audio_Setting.o ifeq ($(use_binder),y) SERVER_OBJS+=$(SHARED_BINDER_OBJS) else SERVER_OBJS+=$(PROTO_OBJS) endif TEST_PCM_OBJS=$(AML_BUILD_DIR)/test.o TEST_DOLBY_OBJS=$(AML_BUILD_DIR)/test_ac3.o TEST_HALPLAY_OBJS=$(AML_BUILD_DIR)/halplay.o TEST_HALCAPTURE_OBJS=$(AML_BUILD_DIR)/hal_capture.o TEST_HALBTCAPTURE_OBJS=$(AML_BUILD_DIR)/hal_bt_capture.o TEST_AMLAUDIOHAL_OBJS=$(AML_BUILD_DIR)/test_amlaudiohal.o TEST_AUDIOSET_OBJS=$(AML_BUILD_DIR)/test_audiosetting.o TEST_MS12_OBJS=$(AML_BUILD_DIR)/dap_setting.o TEST_SPEAKER_DELAY_OBJS=$(AML_BUILD_DIR)/speaker_delay.o TEST_DIGITAL_MODE_OBJS=$(AML_BUILD_DIR)/digital_mode.o TEST_ARC_TEST_OBJS=$(AML_BUILD_DIR)/test_arc.o TEST_START_ARC_OBJS=$(AML_BUILD_DIR)/start_arc.o TEST_HAL_PARAM_OBJS=$(AML_BUILD_DIR)/hal_param.o TEST_HAL_DUMP_OBJS=$(AML_BUILD_DIR)/hal_dump.o TEST_HAL_PATCH_OBJS=$(AML_BUILD_DIR)/hal_patch.o TEST_MASTER_VOL_OBJS=$(AML_BUILD_DIR)/master_vol.o EFFECT_TOOL_OBJS=$(AML_BUILD_DIR)/effect_tool.o $(AML_BUILD_DIR)/vx_v4_ctr.o TEST_AUDIO_CLIENT_BINDER_OBJS=$(AML_BUILD_DIR)/audio_client_binder_test.o PROTOC=$(HOST_DIR)/bin/protoc PROTOC_INC=$(HOST_DIR)/include GRPC_CPP_PLUGIN_PATH=$(HOST_DIR)/bin/grpc_cpp_plugin CFLAGS += -Wall -fPIC -O2 -I$(PROTOC_INC) -I./include -I. -I./src -I$(AML_BUILD_DIR)/src -I$(AML_BUILD_DIR) ifeq ($(aplugin),y) CFLAGS+= -DPIC endif CXXFLAGS += -Wall -std=c++14 ifeq ($(tc_cxx_runtime),llvm) CXX_RUNTIME_LIBS = -lc++ -lc++abi -lunwind else CXX_RUNTIME_LIBS = -lstdc++ endif ifeq ($(rm_audioserver),y) CFLAGS+= -DNO_SERVER SC_LDFLAGS+=-Wl,--no-as-needed -lgrpc++_unsecure -labsl_synchronization -lprotobuf -lboost_system -lamaudioutils -llog -ldl -lrt -lpthread -pthread -lm $(CXX_RUNTIME_LIBS) LDFLAGS+= -Wl,--no-as-needed -llog -ldl -lrt -lpthread -pthread $(CXX_RUNTIME_LIBS) else ifeq ($(use_binder),y) SC_LDFLAGS+=-Wl,--no-as-needed -lbinder -lamaudioutils -llog -ldl -lrt -lpthread -pthread -lm $(CXX_RUNTIME_LIBS) LDFLAGS+= -Wl,--no-as-needed -lbinder -llog -ldl -lrt -lpthread -pthread $(CXX_RUNTIME_LIBS) else SC_LDFLAGS+=-Wl,--no-as-needed -lgrpc++_unsecure -labsl_synchronization -lprotobuf -lboost_system -lamaudioutils -llog -ldl -lrt -lpthread -pthread -lm $(CXX_RUNTIME_LIBS) LDFLAGS+= -Wl,--no-as-needed -llog -ldl -lrt -lpthread -pthread $(CXX_RUNTIME_LIBS) endif endif AUDCAP_FLAGS1+= -Wl,--no-as-needed -llog -ldl -lrt -lpthread -pthread -lamaudioutils $(CXX_RUNTIME_LIBS) PROTO_SRCS_DIR = src/ $(AML_BUILD_DIR)/src/ src/binder/ INCLUDE_DIR = include/ $(AML_BUILD_DIR)/src $(AML_BUILD_DIR)/%.grpc.pb.cc $(AML_BUILD_DIR)/%.grpc.pb.h: %.proto $(PROTOC) -I=. -I=$(PROTOC_INC) --grpc_out=$(AML_BUILD_DIR) --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) $< $(AML_BUILD_DIR)/%.pb.cc $(AML_BUILD_DIR)/%.pb.h: %.proto $(PROTOC) -I=. -I=$(PROTOC_INC) --cpp_out=$(AML_BUILD_DIR) --plugin=protoc-gen-grpc=$(GRPC_CPP_PLUGIN_PATH) $< $(AML_BUILD_DIR)/%.pb.o: $(AML_BUILD_DIR)/src/%.pb.cc $(AML_BUILD_DIR)/src/%.pb.h | $(AML_BUILD_DIR) $(CC) -c $(CFLAGS) $(CXXFLAGS) -o $@ $< $(AML_BUILD_DIR)/%.o: %.cpp | $(AML_BUILD_DIR) $(CC) -c $(CFLAGS) $(CXXFLAGS) -o $@ $< $(AML_BUILD_DIR)/%.o: %.c | $(AML_BUILD_DIR) $(CC) -c $(CFLAGS) -o $@ $< $(AML_BUILD_DIR)/src/audio_service.grpc.pb.cc: $(AML_BUILD_DIR)/src/audio_service.pb.h audio_server.cpp: $(AML_BUILD_DIR)/src/audio_service.pb.h $(AML_BUILD_DIR)/src/audio_service.grpc.pb.cc audio_client.cpp: $(AML_BUILD_DIR)/src/audio_service.pb.h $(AML_BUILD_DIR)/src/audio_service.grpc.pb.cc audio_if_client.cpp: $(AML_BUILD_DIR)/src/audio_service.pb.h $(AML_BUILD_DIR)/src/audio_service.grpc.pb.cc ifeq ($(rm_audioserver),y) obj= libaudio_client.so libamlaudiosetting.so audio_client_test audio_client_test_ac3 halplay hal_capture dap_setting speaker_delay digital_mode test_arc start_arc hal_param hal_dump hal_patch master_vol test_audiosetting else ifeq ($(use_binder),y) obj= audio_server libaudio_client.so audio_client_test audio_client_test_ac3 audio_client_binder_test halplay hal_capture hal_bt_capture dap_setting speaker_delay digital_mode test_arc start_arc hal_param hal_dump hal_patch master_vol effect_tool else obj= audio_server libaudio_client.so audio_client_test audio_client_test_ac3 halplay hal_capture hal_bt_capture dap_setting speaker_delay digital_mode test_arc start_arc hal_param hal_dump hal_patch master_vol effect_tool endif endif ifeq ($(aplugin),y) obj+= libasound_module_pcm_ahal.so endif CLIENT_OBJS_BUILD = $(patsubst %.o, $(AML_BUILD_DIR)/%.o, $(notdir $(CLIENT_OBJS))) SERVER_OBJS_BUILD = $(patsubst %.o, $(AML_BUILD_DIR)/%.o, $(notdir $(SERVER_OBJS))) target_obj = $(addprefix $(AML_BUILD_DIR)/, $(obj)) $(info target_obj is ${target_obj}) vpath %.so $(AML_BUILD_DIR) all:$(target_obj) ifeq ($(rm_audioserver),y) $(AML_BUILD_DIR)/libaudio_client.so: $(CLIENT_OBJS_BUILD) $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ $(AML_BUILD_DIR)/libamlaudiosetting.so:$(AMLAUDIOSET_OBJS) $(CC) $(CFLAGS) $(LDFLAGS) -shared -o $@ $^ $(AML_BUILD_DIR)/test_audiosetting: $(TEST_AUDIOSET_OBJS) $(AML_BUILD_DIR)/libamlaudiosetting.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -lamlaudiosetting -o $@ $^ else $(AML_BUILD_DIR)/audio_server: $(SERVER_OBJS_BUILD) $(CC) $(CFLAGS) $(SC_LDFLAGS) -o $@ $^ $(AML_BUILD_DIR)/libaudio_client.so: $(CLIENT_OBJS_BUILD) $(CC) $(CFLAGS) $(CXXFLAGS) $(SC_LDFLAGS) -shared -o $@ $^ endif $(AML_BUILD_DIR)/libasound_module_pcm_ahal.so: $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(SC_LDFLAGS) -lasound -shared -L$(AML_BUILD_DIR) -laudio_client -o $@ $(AML_BUILD_DIR)/audio_client_test: $(TEST_PCM_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_PCM_OBJS) $(AML_BUILD_DIR)/audio_client_test_ac3: $(TEST_DOLBY_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_DOLBY_OBJS) $(AML_BUILD_DIR)/halplay: $(TEST_HALPLAY_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_HALPLAY_OBJS) $(AML_BUILD_DIR)/hal_capture: $(TEST_HALCAPTURE_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_HALCAPTURE_OBJS) $(AML_BUILD_DIR)/hal_bt_capture: $(TEST_HALBTCAPTURE_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(AUDCAP_FLAGS1) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_HALBTCAPTURE_OBJS) $(AML_BUILD_DIR)/dap_setting: $(TEST_MS12_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_MS12_OBJS) $(AML_BUILD_DIR)/speaker_delay: $(TEST_SPEAKER_DELAY_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_SPEAKER_DELAY_OBJS) $(AML_BUILD_DIR)/digital_mode: $(TEST_DIGITAL_MODE_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_DIGITAL_MODE_OBJS) $(AML_BUILD_DIR)/test_arc: $(TEST_ARC_TEST_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_ARC_TEST_OBJS) $(AML_BUILD_DIR)/start_arc: $(TEST_START_ARC_OBJS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(AML_BUILD_DIR)/hal_param: $(TEST_HAL_PARAM_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_HAL_PARAM_OBJS) $(AML_BUILD_DIR)/hal_dump: $(TEST_HAL_DUMP_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_HAL_DUMP_OBJS) $(AML_BUILD_DIR)/hal_patch: $(TEST_HAL_PATCH_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_HAL_PATCH_OBJS) $(AML_BUILD_DIR)/master_vol: $(TEST_MASTER_VOL_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_MASTER_VOL_OBJS) $(AML_BUILD_DIR)/effect_tool: $(EFFECT_TOOL_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(EFFECT_TOOL_OBJS) $(AML_BUILD_DIR)/audio_client_binder_test: $(TEST_AUDIO_CLIENT_BINDER_OBJS) $(AML_BUILD_DIR)/libaudio_client.so $(CC) $(CFLAGS) $(LDFLAGS) -L$(AML_BUILD_DIR) -laudio_client -o $@ $(TEST_AUDIO_CLIENT_BINDER_OBJS) .PHONY: install install: ifneq ($(rm_audioserver),y) install -m 755 -D $(AML_BUILD_DIR)/audio_server -t $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/audio_client_test -t $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/audio_client_test_ac3 $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/effect_tool $(TARGET_DIR)/usr/bin/ ifeq ($(use_binder),y) install -m 755 -D $(AML_BUILD_DIR)/audio_client_binder_test -t $(TARGET_DIR)/usr/bin/ endif else install -m 755 -D $(AML_BUILD_DIR)/test_audiosetting -t $(TARGET_DIR)/usr/bin/ install -m 644 -D $(AML_BUILD_DIR)/libamlaudiosetting.so -t $(STAGING_DIR)/usr/lib/ install -m 644 -D $(AML_BUILD_DIR)/libamlaudiosetting.so -t $(TARGET_DIR)/usr/lib/ endif install -m 755 -D $(AML_BUILD_DIR)/halplay $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/hal_capture $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/dap_setting $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/speaker_delay $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/digital_mode $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/test_arc $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/start_arc $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/hal_param $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/hal_dump $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/hal_patch $(TARGET_DIR)/usr/bin/ install -m 755 -D $(AML_BUILD_DIR)/master_vol $(TARGET_DIR)/usr/bin/ install -m 644 -D $(AML_BUILD_DIR)/libaudio_client.so -t $(TARGET_DIR)/usr/lib/ install -m 644 -D $(AML_BUILD_DIR)/libaudio_client.so -t $(STAGING_DIR)/usr/lib/ ifeq ($(aplugin),y) install -m 644 -D $(AML_BUILD_DIR)/libasound_module_pcm_ahal.so -t $(TARGET_DIR)/usr/lib/alsa-lib/ endif find include/ -name "*.h" -exec install -m 644 -D {} -t $(STAGING_DIR)/usr/include \; .PHONY: clean clean: rm -f $(AML_BUILD_DIR)/audio_server rm -f $(AML_BUILD_DIR)/audio_client_test rm -f $(AML_BUILD_DIR)/audio_client_test_ac3 ifeq ($(use_binder),y) rm -f $(AML_BUILD_DIR)/audio_client_binder_test endif rm -f $(AML_BUILD_DIR)/*.o rm -f $(AML_BUILD_DIR)/halplay rm -f $(AML_BUILD_DIR)/hal_capture rm -f $(AML_BUILD_DIR)/test_arc rm -f $(AML_BUILD_DIR)/start_arc rm -f $(AML_BUILD_DIR)/hal_param rm -f $(AML_BUILD_DIR)/hal_dump rm -f $(AML_BUILD_DIR)/hal_patch rm -f $(AML_BUILD_DIR)/master_vol rm -f $(AML_BUILD_DIR)/effect_tool rm -f $(AML_BUILD_DIR)/libaudio_client.so rm -f $(TARGET_DIR)/usr/bin/audio_server rm -f $(TARGET_DIR)/usr/bin/audio_client_test rm -f $(TARGET_DIR)/usr/bin/audio_client_test_ac3 ifeq ($(use_binder),y) rm -f $(TARGET_DIR)/usr/bin/audio_client_binder_test endif rm -f $(TARGET_DIR)/usr/bin/halplay rm -f $(TARGET_DIR)/usr/bin/hal_capture rm -f $(TARGET_DIR)/usr/bin/speaker_delay rm -f $(TARGET_DIR)/usr/bin/digital_mode rm -f $(TARGET_DIR)/usr/bin/test_arc rm -f $(TARGET_DIR)/usr/bin/start_arc rm -f $(TARGET_DIR)/usr/bin/hal_param rm -f $(TARGET_DIR)/usr/bin/hal_dump rm -f $(TARGET_DIR)/usr/bin/hal_patch rm -f $(TARGET_DIR)/usr/bin/master_vol rm -f $(TARGET_DIR)/usr/bin/effect_tool rm -f $(TARGET_DIR)/usr/lib/libaudio_client.so rm -f $(STAGING_DIR)/usr/lib/libaudio_client.so rm -f $(STAGING_DIR)/usr/include/audio_if_client.h rm -f $(STAGING_DIR)/usr/include/audio_if.h rm -f $(STAGING_DIR)/usr/include/audio_effect_params.h