2016-04-21 19:01:11 +03:00
|
|
|
ifdef ENABLE_XAMARIN
|
2016-12-03 03:53:36 +03:00
|
|
|
NEEDED_MACCORE_VERSION := 63121a575eff6fa291c28d0f70bacff97b0ecc72
|
2016-04-26 17:33:56 +03:00
|
|
|
NEEDED_MACCORE_BRANCH := master
|
2016-04-21 19:01:11 +03:00
|
|
|
|
|
|
|
MACCORE_DIRECTORY := maccore
|
|
|
|
MACCORE_MODULE := git@github.com:xamarin/maccore.git
|
|
|
|
MACCORE_VERSION := $(shell cd $(MACCORE_PATH) 2> /dev/null && git rev-parse HEAD 2> /dev/null)
|
|
|
|
MACCORE_BRANCH := $(shell cd $(MACCORE_PATH) 2> /dev/null && git symbolic-ref --short HEAD 2> /dev/null)
|
|
|
|
MACCORE_REMOTE := origin
|
|
|
|
MACCORE_BRANCH_AND_REMOTE := $(NEEDED_MACCORE_BRANCH) $(MACCORE_REMOTE)/$(NEEDED_MACCORE_BRANCH)
|
|
|
|
NEEDED_MACCORE_REMOTE := $(MACCORE_REMOTE)
|
|
|
|
|
|
|
|
define CheckVersionTemplate
|
|
|
|
check-$(1)::
|
|
|
|
@if test x$$(IGNORE_$(2)_VERSION) = "x"; then \
|
|
|
|
if test ! -d $($(2)_PATH); then \
|
|
|
|
if test x$$(RESET_VERSIONS) != "x"; then \
|
|
|
|
make reset-$(1) || exit 1; \
|
|
|
|
else \
|
|
|
|
echo "Your $(1) checkout is missing, please run 'make reset-$(1)'"; \
|
|
|
|
touch .check-versions-failure; \
|
|
|
|
fi; \
|
|
|
|
else \
|
|
|
|
if test "x$($(2)_VERSION)" != "x$(NEEDED_$(2)_VERSION)" ; then \
|
|
|
|
if test x$$(RESET_VERSIONS) != "x"; then \
|
|
|
|
make reset-$(1) || exit 1; \
|
|
|
|
else \
|
|
|
|
echo "Your $(1) version is out of date, please run 'make reset-$(1)' (found $($(2)_VERSION), expected $(NEEDED_$(2)_VERSION))"; \
|
|
|
|
test -z "$(BUILD_REVISION)" || $(MAKE) test-$(1); \
|
|
|
|
touch .check-versions-failure; \
|
|
|
|
fi; \
|
|
|
|
elif test "x$($(2)_BRANCH)" != "x$(NEEDED_$(2)_BRANCH)" ; then \
|
|
|
|
if test x$$(RESET_VERSIONS) != "x"; then \
|
|
|
|
test -z "$(BUILD_REVISION)" || $(MAKE) test-$(1); \
|
|
|
|
make reset-$(1) || exit 1; \
|
|
|
|
else \
|
|
|
|
echo "Your $(1) branch is out of date, please run 'make reset-$(1)' (found $($(2)_BRANCH), expected $(NEEDED_$(2)_BRANCH))"; \
|
|
|
|
touch .check-versions-failure; \
|
|
|
|
fi; \
|
|
|
|
else \
|
|
|
|
echo "$(1) is up-to-date."; \
|
|
|
|
fi; \
|
|
|
|
fi; \
|
|
|
|
fi
|
|
|
|
|
|
|
|
test-$(1)::
|
|
|
|
@echo $(1)
|
|
|
|
@echo " $(2)_DIRECTORY=$($(2)_DIRECTORY)"
|
|
|
|
@echo " $(2)_MODULE=$($(2)_MODULE)"
|
|
|
|
@echo " NEEDED_$(2)_VERSION=$(NEEDED_$(2)_VERSION)"
|
|
|
|
@echo " $(2)_VERSION=$($(2)_VERSION)"
|
|
|
|
@echo " $(2)_BRANCH_AND_REMOTE=$($(2)_BRANCH_AND_REMOTE)"
|
|
|
|
@echo " NEEDED_$(2)_BRANCH=$(NEEDED_$(2)_BRANCH)"
|
|
|
|
@echo " NEEDED_$(2)_REMOTE=$(NEEDED_$(2)_REMOTE)"
|
|
|
|
@echo " $(2)_BRANCH=$($(2)_BRANCH)"
|
|
|
|
@echo " $(2)_PATH=$($(2)_PATH) => $(abspath $($(2)_PATH))"
|
|
|
|
|
|
|
|
reset-$(1)::
|
|
|
|
@if test -d $($(2)_PATH); then \
|
|
|
|
if ! (cd $($(2)_PATH) && git show $(NEEDED_$(2)_VERSION) >/dev/null 2>&1 && git log -1 $(NEEDED_$(2)_REMOTE) >/dev/null 2>&1) ; then \
|
|
|
|
echo "*** git fetch `basename $$($(2)_PATH)`" && (cd $($(2)_PATH) && git fetch); \
|
|
|
|
fi; \
|
|
|
|
else \
|
|
|
|
echo "*** git clone $($(2)_MODULE) --recursive $($(2)_DIRECTORY) -b $(NEEDED_$(2)_BRANCH)"; \
|
|
|
|
mkdir -p `dirname $($(2)_PATH)`; \
|
|
|
|
(cd $(abspath $($(2)_PATH)/..) && git clone $($(2)_MODULE) --recursive $($(2)_DIRECTORY) -b $(NEEDED_$(2)_BRANCH)); \
|
|
|
|
fi
|
|
|
|
@if test x$$(IGNORE_$(2)_VERSION) = "x"; then \
|
|
|
|
echo "*** [$(1)] git checkout -f" $(NEEDED_$(2)_BRANCH) && (cd $($(2)_PATH) && git checkout -f $(NEEDED_$(2)_BRANCH) || git checkout -f -b $($(2)_BRANCH_AND_REMOTE)); \
|
|
|
|
echo "*** [$(1)] git reset --hard $(NEEDED_$(2)_VERSION)" && (cd $($(2)_PATH) && git reset --hard $(NEEDED_$(2)_VERSION)); \
|
|
|
|
fi
|
|
|
|
@echo "*** [$(1)] git submodule update --init --recursive" && (cd $($(2)_PATH) && git submodule update --init --recursive)
|
|
|
|
|
|
|
|
print-$(1)::
|
|
|
|
@printf "*** %-16s %-45s %s (%s)\n" "$(DIRECTORY_$(2))" "$(MODULE_$(2))" "$(NEEDED_$(2)_VERSION)" "$(NEEDED_$(2)_BRANCH)"
|
|
|
|
|
|
|
|
.PHONY: check-$(1) reset-$(1) print-$(1)
|
|
|
|
|
|
|
|
reset-versions:: reset-$(1)
|
|
|
|
check-versions:: check-$(1)
|
|
|
|
print-versions:: print-$(1)
|
|
|
|
|
|
|
|
DEPENDENCY_DIRECTORIES += $($(2)_PATH)
|
|
|
|
|
|
|
|
endef
|
|
|
|
|
2016-05-31 12:09:52 +03:00
|
|
|
$(MACCORE_PATH):
|
2016-05-31 17:29:15 +03:00
|
|
|
$(Q) git clone --recursive $(MACCORE_MODULE) $(MACCORE_PATH)
|
2016-05-31 19:51:32 +03:00
|
|
|
$(Q) $(MAKE) reset-maccore
|
2016-04-21 19:01:11 +03:00
|
|
|
|
|
|
|
$(eval $(call CheckVersionTemplate,maccore,MACCORE))
|
|
|
|
-include $(MACCORE_PATH)/mk/versions.mk
|
2016-05-31 12:09:52 +03:00
|
|
|
$(MACCORE_PATH)/mk/versions.mk: | $(MACCORE_PATH)
|
2016-04-21 19:01:11 +03:00
|
|
|
endif
|