14ff45798SPavan Nikhilesh# SPDX-License-Identifier: BSD-3-Clause 24ff45798SPavan Nikhilesh# Copyright(C) 2019 Marvell International Ltd. 34ff45798SPavan Nikhilesh# 44ff45798SPavan Nikhilesh 54ff45798SPavan Nikhilesh# binary name 64ff45798SPavan NikhileshAPP = l2fwd-event 74ff45798SPavan Nikhilesh 84ff45798SPavan Nikhilesh# all source are stored in SRCS-y 94ff45798SPavan NikhileshSRCS-y := main.c 104ff45798SPavan NikhileshSRCS-y += l2fwd_poll.c 111b2143aaSPavan NikhileshSRCS-y += l2fwd_event.c 124ff45798SPavan NikhileshSRCS-y += l2fwd_common.c 1369de9488SSunil Kumar KoriSRCS-y += l2fwd_event_generic.c 1469de9488SSunil Kumar KoriSRCS-y += l2fwd_event_internal_port.c 154ff45798SPavan Nikhilesh 16*11e02702SJerin JacobPKGCONF ?= pkg-config 17*11e02702SJerin Jacob 184ff45798SPavan Nikhilesh# Build using pkg-config variables if possible 19*11e02702SJerin Jacobifneq ($(shell $(PKGCONF) --exists libdpdk && echo 0),0) 20fda34680SCiara Power$(error "no installation of DPDK found") 21fda34680SCiara Powerendif 224ff45798SPavan Nikhilesh 234ff45798SPavan Nikhileshall: shared 244ff45798SPavan Nikhilesh.PHONY: shared static 254ff45798SPavan Nikhileshshared: build/$(APP)-shared 264ff45798SPavan Nikhilesh ln -sf $(APP)-shared build/$(APP) 274ff45798SPavan Nikhileshstatic: build/$(APP)-static 284ff45798SPavan Nikhilesh ln -sf $(APP)-static build/$(APP) 294ff45798SPavan Nikhilesh 3069b1bb49SBruce RichardsonPC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) 314ff45798SPavan NikhileshCFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) 324ff45798SPavan NikhileshLDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) 338549295dSBruce RichardsonLDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) 344ff45798SPavan Nikhilesh 355a196330SBruce Richardsonifeq ($(MAKECMDGOALS),static) 365a196330SBruce Richardson# check for broken pkg-config 375a196330SBruce Richardsonifeq ($(shell echo $(LDFLAGS_STATIC) | grep 'whole-archive.*l:lib.*no-whole-archive'),) 385a196330SBruce Richardson$(warning "pkg-config output list does not contain drivers between 'whole-archive'/'no-whole-archive' flags.") 395a196330SBruce Richardson$(error "Cannot generate statically-linked binaries with this version of pkg-config") 405a196330SBruce Richardsonendif 415a196330SBruce Richardsonendif 425a196330SBruce Richardson 43bc8e3247SDavid MarchandCFLAGS += -DALLOW_EXPERIMENTAL_API 44bc8e3247SDavid Marchand 454ff45798SPavan Nikhileshbuild/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build 464ff45798SPavan Nikhilesh $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) 474ff45798SPavan Nikhilesh 484ff45798SPavan Nikhileshbuild/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build 494ff45798SPavan Nikhilesh $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC) 504ff45798SPavan Nikhilesh 514ff45798SPavan Nikhileshbuild: 524ff45798SPavan Nikhilesh @mkdir -p $@ 534ff45798SPavan Nikhilesh 544ff45798SPavan Nikhilesh.PHONY: clean 554ff45798SPavan Nikhileshclean: 564ff45798SPavan Nikhilesh rm -f build/$(APP) build/$(APP)-static build/$(APP)-shared 574ff45798SPavan Nikhilesh test -d build && rmdir -p build || true 58