From 9a093b2e8fc780cc61d55d088f592ec44d370482 Mon Sep 17 00:00:00 2001
From: Edward Patel <edward.patel@memention.com>
Date: Mon, 6 Apr 2015 19:38:59 +0200
Subject: [PATCH] Added #error + mention not to enable ABL and Mesh at the same
 time

---
 Documentation/MeshBedLeveling.md                              | 2 +-
 Marlin/Configuration.h                                        | 4 ++++
 Marlin/configurator/config/Configuration.h                    | 4 ++++
 Marlin/example_configurations/Felix/Configuration.h           | 4 ++++
 Marlin/example_configurations/Hephestos/Configuration.h       | 4 ++++
 Marlin/example_configurations/K8200/Configuration.h           | 4 ++++
 Marlin/example_configurations/SCARA/Configuration.h           | 4 ++++
 Marlin/example_configurations/WITBOX/Configuration.h          | 4 ++++
 Marlin/example_configurations/delta/generic/Configuration.h   | 4 ++++
 .../example_configurations/delta/kossel_mini/Configuration.h  | 4 ++++
 Marlin/example_configurations/makibox/Configuration.h         | 4 ++++
 Marlin/example_configurations/tvrrug/Round2/Configuration.h   | 4 ++++
 12 files changed, 45 insertions(+), 1 deletion(-)

diff --git a/Documentation/MeshBedLeveling.md b/Documentation/MeshBedLeveling.md
index 7981a896c5..09c1ec9483 100644
--- a/Documentation/MeshBedLeveling.md
+++ b/Documentation/MeshBedLeveling.md
@@ -7,7 +7,7 @@ Background
 
 This mesh based method of leveling/compensating can compensate for an non-flat bed. There are various opinions about doing this. It was primarily written to compensate a RigidBot BIG bed (40x30cm) that was somewhat bent.
 
-Currently there is no automatic way to probe the bed like the Auto Bed Leveling feature. This might soon be implemented though, stay tuned.
+Currently there is no automatic way to probe the bed like the Auto Bed Leveling feature. So, you can not enable `ENABLE_AUTO_BED_LEVELING` at the same time. This might soon be implemented though, stay tuned.
 
 Theory
 ------
diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h
index 419e010dce..7803bdd0a4 100644
--- a/Marlin/Configuration.h
+++ b/Marlin/Configuration.h
@@ -417,6 +417,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/configurator/config/Configuration.h b/Marlin/configurator/config/Configuration.h
index bb8125ef16..cd260bf89c 100644
--- a/Marlin/configurator/config/Configuration.h
+++ b/Marlin/configurator/config/Configuration.h
@@ -437,6 +437,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h
index 49df589dd3..fe95e1a2e1 100644
--- a/Marlin/example_configurations/Felix/Configuration.h
+++ b/Marlin/example_configurations/Felix/Configuration.h
@@ -387,6 +387,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h
index f58fd83157..04a9060c2e 100644
--- a/Marlin/example_configurations/Hephestos/Configuration.h
+++ b/Marlin/example_configurations/Hephestos/Configuration.h
@@ -410,6 +410,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h
index 07af43647d..5655219ddd 100644
--- a/Marlin/example_configurations/K8200/Configuration.h
+++ b/Marlin/example_configurations/K8200/Configuration.h
@@ -415,6 +415,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h
index 8a85e8e801..8e4a5ea7df 100644
--- a/Marlin/example_configurations/SCARA/Configuration.h
+++ b/Marlin/example_configurations/SCARA/Configuration.h
@@ -439,6 +439,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h
index ed964304f2..1bde594417 100644
--- a/Marlin/example_configurations/WITBOX/Configuration.h
+++ b/Marlin/example_configurations/WITBOX/Configuration.h
@@ -409,6 +409,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h
index acd6d9f341..5a25872b06 100644
--- a/Marlin/example_configurations/delta/generic/Configuration.h
+++ b/Marlin/example_configurations/delta/generic/Configuration.h
@@ -437,6 +437,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration.h b/Marlin/example_configurations/delta/kossel_mini/Configuration.h
index bc0a000e04..a5ebffcdd7 100644
--- a/Marlin/example_configurations/delta/kossel_mini/Configuration.h
+++ b/Marlin/example_configurations/delta/kossel_mini/Configuration.h
@@ -437,6 +437,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic o
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h
index 557b15fe25..c3566eb57f 100644
--- a/Marlin/example_configurations/makibox/Configuration.h
+++ b/Marlin/example_configurations/makibox/Configuration.h
@@ -407,6 +407,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h
index e9158b0419..c88fe81281 100644
--- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h
+++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h
@@ -409,6 +409,10 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
 
 #ifdef ENABLE_AUTO_BED_LEVELING
 
+  #ifdef MESH_BED_LEVELING
+    #error Select 'ENABLE_AUTO_BED_LEVELING' or 'MESH_BED_LEVELING', not both
+  #endif // MESH_BED_LEVELING
+
   // There are 2 different ways to specify probing locations
   //
   // - "grid" mode
-- 
GitLab