diff --git a/Marlin/src/inc/MarlinConfigPre.h b/Marlin/src/inc/MarlinConfigPre.h
index a53a45523ebc1230a2acb3be73731dc37ba523f4..3aec32b24e832f117f0a94dcbb1dfde10dfb1501 100644
--- a/Marlin/src/inc/MarlinConfigPre.h
+++ b/Marlin/src/inc/MarlinConfigPre.h
@@ -21,7 +21,9 @@
  */
 #pragma once
 
+#ifndef __MARLIN_FIRMWARE__
 #define __MARLIN_FIRMWARE__
+#endif
 
 //
 // Prefix header to acquire configurations
diff --git a/platformio.ini b/platformio.ini
index 5225929732812057e82b3be70c1a9e7240e8d554..d446aeb7e0cc31bab6b3e15c77b0aa7ac21a81a0 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -23,7 +23,7 @@ default_envs = megaatmega2560
 [common]
 default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
 extra_scripts = pre:buildroot/share/PlatformIO/scripts/common-cxxflags.py
-build_flags = -fmax-errors=5 -g
+build_flags = -fmax-errors=5 -g -D__MARLIN_FIRMWARE__
 lib_deps =
   U8glib-HAL=https://github.com/MarlinFirmware/U8glib-HAL/archive/bugfix.zip
   LiquidCrystal@1.3.4
@@ -149,7 +149,7 @@ monitor_speed = 250000
 platform          = https://github.com/p3p/pio-nxplpc-arduino-lpc176x/archive/master.zip
 framework         = arduino
 board             = nxp_lpc1768
-build_flags       = -DTARGET_LPC1768 -DU8G_HAL_LINKS -IMarlin/src/HAL/HAL_LPC1768/include -IMarlin/src/HAL/HAL_LPC1768/u8g ${common.build_flags}
+build_flags       = -DTARGET_LPC1768 -DU8G_HAL_LINKS  -IMarlin/src/HAL/HAL_LPC1768/include -IMarlin/src/HAL/HAL_LPC1768/u8g ${common.build_flags}
 # debug options for backtrace
 #  -funwind-tables
 #  -mpoke-function-name
@@ -532,7 +532,7 @@ platform    = ststm32
 framework   = arduino
 board       = malyanM200
 build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py -DMCU_STM32F103CB -D __STM32F1__=1 -std=c++1y -D MOTHERBOARD="BOARD_MALYAN_M200" -DSERIAL_USB -ffunction-sections -fdata-sections -Wl,--gc-sections
-  -DDEBUG_LEVEL=0
+  -DDEBUG_LEVEL=0 -D__MARLIN_FIRMWARE__
 src_filter  = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
 #-<frameworks>
 lib_ignore  = Adafruit NeoPixel, LiquidCrystal, LiquidTWI2, TMCStepper, U8glib-HAL, SPI
@@ -573,7 +573,7 @@ monitor_speed     = 250000
 #
 [env:linux_native]
 platform        = native
-build_flags     = -D__PLAT_LINUX__ -std=gnu++17 -ggdb -g -lrt -lpthread
+build_flags     = -D__PLAT_LINUX__ -std=gnu++17 -ggdb -g -lrt -lpthread -D__MARLIN_FIRMWARE__
 src_build_flags = -Wall -IMarlin/src/HAL/HAL_LINUX/include
 build_unflags   = -Wall
 lib_ldf_mode    = off
@@ -602,7 +602,7 @@ debug_tool    = jlink
 platform    = atmelavr
 framework   = arduino
 board       = megaatmega2560
-build_flags = -c -H -std=gnu++11 -Wall -Os
+build_flags = -c -H -std=gnu++11 -Wall -Os -D__MARLIN_FIRMWARE__
 lib_deps    = ${common.lib_deps}
   TMC26XStepper=https://github.com/trinamic/TMC26XStepper/archive/master.zip
 src_filter  = +<src/Marlin.cpp>