#ifndef SIMGRID_FEATURES_H
#define SIMGRID_FEATURES_H
-/* What is defined here:
- * =====================
- *
- * MSG_WAIT_DESTROYS_COMMS 1 if MSG_wait destroys communications
- * (has changed after SimGrid 3.5)
- */
-
-#if !defined(SIMGRID_VERSION) // ========== SimGrid <= 3.5 ============= //
-
-#define MSG_WAIT_DESTROYS_COMMS 1
-
-#else // ================================= SimGrid > 3.5 ============== //
-
-#define MSG_WAIT_DESTROYS_COMMS 0
-
-#endif // ============================================================= //
+#include <simgrid_config.h>
+
+#if !defined(SIMGRID_VERSION) // ==================== SimGrid <= 3.5 === //
+# error "Unsupported SimGrid version. Need version > 3.5"
+#endif // ============================================================== //
+
+#if SIMGRID_VERSION < MAKE_SIMGRID_VERSION(3, 8, 0) // ==== SG < 3.8 === //
+# define MSG_init(argc, argv) MSG_global_init(argc, argv)
+# define msg_error_t MSG_error_t
+# define msg_host_t m_host_t
+# define msg_process_t m_process_t
+# define msg_task_t m_task_t
+#else // =============================================================== //
+# define MSG_clean() MSG_OK
+#endif // ============================================================== //
#endif // !SIMGRID_FEATURES_H