+
+WITH_MSM_LIB=
+AC_ARG_WITH(msm, [AS_HELP_STRING([--with-msm],[build with msm support])],
+[case "$with_msm" in
+yes|no) ;;
+*) AC_MSG_ERROR([invalid argument to --with-msm])
+ ;;
+esac],
+[with_msm=no])
+
+AS_IF([test "$with_msm" = yes],[
+ save_LIBS="$LIBS"
+ AC_CHECK_LIB([xml2],[xmlReaderForMemory],[],[
+ AC_MSG_ERROR([--with-msm given, but xmlReaderForMemory not found in libxml2])])
+ LIBS="$save_LIBS"
+ AC_CHECK_HEADER([sys/capability.h],[
+ save_LIBS="$LIBS"
+ AC_CHECK_LIB([cap],[cap_set_file],[],[
+ AC_MSG_ERROR([--with-msm given, but cap_set_file not found in libcap])])
+ LIBS="$save_LIBS"
+ ],[
+ AC_MSG_ERROR([--with-msm given, but sys/capability.h not found])
+ ])
+
+ PKG_CHECK_MODULES(
+ [LIBXML2],
+ [libxml-2.0 >= 2.0],
+ [AC_DEFINE(WITH_LIBXML2, 1, [Build with libxml2 support])],
+ [AC_MSG_ERROR([--with-msm given, but libxml2 not found])]
+ )
+ AC_SUBST(LIBXML2_CFLAGS)
+ AC_SUBST(LIBXML2_LIBS)
+
+ AC_CHECK_HEADER([attr/xattr.h],[
+ save_LIBS="$LIBS"
+ AC_CHECK_LIB([attr],[setxattr],[],[
+ AC_MSG_ERROR([--with-msm given, but setxattr not found in libattr])])
+ LIBS="$save_LIBS"
+ ],[
+ AC_MSG_ERROR([--with-msm given, but attr/xattr.h not found])
+ ])
+ AC_CHECK_HEADER([uthash.h],[
+ save_LIBS="$LIBS"
+ LIBS="$save_LIBS"
+ ],[
+ AC_MSG_ERROR([--with-msm given, but uthash.h not found])
+ ])
+ AC_CHECK_HEADER([sys/smack.h],[
+ save_LIBS="$LIBS"
+ LIBS="$save_LIBS"
+ ],[
+ AC_MSG_ERROR([--with-msm given, but smack.h not found])
+ ])
+])
+
+AS_IF([test "$with_msm" = yes],[
+ AC_DEFINE(WITH_MSM, 1, [Build with msm support?])
+ WITH_MSM_LIB="`xml2-config --libs` -lcap -lattr -lsmack -lmagic"
+ WITH_MSM_INCLUDE="`xml2-config --cflags`"
+])
+AC_SUBST(WITH_MSM_LIB)
+AC_SUBST(WITH_MSM_INCLUDE)
+AM_CONDITIONAL(MSM,[test "$with_msm" = yes])
+