Files
BPI-CM9-Linux/aml-comp/vendor/amlogic/ccdatabase/Makefile
T
2026-08-24 10:03:24 +08:00

103 lines
3.2 KiB
Makefile

OUTPUT_FILES := libccdataserver_client.so libccdataserver_client.a ccdataserver
TEST_FILES := ccds_debug
PLUGIN_FILES := libdebug_plugin.so
DEBUG_ASAN := 0
ifeq ($(DEBUG_ASAN),1)
ASAN_CFLAGS := -fsanitize=address -fno-omit-frame-pointer -fsanitize-recover=address
ASAN_LDFLAGS := -lasan
endif
CFLAGS := -Wall -g -O0 -fPIC $(ASAN_CFLAGS)
LDFLAGS := $(ASAN_LDFLAGS)
OUT_DIR ?= ./build
TARGET_DIR ?= $(OUT_DIR)
LIBDSCLIENT_SRCS := \
client/dataserver_client.c\
LIBDSCLIENT_OBJS := $(patsubst %.c,$(OUT_DIR)/%.o,$(LIBDSCLIENT_SRCS))
DATASERVER_SRCS := \
server/dataserver_rb.c\
server/dataserver_reader.c\
server/dataserver_reader_vbi.c\
server/dataserver_reader_random.c\
server/dataserver_reader_userdata.c\
server/dataserver_process.c\
server/dataserver_utils.c\
server/dataserver_inner.c\
server/dataserver_socketserver.c\
server/main.c\
DATASERVER_OBJS := $(patsubst %.c,$(OUT_DIR)/%.o,$(DATASERVER_SRCS))
DATASERVER_CFLAGS := -Iclient -Iserver
DATASERVER_LDFLAGS := -lpthread -ldl -lrt
DATASERVER_CFLAGS += -DDS_SUPPORT_IP
DATASERVER_CFLAGS += -DSUPPORT_SHM
TEST_SRCS := \
client/test/debug_client.c\
TEST_OBJS := $(patsubst %.c,$(OUT_DIR)/%.o,$(TEST_SRCS))
TEST_CFLAGS := -Iclient
TEST_LDFLAGS := -L$(OUT_DIR) -lccdataserver_client -lpthread
PLUGIN_SRCS :=\
server/plugin/debug_plugin.c\
PLUGIN_OBJS := $(patsubst %.c,$(OUT_DIR)/%.o,$(PLUGIN_SRCS))
PLUGIN_CFLAGS := -Iserver
PLUGIN_LDFLAGS :=
all: $(OUTPUT_FILES) $(TEST_FILES) $(PLUGIN_FILES)
$(OUT_DIR)/%.o: %.c
mkdir -p $(dir $@)
$(CC) -c -o $@ $< $(CFLAGS)
$(OUT_DIR)/server/%.o: server/%.c
mkdir -p $(dir $@)
$(CC) -c -o $@ $< $(CFLAGS) $(DATASERVER_CFLAGS)
libccdataserver_client.so: $(LIBDSCLIENT_OBJS)
$(CC) -shared -o $(OUT_DIR)/$@ $^ $(LDFLAGS) $(DSCLIENT_LDFLAGS)
libccdataserver_client.a: $(LIBDSCLIENT_OBJS)
$(AR) rsc $(OUT_DIR)/$@ $^
ccdataserver: $(DATASERVER_OBJS)
$(CC) -o $(OUT_DIR)/$@ $^ $(LDFLAGS) $(DATASERVER_LDFLAGS)
$(OUT_DIR)/client/test/%.o: client/test/%.c
mkdir -p $(dir $@)
$(CC) -c -o $@ $< $(CFLAGS) $(TEST_CFLAGS)
ccds_debug: $(TEST_OBJS) libccdataserver_client.so
$(CC) -o $(OUT_DIR)/$@ $(TEST_OBJS) $(LDFLAGS) $(TEST_LDFLAGS)
libdebug_plugin.so: $(PLUGIN_OBJS)
$(CC) -shared -o $(OUT_DIR)/$@ $^ $(LDFLAGS) $(PLUGIN_LDFLAGS)
install: $(OUTPUT_FILES)
install -d $(TARGET_DIR)/usr/include/ccdatabase
install -d $(TARGET_DIR)/usr/lib
install -d $(TARGET_DIR)/usr/bin
install -m 0644 ./client/dataserver_client.h $(TARGET_DIR)/usr/include/ccdatabase
install -m 0644 ./client/dataserver_message.h $(TARGET_DIR)/usr/include/ccdatabase
install -m 0644 ./client/dataserver_cmd_resp.h $(TARGET_DIR)/usr/include/ccdatabase
install -m 0644 ./client/dataserver_event.h $(TARGET_DIR)/usr/include/ccdatabase
install -m 0644 ./client/dataserver_data_vbi.h $(TARGET_DIR)/usr/include/ccdatabase
install -m 0644 ./client/dataserver_data_userdata.h $(TARGET_DIR)/usr/include/ccdatabase
install -m 0644 $(OUT_DIR)/libccdataserver_client.a $(TARGET_DIR)/usr/lib
install -m 0755 $(OUT_DIR)/libccdataserver_client.so $(TARGET_DIR)/usr/lib
install -m 0755 $(OUT_DIR)/ccdataserver $(TARGET_DIR)/usr/bin
install -m 0755 $(OUT_DIR)/ccds_debug $(TARGET_DIR)/usr/bin
clean:
find $(OUT_DIR) -name \*.o -exec rm -f {} \;
.PHONY: all install clean