xref: /f-stack/dpdk/examples/vhost_blk/Makefile (revision 2d9fd380)
14418919fSjohnjiang# SPDX-License-Identifier: BSD-3-Clause
24418919fSjohnjiang# Copyright(c) 2010-2014 Intel Corporation
34418919fSjohnjiang
44418919fSjohnjiang# binary name
54418919fSjohnjiangAPP = vhost-blk
64418919fSjohnjiang
74418919fSjohnjiang# all source are stored in SRCS-y
84418919fSjohnjiangSRCS-y := blk.c vhost_blk.c vhost_blk_compat.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
244418919fSjohnjiangLDFLAGS += -pthread
254418919fSjohnjiang
264418919fSjohnjiangPC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null)
274418919fSjohnjiangCFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk)
284418919fSjohnjiangLDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk)
290c6bd470SfengbojiangLDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk)
304418919fSjohnjiang
314418919fSjohnjiangCFLAGS += -DALLOW_EXPERIMENTAL_API
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
454418919fSjohnjiang	test -d build && rmdir -p build || true
46