# -*- makefile -*-
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.

STANDALONE_MAKEFILE := 1
USE_AUTOTARGETS_MK  = 1
MAKEUTILS_UNIT_TEST = 1
include $(topsrcdir)/config/makefiles/makeutils.mk

dir-ts = .deps/test
check-arglist        = $(dir-ts)/arglist.ts
check-autotargets    = $(dir-ts)/autotargets_mk.ts
check-XinY           = $(dir-ts)/check_XinY_mk.ts
check-tests =\
  $(check-arglist) \
  $(check-autotargets) \
  $(check-XinY) \
  $(NULL)


##------------------_##
##---]  TARGETS  [---##
##------------------_##
all::

clean:
	$(RM) $(check-tests)

###########################################################################
## Logic processed at compile time so be selective about when to test
## $(MAKE) check VERBOSE=1
ifneq ($(NULL),$(findstring check,$(MAKECMDGOALS))) #

check-preqs =\
  $(call mkdir_deps,$(dir-ts)) \
  $(check-tests) \
  $(NULL)

check:: $(check-preqs)
	@true


ifdef VERBOSE #{ gmake check VERBOSE=1
  $(info ===========================================================================)
  $(info Running test: $(MAKECMDGOALS): pwd=$(CURDIR))
  $(info ===========================================================================)
endif #}

ifndef requiredfunction
  $(error requiredfunction is not defined)
endif


##################
check-XinY-preqs=\
  $(call mkdir_deps,$(dir-ts)) \
  $(topsrcdir)/config/makefiles/makeutils.mk \
  $(srcdir)/check_XinY.mk \
  $(eval include $(srcdir)/check_XinY.mk) \
  $(NULL)

$(check-XinY): $(check-XinY-preqs)
	@$(TOUCH) $@
# </check-XinY.mk>


###########################################################################
## check-arglist.mk always invoked as a compile time test
## maintain real file dependencies for use later on.
check-arglist-preqs=\
  $(call mkdir_deps,$(dir-ts)) \
  $(topsrcdir)/config/makefiles/makeutils.mk \
  $(srcdir)/check-arglist.mk \
  $(eval include $(srcdir)/check-arglist.mk) \
  $(NULL)

$(check-arglist): $(check-arglist-preqs)
	@$(TOUCH) $@
# </check-arglist.mk>


###########################################################################
# <CHECK: autotargets.mk>
check-autotargets-preqs=\
  $(call mkdir_deps,$(dir-ts)) \
  $(topsrcdir)/config/makefiles/makeutils.mk \
  $(topsrcdir)/config/makefiles/autotargets.mk \
  $(srcdir)/check-autotargets.mk \
  $(eval include $(srcdir)/check-autotargets.mk) \
  $(NULL)

$(check-autotargets): $(check-autotargets-preqs)
	@$(TOUCH) $@
# </CHECK: autotargets.mk>

endif #} findstring MAKECMDGOAL
