mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
f8f229b6f7
Once the repo is downloaded, the version is not checked gain. This means that even if a package's Makefile is touched, that will only cause a rebuild of the previously downloaded version. For packages that are normally not deleted, like edbg, this renders PKG_VERSION bumps ineffective, unless the user manually deletes the repo directory. This patch fixes that by always checking that the repo is at the right commit.
59 lines
1.7 KiB
Makefile
59 lines
1.7 KiB
Makefile
#
|
|
# Include this file if your Package needs to be checked out by git
|
|
#
|
|
PKG_DIR?=$(CURDIR)
|
|
PKG_BUILDDIR?=$(PKGDIRBASE)/$(PKG_NAME)
|
|
|
|
# allow overriding package source with local folder (useful during development)
|
|
ifneq (,$(PKG_SOURCE_LOCAL))
|
|
include $(RIOTBASE)/pkg/local.mk
|
|
else
|
|
|
|
.PHONY: prepare git-download clean git-ensure-version
|
|
|
|
prepare: git-download
|
|
|
|
ifneq (,$(wildcard $(PKG_DIR)/patches))
|
|
git-download: $(PKG_BUILDDIR)/.git-patched
|
|
else
|
|
git-download: git-ensure-version
|
|
endif
|
|
|
|
GITFLAGS ?= -c user.email=buildsystem@riot -c user.name="RIOT buildsystem"
|
|
GITAMFLAGS ?= --no-gpg-sign --ignore-whitespace
|
|
|
|
ifneq (,$(wildcard $(PKG_DIR)/patches))
|
|
$(PKG_BUILDDIR)/.git-patched: git-ensure-version $(PKG_DIR)/Makefile $(PKG_DIR)/patches/*.patch
|
|
git -C $(PKG_BUILDDIR) checkout -f $(PKG_VERSION)
|
|
git $(GITFLAGS) -C $(PKG_BUILDDIR) am $(GITAMFLAGS) "$(PKG_DIR)"/patches/*.patch
|
|
touch $@
|
|
endif
|
|
|
|
git-ensure-version: $(PKG_BUILDDIR)/.git-downloaded
|
|
if [ $(shell git -C $(PKG_BUILDDIR) rev-parse HEAD) != $(PKG_VERSION) ] ; then \
|
|
git -C $(PKG_BUILDDIR) clean -xdff ; \
|
|
git -C $(PKG_BUILDDIR) fetch "$(PKG_URL)" "$(PKG_VERSION)" ; \
|
|
git -C $(PKG_BUILDDIR) checkout -f $(PKG_VERSION) ; \
|
|
touch $(PKG_BUILDDIR)/.git-downloaded ; \
|
|
fi
|
|
|
|
$(PKG_BUILDDIR)/.git-downloaded:
|
|
rm -Rf $(PKG_BUILDDIR)
|
|
mkdir -p $(PKG_BUILDDIR)
|
|
$(GITCACHE) clone "$(PKG_URL)" "$(PKG_VERSION)" "$(PKG_BUILDDIR)"
|
|
touch $@
|
|
|
|
clean::
|
|
@test -d $(PKG_BUILDDIR) && { \
|
|
rm $(PKG_BUILDDIR)/.git-patched ; \
|
|
git -C $(PKG_BUILDDIR) clean -f ; \
|
|
git -C $(PKG_BUILDDIR) checkout "$(PKG_VERSION)"; \
|
|
make $(PKG_BUILDDIR)/.git-patched ; \
|
|
touch $(PKG_BUILDDIR)/.git-downloaded ; \
|
|
} > /dev/null 2>&1 || true
|
|
|
|
distclean::
|
|
rm -rf "$(PKG_BUILDDIR)"
|
|
|
|
endif
|