Files
2026-08-24 10:03:24 +08:00

154 lines
5.5 KiB
Makefile

################################################################################
#
# aml_pqserver
#
################################################################################
OUT_DIR ?= .
LOCAL_PATH = $(shell pwd)
LDFLAGS += -Wl,--no-as-needed -lstdc++ -lpthread -lz -ldl -lrt -L$(STAGING_DIR)/usr/lib
CFLAGS += -Wall -Werror -Wno-unknown-pragmas -Wno-format -Wno-format-security -Wno-error=unused-result \
-O3 -fexceptions -fnon-call-exceptions -D_GNU_SOURCE -I$(STAGING_DIR)/usr/include
MIN_GCC_VERSION = "10"
GCC_VERSION := "`$(CC) -dumpversion | cut -f1 -d'.'`"
IS_GCC_ABOVE_MIN_VERSION := $(shell expr "$(GCC_VERSION)" ">=" "$(MIN_GCC_VERSION)")
ifeq "$(IS_GCC_ABOVE_MIN_VERSION)" "1"
CFLAGS += -std=gnu++20
endif
LIBBINDER_LDFLAGS = -lbinder -llog
LDFLAGS += $(LIBBINDER_LDFLAGS)
LDFLAGS += -L $(OUT_DIR)/
################################################################################
# libpq.so - src files
################################################################################
pq_SRCS = \
$(LOCAL_PATH)/libpq/CPQdb.cpp \
$(LOCAL_PATH)/libpq/COverScandb.cpp \
$(LOCAL_PATH)/libpq/CPQControl.cpp \
$(LOCAL_PATH)/libpq/CSqlite.cpp \
$(LOCAL_PATH)/libpq/SSMAction.cpp \
$(LOCAL_PATH)/libpq/SSMHandler.cpp \
$(LOCAL_PATH)/libpq/SSMHeader.cpp \
$(LOCAL_PATH)/libpq/CDevicePollCheckThread.cpp \
$(LOCAL_PATH)/libpq/CPQFile.cpp \
$(LOCAL_PATH)/libpq/CEpoll.cpp \
$(LOCAL_PATH)/libpq/CDynamicBackLight.cpp \
$(LOCAL_PATH)/libpq/CConfigFile.cpp \
$(LOCAL_PATH)/libpq/UEventObserver.cpp \
$(LOCAL_PATH)/libpq/CVdin.cpp \
$(LOCAL_PATH)/libpq/CAmdolbyVision.cpp \
$(LOCAL_PATH)/libpq/GammaOperation.cpp \
$(LOCAL_PATH)/libpq/CPQDataBase/CPQDataBase.cpp \
$(LOCAL_PATH)/libpq/CPQDataBase/WhitebalanceDataBase.cpp \
$(LOCAL_PATH)/libpq/CPQDataBase/LibTableOSD/PQTableOSD.cpp \
$(LOCAL_PATH)/libpq/CPQDataBase/LibTableOSD/PQTableLoaderOSD.cpp \
$(LOCAL_PATH)/libpq/CPQDataBase/LibTableOSD/AML_PQ_OSD_Table_Public.cpp \
$(LOCAL_PATH)/libpq/CPQDataBase/SyncDataBase.cpp \
$(LOCAL_PATH)/libpq/CHlgToneMapping.cpp \
$(LOCAL_PATH)/common/CPQLog.cpp \
$(NULL)
pq_HEADERS = \
-I$(LOCAL_PATH)/libpq/include \
-I$(LOCAL_PATH)/libpq/CPQDataBase \
-I$(LOCAL_PATH)/libpq/CPQDataBase/LibTableOSD \
-I$(LOCAL_PATH)/halpq/hal_inc \
$(NULL)
################################################################################
# libpqclient.so - src files
################################################################################
pqclient_SRCS = \
$(LOCAL_PATH)/client/PqClient.cpp \
$(LOCAL_PATH)/common/CPQLog.cpp \
$(NULL)
pqcommon_HEADERS = \
-I$(LOCAL_PATH)/include \
-I$(LOCAL_PATH)/common \
$(NULL)
################################################################################
# pqservice - src files
################################################################################
pqservice_SRCS = \
$(LOCAL_PATH)/service/main_pqservice.cpp \
$(LOCAL_PATH)/service/PqService.cpp \
$(NULL)
################################################################################
# pqtest - src files
################################################################################
pqtest_SRCS = \
$(LOCAL_PATH)/test/main_pqtest.cpp \
$(NULL)
################################################################################
# pqcbtest - src files
################################################################################
pqcbtest_SRCS = \
$(LOCAL_PATH)/test/main_callback_test.cpp \
$(NULL)
# ---------------------------------------------------------------------
# Build rules
BUILD_TARGETS = libpqclient.so libpq.so pqservice pqtest pqcbtest
BUILD_TARGETS_FULLPATH := $(patsubst %, $(OUT_DIR)/%, $(BUILD_TARGETS))
.PHONY: build_halpq all install uninstall clean
build_halpq:
@echo "Building HAL libraries..."
$(MAKE) -C $(LOCAL_PATH)/halpq/hal_src/adaptor/src
$(MAKE) -C $(LOCAL_PATH)/halpq/hal_src/libs
$(MAKE) -C $(LOCAL_PATH)/halpq/hal_src/libs/vpq
$(MAKE) -C $(LOCAL_PATH)/halpq/hal_src
HAL_LIB_PATH = -L$(OUT_DIR)
HAL_LIBS = -l_hal_ld -l_hal_lcd -l_hal_amdv -l_hal_vdin -l_hal_pq -l_hal_display
libpqclient.so: $(pqclient_SRCS)
$(CC) $(CFLAGS) $(LDFLAGS) -shared -fPIC $(pqcommon_HEADERS) \
-o $(OUT_DIR)/$@ $^ $(LDLIBS)
libpq.so: $(pq_SRCS) | build_halpq
$(CC) $(CFLAGS) $(LDFLAGS) -shared -fPIC -lsqlite3 -lubootenv $(pq_HEADERS) $(pqcommon_HEADERS) \
-Wl,-rpath-link,$(OUT_DIR) \
-o $(OUT_DIR)/$@ $^ \
$(HAL_LIB_PATH) $(HAL_LIBS) \
$(LDLIBS)
pqservice: $(pqservice_SRCS) libpq.so
$(CC) $(CFLAGS) $(LDFLAGS) $(pq_HEADERS) $(pqcommon_HEADERS) \
-Wl,-rpath-link,$(OUT_DIR) \
-L$(LOCAL_PATH) -lpq -o $(OUT_DIR)/$@ $(filter-out %.so,$^) $(LDLIBS)
pqtest: $(pqtest_SRCS) libpqclient.so
$(CC) $(CFLAGS) $(pqcommon_HEADERS) -L$(LOCAL_PATH) \
-lpqclient $(LDFLAGS) -o $(OUT_DIR)/$@ $(filter-out %.so,$^) $(LDLIBS)
pqcbtest: $(pqcbtest_SRCS) libpqclient.so
$(CC) $(CFLAGS) $(pqcommon_HEADERS) -L$(LOCAL_PATH) \
-lpqclient $(LDFLAGS) -o $(OUT_DIR)/$@ $(filter-out %.so,$^) $(LDLIBS)
all: $(BUILD_TARGETS)
clean:
rm -f $(OUT_DIR)/*.o $(BUILD_TARGETS_FULLPATH)
install:
install -m 0644 $(OUT_DIR)/libpqclient.so $(TARGET_DIR)/usr/lib
install -m 0644 $(OUT_DIR)/libpq.so $(TARGET_DIR)/usr/lib/
install -m 755 $(OUT_DIR)/pqservice $(TARGET_DIR)/usr/bin/
install -m 755 $(OUT_DIR)/pqtest $(TARGET_DIR)/usr/bin/
install -m 755 $(OUT_DIR)/pqcbtest $(TARGET_DIR)/usr/bin/
uninstall:
rm -f $(TARGET_DIR)/usr/lib/libpqclient.so
rm -f $(TARGET_DIR)/usr/lib/libpq.so
rm -f $(TARGET_DIR)/usr/bin/pqtest
rm -f $(TARGET_DIR)/usr/bin/pqcbtest
rm -f $(TARGET_DIR)/usr/bin/pqservice