#******************************************************************************
#*
#*  FreeType build system - top-level Makefile
#*
#*  This file is designed for GNU Make, do not use it with another Make tool.
#*  It works as follows :
#*
#*  - when invoked for the first time, this Makefile will include
#*    the rules found in `freetype/config/detect.mk'. They are in charge
#*    of detecting the current platform.
#*
#*    A summary of the detection will be displayed, and the file `config.mk'
#*    will be created in the current directory
#*
#*
#*  - when invoked later, this Makefile will include the rules found in
#*    `config.mk'. This sub-Makefile will define some system-specific
#*    variables (like compiler, compilation flags, object suffix, etc..),
#*    then include the rules found in `freetype/config/freetype.mk',
#*    used to build the library.
#*
#*  See the comments in `config/detect.mk' and `config/freetype.mk' for
#*  more details on host platform detection and library builds..
#*
#******************************************************************************

.PHONY: setup

#
# The variable TOP holds the path to the topmost directory in the FreeType
# engine source hierarchy. If it is not defined, default it to '.'
#
ifndef TOP
TOP := .
endif

CONFIG_MK := config.mk

#############################################################################
#
# If no configuration sub-makefile is present, or if "setup" is the target
# to be built, run the auto-detection rules to figure out which configuration
# rules file to use.. 
#
# Note that the configuration file is put in the current directory, which is
# not necessarily TOP.
#

# if `config.mk' is not present, set "check_platform" and "first_time"
#
ifeq ($(wildcard $(CONFIG_MK)),)
check_platform := 1
first_time     := 1
endif

# if `setup' is one of the targets requested, set "check_platform"
#
ifneq ($(findstring setup,$(MAKECMDGOALS)),)
check_platform := 1
endif


#########################################################################
#
# include the automatic host platform detection rules when we need to
# check the platform.
#
#
ifdef check_platform

all: setup


# if the module list $(FT_MODULE_LIST) file is not present,
# generate it
#
modules: make_module_list setup

include $(TOP)/config/detect.mk
include $(TOP)/config/modules.mk

ifeq ($(wildcard $(FT_MODULE_LIST)),)
setup: make_module_list
endif


# "setup" must be defined by the host platform detection rules
# to create the 'config.mk' file in the current directory.
#



else

########################################################################
#
# A configuration sub-Makefile is present, simply run it..
#
#
all: build_freetype

modules: make_module_list

BUILD_FREETYPE := yes
include $(CONFIG_MK)

endif #test check_platform