103 lines
3.2 KiB
Makefile
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
|