1488570ebSJim Harris# SPDX-License-Identifier: BSD-3-Clause 2c02b1794SDaniel Verkamp# Copyright (c) Intel Corporation. 3fe87dcadSAlexey Marchuk# Copyright (c) 2020, Mellanox Corporation. 41010fb3aSDaniel Verkamp# All rights reserved. 51010fb3aSDaniel Verkamp# 61010fb3aSDaniel Verkamp 7d6540ae9SDaniel VerkampS := 8d6540ae9SDaniel Verkamp 91010fb3aSDaniel VerkampSPDK_ROOT_DIR := $(CURDIR) 101010fb3aSDaniel Verkampinclude $(SPDK_ROOT_DIR)/mk/spdk.common.mk 111010fb3aSDaniel Verkamp 120923734cSLance HartmannDIRS-y += lib 1307fe6a43SSeth HowellDIRS-y += module 140923734cSLance HartmannDIRS-$(CONFIG_SHARED) += shared_lib 15119158cdSRajarshi ChowdhuryDIRS-y += include 169b2c6452SJacek KalwasDIRS-$(CONFIG_EXAMPLES) += examples 17119158cdSRajarshi ChowdhuryDIRS-$(CONFIG_APPS) += app 189fcb1cb0STomasz ZawadzkiDIRS-y += test 19f823b7f5SJim HarrisDIRS-$(CONFIG_IPSEC_MB) += ipsecbuild 20552e21ccSZiye YangDIRS-$(CONFIG_ISAL) += isalbuild 21b30d57cdSChangpeng LiuDIRS-$(CONFIG_VFIO_USER) += vfiouserbuild 22048fb36aSKonrad SztyberDIRS-y += python 23*6f338d4bSKrishna Kanth ReddyDIRS-$(CONFIG_XNVME) += xnvmebuild 241010fb3aSDaniel Verkamp 2573439e6fSBen Walker.PHONY: all clean $(DIRS-y) include/spdk/config.h mk/config.mk \ 26c4d9daebSPiotr Pelplinski cc_version cxx_version .libs_only_other .ldflags ldflags install \ 27c4d9daebSPiotr Pelplinski uninstall 281010fb3aSDaniel Verkamp 296b41a086SDarek Stojaczyk# Workaround for ninja. See dpdkbuild/Makefile 306b41a086SDarek Stojaczykexport MAKE_PID := $(shell echo $$PPID) 316b41a086SDarek Stojaczyk 323c849a4dSBen Walkerifeq ($(SPDK_ROOT_DIR)/lib/env_dpdk,$(CONFIG_ENV)) 33737b1b57SJim Harrisifeq ($(CURDIR)/dpdk/build,$(CONFIG_DPDK_DIR)) 349fccc84fSJim Harrisifneq ($(SKIP_DPDK_BUILD),1) 357232c450SMichal Bergerifneq ($(CONFIG_DPDK_PKG_CONFIG),y) 36737b1b57SJim HarrisDPDKBUILD = dpdkbuild 37737b1b57SJim HarrisDIRS-y += dpdkbuild 38737b1b57SJim Harrisendif 399fccc84fSJim Harrisendif 403c849a4dSBen Walkerendif 417232c450SMichal Bergerendif 42737b1b57SJim Harris 439854c138SNick Connollyifeq ($(OS),Windows) 449854c138SNick Connollyifeq ($(CURDIR)/wpdk/build,$(CONFIG_WPDK_DIR)) 459854c138SNick ConnollyWPDK = wpdk 469854c138SNick ConnollyDIRS-y += wpdk 479854c138SNick Connollyendif 489854c138SNick Connollyendif 499854c138SNick Connolly 50ed537580SJim Harrisifeq ($(CONFIG_SHARED),y) 51ed537580SJim HarrisLIB = shared_lib 52ed537580SJim Harriselse 5307fe6a43SSeth HowellLIB = module 54ed537580SJim Harrisendif 55ed537580SJim Harris 56f823b7f5SJim Harrisifeq ($(CONFIG_IPSEC_MB),y) 57f823b7f5SJim HarrisLIB += ipsecbuild 584de4b78bSDarek StojaczykDPDK_DEPS += ipsecbuild 59f823b7f5SJim Harrisendif 60f823b7f5SJim Harris 61552e21ccSZiye Yangifeq ($(CONFIG_ISAL),y) 62552e21ccSZiye YangLIB += isalbuild 634de4b78bSDarek StojaczykDPDK_DEPS += isalbuild 64552e21ccSZiye Yangendif 65552e21ccSZiye Yang 66b30d57cdSChangpeng Liuifeq ($(CONFIG_VFIO_USER),y) 67b30d57cdSChangpeng LiuVFIOUSERBUILD = vfiouserbuild 68b30d57cdSChangpeng LiuLIB += vfiouserbuild 69b30d57cdSChangpeng Liuendif 70b30d57cdSChangpeng Liu 71*6f338d4bSKrishna Kanth Reddyifeq ($(CONFIG_XNVME),y) 72*6f338d4bSKrishna Kanth ReddyXNVMEBUILD = xnvmebuild 73*6f338d4bSKrishna Kanth ReddyLIB += xnvmebuild 74*6f338d4bSKrishna Kanth Reddyendif 75*6f338d4bSKrishna Kanth Reddy 7673439e6fSBen Walkerall: mk/cc.mk $(DIRS-y) 771010fb3aSDaniel Verkampclean: $(DIRS-y) 78c5467556SPawel Wodkowski $(Q)rm -f include/spdk/config.h 7992e75dfcSJim Harris $(Q)rm -rf build 801010fb3aSDaniel Verkamp 812e7fe8e8SDaniel Verkampinstall: all 822e7fe8e8SDaniel Verkamp $(Q)echo "Installed to $(DESTDIR)$(CONFIG_PREFIX)" 832e7fe8e8SDaniel Verkamp 84c4d9daebSPiotr Pelplinskiuninstall: $(DIRS-y) 85c4d9daebSPiotr Pelplinski $(Q)echo "Uninstalled spdk" 86c4d9daebSPiotr Pelplinski 87f5ea02f3SJim Harrisifneq ($(SKIP_DPDK_BUILD),1) 889854c138SNick Connollydpdkdeps $(DPDK_DEPS): $(WPDK) 899854c138SNick Connollydpdkbuild: $(WPDK) $(DPDK_DEPS) 90f5ea02f3SJim Harrisendif 91f5ea02f3SJim Harris 92*6f338d4bSKrishna Kanth Reddylib: $(WPDK) $(DPDKBUILD) $(VFIOUSERBUILD) $(XNVMEBUILD) 9307fe6a43SSeth Howellmodule: lib 9407fe6a43SSeth Howellshared_lib: module 95ed537580SJim Harrisapp: $(LIB) 96ed537580SJim Harristest: $(LIB) 97ed537580SJim Harrisexamples: $(LIB) 9893533c20SHailiang Wangpkgdep: 9993533c20SHailiang Wang sh ./scripts/pkgdep.sh 1001010fb3aSDaniel Verkamp 1016b9b448eSBen Walker$(DIRS-y): mk/cc.mk build_dir include/spdk/config.h 1026d6d1161SDaniel Verkamp 1036d6d1161SDaniel Verkampmk/cc.mk: 10473439e6fSBen Walker $(Q)echo "Please run configure prior to make" 10573439e6fSBen Walker false 10692a02f58SDaniel Verkamp 1076b9b448eSBen Walkerbuild_dir: mk/cc.mk 1086e2c2306SJacek Kalwas $(Q)mkdir -p build/lib/pkgconfig/tmp 1096b9b448eSBen Walker $(Q)mkdir -p build/bin 110c3b5ae0cSBen Walker $(Q)mkdir -p build/fio 11185bdd43bSBen Walker $(Q)mkdir -p build/examples 1123352b2a7SBen Walker $(Q)mkdir -p build/include/spdk 1136b9b448eSBen Walker 11485bc2bbeSPawel Wodkowskiinclude/spdk/config.h: mk/config.mk scripts/genconfig.py 115acac4b38SJim Harris $(Q)echo "#ifndef SPDK_CONFIG_H" > $@.tmp; \ 11655bc3a72SPawel Wodkowski echo "#define SPDK_CONFIG_H" >> $@.tmp; \ 117b41f404dSJonathan Richardson scripts/genconfig.py $(MAKEFLAGS) >> $@.tmp; \ 11855bc3a72SPawel Wodkowski echo "#endif /* SPDK_CONFIG_H */" >> $@.tmp; \ 11992a02f58SDaniel Verkamp cmp -s $@.tmp $@ || mv $@.tmp $@ ; \ 12092a02f58SDaniel Verkamp rm -f $@.tmp 12192a02f58SDaniel Verkamp 12254700c7eSJim Harriscc_version: mk/cc.mk 12354700c7eSJim Harris $(Q)echo "SPDK using CC=$(CC)"; $(CC) -v 12454700c7eSJim Harris 12554700c7eSJim Harriscxx_version: mk/cc.mk 12654700c7eSJim Harris $(Q)echo "SPDK using CXX=$(CXX)"; $(CXX) -v 12754700c7eSJim Harris 12834387cccSPawel Wodkowski.libs_only_other: 12934387cccSPawel Wodkowski $(Q)echo -n '$(SYS_LIBS) ' 13034387cccSPawel Wodkowski $(Q)if [ "$(CONFIG_SHARED)" = "y" ]; then \ 13134387cccSPawel Wodkowski echo -n '-lspdk '; \ 13234387cccSPawel Wodkowski fi 13334387cccSPawel Wodkowski 13434387cccSPawel Wodkowski.ldflags: 13534387cccSPawel Wodkowski $(Q)echo -n '$(LDFLAGS) ' 13634387cccSPawel Wodkowski 13734387cccSPawel Wodkowskildflags: .ldflags .libs_only_other 13834387cccSPawel Wodkowski $(Q)echo '' 13934387cccSPawel Wodkowski 1401010fb3aSDaniel Verkampinclude $(SPDK_ROOT_DIR)/mk/spdk.subdirs.mk 141