1#
2# FreeType 2 template for Unix-specific compiler definitions
3#
4
5# Copyright (C) 1996-2020 by
6# David Turner, Robert Wilhelm, and Werner Lemberg.
7#
8# This file is part of the FreeType project, and may only be used, modified,
9# and distributed under the terms of the FreeType project license,
10# LICENSE.TXT.  By continuing to use, modify, or distribute this file you
11# indicate that you have read the license and understand and accept it
12# fully.
13
14
15CC           := @CC@
16COMPILER_SEP := $(SEP)
17FT_LIBTOOL_DIR ?= $(BUILD_DIR)
18
19LIBTOOL := $(FT_LIBTOOL_DIR)/libtool
20
21
22# The object file extension (for standard and static libraries).  This can be
23# .o, .tco, .obj, etc., depending on the platform.
24#
25O  := lo
26SO := o
27
28
29# The executable file extension.  Although most Unix platforms use no
30# extension, we copy the extension detected by autoconf.  Useful for cross
31# building on Unix systems for non-Unix systems.
32#
33E := @EXEEXT@
34
35
36# The library file extension (for standard and static libraries).  This can
37# be .a, .lib, etc., depending on the platform.
38#
39A  := la
40SA := a
41
42
43# The name of the final library file.  Note that the DOS-specific Makefile
44# uses a shorter (8.3) name.
45#
46LIBRARY := lib$(PROJECT)
47
48
49# Path inclusion flag.  Some compilers use a different flag than `-I' to
50# specify an additional include path.  Examples are `/i=' or `-J'.
51#
52I := -I
53
54
55# C flag used to define a macro before the compilation of a given source
56# object.  Usually it is `-D' like in `-DDEBUG'.
57#
58D := -D
59
60
61# The link flag used to specify a given library file on link.  Note that
62# this is only used to compile the demo programs, not the library itself.
63#
64L := -l
65
66
67# Target flag.
68#
69T := -o$(space)
70
71
72# C flags
73#
74#   These should concern: debug output, optimization & warnings.
75#
76#   Use the ANSIFLAGS variable to define the compiler flags used to enfore
77#   ANSI compliance.
78#
79#   We use our own FreeType configuration files overriding defaults.
80#
81CPPFLAGS := @CPPFLAGS@
82CFLAGS   := -c @XX_CFLAGS@ @CFLAGS@ \
83            $DFT_CONFIG_CONFIG_H="<ftconfig.h>" \
84            $DFT_CONFIG_MODULES_H="<ftmodule.h>" \
85            $DFT_CONFIG_OPTIONS_H="<ftoption.h>"
86
87# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
88#
89ANSIFLAGS := @XX_ANSIFLAGS@
90
91# C compiler to use -- we use libtool!
92#
93# CC might be set on the command line; we store this value in `CCraw'.
94# Consequently, we use the `override' directive to ensure that the
95# libtool call is always prepended.
96#
97CCraw       := $(CC)
98override CC := $(LIBTOOL) --mode=compile $(CCraw)
99
100# Resource compiler to use on Cygwin/MinGW, usually windres.
101#
102RCraw := @RC@
103ifneq ($(RCraw),)
104  RC := $(LIBTOOL) --tag=RC --mode=compile $(RCraw)
105endif
106
107# Linker flags.
108#
109LDFLAGS           := @LDFLAGS@
110LIB_CLOCK_GETTIME := @LIB_CLOCK_GETTIME@  # for ftbench
111
112
113# export symbols
114#
115CCraw_build  := @CC_BUILD@	# native CC of building system
116E_BUILD      := @EXEEXT_BUILD@	# extension for executable on building system
117EXPORTS_LIST := $(OBJ_DIR)/ftexport.sym
118CCexe        := $(CCraw_build)	# used to compile `apinames' only
119
120
121# Library linking
122#
123LINK_LIBRARY = $(LIBTOOL) --mode=link $(CCraw) -o $@ $(OBJECTS_LIST) \
124                          -rpath $(libdir) -version-info $(version_info) \
125                          $(LDFLAGS) -no-undefined \
126                          -export-symbols $(EXPORTS_LIST)
127
128# EOF
129