diff --git a/Makefile.dep b/Makefile.dep
index dfb131a79f83a6faa39997fb5316b97312dbaa51..a8c5177afd04374af4da4ab0a8d4a07ee37949c0 100644
--- a/Makefile.dep
+++ b/Makefile.dep
@@ -652,14 +652,18 @@ ifneq (,$(filter l2filter_%,$(USEMODULE)))
 endif
 
 ifneq (,$(filter gcoap,$(USEMODULE)))
-USEMODULE += nanocoap
-USEMODULE += gnrc_sock_udp
+  USEMODULE += nanocoap
+  USEMODULE += gnrc_sock_udp
 endif
 
 ifneq (,$(filter luid,$(USEMODULE)))
   FEATURES_OPTIONAL += periph_cpuid
 endif
 
+ifneq (,$(filter nanocoap_%,$(USEMODULE)))
+  USEMODULE += nanocoap
+endif
+
 # always select gpio (until explicit dependencies are sorted out)
 FEATURES_OPTIONAL += periph_gpio
 
diff --git a/makefiles/pseudomodules.inc.mk b/makefiles/pseudomodules.inc.mk
index 9bf81c929c5ac6914b0b931a763d6352555bddb7..1b499d119230ac5dc172bccce5930a568419dbea 100644
--- a/makefiles/pseudomodules.inc.mk
+++ b/makefiles/pseudomodules.inc.mk
@@ -46,6 +46,7 @@ PSEUDOMODULES += lwip_tcp
 PSEUDOMODULES += lwip_udp
 PSEUDOMODULES += lwip_udplite
 PSEUDOMODULES += mpu_stack_guard
+PSEUDOMODULES += nanocoap_%
 PSEUDOMODULES += netdev_default
 PSEUDOMODULES += netif
 PSEUDOMODULES += netstats
diff --git a/sys/net/application_layer/nanocoap/Makefile b/sys/net/application_layer/nanocoap/Makefile
index 48422e909a47d7cd428d10fa73825060ccc8d8c2..ff222a69b50811d294eeedf38e76c01fd694a1cb 100644
--- a/sys/net/application_layer/nanocoap/Makefile
+++ b/sys/net/application_layer/nanocoap/Makefile
@@ -1 +1,3 @@
+SRC := nanocoap.c
+SUBMODULES := 1
 include $(RIOTBASE)/Makefile.base
diff --git a/sys/net/application_layer/nanocoap/nanocoap_sock.c b/sys/net/application_layer/nanocoap/sock.c
similarity index 100%
rename from sys/net/application_layer/nanocoap/nanocoap_sock.c
rename to sys/net/application_layer/nanocoap/sock.c