8728ccf376
Some DPDK applications wrongly assume these requirements: - no hotplug, i.e. ports are never detached - all allocated ports are available to the application Such application iterates over ports by its own mean. The most common pattern is to request the port count and assume ports with index in the range [0..count[ can be used. There are three consequences when using such wrong design: - new ports having an index higher than the port count won't be seen - old ports being detached (RTE_ETH_DEV_UNUSED) can be seen as ghosts - failsafe sub-devices (RTE_ETH_DEV_DEFERRED) will be seen by the application Such mistake will be less common with growing hotplug awareness. All applications and examples inside this repository - except testpmd - must be fixed to use the iterator RTE_ETH_FOREACH_DEV. Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
70 lines
1.7 KiB
Makefile
70 lines
1.7 KiB
Makefile
# SPDX-License-Identifier: BSD-3-Clause
|
|
# Copyright(c) 2010-2014 Intel Corporation
|
|
|
|
# binary name
|
|
APP = vhost-switch
|
|
|
|
# all source are stored in SRCS-y
|
|
SRCS-y := main.c virtio_net.c
|
|
|
|
# Build using pkg-config variables if possible
|
|
$(shell pkg-config --exists libdpdk)
|
|
ifeq ($(.SHELLSTATUS),0)
|
|
|
|
all: shared
|
|
.PHONY: shared static
|
|
shared: build/$(APP)-shared
|
|
ln -sf $(APP)-shared build/$(APP)
|
|
static: build/$(APP)-static
|
|
ln -sf $(APP)-static build/$(APP)
|
|
|
|
LDFLAGS += -pthread
|
|
|
|
PC_FILE := $(shell pkg-config --path libdpdk)
|
|
CFLAGS += -O3 $(shell pkg-config --cflags libdpdk)
|
|
LDFLAGS_SHARED = $(shell pkg-config --libs libdpdk)
|
|
LDFLAGS_STATIC = -Wl,-Bstatic $(shell pkg-config --static --libs libdpdk)
|
|
|
|
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
|
|
|
build/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
|
|
$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
|
|
|
|
build/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build
|
|
$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)
|
|
|
|
build:
|
|
@mkdir -p $@
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -f build/$(APP) build/$(APP)-static build/$(APP)-shared
|
|
rmdir --ignore-fail-on-non-empty build
|
|
|
|
else # Build using legacy build system
|
|
|
|
ifeq ($(RTE_SDK),)
|
|
$(error "Please define RTE_SDK environment variable")
|
|
endif
|
|
|
|
# Default target, can be overridden by command line or environment
|
|
RTE_TARGET ?= x86_64-native-linuxapp-gcc
|
|
|
|
include $(RTE_SDK)/mk/rte.vars.mk
|
|
|
|
ifneq ($(CONFIG_RTE_EXEC_ENV),"linuxapp")
|
|
$(info This application can only operate in a linuxapp environment, \
|
|
please change the definition of the RTE_TARGET environment variable)
|
|
all:
|
|
else
|
|
|
|
CFLAGS += -DALLOW_EXPERIMENTAL_API
|
|
CFLAGS += -O2 -D_FILE_OFFSET_BITS=64
|
|
CFLAGS += $(WERROR_FLAGS)
|
|
CFLAGS += -D_GNU_SOURCE
|
|
|
|
include $(RTE_SDK)/mk/rte.extapp.mk
|
|
|
|
endif
|
|
endif
|