Spdk/mk/spdk.fio.mk

54 lines
1.3 KiB
Makefile
Raw Normal View History

# SPDX-License-Identifier: BSD-3-Clause
# Copyright (C) 2020 Intel Corporation.
# All rights reserved.
#
include $(SPDK_ROOT_DIR)/mk/spdk.app_vars.mk
# Plugins go into build/example/
FIO_PLUGIN := $(SPDK_ROOT_DIR)/build/fio/$(notdir $(FIO_PLUGIN))
LIBS += $(SPDK_LIB_LINKER_ARGS)
CFLAGS += -I$(CONFIG_FIO_SOURCE_DIR)
# Compiling against fio 3.19 on latest FreeBSD generates warnings so we
# cannot use -Werror
ifeq ($(OS),FreeBSD)
CFLAGS += -Wno-error
else ifeq ($(CC_TYPE),clang)
CFLAGS += -Wno-error
endif
LDFLAGS += -shared -rdynamic -Wl,-z,nodelete
# By default, clang uses static sanitizer libraries, which means that the executable needs to have
# them linked in. Since we don't control how the fio binary is compiled, we need to use the shared
# libraries.
ifeq ($(CC_TYPE),clang)
ifneq ($(filter y,$(CONFIG_ASAN) $(CONFIG_UBSAN)),)
LDFLAGS += -shared-libsan
# clang's sanitizers aren't in ld's search path by default, so we need to add it manually
LDFLAGS += -Wl,-rpath=$(shell $(CC) -print-resource-dir)/lib
endif
endif
CLEAN_FILES = $(FIO_PLUGIN)
all : $(FIO_PLUGIN)
@:
install: empty_rule
uninstall: empty_rule
# To avoid overwriting warning
empty_rule:
@:
$(FIO_PLUGIN) : $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS)
$(LINK_C)
clean :
$(CLEAN_C) $(CLEAN_FILES)
include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk