xref: /f-stack/dpdk/examples/ntb/Makefile (revision 2d9fd380)
14418919fSjohnjiang# SPDX-License-Identifier: BSD-3-Clause
24418919fSjohnjiang# Copyright(c) 2019 Intel Corporation
34418919fSjohnjiang
44418919fSjohnjiang# binary name
54418919fSjohnjiangAPP = ntb_fwd
64418919fSjohnjiang
74418919fSjohnjiang# all source are stored in SRCS-y
84418919fSjohnjiangSRCS-y := ntb_fwd.c
94418919fSjohnjiang
104418919fSjohnjiang# Build using pkg-config variables if possible
11*2d9fd380Sjfb8856606ifneq ($(shell pkg-config --exists libdpdk && echo 0),0)
12*2d9fd380Sjfb8856606$(error "no installation of DPDK found")
13*2d9fd380Sjfb8856606endif
144418919fSjohnjiang
154418919fSjohnjiangall: shared
164418919fSjohnjiang.PHONY: shared static
174418919fSjohnjiangshared: build/$(APP)-shared
184418919fSjohnjiang	ln -sf $(APP)-shared build/$(APP)
194418919fSjohnjiangstatic: build/$(APP)-static
204418919fSjohnjiang	ln -sf $(APP)-static build/$(APP)
214418919fSjohnjiang
224418919fSjohnjiangPKGCONF ?= pkg-config
234418919fSjohnjiang
244418919fSjohnjiangCFLAGS += -D_FILE_OFFSET_BITS=64
254418919fSjohnjiangLDFLAGS += -pthread
264418919fSjohnjiang
274418919fSjohnjiangPC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
284418919fSjohnjiangCFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
29*2d9fd380Sjfb8856606CFLAGS += -DALLOW_EXPERIMENTAL_API
304418919fSjohnjiangLDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
310c6bd470SfengbojiangLDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk)
324418919fSjohnjiang
334418919fSjohnjiangbuild/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build
344418919fSjohnjiang	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED)
354418919fSjohnjiang
364418919fSjohnjiangbuild/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build
374418919fSjohnjiang	$(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC)
384418919fSjohnjiang
394418919fSjohnjiangbuild:
404418919fSjohnjiang	@mkdir -p $@
414418919fSjohnjiang
424418919fSjohnjiang.PHONY: clean
434418919fSjohnjiangclean:
444418919fSjohnjiang	rm -f build/$(APP) build/$(APP)-static build/$(APP)-shared
450c6bd470Sfengbojiang	test -d build && rmdir -p build || true
46