1# 2# FreeType 2 exports sub-Makefile 3# 4 5 6# Copyright 2005-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 sub-Makefile is used to compute the list of exported symbols whenever 21# the EXPORTS_LIST variable is defined by one of the platform or compiler 22# specific build files. 23# 24# EXPORTS_LIST contains the name of the `list' file, for example a Windows 25# .DEF file. 26# 27ifneq ($(EXPORTS_LIST),) 28 29 # CCexe is the compiler used to compile the `apinames' tool program 30 # on the host machine. This isn't necessarily the same as the compiler 31 # which can be a cross-compiler for a different architecture, for example. 32 # 33 ifeq ($(CCexe),) 34 CCexe := $(CC) 35 endif 36 37 # TE acts like T, but for executables instead of object files. 38 ifeq ($(TE),) 39 TE := $T 40 endif 41 42 # The list of public headers we're going to parse. 43 PUBLIC_HEADERS := $(filter-out $(PUBLIC_DIR)/ftmac.h, \ 44 $(wildcard $(PUBLIC_DIR)/*.h)) 45 ifneq ($(ftmac_c),) 46 PUBLIC_HEADERS += $(PUBLIC_DIR)/ftmac.h 47 endif 48 49 # The `apinames' source and executable. We use $E_BUILD as the host 50 # executable suffix, which *includes* the final dot. 51 # 52 # Note that $(APINAMES_OPTIONS) is empty, except for Windows compilers. 53 # 54 APINAMES_SRC := $(subst /,$(SEP),$(TOP_DIR)/src/tools/apinames.c) 55 APINAMES_EXE := $(subst /,$(SEP),$(OBJ_DIR)/apinames$(E_BUILD)) 56 57 $(APINAMES_EXE): $(APINAMES_SRC) 58 $(CCexe) $(CCexe_CFLAGS) $(TE)$@ $< $(CCexe_LDFLAGS) 59 60 .PHONY: symbols_list 61 62 symbols_list: $(EXPORTS_LIST) 63 64 # We manually add TT_New_Context and TT_RunIns, which are needed by TT 65 # debuggers, to the EXPORTS_LIST. 66 # 67 $(EXPORTS_LIST): $(APINAMES_EXE) $(PUBLIC_HEADERS) 68 $(subst /,$(SEP),$(APINAMES_EXE)) -o$@ $(APINAMES_OPTIONS) $(PUBLIC_HEADERS) 69 @echo TT_New_Context >> $(EXPORTS_LIST) 70 @echo TT_RunIns >> $(EXPORTS_LIST) 71 72 $(PROJECT_LIBRARY): $(EXPORTS_LIST) 73 74 CLEAN += $(EXPORTS_LIST) \ 75 $(APINAMES_EXE) 76 77endif 78 79 80# EOF 81