# | |
# FreeType 2 exports sub-Makefile | |
# | |
# Copyright 2005-2015 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 := $(wildcard $(PUBLIC_DIR)/*.h) | |
# 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 |