From: Kefu Chai Date: Thu, 4 Feb 2016 06:00:44 +0000 (+0800) Subject: autotools: enable NVMEDevice if SPDK is found X-Git-Tag: v10.0.4~45^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=09e55d0c24a1209cf1917c500726e22de997f30c;p=ceph.git autotools: enable NVMEDevice if SPDK is found Signed-off-by: Kefu Chai --- diff --git a/configure.ac b/configure.ac index e952f17daa5b..4c570c25a08b 100644 --- a/configure.ac +++ b/configure.ac @@ -721,25 +721,6 @@ if test "x$enable_xio" = x"yes"; then AC_SUBST(XIO_LIBS) fi -# -# DPDK -# - -AC_ARG_WITH(dpdk, - [AC_HELP_STRING([--with-dpdk], [build Ceph DPDK Support])], [], [with_dpdk=no]) - -AM_CONDITIONAL(WITH_DPDK, [test "x$with_dpdk" != "xno"]) - -if test "x$with_dpdk" != x"no"; then - CPPFLAGS="$CPPFLAGS -I$with_dpdk/include" - LDFLAGS="$LDFLAGS -L$with_dpdk/lib" - AC_CHECK_HEADER([rte_config.h], [], AC_MSG_ERROR([Cannot find header 'rte_config.h'.])) - AC_CHECK_LIB([rte_eal], [rte_eal_init], [], AC_MSG_FAILURE([DPDK rte_eal_init not found]), - [-lrte_mempool -lrte_ring -lpthread -ldl]) - - AC_DEFINE([HAVE_DPDK], [1], [DPDK conditional compilation]) -fi - # # SPDK # @@ -749,13 +730,16 @@ AC_ARG_WITH(spdk, AM_CONDITIONAL(WITH_SPDK, [test "x$with_spdk" != "xno"]) if test "x$with_spdk" != x"no"; then - CPPFLAGS="$CPPFLAGS -I$with_spdk/include" - LDFLAGS="$LDFLAGS -L$with_spdk/lib/nvme -L$with_spdk/lib/memory -L$with_spdk/lib/util" - AC_CHECK_HEADER([spdk/nvme.h], [], AC_MSG_ERROR([Cannot find header 'spdk/nvme.h'.])) - #AC_CHECK_LIB([spdk_nvme], [nvme_attach], [], AC_MSG_FAILURE([SPDK nvme_attach not found])) - + PKG_CHECK_MODULES([LIBPCIACCESS], [pciaccess]) + AC_CHECK_HEADER([dpdk/rte_config.h], [], + AC_MSG_ERROR([dpdk/rte_config.h not found (libdpdk-dev, libdpdk-devel)])) + AC_CHECK_LIB([rte_eal], [rte_eal_init], [true], + AC_MSG_FAILURE([DPDK rte_eal_init not found]), + [-lrte_mempool -lrte_ring -lpthread -ldl]) + AC_SUBST([LIBDPDK_CFLAGS], [-I/usr/include/dpdk]) + AC_SUBST([LIBDPDK_LIBS], ['-lrte_eal -lrte_mempool -lrte_ring -lpthread']) + AC_SUBST([LIBPCIACCESS_LIBS]) AC_DEFINE([HAVE_SPDK], [1], [SPDK conditional compilation]) - AC_SUBST(SPDK_LIBS) fi #libatomic-ops? You want it! diff --git a/src/Makefile-env.am b/src/Makefile-env.am index fcf8ef4f5bab..cdc7f368a83d 100644 --- a/src/Makefile-env.am +++ b/src/Makefile-env.am @@ -234,7 +234,7 @@ LIBOS += libos_zfs.a -lzfs endif # WITH_LIBZFS if WITH_SPDK -LIBOS += -lpciaccess -lspdk_nvme -lspdk_util -lspdk_memory -lrte_eal -lrte_mempool -lrte_ring +LIBOS += ${LIBSPDK_LIBS} ${LIBDPDK_LIBS} ${LIBPCIACCESS_LIBS} endif # WITH_SPDK if WITH_TCMALLOC_MINIMAL diff --git a/src/os/Makefile.am b/src/os/Makefile.am index f5467ec7f221..41b33d2d17dc 100644 --- a/src/os/Makefile.am +++ b/src/os/Makefile.am @@ -121,7 +121,27 @@ noinst_HEADERS += os/fs/ZFS.h endif if WITH_SPDK -libos_a_CXXFLAGS = ${AM_CXXFLAGS} -I ${with_spdk}/include -fPIC + +SPDK_SRCDIR = ${top_srcdir}/src/spdk/lib +${SPDK_SRCDIR}/nvme/libspdk_nvme.a: + $(MAKE) -C ${SPDK_SRCDIR}/nvme DPDK_INC=${LIBDPDK_CFLAGS} +${SPDK_SRCDIR}/memory/libspdk_memory.a: + $(MAKE) -C ${SPDK_SRCDIR}/memory DPDK_INC=${LIBDPDK_CFLAGS} +${SPDK_SRCDIR}/util/libspdk_util.a: + $(MAKE) -C ${SPDK_SRCDIR}/util DPDK_INC=${LIBDPDK_CFLAGS} +${SPDK_SRCDIR}/ioat/libspdk_ioat.a: + $(MAKE) -C ${SPDK_SRCDIR}/ioat DPDK_INC=${LIBDPDK_CFLAGS} +LIBSPDK_CFLAGS = "-I${top_srcdir}/src/spdk/include" +LIBSPDK_LIBS = \ + ${top_srcdir}/src/spdk/lib/nvme/libspdk_nvme.a \ + ${top_srcdir}/src/spdk/lib/memory/libspdk_memory.a \ + ${top_srcdir}/src/spdk/lib/util/libspdk_util.a \ + ${top_srcdir}/src/spdk/lib/ioat/libspdk_ioat.a + +libos_a_CXXFLAGS += \ + ${LIBSPDK_CFLAGS} \ + ${LIBDPDK_CFLAGS} \ + ${LIBPCIACCESS_CFLAGS} libos_a_SOURCES += os/bluestore/NVMEDevice.cc noinst_HEADERS += os/bluestore/NVMEDevice.h endif