2016-04-21 19:01:11 +03:00
i f d e f E N A B L E _ X A M A R I N
2018-03-30 02:38:50 +03:00
NEEDED_MACCORE_VERSION := 312828e025b2c9906ffbe6e14ae99bdf713cefea
2018-06-12 15:31:38 +03:00
NEEDED_MACCORE_BRANCH := xcode10
2016-04-21 19:01:11 +03:00
MACCORE_DIRECTORY := maccore
2017-03-22 16:11:51 +03:00
MACCORE_MODULE := git@github.com:xamarin/maccore.git
2016-04-21 19:01:11 +03:00
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)
d e f i n e C h e c k V e r s i o n T e m p l a t e
check-$(1) ::
2018-02-09 17:20:06 +03:00
@rm -f $( THISDIR) /.stamp-reset-$( 1)
2016-04-21 19:01:11 +03:00
@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 \
2017-07-19 10:35:05 +03:00
echo " Your $( 1) checkout is $( COLOR_RED) missing $( COLOR_CLEAR) , please run 'make reset- $( 1) ' " ; \
2016-04-21 19:01:11 +03:00
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 \
2017-07-19 10:35:05 +03:00
echo " Your $( 1) version is $( COLOR_RED) out of date $( COLOR_CLEAR) , please run 'make reset- $( 1) ' (found $( $( 2) _VERSION) , expected $( NEEDED_$( 2) _VERSION) ). Alternatively export IGNORE_ $( 2) _VERSION=1 to skip this check. " ; \
2016-04-21 19:01:11 +03:00
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 \
2017-07-19 10:35:05 +03:00
echo " Your $( 1) branch is $( COLOR_RED) out of date $( COLOR_CLEAR) , please run 'make reset- $( 1) ' (found $( $( 2) _BRANCH) , expected $( NEEDED_$( 2) _BRANCH) ). Alternatively export IGNORE_ $( 2) _VERSION=1 to skip this check. " ; \
2016-04-21 19:01:11 +03:00
touch .check-versions-failure; \
fi ; \
else \
2017-07-19 10:35:05 +03:00
echo " $( 1) is $( COLOR_GREEN) up-to-date $( COLOR_CLEAR) . " ; \
2016-04-21 19:01:11 +03:00
fi ; \
fi ; \
2017-07-19 10:35:05 +03:00
else \
echo " $( 1) is $( COLOR_GRAY) ignored $( COLOR_CLEAR) . " ; \
2016-04-21 19:01:11 +03:00
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)
2018-02-09 17:20:06 +03:00
@touch $( THISDIR) /.stamp-reset-$( 1)
2016-04-21 19:01:11 +03:00
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)
2018-02-09 17:20:06 +03:00
reset-versions-impl :: reset -$( 1)
2016-04-21 19:01:11 +03:00
check-versions :: check -$( 1)
print-versions :: print -$( 1)
DEPENDENCY_DIRECTORIES += $( $( 2) _PATH)
e n d e f
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 ) )
- i n c l u d e $( MACCORE_PATH ) / m k / v e r s i o n s . m k
2016-05-31 12:09:52 +03:00
$(MACCORE_PATH)/mk/versions.mk : | $( MACCORE_PATH )
2016-04-21 19:01:11 +03:00
e n d i f