summaryrefslogtreecommitdiff
path: root/examples/l3fwd
diff options
context:
space:
mode:
authorBruce Richardson <bruce.richardson@intel.com>2017-10-09 14:13:16 +0100
committerBruce Richardson <bruce.richardson@intel.com>2018-01-30 21:58:59 +0100
commit22119c4591a008abe5de8e395a97fcc09c8dc14a (patch)
treed6e42fc5b35f7a68888aa03c7eca60c82752f449 /examples/l3fwd
parent0eba4ade654bae51877474fb64ab5e79df0f3442 (diff)
downloaddpdk-22119c4591a008abe5de8e395a97fcc09c8dc14a.zip
dpdk-22119c4591a008abe5de8e395a97fcc09c8dc14a.tar.gz
dpdk-22119c4591a008abe5de8e395a97fcc09c8dc14a.tar.xz
examples: use pkg-config in makefiles
Change the example app Makefiles to query if DPDK is installed and registered using pkg-config. If so, build directly using pkg-config info, otherwise fall back to using the original build system with RTE_SDK and RTE_TARGET This commit changes the makefiles for the basic examples, i.e. those which do not have multiple subdirectories underneath the main examples dir. Examples not covered are: * ethtool * multi_process * performance-thread * quota_watermark * netmap_compat * server_node_efd * vm_power_manager Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Luca Boccassi <bluca@debian.org>
Diffstat (limited to 'examples/l3fwd')
-rw-r--r--examples/l3fwd/Makefile22
1 files changed, 22 insertions, 0 deletions
diff --git a/examples/l3fwd/Makefile b/examples/l3fwd/Makefile
index f44bf89..384706b 100644
--- a/examples/l3fwd/Makefile
+++ b/examples/l3fwd/Makefile
@@ -7,6 +7,27 @@ APP = l3fwd
# all source are stored in SRCS-y
SRCS-y := main.c l3fwd_lpm.c l3fwd_em.c
+# Build using pkg-config variables if possible
+$(shell pkg-config --exists libdpdk)
+ifeq ($(.SHELLSTATUS),0)
+
+PC_FILE := $(shell pkg-config --path libdpdk)
+CFLAGS += $(shell pkg-config --cflags libdpdk)
+LDFLAGS += $(shell pkg-config --libs libdpdk)
+
+build/$(APP): $(SRCS-y) Makefile $(PC_FILE) | build
+ $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS)
+
+build:
+ @mkdir -p $@
+
+.PHONY: clean
+clean:
+ rm -f build/$(APP)
+ rmdir --ignore-fail-on-non-empty build
+
+else # Build using legacy build system
+
ifeq ($(RTE_SDK),)
$(error "Please define RTE_SDK environment variable")
endif
@@ -21,3 +42,4 @@ CFLAGS += -O3 $(USER_FLAGS)
CFLAGS += $(WERROR_FLAGS)
include $(RTE_SDK)/mk/rte.extapp.mk
+endif