# -*- 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/.
#

###########################################################################
## Intent: Standalone unit tests for makefile rules and target logic
###########################################################################

deps =$(NULL)
tgts =$(NULL)

ifdef VERBOSE
  tgts += show
endif

# Define macros
include $(topsrcdir)/config/makefiles/makeutils.mk
include $(topsrcdir)/config/makefiles/autotargets.mk

##########################
## Verify threadsafe mkdir
##########################
ifdef deps_mkdir_bycall
  deps += $(call mkdir_deps,deps_mkdir_bycall)
  tgts += check_mkdir
endif
ifdef deps_mkdir_bydep
  deps += $(foreach dir,$(deps_mkdir_bydep),$(dir)/.mkdir.done)
  tgts += check_mkdir
endif
ifdef deps_mkdir_bygen
  GENERATED_DIRS += $(deps_mkdir_bygen)
  tgts += check_mkdir
endif

###########################
## Minimal environment load
###########################
MKDIR ?= mkdir -p
TOUCH ?= touch

INCLUDED_CONFIG_MK = 1
MOZILLA_DIR := $(topsrcdir)
include $(topsrcdir)/config/rules.mk

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

# Quarks:
#   o Use of 'all' would trigger export target processing
checkup: $(tgts)

# AUTO_DEPS - verify GENERATED_DIRS
check_mkdir: $(deps) $(AUTO_DEPS)

show:
	@echo "tgts=[$(tgts)]"
	@echo "deps=[$(deps)]"
	find $(dir $(deps)) -print
