Initial commit: dpdk-ws-client source code
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# DPDK WebSocket Client - Makefile (DPDK 24.11)
|
||||
|
||||
APP = dpdk_ws_client
|
||||
BUILD_DIR = build
|
||||
|
||||
# DPDK 24.11 pkg-config (meson build)
|
||||
DPDK_BUILD = /home/wxj/share/dpdk-study/sources/dpdk-24.11/build
|
||||
PKG_CONFIG_PATH := $(DPDK_BUILD)/meson-uninstalled
|
||||
|
||||
PKGCONF = PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" pkg-config
|
||||
|
||||
# Library: use libdpdk-libs for shared linking (PMDs loaded as plugins)
|
||||
DPDK_CFLAGS := $(shell $(PKGCONF) --cflags libdpdk-libs 2>/dev/null || echo "ERROR: DPDK pkg-config not found")
|
||||
DPDK_LIBS := $(shell $(PKGCONF) --libs libdpdk-libs 2>/dev/null)
|
||||
|
||||
# Source files
|
||||
SRCS := src/main.c
|
||||
SRCS += src/tcp_core.c
|
||||
SRCS += src/tcp_input.c
|
||||
SRCS += src/tcp_output.c
|
||||
SRCS += src/tcp_timer.c
|
||||
SRCS += src/tcp_socket.c
|
||||
SRCS += src/ws_client.c
|
||||
|
||||
OBJS := $(SRCS:%.c=$(BUILD_DIR)/%.o)
|
||||
DEPS := $(OBJS:.o=.d)
|
||||
|
||||
CFLAGS = -O2 -g -Wall -Wno-unused-parameter -Wno-unused-function
|
||||
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
||||
CFLAGS += -Isrc/
|
||||
CFLAGS += $(DPDK_CFLAGS)
|
||||
LDFLAGS = $(DPDK_LIBS) -lpthread -ldl -lnuma
|
||||
LDFLAGS += -Wl,--allow-multiple-definition
|
||||
LDFLAGS += -Wl,-rpath,$(DPDK_BUILD)/lib
|
||||
|
||||
.PHONY: all clean clean-all perf
|
||||
|
||||
all: $(BUILD_DIR)/$(APP)
|
||||
|
||||
# Performance test binary
|
||||
PERF_SRCS := src/perf_test.c
|
||||
PERF_SRCS += src/tcp_core.c
|
||||
PERF_SRCS += src/tcp_input.c
|
||||
PERF_SRCS += src/tcp_output.c
|
||||
PERF_SRCS += src/tcp_timer.c
|
||||
PERF_SRCS += src/tcp_socket.c
|
||||
PERF_SRCS += src/ws_client.c
|
||||
PERF_OBJS := $(PERF_SRCS:%.c=$(BUILD_DIR)/%.o)
|
||||
|
||||
perf: $(BUILD_DIR)/dpdk_perf
|
||||
$(BUILD_DIR)/dpdk_perf: $(PERF_OBJS)
|
||||
@mkdir -p $(@D)
|
||||
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" gcc $(PERF_OBJS) $(LDFLAGS) -o $@
|
||||
@echo " LINK $@"
|
||||
|
||||
-include $(DEPS)
|
||||
|
||||
$(BUILD_DIR)/$(APP): $(OBJS)
|
||||
@mkdir -p $(@D)
|
||||
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" gcc $(OBJS) $(LDFLAGS) -o $@
|
||||
@echo " LINK $@"
|
||||
|
||||
$(BUILD_DIR)/%.o: %.c
|
||||
@mkdir -p $(@D)
|
||||
PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)" gcc $(CFLAGS) -MMD -c $< -o $@
|
||||
@echo " CC $<"
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
|
||||
clean-all: clean
|
||||
rm -f $(APP)
|
||||
Reference in New Issue
Block a user