diff --git a/CMakeLists.txt b/CMakeLists.txt
index d97a54ebea76170261841a63fa885d588f0fef85..69ffaa9176a2079f0b5b8f1bf20dc81927ceb15b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -64,14 +64,15 @@ if(ADIOS2_ENABLE_PIC)
   set(CMAKE_POSITION_INDEPENDENT_CODE ON)
 endif()
 
-adios_option(BZip2   "Enable support for BZip2 transforms" AUTO)
-adios_option(ZFP     "Enable support for ZFP transforms" AUTO)
-adios_option(MPI     "Enable support for MPI" AUTO)
-adios_option(DataMan "Enable support for DataMan" AUTO)
-adios_option(ZeroMQ  "Enable support for ZeroMQ" AUTO)
-adios_option(HDF5    "Enable support for the HDF5 engine" AUTO)
-adios_option(ADIOS1  "Enable support for the ADIOS 1 engine" AUTO)
-adios_option(Python  "Enable support for Python bindings" AUTO)
+adios_option(BZip2     "Enable support for BZip2 transforms" AUTO)
+adios_option(ZFP       "Enable support for ZFP transforms" AUTO)
+adios_option(MPI       "Enable support for MPI" AUTO)
+adios_option(DataMan   "Enable support for DataMan" AUTO)
+adios_option(ZeroMQ    "Enable support for ZeroMQ" AUTO)
+adios_option(HDF5      "Enable support for the HDF5 engine" AUTO)
+adios_option(ADIOS1    "Enable support for the ADIOS 1 engine" AUTO)
+adios_option(Python    "Enable support for Python bindings" AUTO)
+adios_option(SysVShMem "Enable support for SysV Shared Memory IPC on *NIX" AUTO)
 include(${ADIOS2_SOURCE_DIR}/cmake/DetectOptions.cmake)
 
 if(ADIOS2_HAVE_MPI)
@@ -79,7 +80,7 @@ if(ADIOS2_HAVE_MPI)
   add_definitions(-DOMPI_SKIP_MPICXX)
 endif()
 
-GenerateADIOSConfig(MPI ZFP BZip2 ADIOS1 HDF5 DataMan Python)
+GenerateADIOSConfig(MPI ZFP BZip2 ADIOS1 HDF5 DataMan Python SysVShMem)
 install(
   FILES ${ADIOS2_BINARY_DIR}/adios2/ADIOSConfig.h
   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/adios2
@@ -140,8 +141,8 @@ endif()
 message("    Build Type:   ${CMAKE_BUILD_TYPE}")
 message("    Testing: ${BUILD_TESTING}")
 message("    Build Options:")
-foreach(opt BZip2 ZFP MPI DataMan ZeroMQ HDF5 ADIOS1 Python)
-  message_pad("      ${opt}" 13 label)
+foreach(opt BZip2 ZFP MPI DataMan ZeroMQ HDF5 ADIOS1 Python SysVShMem)
+  message_pad("      ${opt}" 15 label)
   if(${ADIOS2_HAVE_${opt}})
     message("${label}: ON")
   else()
diff --git a/cmake/DetectOptions.cmake b/cmake/DetectOptions.cmake
index 562a6b30f4337e79e7ea3571d02ed40cb61b12b3..29237fcc40c2de892369101077f23c1b880161f3 100644
--- a/cmake/DetectOptions.cmake
+++ b/cmake/DetectOptions.cmake
@@ -106,3 +106,20 @@ if(ADIOS2_USE_Python STREQUAL AUTO)
 elseif(ADIOS2_USE_Python)
   set(ADIOS2_HAVE_Python TRUE)
 endif()
+
+#SysV IPC
+if(ADIOS2_USE_SysVShMem STREQUAL AUTO)
+  if(UNIX)
+    include(CheckSymbolExists)
+	CHECK_SYMBOL_EXISTS(shmget "sys/ipc.h;sys/shm.h" HAVE_shmget)
+	if(HAVE_shmget)
+	  set(ADIOS2_HAVE_SysVShMem ON)
+	else()
+	  set(ADIOS2_HAVE_SysVShMem OFF)
+	endif()
+  else()
+    set(ADIOS2_HAVE_SysVShMem OFF)
+  endif()
+elseif(ADIOS2_USE_SysVShMem)
+  set(ADIOS2_HAVE_SysVShMem)
+endif()
\ No newline at end of file
diff --git a/source/adios2/ADIOSConfig.h.in b/source/adios2/ADIOSConfig.h.in
index 046923c2c464f4397570acf086803232b9b58e89..c917b81a8b1a06b2b43b4844cd1715e70ebff69e 100644
--- a/source/adios2/ADIOSConfig.h.in
+++ b/source/adios2/ADIOSConfig.h.in
@@ -45,4 +45,7 @@
 /* CMake Option: ADIOS_USE_Python=ON */
 #cmakedefine ADIOS2_HAVE_PYTHON
 
+/* CMake Option: ADIOS_USE_SysVShMem=ON */
+#cmakedefine ADIOS2_HAVE_SYSVSHMEM
+
 #endif /* ADIOSCONFIG_H_ */
diff --git a/source/adios2/CMakeLists.txt b/source/adios2/CMakeLists.txt
index 7617d7b832cfb79353d1260f2d8c00bf7778e477..79e779d2362c1ea680a99bbcfe6a15017931a481 100644
--- a/source/adios2/CMakeLists.txt
+++ b/source/adios2/CMakeLists.txt
@@ -27,8 +27,7 @@ add_library(adios2
 
   toolkit/capsule/Capsule.cpp
   toolkit/capsule/heap/STLVector.cpp 
-  toolkit/capsule/shmem/ShmSystemV.cpp
-
+ 
   toolkit/format/bp1/BP1Base.cpp toolkit/format/bp1/BP1Base.tcc
   toolkit/format/bp1/BP1Aggregator.cpp
   toolkit/format/bp1/BP1Writer.cpp toolkit/format/bp1/BP1Writer.tcc
@@ -54,6 +53,10 @@ target_include_directories(adios2
 find_package(Threads REQUIRED)
 target_link_libraries(adios2 PUBLIC ${CMAKE_THREAD_LIBS_INIT})
 
+if(ADIOS2_HAVE_SysVShMem)
+  target_sources(adios2 PRIVATE toolkit/capsule/shmem/ShmSystemV.cpp)
+endif()
+
 if(ADIOS2_HAVE_DataMan)
   target_sources(adios2 PRIVATE
     engine/dataman/DataManReader.cpp