ref: febe3fbeba450a8916338e4bd7abdfe8f2e346f6
parent: 8c5c932e467cc55c71c7dc2785d4fa37016c20c7
author: Werner Lemberg <[email protected]>
date: Sat Mar 4 20:14:19 EST 2000
A first check of FT2's Make system. Many smaller and larger bugs have been fixed: . Removing unused variables. . detect.mk files now must provide $(CONFIG_FILE) and not $(CONFIG_RULE). . ansi.mk will now be really used as a fallback if the detect mechanism fails. . ANSIFLAGS will now be really used (fixing a typo). . `make clean' now works (again two typos). . Detection of gcc on Unix has been fixed (using the `-v' option instead of `--version'). . `make devel' now works (on Unix). . Fixing *again* a bug in demos/graph/x11/rules.mk to allow multiple use of `-L' compiler options. . $(BASE_H) now contains a few more header files. As usual, a lot of formatting (not finished yet).
--- a/Makefile
+++ b/Makefile
@@ -1,108 +1,103 @@
-#******************************************************************************
-#*
-#* FreeType build system - top-level Makefile
-#*
-#* This file is designed for GNU Make, do not use it with another Make tool.
-#* It works as follows :
-#*
-#* - when invoked for the first time, this Makefile will include
-#* the rules found in `freetype/config/detect.mk'. They are in charge
-#* of detecting the current platform.
-#*
-#* A summary of the detection will be displayed, and the file `config.mk'
-#* will be created in the current directory
-#*
-#*
-#* - when invoked later, this Makefile will include the rules found in
-#* `config.mk'. This sub-Makefile will define some system-specific
-#* variables (like compiler, compilation flags, object suffix, etc..),
-#* then include the rules found in `freetype/config/freetype.mk',
-#* used to build the library.
-#*
-#* See the comments in `config/detect.mk' and `config/freetype.mk' for
-#* more details on host platform detection and library builds..
-#*
-#******************************************************************************
+#
+# FreeType 2 build system -- top-level Makefile
+#
-.PHONY: setup
+# Copyright 1996-2000 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.
+
+
+# This file is designed for GNU Make, do not use it with another Make tool!
+#
+# It works as follows:
+#
+# - When invoked for the first time, this Makefile will include the rules
+# found in `freetype/config/detect.mk'. They are in charge of detecting
+# the current platform.
+#
+# A summary of the detection will be displayed, and the file `config.mk'
+# will be created in the current directory.
+#
+# - When invoked later, this Makefile will include the rules found in
+# `config.mk'. This sub-Makefile will define some system-specific
+# variables (like compiler, compilation flags, object suffix, etc.), then
+# include the rules found in `freetype/config/freetype.mk', used to build
+# the library.
+#
+# See the comments in `config/detect.mk' and `config/freetype.mk' for more
+# details on host platform detection and library builds.
+
+
+.PHONY: setup
+
# The variable TOP holds the path to the topmost directory in the FreeType
-# engine source hierarchy. If it is not defined, default it to '.'
+# engine source hierarchy. If it is not defined, default it to `.'.
#
ifndef TOP
-TOP := .
+ TOP := .
endif
CONFIG_MK := config.mk
-#############################################################################
+# If no configuration sub-makefile is present, or if `setup' is the target
+# to be built, run the auto-detection rules to figure out which
+# configuration rules file to use.
#
-# If no configuration sub-makefile is present, or if "setup" is the target
-# to be built, run the auto-detection rules to figure out which configuration
-# rules file to use..
-#
# Note that the configuration file is put in the current directory, which is
-# not necessarily TOP.
-#
+# not necessarily $(TOP).
-# if `config.mk' is not present, set "check_platform" and "first_time"
+# If `config.mk' is not present, set `check_platform'.
#
ifeq ($(wildcard $(CONFIG_MK)),)
-check_platform := 1
-first_time := 1
+ check_platform := 1
endif
-# if `setup' is one of the targets requested, set "check_platform"
+# If `setup' is one of the targets requested, set `check_platform'.
#
ifneq ($(findstring setup,$(MAKECMDGOALS)),)
-check_platform := 1
+ check_platform := 1
endif
-
-#########################################################################
-#
-# include the automatic host platform detection rules when we need to
+# Include the automatic host platform detection rules when we need to
# check the platform.
#
-#
ifdef check_platform
-all: setup
+ all: setup
+ # If the module list $(FT_MODULE_LIST) file is not present, generate it.
+ #
+ modules: make_module_list setup
-# if the module list $(FT_MODULE_LIST) file is not present,
-# generate it
-#
-modules: make_module_list setup
+ include $(TOP)/config/detect.mk
+ include $(TOP)/config/modules.mk
-include $(TOP)/config/detect.mk
-include $(TOP)/config/modules.mk
+ ifeq ($(wildcard $(FT_MODULE_LIST)),)
+ setup: make_module_list
+ endif
-ifeq ($(wildcard $(FT_MODULE_LIST)),)
-setup: make_module_list
-endif
+ # IMPORTANT:
+ #
+ # `setup' must be defined by the host platform detection rules to create
+ # the `config.mk' file in the current directory.
-
-# "setup" must be defined by the host platform detection rules
-# to create the 'config.mk' file in the current directory.
-#
-
-
-
else
-########################################################################
-#
-# A configuration sub-Makefile is present, simply run it..
-#
-#
-all: build_freetype
+ # A configuration sub-Makefile is present -- simply run it.
+ #
+ all: build_freetype
-modules: make_module_list
+ modules: make_module_list
-BUILD_FREETYPE := yes
-include $(CONFIG_MK)
+ BUILD_FREETYPE := yes
+ include $(CONFIG_MK)
-endif #test check_platform
+endif # test check_platform
+# EOF
--- a/config/ansi/ansi.mk
+++ b/config/ansi/ansi.mk
@@ -1,23 +1,20 @@
-#*******************************************************************
-#*
-#* FreeType 2 Configuration rules for a `normal' ANSI compiler
-#*
-#* Copyright 1996-2000 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.
-#*
-#* Please read the file "freetype/docs/config.txt" to understand
-#* what this file does..
-#*
-#*******************************************************************
+#
+# FreeType 2 configuration rules for a `normal' ANSI compiler
+#
+
+# Copyright 1996-2000 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.
+
+
ifndef TOP
-TOP := .
+ TOP := .
endif
DELETE := rm -f
@@ -26,109 +23,110 @@
BUILD := $(TOP)/config/ansi
PLATFORM := ansi
-# the directory where all object files are placed
+# 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 :
+# 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
+# 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
+# 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..
+# 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
+# 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
+# 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
+# The name of the final library file. Note that the DOS-specific Makefile
+# uses a shorter (8.3) name.
#
LIBRARY := libfreetype
-# path inclusion flag.
+# Path inclusion flag. Some compilers use a different flag than `-I' to
+# specify an additional include path. Examples are `/i=' or `-J'.
#
-# Some compilers use a different flag than '-I' to specify an
-# additional include path. Examples are "/i=" or "-J", etc...
-#
I := -I
-# C flag used to define a macro before the compilation of a given
-# source object. Usually is '-D' like in "-DDEBUG"
+# 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' !!
+# 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.
#
-#
-T := -o
+L := -l
-# 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.
+# Target flag.
#
-L := -l
+T := -o # Don't remove this comment line! We need the space after `-o'.
# C flags
#
-# These should concern : debug output, optimization & warnings
+# These should concern: debug output, optimization & warnings.
#
-# Use the ANSIFLAGS variable to define the compiler flags used
-# to enfore ANSI compliance..
+# Use the ANSIFLAGS variable to define the compiler flags used to enfore
+# ANSI compliance.
#
ifndef CFLAGS
-CFLAGS := -c
+ CFLAGS := -c
endif
-# ANSIFLAGS : put there the flags used to make your compiler ANSI-compliant
-# nothing (if it already is by default like LCC).
+# ANSIFLAGS: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS :=
-# Now include the main sub-makefile. It contains all the rules used
-# to build the library with the previous variables defined
-#
-include $(TOP)/config/freetype.mk
-clean_freetype: clean_freetype_std
-distclean_freetype: clean_freetype_library_std
+ifdef BUILD_FREETYPE
-# Librarian to use to build the static library
-#
-FT_LIBRARIAN := $(AR) -r
+ # Now include the main sub-makefile. It contains all the rules used to
+ # build the library with the previous variables defined.
+ #
+ include $(TOP)/config/freetype.mk
+ # The cleanup targets.
+ #
+ clean_freetype: clean_freetype_std
+ distclean_freetype: distclean_freetype_std
-# 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) $@
- $(FT_LIBRARIAN) $@ $(OBJECTS_LIST)
+ # 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) $@
+ $(FT_LIBRARIAN) $@ $(OBJECTS_LIST)
+
+endif
+
+# EOF
--- a/config/detect.mk
+++ b/config/detect.mk
@@ -1,127 +1,130 @@
-#****************************************************************************
-#* *
-#* FreeType host platform detection rules *
-#* *
-#* 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. *
-#* *
-#* *
-#* This sub-Makefile is in charge of detecting the current platform *
-#* It sets some variables accordingly. Namely : *
-#* *
-#* PLATFORM The detected platform. This will default to "ansi" if *
-#* auto-detection fails. *
-#* *
-#* BUILD The configuration and system-specific directory. Usually *
-#* 'freetype/config/$(PLATFORM)' but can be different when *
-#* a specific compiler has been requested on the *
-#* command line.. *
-#* *
-#* CONFIG_RULES The Makefile to use. This usually depends on the compiler *
-#* defined in the 'CC' environment variable. *
-#* *
-#* DELETE The shell command used to remove a given file *
-#* COPY The shell command used to copy one file *
-#* *
-#* You need to set the following variable(s) before calling it: *
-#* *
-#* TOP The top-most directory in the FreeType library source *
-#* hierarchy. If not defined, it will default to '.' *
-#* *
-#****************************************************************************
-
-# If TOP is not defined, default it to '.'
#
-ifndef TOP
-TOP := .
-endif
-
+# FreeType 2 host platform detection rules
#
-# set auto-detection default to ANSI.
-# Note that we delay the valuation of BUILD and RULES
-#
-PLATFORM := ansi
-CONFIG = $(TOP)$(SEP)config
-DELETE := $(RM)
-COPY := cp
-SEP := /
-BUILD = $(CONFIG)$(SEP)$(PLATFORM)
-CONFIG_FILE = $(BUILD)/Makefile
+# Copyright 1996-2000 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.
-###########################################################################
+
+# This sub-Makefile is in charge of detecting the current platform. It sets
+# the following variables:
#
-# Now, include each detection rules file found in a `config/<system>'
-# directory..
+# BUILD The configuration and system-specific directory. Usually
+# `freetype/config/$(PLATFORM)' but can be different if a
+# specific compiler has been requested on the command line.
#
+# The following variables must be defined in system specific `detect.mk'
+# files:
#
+# PLATFORM The detected platform. This will default to `ansi' if
+# auto-detection fails.
+# CONFIG_FILE The Makefile to use. This usually depends on the compiler
+# defined in the `CC' environment variable.
+# DELETE The shell command used to remove a given file.
+# COPY The shell command used to copy one file.
+# SEP The platform-specific directory separator.
+# CC The compiler to use.
+#
+# You need to set the following variable(s) before calling it:
+#
+# TOP The top-most directory in the FreeType library source
+# hierarchy. If not defined, it will default to `.'.
-# we define the BACKSLASH variable to hold a single back-slash character
+# If TOP is not defined, default it to `.'
+#
+ifndef TOP
+TOP := .
+endif
+
+# Set auto-detection default to `ansi'.
+# Note that we delay the evaluation of $(CONFIG_), $(BUILD), and
+# $(CONFIG_RULES).
+#
+PLATFORM := ansi
+DELETE := $(RM)
+COPY := cp
+SEP := /
+
+CONFIG_ = $(TOP)$(SEP)config$(SEP)
+BUILD = $(CONFIG_)$(PLATFORM)
+CONFIG_RULES = $(BUILD)$(SEP)$(CONFIG_FILE)
+
+# We define the BACKSLASH variable to hold a single back-slash character.
# This is needed because a line like
#
-# SEP := \
+# SEP := \
#
-# does not work with GNU Make (the back-slash is interpreted as a line
-# continuation). While a line like :
+# does not work with GNU Make (the backslash is interpreted as a line
+# continuation). While a line like
#
-# SEP := \\
+# SEP := \\
#
-# really define $(SEP) as "\" on Unix, and "\\" on Dos and Windows !!
+# really defines $(SEP) as `\' on Unix, and `\\' on Dos and Windows!
#
BACKSLASH := $(strip \ )
-include $(wildcard $(CONFIG)/*/detect.mk)
+# Now, include all detection rule files found in the `config/<system>'
+# directories. Note that the calling order of the various `detect.mk' files
+# isn't predictable.
+#
+include $(wildcard $(CONFIG_)*/detect.mk)
+# In case no detection rule file was successful, use the default.
+#
+ifndef CONFIG_FILE
+ CONFIG_FILE := ansi.mk
+ setup: std_setup
+endif
# The following targets are equivalent, with the exception that they use
-# slightly different syntaxes for the `echo' command. This is due to
+# slightly different syntaxes for the `echo' command.
#
-# std_setup: is defined for most platforms
-# dos_setup: is defined for Dos-ish platforms like Dos, Windows & OS/2
+# std_setup: defined for most platforms
+# dos_setup: defined for Dos-ish platforms like Dos, Windows & OS/2
#
+.PHONY: std_setup dos_setup
-.PHONY: std_setup dos_setup
-
std_setup:
@echo ""
- @echo "FreeType build system - automatic system detection"
+ @echo "FreeType build system -- automatic system detection"
@echo ""
- @echo "The following settings were detected :"
+ @echo "The following settings are used:"
@echo ""
- @echo " platform : $(PLATFORM)"
- @echo " compiler : $(CC)"
- @echo " configuration directory : $(BUILD)"
- @echo " configuration rules : $(CONFIG_RULES)"
+ @echo " platform $(PLATFORM)"
+ @echo " compiler $(CC)"
+ @echo " configuration directory $(BUILD)"
+ @echo " configuration rules $(CONFIG_RULES)"
@echo ""
@echo "If this does not correspond to your system or settings please remove the file"
@echo "\`$(CONFIG_MK)' from this directory then read the INSTALL file for help."
@echo ""
- @echo "Otherwise, simple type \`make' again to build the library"
+ @echo "Otherwise, simply type \`make' again to build the library."
@echo ""
@$(COPY) $(CONFIG_RULES) $(CONFIG_MK)
dos_setup:
@echo - @echo FreeType build system - automatic system detection
+ @echo FreeType build system -- automatic system detection
@echo - @echo The following settings were detected :
+ @echo The following settings are used:
@echo - @echo ��platform�����������������: $(PLATFORM)
- @echo ��compiler�����������������: $(CC)
- @echo ��configuration directory��: $(BUILD)
- @echo ��configuration rules������: $(CONFIG_RULES)
+ @echo ��platform���������������������$(PLATFORM)
+ @echo ��compiler���������������������$(CC)
+ @echo ��configuration directory������$(BUILD)
+ @echo ��configuration rules����������$(CONFIG_RULES)
@echo @echo If this does not correspond to your system or settings please remove the file
@echo '$(CONFIG_MK)' from this directory then read the INSTALL file for help.
@echo - @echo Otherwise, simple type 'make' again to build the library
+ @echo Otherwise, simply type 'make' again to build the library.
@echo @$(COPY) $(subst /,\,$(CONFIG_RULES) $(CONFIG_MK)) > nul
+# EOF
--- a/config/dos/detect.mk
+++ b/config/dos/detect.mk
@@ -1,87 +1,91 @@
#
-# This file is used to detect a DOS host platform.
+# FreeType 2 configuration file to detect a DOS host platform.
#
-# This configuration file to be used depends on the value of the CC
-# environment variable.
-#
-#
-# We test for the COMSPEC environment variable, then run the 'ver'
-# command-line program to see if its output contains the word "Dos"
+
+# Copyright 1996-2000 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
#
-# If this is true, we're running a Dos-ish platform (or an emulation)
-#
+# 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.
-ifeq ($(PLATFORM),ansi)
-ifdef COMSPEC
+# This configuration file to be used depends on the value of the CC
+# environment variable which is set below according to the compiler name
+# given as a parameter to make.
-is_dos := $(findstring Dos,$(shell ver))
-# We try to recognize a Dos session under OS/2. The "ver" command
-# returns 'Operating System/2 ...' there, so 'is_dos' should be empty
-# there.
+# We test for the COMSPEC environment variable, then run the `ver'
+# command-line program to see if its output contains the word `Dos'.
#
-# To recognize a Dos session under OS/2, we check COMSPEC for the
-# substring "MDOS\COMMAND"
+# If this is true, we are running a Dos-ish platform (or an emulation).
#
-ifeq ($(is_dos),)
-is_dos := $(findstring MDOS\COMMAND,$(COMSPEC))
-endif
+ifeq ($(PLATFORM),ansi)
-ifneq ($(is_dos),)
+ ifdef COMSPEC
-PLATFORM := dos
-DELETE := del
-COPY := copy
+ is_dos := $(findstring Dos,$(shell ver))
-#####################################################################
-#
-# Use gcc, i.e. DJGPP by default. Aren't we biased ;-)
-#
-#
-CONFIG_FILE := dos-gcc.mk
-SEP := /
-ifndef CC
-CC := gcc
-endif
+ # We try to recognize a Dos session under OS/2. The `ver' command
+ # returns `Operating System/2 ...' there, so `is_dos' should be empty
+ # there.
+ #
+ # To recognize a Dos session under OS/2, we check COMSPEC for the
+ # substring `MDOS\COMMAND'
+ #
+ ifeq ($(is_dos),)
+ is_dos := $(findstring MDOS\COMMAND,$(COMSPEC))
+ endif
+ ifneq ($(is_dos),)
-ifneq ($(findstring turboc,$(MAKECMDGOALS)),) # Turbo C
-CONFIG_FILE := dos-tcc.mk
-SEP := $(BACKSLASH)
-CC := tcc
-.PHONY: turboc
-endif
+ PLATFORM := dos
+ DELETE := del
+ COPY := copy
-ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
-CONFIG_FILE := dos-wat.mk
-SEP := $(BACKSLASH)
-CC := wcc386
-.PHONY: watcom
-endif
+ # Use DJGPP (i.e. gcc) by default.
+ #
+ CONFIG_FILE := dos-gcc.mk
+ SEP := /
+ ifndef CC
+ CC := gcc
+ endif
-ifneq ($(findstring borlandc16,$(MAKECMDGOALS)),) # Borland C/C++ 16 bits
-CONFIG_FILE := dos-bcc.mk
-SEP := $(BACKSLASH)
-CC := bcc
-.PHONY: borlandc16
-endif
+ ifneq ($(findstring turboc,$(MAKECMDGOALS)),) # Turbo C
+ CONFIG_FILE := dos-tcc.mk
+ SEP := $(BACKSLASH)
+ CC := tcc
+ .PHONY: turboc
+ endif
-ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C/C++ 32 bits
-CONFIG_FILE := dos-bcc.mk
-SEP := $(BACKSLASH)
-CC := bcc32
-.PHONY: borlandc
-endif
+ ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
+ CONFIG_FILE := dos-wat.mk
+ SEP := $(BACKSLASH)
+ CC := wcc386
+ .PHONY: watcom
+ endif
-CONFIG_RULES := $(TOP)\config\dos\$(CONFIG_FILE)
+ ifneq ($(findstring borlandc16,$(MAKECMDGOALS)),) # Borland C/C++ 16 bits
+ CONFIG_FILE := dos-bcc.mk
+ SEP := $(BACKSLASH)
+ CC := bcc
+ .PHONY: borlandc16
+ endif
-# use the Dos version of the "setup dump"
-#
-setup: dos_setup
+ ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C/C++ 32 bits
+ CONFIG_FILE := dos-bcc.mk
+ SEP := $(BACKSLASH)
+ CC := bcc32
+ .PHONY: borlandc
+ endif
-endif # test Dos
-endif # test COMSPEC
-endif # test PLATFORM
+ setup: dos_setup
+ endif # test Dos
+ endif # test COMSPEC
+endif # test PLATFORM
+
+# EOF
--- a/config/dos/dos-gcc.mk
+++ b/config/dos/dos-gcc.mk
@@ -1,23 +1,20 @@
-#*******************************************************************
-#*
-#* FreeType 2 Configuration rules for Dos + GCC
-#*
-#* Copyright 1996-2000 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.
-#*
-#* Please read the file "freetype/docs/config.txt" to understand
-#* what this file does..
-#*
-#*******************************************************************
+#
+# FreeType 2 configuration rules for the DJGPP compiler
+#
+
+# Copyright 1996-2000 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.
+
+
ifndef TOP
-TOP := .
+ TOP := .
endif
DELETE := rm -f
@@ -26,106 +23,110 @@
BUILD := $(TOP)/config/dos
PLATFORM := dos
-# the directory where all object files are placed
+# 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 :
+# 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
+# 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
+# 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..
+# 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
+# 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
+# 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
+# The name of the final library file. Note that the DOS-specific Makefile
+# uses a shorter (8.3) name.
#
LIBRARY := libfreetype
-# path inclusion flag.
+# Path inclusion flag. Some compilers use a different flag than `-I' to
+# specify an additional include path. Examples are `/i=' or `-J'.
#
-# 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.
+# C flag used to define a macro before the compilation of a given source
+# object. Usually is `-D' like in `-DDEBUG'.
#
-L := -l
+D := -D
-# C flag used to define a macro before the compilation of a given
-# source object. Usually is '-D' like in "-DDEBUG"
+# 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.
#
-D := -D
+L := -l
-# Target flag - beware, there is a space after the 'o' !!
+# Target flag.
#
-#
-T := -o
+T := -o # Don't remove this comment line! We need the space after `-o'.
+
# C flags
#
-# These should concern :
+# These should concern: debug output, optimization & warnings.
#
-# - debug output
-# - optimization
-# - warnings
-# - ansi compliance..
+# Use the ANSIFLAGS variable to define the compiler flags used to enfore
+# ANSI compliance.
#
ifndef CFLAGS
-CFLAGS := -c -g -O6 -Wall
+ 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: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS := -ansi -pedantic
+
ifdef BUILD_FREETYPE
-include $(TOP)/config/freetype.mk
+ # Now include the main sub-makefile. It contains all the rules used to
+ # build the library with the previous variables defined.
+ #
+ include $(TOP)/config/freetype.mk
-clean_freetype: clean_freetype_dos
-distclean_freetype: distclean_freetype_dos
+ # The cleanup targets.
+ #
+ 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) $@
- $(AR) -r $@ $(OBJECTS_LIST)
+ # 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) $@
+ $(FT_LIBRARIAN) $@ $(OBJECTS_LIST)
+
endif
+
+# EOF
--- a/config/freetype.mk
+++ b/config/freetype.mk
@@ -1,57 +1,51 @@
-#****************************************************************************
-#* *
-#* FreeType library sub-Makefile *
-#* *
-#* 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. *
-#* *
-#* *
-#* *
-#* DO NOT INVOKE THIS MAKEFILE DIRECTLY. IT IS MEANT TO BE INCLUDED BY *
-#* OTHER MAKEFILES. *
-#* *
-#****************************************************************************
+#
+# FreeType 2 library sub-Makefile
+#
-# include the 'modules' rules file
+# Copyright 1996-2000 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
#
-include $(TOP)/config/modules.mk
+# 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 targets `objects', `library' are defined at the end of
-# this Makefile when all rules have been included..
+
+# DO NOT INVOKE THIS MAKEFILE DIRECTLY! IT IS MEANT TO BE INCLUDED BY
+# OTHER MAKEFILES.
+
+
+# The targets `objects' and `library' are defined at the end of this
+# Makefile when all rules have been included.
#
.PHONY: build_freetype objects library
-# default target - build objects and library
+# default target -- build objects and library
#
build_freetype: objects library
-# `multi' target - build multiple objects and library
+# `multi' target -- build multiple objects and library
#
multi: objects library
-# The FreeType sources directory.
+# The FreeType source directory.
#
SRC := $(TOP)$(SEP)src
-# The directory where the base layer components are placed.
-# By default, this is 'freetype/src/base'
+# The directory where the base layer components are placed. By default,
+# this is `freetype/src/base'.
#
BASE_DIR := $(SRC)$(SEP)base
-# A Few short-cuts in order to avoid typing $(SEP) all the time for
-# the directory separator
+# A few short-cuts in order to avoid typing $(SEP) all the time for the
+# directory separator.
#
-# For example: SRC_ equals to './src/' where '.' is $(TOP)
+# For example: SRC_ equals to `./src/' where `.' is $(TOP).
#
#
SRC_ := $(SRC)$(SEP)
@@ -61,6 +55,7 @@
PUBLIC_ := $(TOP)$(SEP)include$(SEP)
CONFIG_ := $(TOP)$(SEP)config$(SEP)
+
# The name of the final library file.
#
FT_LIBRARY := $(LIB_)$(LIBRARY).$A
@@ -69,10 +64,10 @@
# include paths
#
# IMPORTANT NOTE: The architecture-dependent directory must ALWAYS be placed
-# in front of the include list. Porters are then able to put
-# their own version of some of the FreeType components in
-# the 'freetype/config/<system>' directory, as these files
-# will override the default sources.
+# in front of the include list. Porters are then able to
+# put their own version of some of the FreeType components
+# in the `freetype/config/<system>' directory, as these
+# files will override the default sources.
#
INCLUDES := $(BUILD) $(TOP)$(SEP)config $(TOP)$(SEP)include $(INCLUDES)
@@ -80,34 +75,37 @@
# C flags used for the compilation of an object file. This must include at
-# least the paths for the 'base' and 'config/<system>' directories,
+# least the paths for the `base' and `config/<system>' directories,
# debug/optimization/warning flags + ansi compliance if needed.
#
FT_CFLAGS = $(CFLAGS) $(INCLUDE_FLAGS)
FT_CC = $(CC) $(FT_CFLAGS)
-FT_COMPILE = $(CC) $(ANSI_FLAGS) $(FT_CFLAGS)
+FT_COMPILE = $(CC) $(ANSIFLAGS) $(FT_CFLAGS)
+# include the `modules' rules file
#
-# Free the lists of driver objects
+include $(CONFIG_)modules.mk
+
+
+# Free the lists of driver objects.
#
COMPONENTS_LIST :=
DRIVERS_LIST :=
OBJECTS_LIST :=
-# System-specific component - this must be defined in this Makefile
-# for easy updates. The default Ansi ftsystem.c is located in
-# 'freetype/config/ftsystem.c'. However, some system-specific
-# configuration might define FTSYS_SRC to fetch it in other places,
-# like 'freetype/config/<system>/ftsystem.c'
+# System-specific component -- this must be defined in this Makefile for
+# easy updates. The default ANSI ftsystem.c is located in
+# `freetype/config/ftsystem.c'. However, some system-specific configuration
+# might define $(FTSYS_SRC) to fetch it in other places, like
+# `freetype/config/<system>/ftsystem.c'.
#
-# BASE_H is defined in src/base/rules.mk and contains the list of all
+# $(BASE_H) is defined in `src/base/rules.mk' and contains the list of all
# base layer header files.
#
ifndef FTSYS_SRC
-FTSYS_SRC = $(BASE_)ftsystem.c
+ FTSYS_SRC = $(BASE_)ftsystem.c
endif
-
FTSYS_OBJ = $(OBJ_)ftsystem.$O
OBJECTS_LIST += $(FTSYS_OBJ)
@@ -118,10 +116,9 @@
# ftdebug component
#
-# FTDebug contains code used to print traces and errors. It is
-# normally empty for a release build (see ftoption.h)
+# FTDebug contains code used to print traces and errors. It is normally
+# empty for a release build (see ftoption.h).
#
-
FTDEBUG_SRC = $(BASE_)ftdebug.c
FTDEBUG_OBJ = $(OBJ_)ftdebug.$O
@@ -131,21 +128,20 @@
$(FT_COMPILE) $T$@ $<
-
-# Define PUBLIC_H as the list of all public header files located in
-# `$(TOP)/include'
+# Define $(PUBLIC_H) as the list of all public header files located in
+# `$(TOP)/include'.
#
PUBLIC_H := $(wildcard $(PUBLIC_)*.h)
-# Include all rule files from FreeType components
+# Include all rule files from FreeType components.
#
-#
include $(wildcard $(SRC)/*/rules.mk)
-# FTInit file:
+
+# FTInit file
#
-# The C source 'ftinit.c' contains the FreeType initialisation routines.
+# The C source `ftinit.c' contains the FreeType initialization routines.
# It is able to automatically register one or more drivers when the API
# function FT_Init_FreeType() is called.
#
@@ -152,7 +148,7 @@
# The set of initial drivers is determined by the driver Makefiles
# includes above. Each driver Makefile updates the FTINIT_xxxx lists
# which contain additional include paths and macros used to compile the
-# single 'ftinit.c' source.
+# single `ftinit.c' source.
#
FTINIT_SRC := $(BASE_)ftinit.c
FTINIT_OBJ := $(OBJ_)ftinit.$O
@@ -166,26 +162,25 @@
# All FreeType library objects
#
# By default, we include the base layer extensions. These could be
-# ommitted on builds which do not want them.
+# omitted on builds which do not want them.
#
OBJ_M = $(BASE_OBJ_M) $(BASE_EXT_OBJ) $(DRV_OBJS_M)
-
OBJ_S = $(BASE_OBJ_S) $(BASE_EXT_OBJ) $(DRV_OBJS_S)
-# the target 'multi' on the Make command line indicates that we want
-# to compile each source file independently..
+
+# The target `multi' on the Make command line indicates that we want to
+# compile each source file independently.
#
-# Otherwise, each module/driver is compiled in a single object file
-# through source file inclusion (see 'src/base/ftbase.c' or
-# 'src/truetype/truetype.c' for examples)
+# Otherwise, each module/driver is compiled in a single object file through
+# source file inclusion (see `src/base/ftbase.c' or
+# `src/truetype/truetype.c' for examples).
#
-
BASE_OBJECTS := $(OBJECTS_LIST)
ifneq ($(findstring multi,$(MAKECMDGOALS)),)
-OBJECTS_LIST += $(OBJ_M)
+ OBJECTS_LIST += $(OBJ_M)
else
-OBJECTS_LIST += $(OBJ_S)
+ OBJECTS_LIST += $(OBJ_S)
endif
objects: $(OBJECTS_LIST)
@@ -196,36 +191,36 @@
$(FT_COMPILE) $T$@ $<
-# Standard cleaning and distclean rules. These are not accepted
-# on all systems though..
+# Standard cleaning and distclean rules. These are not accepted
+# on all systems though.
#
clean_freetype_std:
- -$(DELETE) $(BASE_OBJECTS) $(OBJS_M) $(OBJS_S)
+ -$(DELETE) $(BASE_OBJECTS) $(OBJ_M) $(OBJ_S)
distclean_freetype_std: clean_freetype_std
-$(DELETE) $(FT_LIBRARY)
-$(DELETE) *.orig *~ core *.core
-# The Dos command shell does not support very long list of arguments
-# so we're stuck with wildcards
+# The Dos command shell does not support very long list of arguments, so
+# we are stuck with wildcards.
#
-
clean_freetype_dos:
- -del $(subst $(SEP),$(HOSTSEP),$(OBJ_))*.$O 2> nul
+ -$(DELETE) $(subst $(SEP),$(HOSTSEP),$(OBJ_))*.$O 2> nul
distclean_freetype_dos: clean_freetype_dos
- -del $(subst $(SEP),$(HOSTSEP),$(FT_LIBRARY)) 2> nul
+ -$(DELETE) $(subst $(SEP),$(HOSTSEP),$(FT_LIBRARY)) 2> nul
-# remove configuration file (used for distclean)
+# Remove configuration file (used for distclean).
#
remove_config_mk:
-$(DELETE) $(subst $(SEP),$(HOSTSEP),$(CONFIG_MK))
-# the "config.mk" must define 'clean_freetype' and 'distclean_freetype'
-# implementations may use to relay these to either the 'std' or 'dos'
-# versions, or simply provide their own implementation..
+
+# The `config.mk' file must define `clean_freetype' and
+# `distclean_freetype'. Implementations may use to relay these to either
+# the `std' or `dos' versions, or simply provide their own implementation.
#
clean: clean_freetype
distclean: distclean_freetype remove_config_mk
-# END
+# EOF
--- a/config/modules.mk
+++ b/config/modules.mk
@@ -1,69 +1,73 @@
-#****************************************************************************
-#* *
-#* FreeType modules sub-Makefile *
-#* *
-#* 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. *
-#* *
-#* *
-#* *
-#* DO NOT INVOKE THIS MAKEFILE DIRECTLY. IT IS MEANT TO BE INCLUDED BY *
-#* OTHER MAKEFILES. *
-#* *
-#* This file is in charge of handling the generation of the modules list *
-#* file, normally located in `config/ftmodule.h' *
-#* *
-#****************************************************************************
+#
+# FreeType 2 modules sub-Makefile
+#
+
+# Copyright 1996-2000 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 file is in charge of handling the generation of the modules list
+# file, normally located in `config/ftmodule.h'.
+
.PHONY: make_module_list clean_module_list remake_module_list
-# MODULE_LIST, as it name suggests, indicate where the modules list
-# reside. For now, it is in $(BUILD)/ftmodule.h
+# MODULE_LIST, as its name suggests, indicates where the modules list
+# resides. For now, it is in `config/ftmodule.h'.
#
ifndef FT_MODULE_LIST
-FT_MODULE_LIST := $(TOP)$(SEP)config$(SEP)ftmodule.h
+ FT_MODULE_LIST := $(CONFIG_)ftmodule.h
endif
-# To build the modules list, we invoke the `make_module_list' target
+# To build the modules list, we invoke the `make_module_list' target.
#
#$(FT_MODULE_LIST): make_module_list
-# Before the modules list file can be generated, we must remove the
-# file in order to `clean' the list
+# Before the modules list file can be generated, we must remove the file in
+# order to `clean' the list.
#
clean_module_list:
@-$(DELETE) $(subst $(SEP),$(HOSTSEP),$(FT_MODULE_LIST))
- @-echo Regenerating the font drivers list in $(FT_MODULE_LIST)
+ @-echo Regenerating the font drivers list in $(FT_MODULE_LIST)...
make_module_list: clean_module_list
- @echo -- done --
+ @echo done.
+
+# Trailing spaces are protected with a `#' sign to avoid accidental
+# removing.
+#
ifneq ($(findstring $(PLATFORM),dos win32 win16 os2),)
-OPEN_MODULE := @echo
-CLOSE_MODULE := >> $(FT_MODULE_LIST)
+ OPEN_MODULE := @echo #
+ CLOSE_MODULE := >> $(FT_MODULE_LIST)
else
-OPEN_MODULE := @echo "
-CLOSE_MODULE := " >> $(FT_MODULE_LIST)
+ OPEN_MODULE := @echo "
+ CLOSE_MODULE := " >> $(FT_MODULE_LIST)
endif
-# OPEN_DRIVER & CLOSE_DRIVER are used to specify a given font driver
-# in the `module.mk' rules file
+# $(OPEN_DRIVER) & $(CLOSE_DRIVER) are used to specify a given font driver
+# in the `module.mk' rules file.
#
OPEN_DRIVER := $(OPEN_MODULE)FT_DRIVER(
CLOSE_DRIVER := )$(CLOSE_MODULE)
-ECHO_DRIVER := @echo "* driver:
+ECHO_DRIVER := @echo "* driver: #
ECHO_DRIVER_DESC := (
ECHO_DRIVER_DONE := )"
-# each `module.mk' in the `src' sub-dirs is used to add one rule to
-# the target `make_module_list'.
+# Each `module.mk' in the `src' sub-dirs is used to add one rule to the
+# target `make_module_list'.
#
include $(wildcard $(TOP)/src/*/module.mk)
+# EOF
--- a/config/os2/detect.mk
+++ b/config/os2/detect.mk
@@ -1,54 +1,64 @@
#
-# This file is used to detect an OS/2 host, and set the build variables
-# accordingly..
+# FreeType 2 configuration file to detect an OS/2 host platform.
#
-# which Makefile to use based on the value of the CC environment variable.
+
+
+# Copyright 1996-2000 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
#
-# OS/2
-#
-#
+# 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.
+
+# This configuration file to be used depends on the value of the CC
+# environment variable which is set below according to the compiler name
+# given as a parameter to make.
+
+
ifeq ($(PLATFORM),ansi)
-ifdef OS2_SHELL
+ ifdef OS2_SHELL
-PLATFORM := os2
-COPY := copy
-DELETE := del
+ PLATFORM := os2
+ COPY := copy
+ DELETE := del
-CONFIG_FILE := os2-gcc.mk # gcc-emx by default
-SEP := /
+ CONFIG_FILE := os2-gcc.mk # gcc-emx by default
+ SEP := /
-ifneq ($(findstring visualage,$(MAKECMDGOALS)),) # Visual Age C++
-CONFIG_FILE := os2-icc.mk
-SEP := $(BACKSLASH)
-CC := icc
-.PHONY: visualage
-endif
+ ifneq ($(findstring visualage,$(MAKECMDGOALS)),) # Visual Age C++
+ CONFIG_FILE := os2-icc.mk
+ SEP := $(BACKSLASH)
+ CC := icc
+ .PHONY: visualage
+ endif
-ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
-CONFIG_FILE := os2-wat.mk
-SEP := $(BACKSLASH)
-CC := wcc386
-.PHONY: watcom
-endif
+ ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
+ CONFIG_FILE := os2-wat.mk
+ SEP := $(BACKSLASH)
+ CC := wcc386
+ .PHONY: watcom
+ endif
-ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C++ 32 bits
-CONFIG_FILE := os2-bcc.mk
-SEP := $(BACKSLASH)
-CC := bcc32
-.PHONY: borlandc
-endif
+ ifneq ($(findstring borlandc,$(MAKECMDGOALS)),) # Borland C++ 32 bits
+ CONFIG_FILE := os2-bcc.mk
+ SEP := $(BACKSLASH)
+ CC := bcc32
+ .PHONY: borlandc
+ endif
-ifneq ($(findstring devel,$(MAKECMDGOALS)),)
-CONFIG_FILE := os2-dev.mk
-CC := gcc
-SEP := /
-devel: setup
-endif
+ ifneq ($(findstring devel,$(MAKECMDGOALS)),)
+ CONFIG_FILE := os2-dev.mk
+ CC := gcc
+ SEP := /
+ devel: setup
+ endif
-CONFIG_RULES := $(TOP)\config\os2\$(CONFIG_FILE)
+ setup: dos_setup
-setup: dos_setup
+ endif # test OS2_SHELL
+endif # test PLATFORM
-endif #test OS2_SHELL
-endif #test PLATFORM
+#EOF
--- a/config/unix/detect.mk
+++ b/config/unix/detect.mk
@@ -1,58 +1,62 @@
#
-# This file is used to detect which Makefile to use based on the
-# value of the CC environment variable.
+# FreeType 2 configuration file to detect a UNIX host platform.
#
-# Unix
-#
-#
-# This will _much_ probably change in the future if we're going to use
-# Automake/Autoconf..
-#
-ifeq ($(PLATFORM),ansi)
-has_inittab := $(strip $(wildcard /etc/inittab))
-ifneq ($(has_inittab),)
-PLATFORM := unix
-COPY := cp
-DELETE := rm -f
-
-# if `devel' is the requested target, use the development Makefile
+# Copyright 1996-2000 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
#
-ifneq ($(findstring devel,$(MAKECMDGOALS)),)
-CONFIG_RULES := $(BUILD)$(SEP)unix-dev.mk
-devel: setup;
-endif
+# 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.
-# test wether we're using gcc ? If it is, we selected the
-# 'unix-gcc.mk' configuration file. Otherwise, the standard
-# 'unix.mk' which simply calls "cc -c" with no extra arguments
-#
-# Feel free to add support for other platform specific compilers
-# in this directory (e.g. solaris.mk + changes here to detect the
-# platform)
-#
-ifeq ($(CC),gcc)
-is_gcc := 1
-else
-ifneq ($(findstring gcc,$(shell $(CC) --version)),)
-is_gcc := 1
-endif
-endif
-ifdef is_gcc
-CONFIG_RULES := $(BUILD)$(SEP)unix-gcc.mk
-else
-CONFIG_RULES := $(BUILD)$(SEP)unix.mk
-endif
+# This will probably change a lost in the future if we are going to use
+# Automake/Autoconf...
-setup: std_setup
-endif # test Unix
-endif # test PLATFORM
+ifeq ($(PLATFORM),ansi)
+ has_inittab := $(strip $(wildcard /etc/inittab))
+ ifneq ($(has_inittab),)
+ PLATFORM := unix
+ COPY := cp
+ DELETE := rm -f
+ # Test whether we're using gcc. If so, we select the `unix-gcc.mk'
+ # configuration file. Otherwise, the standard `unix.mk' is used which
+ # simply calls `cc -c' with no extra arguments.
+ #
+ # Feel free to add support for other platform specific compilers in this
+ # directory (e.g. solaris.mk + changes here to detect the platform).
+ #
+ ifeq ($(CC),gcc)
+ is_gcc := 1
+ else
+ ifneq ($(findstring gcc,$(shell $(CC) -v 2>&1)),)
+ is_gcc := 1
+ endif
+ endif
+ ifdef is_gcc
+ CONFIG_FILE := unix-gcc.mk
+ else
+ CONFIG_FILE := unix.mk
+ endif
+ # If `devel' is the requested target, use the development Makefile.
+ #
+ ifneq ($(findstring devel,$(MAKECMDGOALS)),)
+ CONFIG_FILE := unix-dev.mk
+ devel: setup
+ endif
+ setup: std_setup
+
+ endif # test Unix
+endif # test PLATFORM
+
+# EOF
--- a/config/unix/unix-gcc.mk
+++ b/config/unix/unix-gcc.mk
@@ -1,23 +1,20 @@
-#*******************************************************************
-#*
-#* FreeType 2 Configuration rules for a standard Unix compiler
-#*
-#* Copyright 1996-2000 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.
-#*
-#* Please read the file "freetype/docs/config.txt" to understand
-#* what this file does..
-#*
-#*******************************************************************
+#
+# FreeType 2 configuration rules for the gcc compiler under UNIX
+#
+
+# Copyright 1996-2000 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.
+
+
ifndef TOP
-TOP := .
+ TOP := .
endif
DELETE := rm -f
@@ -26,105 +23,110 @@
BUILD := $(TOP)/config/unix
PLATFORM := unix
-# the directory where all object files are placed
+# 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 :
+# 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
+# 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
+# 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..
+# 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
+# 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
+# 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
+# The name of the final library file. Note that the DOS-specific Makefile
+# uses a shorter (8.3) name.
#
LIBRARY := libfreetype
-# path inclusion flag.
+# Path inclusion flag. Some compilers use a different flag than `-I' to
+# specify an additional include path. Examples are `/i=' or `-J'.
#
-# 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.
+# C flag used to define a macro before the compilation of a given source
+# object. Usually is `-D' like in `-DDEBUG'.
#
-L := -l
+D := -D
-# C flag used to define a macro before the compilation of a given
-# source object. Usually is '-D' like in "-DDEBUG"
+# 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.
#
-D := -D
+L := -l
-# Target flag - beware, there is a space after the 'o' !!
+# Target flag.
#
-#
-T := -o
+T := -o # Don't remove this comment line! We need the space after `-o'.
+
# C flags
#
-# These should concern :
+# These should concern: debug output, optimization & warnings.
#
-# - debug output
-# - optimization
-# - warnings
-# - ansi compliance..
+# Use the ANSIFLAGS variable to define the compiler flags used to enfore
+# ANSI compliance.
#
ifndef CFLAGS
-CFLAGS := -c -g -O6 -Wall
+ 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: Put there the flags used to make your compiler ANSI-compliant.
#
ANSIFLAGS := -ansi -pedantic
+
ifdef BUILD_FREETYPE
-include $(TOP)/config/freetype.mk
+ # Now include the main sub-makefile. It contains all the rules used to
+ # build the library with the previous variables defined.
+ #
+ include $(TOP)/config/freetype.mk
-clean_freetype: clean_freetype_std
-distclean_freetype: distclean_freetype_std
+ # The cleanup targets.
+ #
+ clean_freetype: clean_freetype_std
+ distclean_freetype: distclean_freetype_std
-# 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) $@
- $(AR) -r $@ $(OBJECTS_LIST)
+ # 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) $@
+ $(FT_LIBRARIAN) $@ $(OBJECTS_LIST)
+
endif
+
+# EOF
--- a/config/win32/detect.mk
+++ b/config/win32/detect.mk
@@ -1,93 +1,93 @@
#
-# This file is used to detect a Win32 host platform.
+# FreeType 2 configuration file to detect a Win32 host platform.
#
-# This configuration file to be used depends on the value of the CC
-# environment variable.
-#
-#
-ifeq ($(PLATFORM),ansi)
-
-###################################################################
+# Copyright 1996-2000 by
+# David Turner, Robert Wilhelm, and Werner Lemberg.
#
-# Detecting Windows NT or Windows 9x
-#
+# 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.
-# Detecting Windows NT is easy, as the OS variable must be defined
-# and contains "Windows_NT". Untested with Windows 2K, but I guess
-# it should work ...
-#
-ifeq ($(OS),Windows_NT)
-is_windows := 1
-# We test for the COMSPEC environment variable, then run the 'ver'
-# command-line program to see if its output contains the word "Windows"
-#
-# If this is true, we're running a win32 platform (or an emulation)
-#
-else
-ifdef COMSPEC
-is_windows := $(findstring Windows,$(strip $(shell ver)))
-endif
-endif #test NT
+# This configuration file to be used depends on the value of the CC
+# environment variable which is set below according to the compiler name
+# given as a parameter to make.
-####################################################################
-#
-# Rules for Win32
-#
-ifdef is_windows
+ifeq ($(PLATFORM),ansi)
-PLATFORM := win32
-DELETE := del
-COPY := copy
+ # Detecting Windows NT is easy, as the OS variable must be defined and
+ # contains `Windows_NT'. Untested with Windows 2K, but I guess it should
+ # work...
+ #
+ ifeq ($(OS),Windows_NT)
+ is_windows := 1
-CONFIG_FILE := w32-gcc.mk # gcc Makefile by default - aren't we biased ;-)
-SEP := /
-ifeq ($(CC),cc)
-CC := gcc
-endif
+ # We test for the COMSPEC environment variable, then run the `ver'
+ # command-line program to see if its output contains the word `Windows'.
+ #
+ # If this is true, we're running a win32 platform (or an emulation).
+ #
+ else
+ ifdef COMSPEC
+ is_windows := $(findstring Windows,$(strip $(shell ver)))
+ endif
+ endif #test NT
-ifneq ($(findstring visualc,$(MAKECMDGOALS)),) # Visual C/C++
-CONFIG_FILE := w32-vcc.mk
-SEP := $(BACKSLASH)
-CC := cl
-visualc: setup
-endif
+ ifdef is_windows
-ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
-CONFIG_FILE := w32-wat.mk
-SEP := $(BACKSLASH)
-CC := wcc386
-watcom: setup
-endif
+ PLATFORM := win32
+ DELETE := del
+ COPY := copy
-ifneq ($(findstring visualage,$(MAKECMDGOALS)),) # Visual Age C++
-CONFIG_FILE := w32-icc.mk
-SEP := $(BACKSLASH)
-CC := icc
-visualage: setup
-endif
+ CONFIG_FILE := w32-gcc.mk # gcc Makefile by default
+ SEP := /
+ ifeq ($(CC),cc)
+ CC := gcc
+ endif
-ifneq ($(findstring lcc,$(MAKECMDGOALS)),) # LCC-Win32
-CONFIG_FILE := w32-lcc.mk
-SEP := $(BACKSLASH)
-CC := lcc
-lcc: setup
-endif
+ ifneq ($(findstring visualc,$(MAKECMDGOALS)),) # Visual C/C++
+ CONFIG_FILE := w32-vcc.mk
+ SEP := $(BACKSLASH)
+ CC := cl
+ visualc: setup
+ endif
-ifneq ($(findstring devel,$(MAKECMDGOALS)),)
-CONFIG_FILE := w32-dev.mk
-CC := gcc
-SEP := /
-devel: setup
-endif
+ ifneq ($(findstring watcom,$(MAKECMDGOALS)),) # Watcom C/C++
+ CONFIG_FILE := w32-wat.mk
+ SEP := $(BACKSLASH)
+ CC := wcc386
+ watcom: setup
+ endif
-CONFIG_RULES := $(TOP)\config\win32\$(CONFIG_FILE)
+ ifneq ($(findstring visualage,$(MAKECMDGOALS)),) # Visual Age C++
+ CONFIG_FILE := w32-icc.mk
+ SEP := $(BACKSLASH)
+ CC := icc
+ visualage: setup
+ endif
-setup: dos_setup
+ ifneq ($(findstring lcc,$(MAKECMDGOALS)),) # LCC-Win32
+ CONFIG_FILE := w32-lcc.mk
+ SEP := $(BACKSLASH)
+ CC := lcc
+ lcc: setup
+ endif
-endif #test is_windows
-endif #test PLATFORM
+ ifneq ($(findstring devel,$(MAKECMDGOALS)),)
+ CONFIG_FILE := w32-dev.mk
+ CC := gcc
+ SEP := /
+ devel: setup
+ endif
+ setup: dos_setup
+
+ endif # test is_windows
+endif # test PLATFORM
+
+# EOF
--- a/demos/Makefile
+++ b/demos/Makefile
@@ -10,11 +10,11 @@
#
ifndef TOP
-TOP := ..
+ TOP := ..
endif
ifndef TOP2
-TOP2 := $(TOP)/demos
+ TOP2 := $(TOP)/demos
endif
######################################################################
@@ -23,7 +23,7 @@
# defined by default as $(TOP)/config.mk
#
ifndef CONFIG_MK
-CONFIG_MK := $(TOP)/config.mk
+ CONFIG_MK := $(TOP)/config.mk
endif
####################################################################
@@ -32,228 +32,223 @@
# If not, issue a warning message, then stop there..
#
ifeq ($(wildcard $(CONFIG_MK)),)
-no_config_mk := 1
+ no_config_mk := 1
endif
ifdef no_config_mk
-exes:
- @echo Please compile the library before the demo programs!
-clean distclean:
- @echo "I need \`$(TOP)/config.mk' to do that!"
+ exes:
+ @echo Please compile the library before the demo programs!
+ clean distclean:
+ @echo "I need \`$(TOP)/config.mk' to do that!"
else
-####################################################################
-#
-# Good, now include the `config.mk' in order to know how to build
-# object files from sources, as well as other things (compiler flags)
-#
-include $(CONFIG_MK)
+ ####################################################################
+ #
+ # Good, now include the `config.mk' in order to know how to build
+ # object files from sources, as well as other things (compiler flags)
+ #
+ include $(CONFIG_MK)
-####################################################################
-#
-# Define a few important variables now
-#
-#
-TOP_ := $(TOP)$(SEP)
-TOP2_ := $(TOP2)$(SEP)
-SRC_ := $(TOP)$(SEP)src$(SEP)
-BIN_ := bin$(SEP)
-OBJ_ := obj$(SEP)
+ ####################################################################
+ #
+ # Define a few important variables now
+ #
+ TOP_ := $(TOP)$(SEP)
+ TOP2_ := $(TOP2)$(SEP)
+ SRC_ := $(TOP)$(SEP)src$(SEP)
-GRAPH_DIR := graph
+ BIN_ := bin$(SEP)
+ OBJ_ := obj$(SEP)
-ifeq ($(TOP),..)
-SRC_DIR := src
-else
-SRC_DIR := $(TOP2_)src
-endif
+ GRAPH_DIR := graph
-SRC_DIR_ := $(SRC_DIR)$(SEP)
+ ifeq ($(TOP),..)
+ SRC_DIR := src
+ else
+ SRC_DIR := $(TOP2_)src
+ endif
-FT_INCLUDES := $(BUILD) $(TOP_)config $(TOP_)include $(SRC_)base $(SRC_DIR)
-TT_INCLUDES := $(SRC_)shared $(SRC_)truetype
-T1_INCLUDES := $(SRC_)shared $(SRC_)type1
+ SRC_DIR_ := $(SRC_DIR)$(SEP)
-COMPILE = $(CC) $(CFLAGS) $(INCLUDES:%=$I%)
-LINK := $(CC)
-FTLIB := $(TOP_)$(LIB_DIR)$(SEP)$(LIBRARY).$A
+ FT_INCLUDES := $(BUILD) $(TOP_)config $(TOP_)include $(SRC_)base $(SRC_DIR)
+ TT_INCLUDES := $(SRC_)shared $(SRC_)truetype
+ T1_INCLUDES := $(SRC_)shared $(SRC_)type1
-# the default commands used to link the executables. These can
-# be re-defined for platform-specific stuff..
-#
-LINK = $(CC) $T$@ $< $(FTLIB) $(EFENCE)
-COMMON_LINK = $(LINK) $(COMMON_OBJ)
-GRAPH_LINK = $(COMMON_LINK) $(GRAPH_LIB)
+ COMPILE = $(CC) $(CFLAGS) $(INCLUDES:%=$I%)
+ LINK := $(CC)
+ FTLIB := $(TOP_)$(LIB_DIR)$(SEP)$(LIBRARY).$A
+ # the default commands used to link the executables. These can
+ # be re-defined for platform-specific stuff..
+ #
+ LINK = $(CC) $T$@ $< $(FTLIB) $(EFENCE)
+ COMMON_LINK = $(LINK) $(COMMON_OBJ)
+ GRAPH_LINK = $(COMMON_LINK) $(GRAPH_LIB)
-.PHONY: exes clean distclean
+ .PHONY: exes clean distclean
-###################################################################
-#
-# Include the rules needed to compile the graphics sub-system.
-# This will also select which graphics driver to compile to the
-# sub-system..
-#
-include $(GRAPH_DIR)/rules.mk
+ ###################################################################
+ #
+ # Include the rules needed to compile the graphics sub-system.
+ # This will also select which graphics driver to compile to the
+ # sub-system..
+ #
+ include $(GRAPH_DIR)/rules.mk
-####################################################################
-#
-# Detect DOS-like platforms, currently DOS, Win 3.1, Win32 & OS/2
-#
-#
-ifneq ($(findstring $(PLATFORM),os2 win16 win32 dos),)
-DOSLIKE := 1
-endif
+ ####################################################################
+ #
+ # Detect DOS-like platforms, currently DOS, Win 3.1, Win32 & OS/2
+ #
+ ifneq ($(findstring $(PLATFORM),os2 win16 win32 dos),)
+ DOSLIKE := 1
+ endif
-###################################################################
-#
-# Clean-up rules. Because the `del' command on DOS-like platforms
-# cannot take a long list of arguments, we simply erase the directory
-# contents..
-#
+ ###################################################################
+ #
+ # Clean-up rules. Because the `del' command on DOS-like platforms
+ # cannot take a long list of arguments, we simply erase the directory
+ # contents.
+ #
+ ifdef DOSLIKE
-ifdef DOSLIKE
-clean_demo:
- -del obj\*.$O 2> nul
- -del $(subst /,\,$(TOP2))\src\*.bak 2> nul
+ clean_demo:
+ -del obj\*.$O 2> nul
+ -del $(subst /,\,$(TOP2))\src\*.bak 2> nul
-distclean_demo: clean_demo
- -del obj\*.lib 2> nul
- -del bin\*.exe 2> nul
-else
+ distclean_demo: clean_demo
+ -del obj\*.lib 2> nul
+ -del bin\*.exe 2> nul
-clean_demo:
- -$(DELETE) $(OBJ_)*.$O
- -$(DELETE) $(SRC_)*.bak graph$(SEP)*.bak
- -$(DELETE) $(SRC_)*~ graph$(SEP)*~
+ else
-distclean_demo: clean_demo
- -$(DELETE) $(EXES:%=$(BIN_)%$E)
- -$(DELETE) $(GRAPH_LIB)
-endif
+ clean_demo:
+ -$(DELETE) $(OBJ_)*.$O
+ -$(DELETE) $(SRC_)*.bak graph$(SEP)*.bak
+ -$(DELETE) $(SRC_)*~ graph$(SEP)*~
-clean: clean_demo
-distclean: distclean_demo
+ distclean_demo: clean_demo
+ -$(DELETE) $(EXES:%=$(BIN_)%$E)
+ -$(DELETE) $(GRAPH_LIB)
-####################################################################
-#
-# Compute the executable suffix to use, and put it in `E'.
-# It is ".exe" on DOS-ish platforms, and nothing otherwise
-#
-ifdef DOSLIKE
-E := .exe
-else
-E :=
-endif
+ endif
-###################################################################
-#
-# The list of demonstration programs to build.
-#
-EXES := ftlint ftview fttimer
+ clean: clean_demo
+ distclean: distclean_demo
-ifneq ($(findstring $(PLATFORM),os2 unix),)
-EXES += ttdebug
-endif
+ ####################################################################
+ #
+ # Compute the executable suffix to use, and put it in `E'.
+ # It is ".exe" on DOS-ish platforms, and nothing otherwise.
+ #
+ ifdef DOSLIKE
+ E := .exe
+ else
+ E :=
+ endif
-exes: $(EXES:%=$(BIN_)%$E)
+ ###################################################################
+ #
+ # The list of demonstration programs to build.
+ #
+ EXES := ftlint ftview fttimer
+ ifneq ($(findstring $(PLATFORM),os2 unix),)
+ EXES += ttdebug
+ endif
-INCLUDES := $(FT_INCLUDES)
+ exes: $(EXES:%=$(BIN_)%$E)
-####################################################################
-#
-# Rules for compiling object files for text-only demos
-#
-COMMON_OBJ := $(OBJ_)common.$O
-$(COMMON_OBJ): $(SRC_DIR_)common.c
-ifdef DOSLIKE
- $(COMPILE) $T$@ $< $DEXPAND_WILDCARDS
-else
- $(COMPILE) $T$@ $<
-endif
+ INCLUDES := $(FT_INCLUDES)
+ ####################################################################
+ #
+ # Rules for compiling object files for text-only demos
+ #
+ COMMON_OBJ := $(OBJ_)common.$O
+ $(COMMON_OBJ): $(SRC_DIR_)common.c
+ ifdef DOSLIKE
+ $(COMPILE) $T$@ $< $DEXPAND_WILDCARDS
+ else
+ $(COMPILE) $T$@ $<
+ endif
-$(OBJ_)%.$O: $(SRC_DIR_)%.c $(FTLIB)
- $(COMPILE) $T$@ $<
-$(OBJ_)ftlint.$O: $(SRC_DIR_)ftlint.c
- $(COMPILE) $T$@ $<
+ $(OBJ_)%.$O: $(SRC_DIR_)%.c $(FTLIB)
+ $(COMPILE) $T$@ $<
-$(OBJ_)fttry.$O: $(SRC_DIR_)fttry.c
- $(COMPILE) $T$@ $<
+ $(OBJ_)ftlint.$O: $(SRC_DIR_)ftlint.c
+ $(COMPILE) $T$@ $<
+ $(OBJ_)fttry.$O: $(SRC_DIR_)fttry.c
+ $(COMPILE) $T$@ $<
-$(OBJ_)ftview.$O: $(SRC_DIR_)ftview.c $(GRAPH_LIB)
- $(COMPILE) $(GRAPH_INCLUDES:%=$I%) $T$@ $<
-$(OBJ_)fttimer.$O: $(SRC_DIR_)fttimer.c $(GRAPH_LIB)
- $(COMPILE) $(GRAPH_INCLUDES:%=$I%) $T$@ $<
+ $(OBJ_)ftview.$O: $(SRC_DIR_)ftview.c $(GRAPH_LIB)
+ $(COMPILE) $(GRAPH_INCLUDES:%=$I%) $T$@ $<
-#$(OBJ_)ftsbit.$O: $(SRC_DIR)/ftsbit.c $(GRAPH_LIB)
-# $(COMPILE) $T$@ $<
+ $(OBJ_)fttimer.$O: $(SRC_DIR_)fttimer.c $(GRAPH_LIB)
+ $(COMPILE) $(GRAPH_INCLUDES:%=$I%) $T$@ $<
+# $(OBJ_)ftsbit.$O: $(SRC_DIR)/ftsbit.c $(GRAPH_LIB)
+# $(COMPILE) $T$@ $<
-####################################################################
-#
-# Special rule to compile the `t1dump' program as it includes
-# the Type1 source path
-#
-$(OBJ_)t1dump.$O: $(SRC_DIR)/t1dump.c
- $(COMPILE) $(T1_INCLUDES:%=$I%) $T$@ $<
+ ####################################################################
+ #
+ # Special rule to compile the `t1dump' program as it includes
+ # the Type1 source path
+ #
+ $(OBJ_)t1dump.$O: $(SRC_DIR)/t1dump.c
+ $(COMPILE) $(T1_INCLUDES:%=$I%) $T$@ $<
-####################################################################
-#
-# Special rule to compile the `ttdebug' program as it includes
-# the TrueType source path and needs extra flags for correct keyboard
-# handling on Unix
-#
-# POSIX TERMIOS: Do not define if you use OLD U*ix like 4.2BSD.
-#
-# detect a Unix system
-ifeq ($(PLATFORM),unix)
-EXTRAFLAGS = $DUNIX $DHAVE_POSIX_TERMIOS
-endif
+ ####################################################################
+ #
+ # Special rule to compile the `ttdebug' program as it includes
+ # the TrueType source path and needs extra flags for correct keyboard
+ # handling on Unix
-$(OBJ_)ttdebug.$O: $(SRC_DIR)/ttdebug.c
- $(COMPILE) $(TT_INCLUDES:%=$I%) $T$@ $< $(EXTRAFLAGS)
+ # POSIX TERMIOS: Do not define if you use OLD U*ix like 4.2BSD.
+ #
+ # detect a Unix system
+ ifeq ($(PLATFORM),unix)
+ EXTRAFLAGS = $DUNIX $DHAVE_POSIX_TERMIOS
+ endif
+ $(OBJ_)ttdebug.$O: $(SRC_DIR)/ttdebug.c
+ $(COMPILE) $(TT_INCLUDES:%=$I%) $T$@ $< $(EXTRAFLAGS)
-####################################################################
-#
-# Rules used to link the executables. Note that they could be
-# over-ridden by system-specific things..
-#
-$(BIN_)ftlint$E: $(OBJ_)ftlint.$O $(FTLIB) $(COMMON_OBJ)
- $(COMMON_LINK)
+ ####################################################################
+ #
+ # Rules used to link the executables. Note that they could be
+ # over-ridden by system-specific things..
+ #
+ $(BIN_)ftlint$E: $(OBJ_)ftlint.$O $(FTLIB) $(COMMON_OBJ)
+ $(COMMON_LINK)
+ $(BIN_)fttry$E: $(OBJ_)fttry.$O $(FTLIB)
+ $(LINK)
-$(BIN_)fttry$E: $(OBJ_)fttry.$O $(FTLIB)
- $(LINK)
+ $(BIN_)ftsbit$E: $(OBJ_)ftsbit.$O $(FTLIB)
+ $(LINK)
+ $(BIN_)t1dump$E: $(OBJ_)t1dump.$O $(FTLIB)
+ $(LINK)
-$(BIN_)ftsbit$E: $(OBJ_)ftsbit.$O $(FTLIB)
- $(LINK)
+ $(BIN_)ttdebug$E: $(OBJ_)ttdebug.$O $(FTLIB)
+ $(LINK)
-$(BIN_)t1dump$E: $(OBJ_)t1dump.$O $(FTLIB)
- $(LINK)
+ $(BIN_)ftview$E: $(OBJ_)ftview.$O $(FTLIB) $(GRAPH_LIB) $(COMMON_OBJ)
+ $(GRAPH_LINK)
-$(BIN_)ttdebug$E: $(OBJ_)ttdebug.$O $(FTLIB)
- $(LINK)
+ $(BIN_)fttimer$E: $(OBJ_)fttimer.$O $(FTLIB) $(GRAPH_LIB) $(COMMON_OBJ)
+ $(GRAPH_LINK)
-
-$(BIN_)ftview$E: $(OBJ_)ftview.$O $(FTLIB) $(GRAPH_LIB) $(COMMON_OBJ)
- $(GRAPH_LINK)
-
-$(BIN_)fttimer$E: $(OBJ_)fttimer.$O $(FTLIB) $(GRAPH_LIB) $(COMMON_OBJ)
- $(GRAPH_LINK)
-
endif
+# EOF
--- a/demos/graph/x11/rules.mk
+++ b/demos/graph/x11/rules.mk
@@ -13,23 +13,21 @@
# the current path.
#
ifneq ($(findstring X11R6$(SEP)bin,$(PATH)),)
-xversion := X11R6
+ xversion := X11R6
else
-
-ifneq ($(findstring X11R5$(SEP)bin,$(PATH)),)
-xversion := X11R5
-else
-
-ifneq ($(findstring X11$(SEP)bin,$(PATH)),)
-xversion := X11
+ ifneq ($(findstring X11R5$(SEP)bin,$(PATH)),)
+ xversion := X11R5
+ else
+ ifneq ($(findstring X11$(SEP)bin,$(PATH)),)
+ xversion := X11
+ endif
+ endif
endif
-endif
-endif
ifdef xversion
-X11_PATH := $(subst ;, ,$(PATH)) $(subst :, ,$(PATH))
-X11_PATH := $(filter %$(xversion)$(SEP)bin,$(X11_PATH))
-X11_PATH := $(X11_PATH:%$(SEP)bin=%)
+ X11_PATH := $(subst ;, ,$(PATH)) $(subst :, ,$(PATH))
+ X11_PATH := $(filter %$(xversion)$(SEP)bin,$(X11_PATH))
+ X11_PATH := $(X11_PATH:%$(SEP)bin=%)
endif
##########################################################################
@@ -41,41 +39,38 @@
#
ifneq ($(X11_PATH),)
-X11_INCLUDE := $(X11_PATH:%=%$(SEP)include)
-X11_LIB := $(X11_PATH:%=%$(SEP)lib)
+ X11_INCLUDE := $(X11_PATH:%=%$(SEP)include)
+ X11_LIB := $(X11_PATH:%=%$(SEP)lib)
-# the GRAPH_LINK variable is expanded each time an executable is linked against
-# the graphics library..
-#
-GRAPH_LINK += -L$(X11_LIB) -lX11
+ # the GRAPH_LINK variable is expanded each time an executable is linked
+ # against the graphics library.
+ #
+ GRAPH_LINK += $(X11_LIB:%=-L%) -lX11
-# Solaris needs a -lsocket in GRAPH_LINK ..
-#
-UNAME := $(shell uname)
-ifneq ($(findstring $(UNAME),SunOS Solaris),)
-GRAPH_LINK += -lsocket
-endif
+ # Solaris needs a -lsocket in GRAPH_LINK ..
+ #
+ UNAME := $(shell uname)
+ ifneq ($(findstring $(UNAME),SunOS Solaris),)
+ GRAPH_LINK += -lsocket
+ endif
-# add the X11 driver object file to the graphics library
-#
-GRAPH_OBJS += $(OBJ_)grx11.$O
+ # add the X11 driver object file to the graphics library
+ #
+ GRAPH_OBJS += $(OBJ_)grx11.$O
+ GR_X11 := $(GRAPH_)x11
+ GR_X11_ := $(GR_X11)$(SEP)
-GR_X11 := $(GRAPH_)x11
-GR_X11_ := $(GR_X11)$(SEP)
+ DEVICES += X11
+ DEVICE_INCLUDES += $(GR_X11)
-DEVICES += X11
-DEVICE_INCLUDES += $(GR_X11)
-
-# the rule used to compile the X11 driver
-#
-$(OBJ_)grx11.$O: $(GR_X11_)grx11.c $(GR_X11_)grx11.h
- $(CC) $(CFLAGS) $(GRAPH_INCLUDES:%=$I%) $I$(GR_X11) \
- $(X11_INCLUDE:%=$I%) $T$@ $<
+ # the rule used to compile the X11 driver
+ #
+ $(OBJ_)grx11.$O: $(GR_X11_)grx11.c $(GR_X11_)grx11.h
+ $(CC) $(CFLAGS) $(GRAPH_INCLUDES:%=$I%) $I$(GR_X11) \
+ $(X11_INCLUDE:%=$I%) $T$@ $<
endif
-
-
-
+# EOF
--- a/src/base/ftstream.h
+++ b/src/base/ftstream.h
@@ -44,7 +44,7 @@
ft_frame_uoff3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 0 ),
ft_frame_uoff3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 0, 1 ),
ft_frame_off3_be = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 0 ),
- ft_frame_off3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 1 ),
+ ft_frame_off3_le = FT_MAKE_FRAME_OP( FT_FRAME_OP_OFF3, 1, 1 )
} FT_Frame_Op;
--- a/src/base/rules.mk
+++ b/src/base/rules.mk
@@ -1,98 +1,61 @@
-#****************************************************************************
-#* *
-#* Base layer Makefile *
-#* *
-#* 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. *
-#* *
-#****************************************************************************
+#
+# FreeType 2 base layer configuration rules
+#
-#****************************************************************************
-#* *
-#* IMPORTANT NOTE: This Makefile is intended for GNU Make! *
-#* If you provide Makefiles for other make utilities, *
-#* please place them in `freetype/lib/arch/<system>.' *
-#* *
-#* *
-#* This file is to be included by the root FreeType sub-Makefile, usually *
-#* named `freetype/lib/Makefile.lib.' Here is the list of the variables *
-#* that must be defined to use it: *
-#* *
-#* BASE_DIR: The location of the base layer's directory. This is *
-#* usually `freetype/lib/base.' *
-#* *
-#* ARCH_DIR: The location of the architecture-dependent directory. *
-#* This is usually `freetype/lib/arch/<system>.' *
-#* *
-#* OBJ_DIR: The location where the compiled object(s) file will be *
-#* placed. *
-#* *
-#* FT_CFLAGS: A set of flags used for compilation of object files. *
-#* This contains at least the include paths of the `arch' *
-#* and `base' directories + optimization + warnings + *
-#* ANSI compliance. *
-#* *
-#* FT_IFLAGS: The flag used to specify an include path on the compiler *
-#* command line. For example, with GCC, this is `-I', while *
-#* some other compilers use `/i=' or `-J', etc. *
-#* *
-#* FT_OBJ: The suffix of an object file for the platform. Can be *
-#* `o', `obj', `coff', `tco', etc. *
-#* *
-#* FT_CC: The C compiler to use. *
-#* *
-#* *
-#* It sets the following variables, which are used by the parent Makefile *
-#* after the call: *
-#* *
-#* BASE_H: The list of base layer header files on which the rest *
-#* of the library (i.e., drivers) rely. *
-#* *
-#* BASE_OBJ_S: The single-object base layer. *
-#* BASE_OBJ_M: A list of all objects for a multiple-objects build. *
-#* BASE_EXT_OBJ: A list of base layer extensions, i.e., components *
-#* found in `freetype/lib/base' which are not compiled *
-#* within the base layer proper. *
-#* *
-#****************************************************************************
+# Copyright 1996-2000 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.
+
+# It sets the following variables, which are used by the master Makefile
+# after the call:
+#
+# BASE_H: The list of base layer header files on which the rest
+# of the library (i.e., drivers) rely.
+#
+# BASE_OBJ_S: The single-object base layer.
+# BASE_OBJ_M: A list of all objects for a multiple-objects build.
+# BASE_EXT_OBJ: A list of base layer extensions, i.e., components found
+# in `freetype/lib/base' which are not compiled within the
+# base layer proper.
+
INCLUDES += $(SRC_)base
# Base layer sources
#
-BASE_SRC := $(BASE_)ftstream.c \
- $(BASE_)ftcalc.c \
- $(BASE_)ftobjs.c \
+BASE_SRC := $(BASE_)ftcalc.c \
$(BASE_)ftextend.c \
- $(BASE_)ftlist.c
+ $(BASE_)ftlist.c \
+ $(BASE_)ftobjs.c \
+ $(BASE_)ftstream.c
# Base layer headers
#
BASE_H := $(BASE_)ftcalc.h \
- $(BASE_)ftobjs.h \
+ $(BASE_)ftdebug.h \
$(BASE_)ftdriver.h \
$(BASE_)ftextend.h \
- $(BASE_)ftlist.h
+ $(BASE_)ftlist.h \
+ $(BASE_)ftobjs.h \
+ $(BASE_)ftstream.h
# Base layer `extensions' sources
#
# An extension is added to the library file (.a or .lib) as a separate
-# object. It will then be linked to the final executable only if one of
-# its symbols is used by the application.
+# object. It will then be linked to the final executable only if one of its
+# symbols is used by the application.
#
BASE_EXT_SRC := $(BASE_)ftbbox.c \
$(BASE_)ftraster.c \
$(BASE_)ftoutln.c
-
# Base layer extensions headers
#
BASE_EXT_H := $(BASE_EXT_SRC:%c=%h)
@@ -100,11 +63,11 @@
# Base layer object(s)
#
-# BASE_OBJ_M is used during `multi' builds (each base source file
-# compiles to a single object file).
+# BASE_OBJ_M is used during `multi' builds (each base source file compiles
+# to a single object file).
#
-# BASE_OBJ_S is used during `single' builds (the whole base layer
-# is compiled as a single object file using ftbase.c).
+# BASE_OBJ_S is used during `single' builds (the whole base layer is
+# compiled as a single object file using ftbase.c).
#
BASE_OBJ_M := $(BASE_SRC:$(BASE_)%.c=$(OBJ_)%.$O)
BASE_OBJ_S := $(OBJ_)ftbase.$O
@@ -132,5 +95,4 @@
$(BASE_OBJ_S): $(PUBLIC_H) $(BASE_H) $(BASE_SRC_S) $(BASE_SRC)
$(FT_COMPILE) $T$@ $(BASE_SRC_S)
-
-# END
+# EOF
--- a/src/psnames/module.mk
+++ b/src/psnames/module.mk
@@ -2,5 +2,6 @@
add_psnames_driver:
$(OPEN_DRIVER)psnames_driver_interface$(CLOSE_DRIVER)
- $(ECHO_DRIVER)psnames $(ECHO_DRIVER_DESC) Postscript & Unicode Glyph name handling $(ECHO_DRIVER_DONE)
+ $(ECHO_DRIVER)psnames $(ECHO_DRIVER_DESC)Postscript & Unicode Glyph name handling$(ECHO_DRIVER_DONE)
+# EOF
--- a/src/psnames/rules.mk
+++ b/src/psnames/rules.mk
@@ -1,89 +1,90 @@
-#****************************************************************************
-#* *
-#* PSNames driver Makefile *
-#* *
-#* Copyright 1996-2000 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. *
-#* *
-#****************************************************************************
+#
+# FreeType 2 PSNames driver configuration rules
+#
-ifndef PSNAMES_INCLUDE
-PSNAMES_INCLUDED := 1
+# Copyright 1996-2000 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.
-include $(SRC_)shared/rules.mk
-# PSNAMES driver directory
-#
-PSNAMES_DIR := $(SRC_)psnames
-PSNAMES_DIR_ := $(PSNAMES_DIR)$(SEP)
+ifndef PSNAMES_INCLUDE
+ PSNAMES_INCLUDED := 1
-# additional include flags used when compiling the driver
-#
-PSNAMES_INCLUDE := $(SHARED) $(PSNAMES_DIR)
+ include $(SRC_)shared/rules.mk
+ # PSNAMES driver directory
+ #
+ PSNAMES_DIR := $(SRC_)psnames
+ PSNAMES_DIR_ := $(PSNAMES_DIR)$(SEP)
-# compilation flags for the driver
-#
-PSNAMES_CFLAGS := $(PSNAMES_INCLUDE:%=$I%)
-PSNAMES_COMPILE := $(FT_COMPILE) $(PSNAMES_CFLAGS)
+ # additional include flags used when compiling the driver
+ #
+ PSNAMES_INCLUDE := $(SHARED) $(PSNAMES_DIR)
-# TrueType driver sources (i.e., C files)
-#
-PSNAMES_DRV_SRC := $(PSNAMES_DIR_)psdriver.c
+ # compilation flags for the driver
+ #
+ PSNAMES_CFLAGS := $(PSNAMES_INCLUDE:%=$I%)
+ PSNAMES_COMPILE := $(FT_COMPILE) $(PSNAMES_CFLAGS)
-# TrueType driver headers
-#
-PSNAMES_DRV_H := $(SHARED_H) \
- $(PSNAMES_DIR_)psdriver.h \
- $(PSNAMES_DIR_)pstables.h
+ # driver sources (i.e., C files)
+ #
+ PSNAMES_DRV_SRC := $(PSNAMES_DIR_)psdriver.c
-# driver object(s)
-#
-# PSNAMES_DRV_OBJ_M is used during `debug' builds
-# PSNAMES_DRV_OBJ_S is used during `release' builds
-#
-PSNAMES_DRV_OBJ_M := $(PSNAMES_DRV_SRC:$(PSNAMES_DIR_)%.c=$(OBJ_)%.$O)
-PSNAMES_DRV_OBJ_S := $(OBJ_)psnames.$O
+ # driver headers
+ #
+ PSNAMES_DRV_H := $(SHARED_H) \
+ $(PSNAMES_DIR_)psdriver.h \
+ $(PSNAMES_DIR_)pstables.h
-# driver root source file(s)
-#
-PSNAMES_DRV_SRC_M := $(PSNAMES_DRV_SRC)
-PSNAMES_DRV_SRC_S := $(PSNAMES_DIR_)psdriver.c
+ # driver object(s)
+ #
+ # PSNAMES_DRV_OBJ_M is used during `debug' builds
+ # PSNAMES_DRV_OBJ_S is used during `release' builds
+ #
+ PSNAMES_DRV_OBJ_M := $(PSNAMES_DRV_SRC:$(PSNAMES_DIR_)%.c=$(OBJ_)%.$O)
+ PSNAMES_DRV_OBJ_S := $(OBJ_)psnames.$O
-# driver - single object
-#
-# the driver is recompiled if any of the header or source files is changed
-# as well as any of the shared source files found in `shared/sfnt'
-#
-$(PSNAMES_DRV_OBJ_S): $(BASE_H) $(SHARED_H) $(PSNAMES_DRV_H) $(PSNAMES_DRV_SRC) $(PSNAMES_DRV_SRC_S)
- $(PSNAMES_COMPILE) $T$@ $(PSNAMES_DRV_SRC_S)
+ # driver source file(s)
+ #
+ PSNAMES_DRV_SRC_M := $(PSNAMES_DRV_SRC)
+ PSNAMES_DRV_SRC_S := $(PSNAMES_DIR_)psdriver.c
+ # driver - single object
+ #
+ # the driver is recompiled if any of the header or source files is
+ # changed as well as any of the shared source files found in
+ # `shared'
+ #
+ $(PSNAMES_DRV_OBJ_S): $(BASE_H) $(SHARED_H) $(PSNAMES_DRV_H) \
+ $(PSNAMES_DRV_SRC) $(PSNAMES_DRV_SRC_S)
+ $(PSNAMES_COMPILE) $T$@ $(PSNAMES_DRV_SRC_S)
-# driver - multiple objects
-#
-# All objects are recompiled if any of the header files is changed
-#
-$(OBJ_)ps%.$O: $(PSNAMES_DIR_)ps%.c $(BASE_H) $(SHARED_H) $(PSNAMES_DRV_H)
- $(PSNAMES_COMPILE) $T$@ $<
+ # driver - multiple objects
+ #
+ # All objects are recompiled if any of the header files is changed.
+ #
+ $(OBJ_)ps%.$O: $(PSNAMES_DIR_)ps%.c $(BASE_H) $(SHARED_H) $(PSNAMES_DRV_H)
+ $(PSNAMES_COMPILE) $T$@ $<
-# update main driver object lists
-#
-DRV_OBJS_S += $(PSNAMES_DRV_OBJ_S)
-DRV_OBJS_M += $(PSNAMES_DRV_OBJ_M)
+ # update main driver object lists
+ #
+ DRV_OBJS_S += $(PSNAMES_DRV_OBJ_S)
+ DRV_OBJS_M += $(PSNAMES_DRV_OBJ_M)
+
endif
-# END
+
+# EOF
--- a/src/sfnt/module.mk
+++ b/src/sfnt/module.mk
@@ -2,5 +2,6 @@
add_sfnt_driver:
$(OPEN_DRIVER)sfnt_driver_interface$(CLOSE_DRIVER)
- $(ECHO_DRIVER)sfnt $(ECHO_DRIVER_DESC) pseudo-driver for TrueType & OpenType formats $(ECHO_DRIVER_DONE)
+ $(ECHO_DRIVER)sfnt $(ECHO_DRIVER_DESC)pseudo-driver for TrueType & OpenType formats$(ECHO_DRIVER_DONE)
+# EOF
--- a/src/sfnt/rules.mk
+++ b/src/sfnt/rules.mk
@@ -1,165 +1,100 @@
-#****************************************************************************
-#* *
-#* SFNT driver Makefile *
-#* *
-#* 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. *
-#* *
-#****************************************************************************
+#
+# FreeType 2 DFNT driver configuration rules
+#
-#****************************************************************************
-#* *
-#* IMPORTANT NOTE: This Makefile is intended for GNU Make! *
-#* If you provide Makefiles for other make utilities, *
-#* please place them in `freetype/lib/arch/<system>'. *
-#* *
-#* *
-#* This file is to be included by the FreeType Makefile.lib, located in *
-#* the `freetype/lib' directory. Here is the list of the variables that *
-#* must be defined to use it: *
-#* *
-#* *
-#* BASE_DIR: The location of the base layer's directory. This is *
-#* usually `freetype/lib/base'. *
-#* *
-#* ARCH_DIR: The location of the architecture-dependent directory. *
-#* This is usually `freetype/lib/arch/<system>'. *
-#* *
-#* DRIVERS_DIR: The location of the font driver sub-dirs, usually *
-#* `freetype/lib/drivers'. *
-#* *
-#* OBJ_DIR: The location where the compiled object(s) file will be *
-#* placed. *
-#* *
-#* BASE_H: A list of pathnames to the base layer's header files on *
-#* which the driver depends. *
-#* *
-#* FT_CFLAGS: A set of flags used for compilation of object files. *
-#* This contains at least the include paths of the arch *
-#* and base directories + optimization + warnings + ANSI *
-#* compliance. *
-#* *
-#* FT_IFLAG: The flag used to specify an include path on the *
-#* compiler command line. For example, with GCC, this is *
-#* `-I', while some other compilers use `/i=' or `-J', *
-#* etc. *
-#* *
-#* FT_OBJ: The suffix of an object file for the platform; can be *
-#* `o', `obj', `coff', `tco', etc. depending on the *
-#* platform. *
-#* *
-#* *
-#* It also updates the following variables defined and used in the main *
-#* Makefile: *
-#* *
-#* DRV_OBJ_S: The list of driver object files in *
-#* single-object mode. *
-#* *
-#* DRV_OBJ_M: The list of driver object files in *
-#* multiple-objects mode. *
-#* *
-#* FTINIT_DRIVER_PATHS: The list of include paths used to compile the *
-#* `ftinit' component which registers all font *
-#* drivers in the FT_Init_FreeType() function. *
-#* *
-#* FTINIT_DRIVER_H: The list of header dependencies used to *
-#* compile the `ftinit' component. *
-#* *
-#* FTINIT_DRIVER_MACROS: The list of macros to be defined when *
-#* compiling the `ftinit' component. *
-#* *
-#* `Single-object compilation' means that each font driver is compiled *
-#* into a single object file. This is useful to get rid of all *
-#* driver-specific entries. *
-#* *
-#****************************************************************************
+# Copyright 1996-2000 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.
+
ifndef SFNT_INCLUDE
-SFNT_INCLUDED := 1
+ SFNT_INCLUDED := 1
-include $(SRC_)shared/rules.mk
+ include $(SRC_)shared/rules.mk
+
+ # SFNT driver directory
+ #
+ SFNT_DIR := $(SRC_)sfnt
+ SFNT_DIR_ := $(SFNT_DIR)$(SEP)
-# SFNT driver directory
-#
-SFNT_DIR := $(SRC_)sfnt
-SFNT_DIR_ := $(SFNT_DIR)$(SEP)
+ # additional include flags used when compiling the driver
+ #
+ SFNT_INCLUDE := $(SHARED) $(SFNT_DIR)
-# additional include flags used when compiling the driver
-#
-SFNT_INCLUDE := $(SHARED) $(SFNT_DIR)
+ # compilation flags for the driver
+ #
+ SFNT_CFLAGS := $(SFNT_INCLUDE:%=$I%)
+ SFNT_COMPILE := $(FT_COMPILE) $(SFNT_CFLAGS)
-# compilation flags for the driver
-#
-SFNT_CFLAGS := $(SFNT_INCLUDE:%=$I%)
-SFNT_COMPILE := $(FT_COMPILE) $(SFNT_CFLAGS)
+ # driver sources (i.e., C files)
+ #
+ SFNT_DRV_SRC := $(SFNT_DIR_)ttload.c \
+ $(SFNT_DIR_)ttcmap.c \
+ $(SFNT_DIR_)ttsbit.c \
+ $(SFNT_DIR_)ttpost.c \
+ $(SFNT_DIR_)sfdriver.c
-# TrueType driver sources (i.e., C files)
-#
-SFNT_DRV_SRC := $(SFNT_DIR_)ttload.c \
- $(SFNT_DIR_)ttcmap.c \
- $(SFNT_DIR_)ttsbit.c \
- $(SFNT_DIR_)ttpost.c \
- $(SFNT_DIR_)sfdriver.c \
+ # driver headers
+ #
+ SFNT_DRV_H := $(SHARED_H) \
+ $(SFNT_DIR_)sfconfig.h \
+ $(SFNT_DIR_)ttload.h \
+ $(SFNT_DIR_)ttsbit.h \
+ $(SFNT_DIR_)ttcmap.h \
+ $(SFNT_DIR_)ttpost.h
-# TrueType driver headers
-#
-SFNT_DRV_H := $(SHARED_H) \
- $(SFNT_DIR_)sfconfig.h \
- $(SFNT_DIR_)ttload.h \
- $(SFNT_DIR_)ttsbit.h \
- $(SFNT_DIR_)ttcmap.h \
- $(SFNT_DIR_)ttpost.h
+ # driver object(s)
+ #
+ # SFNT_DRV_OBJ_M is used during `debug' builds
+ # SFNT_DRV_OBJ_S is used during `release' builds
+ #
+ SFNT_DRV_OBJ_M := $(SFNT_DRV_SRC:$(SFNT_DIR_)%.c=$(OBJ_)%.$O)
+ SFNT_DRV_OBJ_S := $(OBJ_)sfnt.$O
-# driver object(s)
-#
-# SFNT_DRV_OBJ_M is used during `debug' builds
-# SFNT_DRV_OBJ_S is used during `release' builds
-#
-SFNT_DRV_OBJ_M := $(SFNT_DRV_SRC:$(SFNT_DIR_)%.c=$(OBJ_)%.$O)
-SFNT_DRV_OBJ_S := $(OBJ_)sfnt.$O
+ # driver source file(s)
+ #
+ SFNT_DRV_SRC_M := $(SFNT_DRV_SRC)
+ SFNT_DRV_SRC_S := $(SFNT_DIR_)sfnt.c
-# driver root source file(s)
-#
-SFNT_DRV_SRC_M := $(SFNT_DRV_SRC)
-SFNT_DRV_SRC_S := $(SFNT_DIR_)sfnt.c
+ # driver - single object
+ #
+ # the driver is recompiled if any of the header or source files is
+ # changed as well as any of the shared source files found in
+ # `shared'
+ #
+ $(SFNT_DRV_OBJ_S): $(BASE_H) $(SHARED_H) $(SFNT_DRV_H) \
+ $(SFNT_DRV_SRC) $(SFNT_DRV_SRC_S)
+ $(SFNT_COMPILE) $T$@ $(SFNT_DRV_SRC_S)
-# driver - single object
-#
-# the driver is recompiled if any of the header or source files is changed
-# as well as any of the shared source files found in `shared/sfnt'
-#
-$(SFNT_DRV_OBJ_S): $(BASE_H) $(SHARED_H) $(SFNT_DRV_H) $(SFNT_DRV_SRC) $(SFNT_DRV_SRC_S)
- $(SFNT_COMPILE) $T$@ $(SFNT_DRV_SRC_S)
+ # driver - multiple objects
+ #
+ # All objects are recompiled if any of the header files is changed
+ #
+ $(OBJ_)tt%.$O: $(SFNT_DIR_)tt%.c $(BASE_H) $(SHARED_H) $(SFNT_DRV_H)
+ $(SFNT_COMPILE) $T$@ $<
+ $(OBJ_)sf%.$O: $(SFNT_DIR_)sf%.c $(BASE_H) $(SHARED_H) $(SFNT_DRV_H)
+ $(SFNT_COMPILE) $T$@ $<
-# driver - multiple objects
-#
-# All objects are recompiled if any of the header files is changed
-#
-$(OBJ_)tt%.$O: $(SFNT_DIR_)tt%.c $(BASE_H) $(SHARED_H) $(SFNT_DRV_H)
- $(SFNT_COMPILE) $T$@ $<
-$(OBJ_)sf%.$O: $(SFNT_DIR_)sf%.c $(BASE_H) $(SHARED_H) $(SFNT_DRV_H)
- $(SFNT_COMPILE) $T$@ $<
+ # update main driver object lists
+ #
+ DRV_OBJS_S += $(SFNT_DRV_OBJ_S)
+ DRV_OBJS_M += $(SFNT_DRV_OBJ_M)
-# update main driver object lists
-#
-DRV_OBJS_S += $(SFNT_DRV_OBJ_S)
-DRV_OBJS_M += $(SFNT_DRV_OBJ_M)
-
endif
-# END
+
+# EOF
--- a/src/shared/rules.mk
+++ b/src/shared/rules.mk
@@ -1,27 +1,27 @@
-#****************************************************************************
-#* *
-#* shared files Makefile *
-#* *
-#* Copyright 1996-2000 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. *
-#* *
-#****************************************************************************
+#
+# FreeType 2 shared files configuration rules
+#
+
+# Copyright 1996-2000 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.
+
+
ifndef SHARED_RULES
-SHARED_RULES := 1
+ SHARED_RULES := 1
-SHARED := $(SRC_)shared
-SHARED_ := $(SHARED)$(SEP)
+ SHARED := $(SRC_)shared
+ SHARED_ := $(SHARED)$(SEP)
-SHARED_H := $(wildcard $(SHARED_)*.h)
-SHARED_SRC := $(wildcard $(SHARED_)*.c)
+ SHARED_H := $(wildcard $(SHARED_)*.h)
+ SHARED_SRC := $(wildcard $(SHARED_)*.c)
endif
-# END
+# EOF
--- a/src/truetype/module.mk
+++ b/src/truetype/module.mk
@@ -2,5 +2,6 @@
add_truetype_driver:
$(OPEN_DRIVER)tt_driver_interface$(CLOSE_DRIVER)
- $(ECHO_DRIVER)truetype $(ECHO_DRIVER_DESC) Windows/Mac font files with extension *.ttf or *.ttc $(ECHO_DRIVER_DONE)
+ $(ECHO_DRIVER)truetype $(ECHO_DRIVER_DESC)Windows/Mac font files with extension *.ttf or *.ttc$(ECHO_DRIVER_DONE)
+# EOF
--- a/src/truetype/rules.mk
+++ b/src/truetype/rules.mk
@@ -1,88 +1,20 @@
-#****************************************************************************
-#* *
-#* TrueType driver Makefile *
-#* *
-#* 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. *
-#* *
-#****************************************************************************
+#
+# FreeType 2 PSNames driver configuration rules
+#
-#****************************************************************************
-#* *
-#* IMPORTANT NOTE: This Makefile is intended for GNU Make! *
-#* If you provide Makefiles for other make utilities, *
-#* please place them in `freetype/lib/arch/<system>'. *
-#* *
-#* *
-#* This file is to be included by the FreeType Makefile.lib, located in *
-#* the `freetype/lib' directory. Here is the list of the variables that *
-#* must be defined to use it: *
-#* *
-#* *
-#* BASE_DIR: The location of the base layer's directory. This is *
-#* usually `freetype/lib/base'. *
-#* *
-#* ARCH_DIR: The location of the architecture-dependent directory. *
-#* This is usually `freetype/lib/arch/<system>'. *
-#* *
-#* DRIVERS_DIR: The location of the font driver sub-dirs, usually *
-#* `freetype/lib/drivers'. *
-#* *
-#* OBJ_DIR: The location where the compiled object(s) file will be *
-#* placed. *
-#* *
-#* BASE_H: A list of pathnames to the base layer's header files on *
-#* which the driver depends. *
-#* *
-#* FT_CFLAGS: A set of flags used for compilation of object files. *
-#* This contains at least the include paths of the arch *
-#* and base directories + optimization + warnings + ANSI *
-#* compliance. *
-#* *
-#* FT_IFLAG: The flag used to specify an include path on the *
-#* compiler command line. For example, with GCC, this is *
-#* `-I', while some other compilers use `/i=' or `-J', *
-#* etc. *
-#* *
-#* FT_OBJ: The suffix of an object file for the platform; can be *
-#* `o', `obj', `coff', `tco', etc. depending on the *
-#* platform. *
-#* *
-#* *
-#* It also updates the following variables defined and used in the main *
-#* Makefile: *
-#* *
-#* DRV_OBJ_S: The list of driver object files in *
-#* single-object mode. *
-#* *
-#* DRV_OBJ_M: The list of driver object files in *
-#* multiple-objects mode. *
-#* *
-#* FTINIT_DRIVER_PATHS: The list of include paths used to compile the *
-#* `ftinit' component which registers all font *
-#* drivers in the FT_Init_FreeType() function. *
-#* *
-#* FTINIT_DRIVER_H: The list of header dependencies used to *
-#* compile the `ftinit' component. *
-#* *
-#* FTINIT_DRIVER_MACROS: The list of macros to be defined when *
-#* compiling the `ftinit' component. *
-#* *
-#* `Single-object compilation' means that each font driver is compiled *
-#* into a single object file. This is useful to get rid of all *
-#* driver-specific entries. *
-#* *
-#****************************************************************************
+# Copyright 1996-2000 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.
-# include the rules defined for the SFNT driver, which is heavily used
-# by the TrueType one..
+
+# Include the rules defined for the SFNT driver, which is heavily used
+# by the TrueType one.
#
include $(SRC_)sfnt/rules.mk
@@ -109,23 +41,22 @@
TT_COMPILE := $(FT_COMPILE) $(TT_CFLAGS)
-# TrueType driver sources (i.e., C files)
+# driver sources (i.e., C files)
#
-TT_DRV_SRC := $(TT_DIR_)ttobjs.c \
- $(TT_DIR_)ttpload.c \
- $(TT_DIR_)ttgload.c \
- $(TT_DIR_)ttinterp.c \
+TT_DRV_SRC := $(TT_DIR_)ttobjs.c \
+ $(TT_DIR_)ttpload.c \
+ $(TT_DIR_)ttgload.c \
+ $(TT_DIR_)ttinterp.c \
$(TT_DIR_)ttdriver.c
-
-# TrueType driver headers
+# driver headers
#
-TT_DRV_H := $(SFNT_H) \
- $(TT_DIR_)ttconfig.h \
+TT_DRV_H := $(SFNT_H) \
+ $(TT_DIR_)ttconfig.h \
$(TT_DRV_SRC:%.c=%.h)
-# default TrueType extensions sources
+# default extensions sources
#
TT_EXT_SRC := $(TT_EXT_DIR_)ttxkern.c \
$(TT_EXT_DIR_)ttxgasp.c \
@@ -133,8 +64,7 @@
$(TT_EXT_DIR_)ttxcmap.c \
$(TT_EXT_DIR_)ttxwidth.c
-
-# default TrueType extensions headers
+# default extensions headers
#
TT_EXT_H := $(TT_EXT_SRC:.c=.h)
@@ -153,8 +83,7 @@
TT_EXT_OBJ := $(TT_EXT_SRC:$(TT_EXT_DIR_)%.c=$(OBJ_)%.$O)
-
-# driver root source file(s)
+# driver source file(s)
#
TT_DRV_SRC_M := $(TT_DRV_SRC) $(SFNT_SRC)
TT_DRV_SRC_S := $(TT_DIR_)truetype.c
@@ -184,15 +113,9 @@
$(TT_COMPILE) $T$@ $<
-# treat `ttpload' as a special case, as it includes C files
-#
-$(OBJ_)ttpload.$O: $(TT_DIR_)ttpload.c $(BASE_H) $(SFNT_SRC) $(TT_DRV_H)
- $(TT_COMPILE) $T$@ $<
-
-
# update main driver object lists
#
DRV_OBJS_S += $(TT_DRV_OBJ_S)
DRV_OBJS_M += $(TT_DRV_OBJ_M)
-# END
+# EOF
--- a/src/type1z/module.mk
+++ b/src/type1z/module.mk
@@ -2,5 +2,6 @@
add_type1z_driver:
$(OPEN_DRIVER)t1z_driver_interface$(CLOSE_DRIVER)
- $(ECHO_DRIVER)type1z $(ECHO_DRIVER_DESC) Postscript font files with extension *.pfa or *.pfb $(ECHO_DRIVER_DONE)
+ $(ECHO_DRIVER)type1z $(ECHO_DRIVER_DESC)Postscript font files with extension *.pfa or *.pfb$(ECHO_DRIVER_DONE)
+# EOF
--- a/src/type1z/rules.mk
+++ b/src/type1z/rules.mk
@@ -1,21 +1,25 @@
+#
+# FreeType 2 driver configuration rules
+#
+
+
+# Copyright 1996-2000 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.
+
+
#****************************************************************************
#* *
-#* Type1z driver Makefile *
-#* *
-#* 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 "Type1z" driver is an experimental replacement for the current *
-#* Type 1 driver. It features a very different loading mechanism that *
-#* is much faster than the one used by the "normal" driver, and also *
-#* deals nicely with nearly broken Type 1 font files.. It is also *
-#* much smaller.. *
+#* Type 1 driver. It features a very different loading mechanism that *
+#* is much faster than the one used by the `normal' driver, and also *
+#* deals nicely with nearly broken Type 1 font files. It is also *
+#* much smaller... *
#* *
#* Note that it may become a permanent replacement of the current *
#* "src/type1" driver in the future.. *
@@ -22,75 +26,6 @@
#* *
#****************************************************************************
-
-#****************************************************************************
-#* *
-#* IMPORTANT NOTE: This Makefile is intended for GNU Make! *
-#* If you provide Makefiles for other make utilities, *
-#* please place them in `freetype/lib/arch/<system>'. *
-#* *
-#* *
-#* This file is to be included by the FreeType Makefile.lib, located in *
-#* the `freetype/lib' directory. Here is the list of the variables that *
-#* must be defined to use it: *
-#* *
-#* *
-#* BASE_DIR: The location of the base layer's directory. This is *
-#* usually `freetype/lib/base'. *
-#* *
-#* ARCH_DIR: The location of the architecture-dependent directory. *
-#* This is usually `freetype/lib/arch/<system>'. *
-#* *
-#* DRIVERS_DIR: The location of the font driver sub-dirs, usually *
-#* `freetype/lib/drivers'. *
-#* *
-#* OBJ_DIR: The location where the compiled object(s) file will be *
-#* placed. *
-#* *
-#* BASE_H: A list of pathnames to the base layer's header files on *
-#* which the driver depends. *
-#* *
-#* FT_CFLAGS: A set of flags used for compilation of object files. *
-#* This contains at least the include paths of the arch *
-#* and base directories + optimization + warnings + ANSI *
-#* compliance. *
-#* *
-#* FT_IFLAG: The flag used to specify an include path on the *
-#* compiler command line. For example, with GCC, this is *
-#* `-I', while some other compilers use `/i=' or `-J', *
-#* etc. *
-#* *
-#* FT_OBJ: The suffix of an object file for the platform; can be *
-#* `o', `obj', `coff', `tco', etc. depending on the *
-#* platform. *
-#* *
-#* *
-#* It also updates the following variables defined and used in the main *
-#* Makefile: *
-#* *
-#* DRV_OBJ_S: The list of driver object files in *
-#* single-object mode. *
-#* *
-#* DRV_OBJ_M: The list of driver object files in *
-#* multiple-objects mode. *
-#* *
-#* FTINIT_DRIVER_PATHS: The list of include paths used to compile the *
-#* `ftinit' component which registers all font *
-#* drivers in the FT_Init_FreeType() function. *
-#* *
-#* FTINIT_DRIVER_H: The list of header dependencies used to *
-#* compile the `ftinit' component. *
-#* *
-#* FTINIT_DRIVER_MACROS: The list of macros to be defined when *
-#* compiling the `ftinit' component. *
-#* *
-#* `Single-object compilation' means that each font driver is compiled *
-#* into a single object file. This is useful to get rid of all *
-#* driver-specific entries. *
-#* *
-#****************************************************************************
-
-
# Type1z driver directory
#
T1Z_DIR := $(SRC_)type1z
@@ -105,18 +40,17 @@
# Type1 driver sources (i.e., C files)
#
-T1Z_DRV_SRC := $(T1Z_DIR_)t1parse.c \
- $(T1Z_DIR_)t1load.c \
- $(T1Z_DIR_)t1driver.c \
- $(T1Z_DIR_)t1afm.c \
+T1Z_DRV_SRC := $(T1Z_DIR_)t1parse.c \
+ $(T1Z_DIR_)t1load.c \
+ $(T1Z_DIR_)t1driver.c \
+ $(T1Z_DIR_)t1afm.c \
$(T1Z_DIR_)t1gload.c
-
# Type1 driver headers
#
-T1Z_DRV_H := $(T1Z_DIR_)t1errors.h \
- $(T1Z_DIR_)t1config.h \
- $(T1SHARED_H) \
+T1Z_DRV_H := $(T1Z_DIR_)t1errors.h \
+ $(T1Z_DIR_)t1config.h \
+ $(T1SHARED_H) \
$(T1Z_DRV_SRC:%.c=%.h)
@@ -130,8 +64,7 @@
T1Z_DRV_OBJ_S := $(OBJ_)type1z.$O
-
-# driver root source file(s)
+# driver source file(s)
#
T1Z_DRV_SRC_M := $(T1Z_DRV_SRC) $(T1SHARED_SRC)
T1Z_DRV_SRC_S := $(T1Z_DIR_)type1z.c
@@ -145,7 +78,6 @@
$(T1Z_COMPILE) $T$@ $(T1Z_DRV_SRC_S)
-
# driver - multiple objects
#
# All objects are recompiled if any of the header files is changed
@@ -162,4 +94,4 @@
DRV_OBJS_S += $(T1Z_DRV_OBJ_S)
DRV_OBJS_M += $(T1Z_DRV_OBJ_M)
-# END
+# EOF