]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
autotools: enable NVMEDevice if SPDK is found
authorKefu Chai <kchai@redhat.com>
Thu, 4 Feb 2016 06:00:44 +0000 (14:00 +0800)
committerKefu Chai <kchai@redhat.com>
Thu, 4 Feb 2016 06:05:53 +0000 (14:05 +0800)
Signed-off-by: Kefu Chai <kchai@redhat.com>
configure.ac
src/Makefile-env.am
src/os/Makefile.am

index e952f17daa5b684683e8ef6a43ab6c347c4711c9..4c570c25a08b534d0215e98e1026412ce5474676 100644 (file)
@@ -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!
index fcf8ef4f5bab54c2da7b2312dba686150db4a326..cdc7f368a83dd39fe0a38384e496c1ac67bc6f50 100644 (file)
@@ -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
index f5467ec7f221fa7f055a5cd50254007d223156ae..41b33d2d17dcc0c58a7bc7345f139937a8e7d279 100644 (file)
@@ -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