diff --git a/Makefile.include b/Makefile.include
index 59f5b573086a162d41127919ef0f3e2cd6f371a3..6bc01de23bf480ffdf759ea5c7deadd3b6ae0bb1 100644
--- a/Makefile.include
+++ b/Makefile.include
@@ -78,21 +78,34 @@ SRC = $(wildcard *.c)
 # string array of all names replaced .c with .o
 OBJ = $(SRC:%.c=${BINDIR}${PROJECT}/%.o)
 
-$(BINDIR)$(PROJECT).a:  $(OBJ)
+$(BINDIR)$(PROJECT).a: $(OBJ)
 	$(AD)$(AR) -rc $(BINDIR)$(PROJECT).a $(OBJ)
 
+# include Makefile.includes for packages in $(USEPKG)
+$(RIOTBASE)/pkg/%/Makefile.include::
+	$(AD)"$(MAKE)" -C $(RIOTBASE)/pkg/$* Makefile.include
+
+.PHONY: $(USEPKG:%=$(RIOTBASE)/pkg/%/Makefile.include)
+
+-include $(USEPKG:%=$(RIOTBASE)/pkg/%/Makefile.include)
+
 # pull in dependency info for *existing* .o files
 -include $(OBJ:.o=.d)
 
-$(BINDIR)$(PROJECT)/%.o: %.c $(PROJDEPS)
+$(BINDIR)$(PROJECT)/%.o: %.c $(PROJDEPS) $(USEPKG:%=${BINDIR}%.a)
+	@mkdir -p ${BINDIR}
 	@echo; echo "Compiling.... $*.c"; echo
 	@test -d $(BINDIR)$(PROJECT) || mkdir -p $(BINDIR)$(PROJECT)
 	$(AD)$(CC) $(CFLAGS) $(INCLUDES) -c $*.c -o $(BINDIR)$(PROJECT)/$*.o
 
+$(USEPKG:%=${BINDIR}%.a)::
+	@mkdir -p ${BINDIR}
+	"$(MAKE)" -C $(RIOTBASE)/pkg/$(patsubst ${BINDIR}%.a,%,$@)
+
 clean:
+	@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTBASE)/pkg/$$i clean ; done ;
 	"$(MAKE)" -C $(RIOTBOARD)/$(BOARD) clean
 	"$(MAKE)" -C $(RIOTBASE) clean
-	@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTBASE)/pkg/$$i clean ; done ;
 	rm -rf $(BINDIR)
 
 flash: all
diff --git a/pkg/libcoap/Makefile b/pkg/libcoap/Makefile
index 089d1c223036232e7d3b4248344c48a79fc94af4..9a91f013bd99b845e416d4f4358dedc31fd387b2 100644
--- a/pkg/libcoap/Makefile
+++ b/pkg/libcoap/Makefile
@@ -32,3 +32,6 @@ clean::
 
 distclean::
 	rm -rf $(CURDIR)/$(PKG_NAME)
+
+Makefile.include:
+	@true
diff --git a/pkg/libcoap/Makefile.include b/pkg/libcoap/Makefile.include
new file mode 100644
index 0000000000000000000000000000000000000000..0fbf281463e6ef2492a6d10ed41a57c53ef077d9
--- /dev/null
+++ b/pkg/libcoap/Makefile.include
@@ -0,0 +1 @@
+INCLUDES += -I $(RIOTBASE)/pkg/libcoap/include
diff --git a/pkg/libcoap/include/coap.h b/pkg/libcoap/include/coap.h
new file mode 100644
index 0000000000000000000000000000000000000000..b61cbd780fda94ed24326206182ffa9d6da37a27
--- /dev/null
+++ b/pkg/libcoap/include/coap.h
@@ -0,0 +1 @@
+#include "../libcoap/coap.h"