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 114418919fSjohnjiang$(shell pkg-config --exists libdpdk) 124418919fSjohnjiangifeq ($(.SHELLSTATUS),0) 134418919fSjohnjiang 144418919fSjohnjiangall: shared 154418919fSjohnjiang.PHONY: shared static 164418919fSjohnjiangshared: build/$(APP)-shared 174418919fSjohnjiang ln -sf $(APP)-shared build/$(APP) 184418919fSjohnjiangstatic: build/$(APP)-static 194418919fSjohnjiang ln -sf $(APP)-static build/$(APP) 204418919fSjohnjiang 214418919fSjohnjiangPKGCONF ?= pkg-config 224418919fSjohnjiang 234418919fSjohnjiangLDFLAGS += -pthread 244418919fSjohnjiang 254418919fSjohnjiangPC_FILE := $(shell $(PKGCONF) --path libdpdk 2>/dev/null) 264418919fSjohnjiangCFLAGS += -O3 $(shell $(PKGCONF) --cflags libdpdk) 274418919fSjohnjiangLDFLAGS_SHARED = $(shell $(PKGCONF) --libs libdpdk) 28*0c6bd470SfengbojiangLDFLAGS_STATIC = $(shell $(PKGCONF) --static --libs libdpdk) 294418919fSjohnjiang 304418919fSjohnjiangCFLAGS += -DALLOW_EXPERIMENTAL_API 314418919fSjohnjiang 324418919fSjohnjiangbuild/$(APP)-shared: $(SRCS-y) Makefile $(PC_FILE) | build 334418919fSjohnjiang $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_SHARED) 344418919fSjohnjiang 354418919fSjohnjiangbuild/$(APP)-static: $(SRCS-y) Makefile $(PC_FILE) | build 364418919fSjohnjiang $(CC) $(CFLAGS) $(SRCS-y) -o $@ $(LDFLAGS) $(LDFLAGS_STATIC) 374418919fSjohnjiang 384418919fSjohnjiangbuild: 394418919fSjohnjiang @mkdir -p $@ 404418919fSjohnjiang 414418919fSjohnjiang.PHONY: clean 424418919fSjohnjiangclean: 434418919fSjohnjiang rm -f build/$(APP) build/$(APP)-static build/$(APP)-shared 444418919fSjohnjiang test -d build && rmdir -p build || true 454418919fSjohnjiang 464418919fSjohnjiangelse # Build using legacy build system 474418919fSjohnjiang 484418919fSjohnjiangifeq ($(RTE_SDK),) 494418919fSjohnjiang$(error "Please define RTE_SDK environment variable") 504418919fSjohnjiangendif 514418919fSjohnjiang 524418919fSjohnjiang# Default target, detect a build directory, by looking for a path with a .config 534418919fSjohnjiangRTE_TARGET ?= $(notdir $(abspath $(dir $(firstword $(wildcard $(RTE_SDK)/*/.config))))) 544418919fSjohnjiang 554418919fSjohnjianginclude $(RTE_SDK)/mk/rte.vars.mk 564418919fSjohnjiang 574418919fSjohnjiangifneq ($(CONFIG_RTE_EXEC_ENV_LINUX),y) 584418919fSjohnjiang$(info This application can only operate in a linux environment, \ 594418919fSjohnjiangplease change the definition of the RTE_TARGET environment variable) 604418919fSjohnjiangall: 614418919fSjohnjiangelse 624418919fSjohnjiang 634418919fSjohnjiangCFLAGS += -DALLOW_EXPERIMENTAL_API 644418919fSjohnjiangCFLAGS += -O2 -D_FILE_OFFSET_BITS=64 654418919fSjohnjiangCFLAGS += $(WERROR_FLAGS) 664418919fSjohnjiang 674418919fSjohnjianginclude $(RTE_SDK)/mk/rte.extapp.mk 684418919fSjohnjiang 694418919fSjohnjiangendif 704418919fSjohnjiangendif 71