xref: /f-stack/dpdk/examples/l2fwd-event/Makefile (revision 2d9fd380)
14418919fSjohnjiang# SPDX-License-Identifier: BSD-3-Clause
24418919fSjohnjiang# Copyright(C) 2019 Marvell International Ltd.
34418919fSjohnjiang#
44418919fSjohnjiang
54418919fSjohnjiang# binary name
64418919fSjohnjiangAPP = l2fwd-event
74418919fSjohnjiang
84418919fSjohnjiang# all source are stored in SRCS-y
94418919fSjohnjiangSRCS-y := main.c
104418919fSjohnjiangSRCS-y += l2fwd_poll.c
114418919fSjohnjiangSRCS-y += l2fwd_event.c
124418919fSjohnjiangSRCS-y += l2fwd_common.c
134418919fSjohnjiangSRCS-y += l2fwd_event_generic.c
144418919fSjohnjiangSRCS-y += l2fwd_event_internal_port.c
154418919fSjohnjiang
164418919fSjohnjiang# Build using pkg-config variables if possible
17*2d9fd380Sjfb8856606ifneq ($(shell pkg-config --exists libdpdk && echo 0),0)
18*2d9fd380Sjfb8856606$(error "no installation of DPDK found")
19*2d9fd380Sjfb8856606endif
204418919fSjohnjiang
214418919fSjohnjiangall: shared
224418919fSjohnjiang.PHONY: shared static
234418919fSjohnjiangshared: build/$(APP)-shared
244418919fSjohnjiang	ln -sf $(APP)-shared build/$(APP)
254418919fSjohnjiangstatic: build/$(APP)-static
264418919fSjohnjiang	ln -sf $(APP)-static build/$(APP)
274418919fSjohnjiang
284418919fSjohnjiangPKGCONF ?= pkg-config
294418919fSjohnjiang
304418919fSjohnjiangPC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
314418919fSjohnjiangCFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
324418919fSjohnjiangLDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
330c6bd470SfengbojiangLDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk)
344418919fSjohnjiang
35*2d9fd380Sjfb8856606CFLAGS += -DALLOW_EXPERIMENTAL_API
36*2d9fd380Sjfb8856606
374418919fSjohnjiangbuild/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
384418919fSjohnjiang	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
394418919fSjohnjiang
404418919fSjohnjiangbuild/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build
414418919fSjohnjiang	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)
424418919fSjohnjiang
434418919fSjohnjiangbuild:
444418919fSjohnjiang	@mkdir -p $@
454418919fSjohnjiang
464418919fSjohnjiang.PHONY: clean
474418919fSjohnjiangclean:
484418919fSjohnjiang	rm -f build/$(APP) build/$(APP)-static build/$(APP)-shared
494418919fSjohnjiang	test -d build && rmdir -p build || true
50