74 lines
1.9 KiB
Makefile
Executable File
74 lines
1.9 KiB
Makefile
Executable File
# 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)
|