diff --git a/include/scalfmm/algorithms/fmm.hpp b/include/scalfmm/algorithms/fmm.hpp
index 9f6395aa49ace748a9ee3115f199228fcfe10004..16ac2d2beda582676a192fab4d3795f06ea07818 100644
--- a/include/scalfmm/algorithms/fmm.hpp
+++ b/include/scalfmm/algorithms/fmm.hpp
@@ -74,9 +74,13 @@ namespace scalfmm::algorithms
         inline auto fmm(options::settings<S...> s, TreeType& tree, FmmOperatorsType const& fmmoperators,
                         unsigned int op = operators_to_proceed::all) -> void
         {
-            static_assert(
-              options::support(s, options::_s(options::omp, options::omp_timit, options::seq, options::seq_timit)),
-              "unsupported fmm algo options!");
+            static_assert(options::support(s, options::_s(
+#ifdef _OPENMP
+
+                                                options::omp, options::omp_timit,
+#endif
+                                                options::seq, options::seq_timit)),
+                          "unsupported fmm algo options!");
             if constexpr(options::has(s, options::seq, options::seq_timit))
             {
                 using inner_settings = typename decltype(s)::inner_settings;
@@ -117,9 +121,12 @@ namespace scalfmm::algorithms
                         operators::fmm_operators<NearFieldType, FarFieldType> const& fmmoperators,
                         unsigned int op = operators_to_proceed::all) -> void
         {
-            static_assert(
-              options::support(s, options::_s(options::omp, options::omp_timit, options::seq, options::seq_timit)),
-              "unsupported fmm algo options!");
+            static_assert(options::support(s, options::_s(
+#ifdef _OPENMP
+                                                options::omp, options::omp_timit,
+#endif
+                                                options::seq, options::seq_timit)),
+                          "unsupported fmm algo options!");
             if constexpr(options::has(s, options::seq, options::seq_timit))
             {
                 using inner_settings = typename decltype(s)::inner_settings;
diff --git a/include/scalfmm/lists/lists.hpp b/include/scalfmm/lists/lists.hpp
index efa0499916b9c10c4ab31829350e55934832aa3f..34a4c858c26d8a5e9ec2dd63cba007d8a48fbec5 100644
--- a/include/scalfmm/lists/lists.hpp
+++ b/include/scalfmm/lists/lists.hpp
@@ -3,7 +3,8 @@
 // File : scalfmm/lists/lists.hpp
 // --------------------------------
 #pragma once
-
+#ifdef _OPENMP
 #include "scalfmm/lists/omp.hpp"
+#endif
 #include "scalfmm/lists/policies.hpp"
 #include "scalfmm/lists/sequential.hpp"
diff --git a/include/scalfmm/options/options.hpp b/include/scalfmm/options/options.hpp
index 96747683582919ffe0ad0899f8bfa8bd2a450db8..60000da32ac8f08395b0e5fc28834865bb4bbf90 100644
--- a/include/scalfmm/options/options.hpp
+++ b/include/scalfmm/options/options.hpp
@@ -114,6 +114,7 @@ namespace scalfmm::options
         using inner_settings = settings<S...>;
         static constexpr auto value() noexcept -> std::string_view { return "seq"; };
     };
+#ifdef _OPENMP
 
     /**
      * @brief A specific compound option for the 'OpenMP-based' case that combines multiple settings.
@@ -131,7 +132,7 @@ namespace scalfmm::options
         using inner_settings = settings<S...>;
         static constexpr auto value() noexcept -> std::string_view { return "omp"; };
     };
-
+#endif
     /**
      * @brief A specific option to time each pass of the FMM algorithm.
      */
@@ -244,6 +245,7 @@ namespace scalfmm::options
     * @brief Predefined static option to compress the M2L interaction matrices.
     */
     static constexpr auto low_rank = low_rank_{};
+#ifdef _OPENMP
 
     /**
     * @brief Predefined static option to use the OpenMP-based algorithm.
@@ -254,7 +256,7 @@ namespace scalfmm::options
     * @brief Predefined static option to use the OpenMP-based algorithm with each pass is timed.
     */
     static constexpr auto omp_timit = omp_<timit_>{};
-
+#endif
     /**
     * @brief Predefined static option to use the sequential algorithm.
     */