201 lines
6.7 KiB
Makefile
201 lines
6.7 KiB
Makefile
#*******************************************************************
|
|
#*
|
|
#* FreeType 2 Configuration rules for Unix + gcc
|
|
#*
|
|
#* Copyright 1996-1999 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.
|
|
#*
|
|
#*
|
|
#* The purpose of this sub-Makefile is to define various build and
|
|
#* platform specific variables before including the sub-Makefile
|
|
#* containing the FreeType library rules, found in
|
|
#*
|
|
#* $(TOP)/config/freetype.mk
|
|
#*
|
|
#* The following variables must be defined before including this
|
|
#* file :
|
|
#*
|
|
#* TOP Pathname to the top of the FreeType sources
|
|
#* hierarchy
|
|
#*
|
|
#* This file should define the following variables before including
|
|
#* the FreeType library rules file :
|
|
#*
|
|
#* BUILD Pathname to the platform-specific files used
|
|
#* for the build. Usually `$(TOP)/config/<system>'
|
|
#*
|
|
#* SEP Directory separator used during compilation.
|
|
#* (usually "/" or "\"). Note that on Win32, both gcc
|
|
#* and Visual C++ use "/" as a directory separator !!
|
|
#*
|
|
#* HOSTSEP Directory separator for $(COPY) and $(DELETE)
|
|
#*
|
|
#* DELETE The forced remove/delete command to erase one or more
|
|
#* files
|
|
#*
|
|
#* INCLUDE The location of all public header files. e.g.
|
|
#* `$(TOP)/include'include' *
|
|
#*
|
|
#* SRC The directory containing all sources. e.g.
|
|
#* '$(TOP)/src'
|
|
#*
|
|
#* OBJ_DIR The location where compiled object files will be
|
|
#* placed, e.g. '$(TOP)/obj'
|
|
#*
|
|
#* LIB_DIR The location where the resulting library file will be
|
|
#* placed, e.g. '$(TOP)/obj'
|
|
#*
|
|
#* LIBRARY The filename of the resulting library file, without
|
|
#* its extension.. e.g. 'libfreetype' or 'freetype'
|
|
#*
|
|
#* O The object file suffix. Can be '.o', '.obj,' '.lo,'
|
|
#* ';coff,' etc.
|
|
#*
|
|
#* A The library file suffix. Can be '.a' '.so,' '.lib'
|
|
#* '.dll,' etc.
|
|
#*
|
|
#* I The path inclusion flag. Some compilers use a
|
|
#* different flag than '-I' to specify an additional
|
|
#* include path. Examples are '/i=' or '-J ', etc.
|
|
#*
|
|
#* D The macro definition flag. I haven't met compilers
|
|
#* which don't use the '-D' switch to define a macro, but
|
|
#* who knows...
|
|
#*
|
|
#* T The compilation flag used to identify the target. Some
|
|
#* compilers use a different flag than '-o ' to specify
|
|
#* the name of the target object file.
|
|
#*
|
|
#* CFLAGS The set of flags used to compile object files.
|
|
#* (usually contains the flag '-c').
|
|
#*
|
|
#*
|
|
#*
|
|
#*******************************************************************
|
|
|
|
ifndef TOP
|
|
TOP := .
|
|
endif
|
|
|
|
DELETE := del
|
|
SEP := /
|
|
HOSTSEP := $(strip \ )
|
|
BUILD := $(TOP)/config/win32
|
|
PLATFORM := win32
|
|
CC := gcc
|
|
|
|
# the directory where all object files are placed
|
|
#
|
|
# Note that this is not $(TOP)/obj !!
|
|
# This lets you build the library in your own directory
|
|
# with something like :
|
|
#
|
|
# set TOP=....../path/to/freetype2/top/dir...
|
|
# mkdir obj
|
|
# make -f %TOP%/Makefile setup [options]
|
|
# make -f %TOP%/Makefile
|
|
#
|
|
#
|
|
OBJ_DIR := obj
|
|
|
|
|
|
# the directory where all library files are placed
|
|
#
|
|
# by default, this is the same as OBJ_DIR, however, this can be
|
|
# changed to suit particular needs..
|
|
#
|
|
LIB_DIR := $(OBJ_DIR)
|
|
|
|
|
|
# the object file extension, this can be .o, .tco, .obj, etc..
|
|
# depending on the platform
|
|
#
|
|
O := o
|
|
|
|
# the library file extension, this can be .a, .lib, etc..
|
|
# depending on the platform
|
|
#
|
|
A := a
|
|
|
|
|
|
# The name of the final library file.
|
|
# Note that the DOS-specific Makefile uses a shorter (8.3) name
|
|
#
|
|
LIBRARY := libfreetype
|
|
|
|
|
|
# path inclusion flag.
|
|
#
|
|
# Some compilers use a different flag than '-I' to specify an
|
|
# additional include path. Examples are "/i=" or "-J", etc...
|
|
#
|
|
I := -I
|
|
|
|
|
|
# The link flag used to specify a given library file on link.
|
|
# Note that this is only used to compile the demo programs, not
|
|
# the library itself.
|
|
#
|
|
L := -l
|
|
|
|
|
|
# C flag used to define a macro before the compilation of a given
|
|
# source object. Usually is '-D' like in "-DDEBUG"
|
|
#
|
|
D := -D
|
|
|
|
|
|
# Target flag - beware, there is a space after the 'o' !!
|
|
#
|
|
#
|
|
T := -o
|
|
|
|
# C flags
|
|
#
|
|
# These should concern :
|
|
#
|
|
# - debug output
|
|
# - optimization
|
|
# - warnings
|
|
# - ansi compliance..
|
|
#
|
|
ifndef CFLAGS
|
|
CFLAGS := -c -g -O6 -Wall
|
|
endif
|
|
|
|
# ANSIFLAGS : put there the flags used to make your compiler ANSI-compliant
|
|
# nothing (if it already is by default like LCC).
|
|
#
|
|
ANSIFLAGS := -ansi -pedantic
|
|
|
|
ifdef BUILD_FREETYPE
|
|
|
|
include $(TOP)/config/freetype.mk
|
|
|
|
clean_freetype: clean_freetype_dos
|
|
distclean_freetype: distclean_freetype_dos
|
|
|
|
# Librarian to use to build the static library
|
|
#
|
|
FT_LIBRARIAN := $(AR) -r
|
|
|
|
|
|
# This final rule is used to link all object files into a single
|
|
# library. It is part of the system-specific sub-Makefile because not
|
|
# all librarians accept a simple syntax like :
|
|
#
|
|
# librarian library_file {list of object files}
|
|
#
|
|
$(FT_LIBRARY): $(OBJECTS_LIST)
|
|
-$(DELETE) $(subst $(SEP),$(HOSTSEP),$(FT_LIBRARY)) 2> nul
|
|
$(FT_LIBRARIAN) $@ $(OBJECTS_LIST)
|
|
|
|
endif
|
|
|