diff --git a/Makefile.include b/Makefile.include index 662662e5bd73b5db80203bece7470b9220edaf1c..f0aad19130b1fcee6fa0214f27098a93a566e1d6 100644 --- a/Makefile.include +++ b/Makefile.include @@ -309,6 +309,9 @@ clean-intermediates: -@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTPKG)/$$i clean ; done -@rm -rf $(BINDIR)/*.a $(BINDIR)/*/ +clean-pkg: + -@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTPKG)/$$i distclean ; done + distclean: -@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTPKG)/$$i distclean ; done -@rm -rf $(BINDIRBASE) diff --git a/pkg/ccn-lite/Makefile.include b/pkg/ccn-lite/Makefile.include index fdf03313e7bc6f3f4e077e0f2324e2fed206d139..391f1329eb1ff58e5d89474e8b65f6b795582c9f 100644 --- a/pkg/ccn-lite/Makefile.include +++ b/pkg/ccn-lite/Makefile.include @@ -1,2 +1,2 @@ -INCLUDES += -I$(RIOTPKG)/ccn-lite -I$(BINDIR)/pkg/ccn-lite/src +INCLUDES += -I$(RIOTPKG)/ccn-lite -I$(BINDIRBASE)/pkg/$(BOARD)/ccn-lite/src INCLUDES += -I$(RIOTBASE)/sys/posix/include diff --git a/pkg/cmsis-dsp/Makefile.include b/pkg/cmsis-dsp/Makefile.include index 3fdfa74e9a42e86be508ee1278159d67fb9dd9d9..168751983e86ed99a8f6bf9409dc61f99467f774 100644 --- a/pkg/cmsis-dsp/Makefile.include +++ b/pkg/cmsis-dsp/Makefile.include @@ -1 +1 @@ -INCLUDES += -I$(BINDIR)/pkg/cmsis-dsp/include +INCLUDES += -I$(BINDIRBASE)/pkg/$(BOARD)/cmsis-dsp/include diff --git a/pkg/libcoap/Makefile.include b/pkg/libcoap/Makefile.include index 7b3d3b97569804fb65fe17f5a919b2eb920cc5e3..464f0f3a09151a2bf99c19e51c8234a2ea227762 100644 --- a/pkg/libcoap/Makefile.include +++ b/pkg/libcoap/Makefile.include @@ -1,3 +1,3 @@ -INCLUDES += -I$(BINDIR)/pkg/libcoap \ +INCLUDES += -I$(BINDIRBASE)/pkg/$(BOARD)/libcoap \ -I$(RIOTBASE)/sys/posix/include \ -I$(RIOTBASE)/sys/net/include diff --git a/pkg/micro-ecc/Makefile.include b/pkg/micro-ecc/Makefile.include index 8f4031d44909cc6eb3c16d19d3de5b3d34249323..88480400b17823fab1e0934951133ad8daf825d2 100644 --- a/pkg/micro-ecc/Makefile.include +++ b/pkg/micro-ecc/Makefile.include @@ -1 +1 @@ -INCLUDES += -I$(BINDIR)/pkg/micro-ecc +INCLUDES += -I$(BINDIRBASE)/pkg/$(BOARD)/micro-ecc diff --git a/pkg/microcoap/Makefile.include b/pkg/microcoap/Makefile.include index af7e8531bfba014f1789ac0fb449d8b91c3d4073..84444392db31267583327fe0135b28c87227de89 100644 --- a/pkg/microcoap/Makefile.include +++ b/pkg/microcoap/Makefile.include @@ -1 +1 @@ -INCLUDES += -I$(BINDIR)/pkg/microcoap +INCLUDES += -I$(BINDIRBASE)/pkg/$(BOARD)/microcoap diff --git a/pkg/oonf_api/Makefile.include b/pkg/oonf_api/Makefile.include index 3f21746b137ab5668328d17210ff7467bf020054..03a1d2e990cf1e5b2dc2a993f0b5058a87c90d32 100644 --- a/pkg/oonf_api/Makefile.include +++ b/pkg/oonf_api/Makefile.include @@ -1 +1 @@ -INCLUDES += -I$(BINDIR)/pkg/oonf_api/src-api +INCLUDES += -I$(BINDIRBASE)/pkg/$(BOARD)/oonf_api/src-api diff --git a/pkg/pkg.mk b/pkg/pkg.mk index 51fa3f37107c8e0a778538ece2993306e0c067e2..52b4c32874f65d36ffba5f164f6b340288899cb7 100644 --- a/pkg/pkg.mk +++ b/pkg/pkg.mk @@ -2,23 +2,29 @@ # Include this file if your Package needs to be checked out by git # PKG_DIR?=$(CURDIR) -PKG_BUILDDIR?=$(BINDIR)/pkg/$(PKG_NAME) +PKG_BUILDDIR?=$(BINDIRBASE)/pkg/$(BOARD)/$(PKG_NAME) .PHONY: git-download git-download: $(PKG_BUILDDIR)/.git-downloaded +GIT_APPLY_PATCHES:=if test -d "$(PKG_DIR)"/patches; then \ + git -C "$(PKG_BUILDDIR)" am --ignore-whitespace "$(PKG_DIR)"/patches/*.patch; \ + fi + $(PKG_BUILDDIR)/.git-downloaded: mkdir -p $(PKG_BUILDDIR) $(GITCACHE) clone "$(PKG_URL)" "$(PKG_VERSION)" "$(PKG_BUILDDIR)" - if test -d "$(PKG_DIR)"/patches; then \ - git -C "$(PKG_BUILDDIR)" am --ignore-whitespace "$(PKG_DIR)"/patches/*.patch; \ - fi + $(GIT_APPLY_PATCHES) touch $@ clean:: - @echo "Cleaning package $(PKG_NAME)..." - rm -rf "$(PKG_BUILDDIR)" + @test -d $(PKG_BUILDDIR) && { \ + git -C $(PKG_BUILDDIR) clean -f ; \ + git -C $(PKG_BUILDDIR) checkout "$(PKG_VERSION)"; \ + $(GIT_APPLY_PATCHES) ; \ + touch $(PKG_BUILDDIR)/.git-downloaded ; \ + } > /dev/null 2>&1 || true distclean:: rm -rf "$(PKG_BUILDDIR)" diff --git a/pkg/relic/Makefile.include b/pkg/relic/Makefile.include index 9cd7350a59512034baab7d7aed0396d3079f90ce..b6777ad4434a2242ad717a995e84338796ee7813 100644 --- a/pkg/relic/Makefile.include +++ b/pkg/relic/Makefile.include @@ -1 +1 @@ -INCLUDES += -I$(BINDIR)/pkg/relic/include +INCLUDES += -I$(BINDIRBASE)/pkg/$(BOARD)/relic/include diff --git a/pkg/tlsf/Makefile b/pkg/tlsf/Makefile index 93aac0541501176030f3dcabf80037882d9f3dd6..fb27fb27490d712e98ba0a70608e1d20ee9d56fc 100644 --- a/pkg/tlsf/Makefile +++ b/pkg/tlsf/Makefile @@ -2,29 +2,29 @@ PKG_NAME = tlsf PKG_VERSION = 3.0 PKG_FILE = tlsf-$(PKG_VERSION).zip PKG_URL = http://download.riot-os.org/$(PKG_FILE) -PKG_DIR=$(CURDIR)/$(PKG_NAME) +PKG_DIR=$(CURDIR) +PKG_BUILDDIR=$(BINDIRBASE)/pkg/$(BOARD)/$(PKG_NAME) +PKG_SRCDIR=$(PKG_BUILDDIR)/src .PHONY: all clean distclean -all: $(PKG_DIR)/$(PKG_NAME).a +all: $(PKG_SRCDIR)/$(PKG_NAME).a -$(PKG_DIR)/$(PKG_NAME).a: $(PKG_DIR)/Makefile +$(PKG_SRCDIR)/$(PKG_NAME).a: $(PKG_SRCDIR)/Makefile $(AD)make -C $(<D) -$(PKG_DIR)/Makefile: $(CURDIR)/$(PKG_FILE) $(CURDIR)/patch.txt - @rm -rf $(@D) - @mkdir -p $(@D) - $(AD)cd $(@D) && $(UNZIP_HERE) $(CURDIR)/$(PKG_FILE) +$(PKG_SRCDIR)/Makefile: $(PKG_BUILDDIR)/$(PKG_FILE) $(CURDIR)/patch.txt + rm -rf $(@D) + mkdir -p $(@D) + $(AD)cd $(@D) && $(UNZIP_HERE) $(PKG_BUILDDIR)/$(PKG_FILE) $(AD)cd $(@D) && patch --binary -p0 -N -i $(CURDIR)/patch.txt -$(CURDIR)/$(PKG_FILE): +$(PKG_BUILDDIR)/$(PKG_FILE): + @mkdir -p $(@D) $(AD)$(DOWNLOAD_TO_FILE) $@ $(PKG_URL) clean:: - rm -rf $(PKG_DIR)/ - -distclean:: clean - rm -f $(CURDIR)/$(PKG_FILE) + rm -rf $(PKG_SRCDIR)/ -Makefile.include: - @true +distclean:: + rm -rf $(PKG_BUILDDIR)/ diff --git a/pkg/tlsf/Makefile.include b/pkg/tlsf/Makefile.include index 15ce4f125270cda5d6ee741171c4c11923381e51..3f00a5695fff18a9eedfd8a08a26f58aa0c976de 100644 --- a/pkg/tlsf/Makefile.include +++ b/pkg/tlsf/Makefile.include @@ -1 +1 @@ -INCLUDES += -I$(RIOTPKG)/tlsf/tlsf +INCLUDES += -I$(BINDIRBASE)/pkg/$(BOARD)/tlsf/src