| # |
| # FreeType 2 exports sub-Makefile |
| # |
| |
| |
| # Copyright (C) 2005-2020 by |
| # David Turner, Robert Wilhelm, and Werner Lemberg. |
| # |
| # This file is part of the FreeType project, and may only be used, modified, |
| # and distributed under the terms of the FreeType project license, |
| # LICENSE.TXT. By continuing to use, modify, or distribute this file you |
| # indicate that you have read the license and understand and accept it |
| # fully. |
| |
| |
| # DO NOT INVOKE THIS MAKEFILE DIRECTLY! IT IS MEANT TO BE INCLUDED BY |
| # OTHER MAKEFILES. |
| |
| |
| # This sub-Makefile is used to compute the list of exported symbols whenever |
| # the EXPORTS_LIST variable is defined by one of the platform or compiler |
| # specific build files. |
| # |
| # EXPORTS_LIST contains the name of the `list' file, for example a Windows |
| # .DEF file. |
| # |
| ifneq ($(EXPORTS_LIST),) |
| |
| # CCexe is the compiler used to compile the `apinames' tool program |
| # on the host machine. This isn't necessarily the same as the compiler |
| # which can be a cross-compiler for a different architecture, for example. |
| # |
| ifeq ($(CCexe),) |
| CCexe := $(CC) |
| endif |
| |
| # TE acts like T, but for executables instead of object files. |
| ifeq ($(TE),) |
| TE := $T |
| endif |
| |
| # The list of public headers we're going to parse. |
| PUBLIC_HEADERS := $(filter-out $(PUBLIC_DIR)/ftmac.h, \ |
| $(wildcard $(PUBLIC_DIR)/*.h)) |
| ifneq ($(ftmac_c),) |
| PUBLIC_HEADERS += $(PUBLIC_DIR)/ftmac.h |
| endif |
| |
| # The `apinames' source and executable. We use $E_BUILD as the host |
| # executable suffix, which *includes* the final dot. |
| # |
| # Note that $(APINAMES_OPTIONS) is empty, except for Windows compilers. |
| # |
| APINAMES_SRC := $(subst /,$(SEP),$(TOP_DIR)/src/tools/apinames.c) |
| APINAMES_EXE := $(subst /,$(SEP),$(OBJ_DIR)/apinames$(E_BUILD)) |
| |
| $(APINAMES_EXE): $(APINAMES_SRC) |
| $(CCexe) $(CCexe_CFLAGS) $(TE)$@ $< $(CCexe_LDFLAGS) |
| |
| .PHONY: symbols_list |
| |
| symbols_list: $(EXPORTS_LIST) |
| |
| # We manually add TT_New_Context and TT_RunIns, which are needed by TT |
| # debuggers, to the EXPORTS_LIST. |
| # |
| $(EXPORTS_LIST): $(APINAMES_EXE) $(PUBLIC_HEADERS) |
| $(subst /,$(SEP),$(APINAMES_EXE)) -o$@ $(APINAMES_OPTIONS) $(PUBLIC_HEADERS) |
| @echo TT_New_Context >> $(EXPORTS_LIST) |
| @echo TT_RunIns >> $(EXPORTS_LIST) |
| |
| $(PROJECT_LIBRARY): $(EXPORTS_LIST) |
| |
| CLEAN += $(EXPORTS_LIST) \ |
| $(APINAMES_EXE) |
| |
| endif |
| |
| |
| # EOF |