diff --git a/Makefile.include b/Makefile.include
index 5f7abb1fc06c791b7ca9b121d44bd5343954a418..39a5086b71ab91f44518c523889061d1cb49254f 100644
--- a/Makefile.include
+++ b/Makefile.include
@@ -229,7 +229,7 @@ export PREFIX ?= $(if $(TARGET_ARCH),$(TARGET_ARCH)-)
 # Add standard include directories
 INCLUDES += -I$(RIOTBASE)/core/include -I$(RIOTBASE)/drivers/include -I$(RIOTBASE)/sys/include
 INCLUDES += -I$(RIOTCPU)/$(CPU)/include
-INCLUDES += -I$(RIOTBOARD)/$(BOARD)/include
+INCLUDES += $(addprefix -I,$(wildcard $(RIOTBOARD)/$(BOARD)/include))
 
 # process provided features
 -include $(RIOTBOARD)/$(BOARD)/Makefile.features
diff --git a/makefiles/cflags.inc.mk b/makefiles/cflags.inc.mk
index b35ddc98c58c0ede60a42fda2022a14a55ddadf2..34f878b79bf6a6957672efb65afe85bb5c13e905 100644
--- a/makefiles/cflags.inc.mk
+++ b/makefiles/cflags.inc.mk
@@ -60,6 +60,9 @@ CFLAGS += -fno-common
 # Enable all default warnings
 CFLAGS += -Wall
 
+# Warn if a user-supplied include directory does not exist.
+CFLAGS += -Wmissing-include-dirs
+
 ifeq (,$(filter -DDEVELHELP,$(CFLAGS)))
   ifneq (1,$(FORCE_ASSERTS))
     CFLAGS += -DNDEBUG
diff --git a/pkg/libcoap/Makefile.include b/pkg/libcoap/Makefile.include
index 73dd7ce3ceb911f977dd01777b4934f1b5a5ba1e..969fda2c677e680d182d0db124bd07a2f9cfc3ad 100644
--- a/pkg/libcoap/Makefile.include
+++ b/pkg/libcoap/Makefile.include
@@ -1,3 +1,2 @@
 INCLUDES += -I$(PKGDIRBASE)/libcoap \
-			-I$(RIOTBASE)/sys/posix/include \
-			-I$(RIOTBASE)/sys/net/include
+			-I$(RIOTBASE)/sys/posix/include
diff --git a/pkg/openthread/Makefile.include b/pkg/openthread/Makefile.include
index b4eebf43654d6e2feb533c16d12f5e2bcd29f4bd..7fd2ba782f06f1a15c31707c23f67e1347ac6d5f 100644
--- a/pkg/openthread/Makefile.include
+++ b/pkg/openthread/Makefile.include
@@ -1,7 +1,6 @@
 OPENTHREAD_DIR = $(RIOTBASE)/pkg/openthread
 
 INCLUDES += -I$(OPENTHREAD_DIR)/include \
-            -I$(OPENTHREAD_DIR)/include/openthread \
             -I$(BINDIRBASE)/pkg/$(BOARD)/openthread/output/include \
             -I$(BINDIRBASE)/pkg/$(BOARD)/openthread/include/openthread \
 
diff --git a/pkg/tiny-asn1/Makefile b/pkg/tiny-asn1/Makefile
index 61a4bfbaecf16aa23ede1b393b4e4d8e9a99c67a..3fa3640e9e8df7ab35fa6b1dc68e18e41eb0c1bf 100644
--- a/pkg/tiny-asn1/Makefile
+++ b/pkg/tiny-asn1/Makefile
@@ -3,9 +3,6 @@ PKG_URL = https://gitlab.com/mtausig/tiny-asn1.git
 PKG_VERSION = 82e3a26273900b532e33e5b377f193fa08ee7d1b
 PKG_LICENSE = LGPL-3
 
-export TINYASN1_ROOT=$(CURDIR)
-INCLUDES+=-I$(TINYASN1_ROOT)/src
-
 .PHONY: all
 
 all: git-download
diff --git a/sys/Makefile.include b/sys/Makefile.include
index baa5e0b298a94926d9835b6b62e3ba9183f21810..55aa6793dc2ec6a6865a3504bf4735bdb7aa508b 100644
--- a/sys/Makefile.include
+++ b/sys/Makefile.include
@@ -6,10 +6,6 @@ ifneq (,$(filter cbor,$(USEMODULE)))
   USEMODULE_INCLUDES += $(RIOTBASE)/sys/cbor/include
 endif
 
-ifneq (,$(filter crypto,$(USEMODULE)))
-  USEMODULE_INCLUDES += $(RIOTBASE)/include/crypto
-endif
-
 ifneq (,$(filter fib,$(USEMODULE)))
   USEMODULE_INCLUDES += $(RIOTBASE)/sys/posix/include
 endif