diff --git a/package/samba/Config.in b/package/samba/Config.in
index fedbccdd63..0ab67edbbb 100644
--- a/package/samba/Config.in
+++ b/package/samba/Config.in
@@ -13,6 +13,14 @@ config BR2_PACKAGE_SAMBA
 
 if BR2_PACKAGE_SAMBA
 
+config BR2_PACKAGE_SAMBA_MAX_DEBUGLEVEL
+	int "Maximum level of compiled-in debug messages"
+	range -1 10000
+	default -1
+	help
+	  Define the level of compiled-in debug messages.
+	  This allows for big space savings, -1 being the lowest (none).
+
 config BR2_PACKAGE_SAMBA_LIBICONV
 	bool "extended encodings (libiconv)"
 	depends on !BR2_ENABLE_LOCALE
diff --git a/package/samba/samba.mk b/package/samba/samba.mk
index 3a004e1d52..683c7b2e0f 100644
--- a/package/samba/samba.mk
+++ b/package/samba/samba.mk
@@ -158,6 +158,9 @@ else
 SAMBA_CONF_OPT += --with-libiconv=""
 endif
 
+# Compiled debug messages by level
+SAMBA_CONF_OPT += CFLAGS="$(TARGET_CFLAGS) -DMAX_DEBUG_LEVEL=$(BR2_PACKAGE_SAMBA_MAX_DEBUGLEVEL)"
+
 ifeq ($(BR2_PACKAGE_SAMBA_SWAT),y)
 ifneq ($(BR2_HAVE_DOCUMENTATION),y)
 SAMBA_POST_INSTALL_TARGET_HOOKS += SAMBA_REMOVE_SWAT_DOCUMENTATION