1#
2# FreeType 2 modules sub-Makefile
3#
4
5
6# Copyright 1996-2018 by
7# David Turner, Robert Wilhelm, and Werner Lemberg.
8#
9# This file is part of the FreeType project, and may only be used, modified,
10# and distributed under the terms of the FreeType project license,
11# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
12# indicate that you have read the license and understand and accept it
13# fully.
14
15
16# DO NOT INVOKE THIS MAKEFILE DIRECTLY!  IT IS MEANT TO BE INCLUDED BY
17# OTHER MAKEFILES.
18
19
20# This file is in charge of handling the generation of the modules list
21# file.
22
23
24# Build the modules list.
25#
26$(FTMODULE_H): $(MODULES_CFG)
27	$(FTMODULE_H_INIT)
28	$(FTMODULE_H_CREATE)
29	$(FTMODULE_H_DONE)
30
31ifneq ($(findstring $(PLATFORM),dos windows os2),)
32  OPEN_MODULE   := @echo$(space)
33  CLOSE_MODULE  :=  >> $(subst /,$(SEP),$(FTMODULE_H))
34  REMOVE_MODULE := @-$(DELETE) $(subst /,$(SEP),$(FTMODULE_H))
35else
36  OPEN_MODULE   := @echo "
37  CLOSE_MODULE  := " >> $(FTMODULE_H)
38  REMOVE_MODULE := @-$(DELETE) $(FTMODULE_H)
39endif
40
41
42define FTMODULE_H_INIT
43$(REMOVE_MODULE)
44@-echo Generating modules list in $(FTMODULE_H)...
45$(OPEN_MODULE)/* This is a generated file. */$(CLOSE_MODULE)
46endef
47
48# It is no mistake that the final closing parenthesis is on the
49# next line -- it produces proper newlines during the expansion
50# of `foreach'.
51#
52define FTMODULE_H_CREATE
53$(foreach COMMAND,$(FTMODULE_H_COMMANDS),$($(COMMAND))
54)
55endef
56
57define FTMODULE_H_DONE
58$(OPEN_MODULE)/* EOF */$(CLOSE_MODULE)
59@echo done.
60endef
61
62
63# $(OPEN_DRIVER) & $(CLOSE_DRIVER) are used to specify a given font driver
64# in the `module.mk' rules file.
65#
66OPEN_DRIVER  := $(OPEN_MODULE)FT_USE_MODULE(
67CLOSE_DRIVER := )$(CLOSE_MODULE)
68
69ECHO_DRIVER      := @echo "* module:$(space)
70ECHO_DRIVER_DESC := (
71ECHO_DRIVER_DONE := )"
72
73# Each `module.mk' in the `src/*' subdirectories adds a variable with
74# commands to $(FTMODULE_H_COMMANDS).  Note that we can't use SRC_DIR here.
75#
76-include $(patsubst %,$(TOP_DIR)/src/%/module.mk,$(MODULES))
77
78
79# EOF
80