#******************************************************************* #* #* FreeType 2 Configuration rules for Unix + gcc #* #* Copyright 1996-1999 by #* David Turner, Robert Wilhelm, and Werner Lemberg. #* #* This file is part of the FreeType project, and may only be used #* modified and distributed under the terms of the FreeType project #* license, LICENSE.TXT. By continuing to use, modify, or distribute #* this file you indicate that you have read the license and #* understand and accept it fully. #* #* #* The purpose of this sub-Makefile is to define various build and #* platform specific variables before including the sub-Makefile #* containing the FreeType library rules, found in #* #* $(TOP)/config/freetype.mk #* #* The following variables must be defined before including this #* file : #* #* TOP Pathname to the top of the FreeType sources #* hierarchy #* #* This file should define the following variables before including #* the FreeType library rules file : #* #* BUILD Pathname to the platform-specific files used #* for the build. Usually `$(TOP)/config/' #* #* SEP Directory separator used during compilation. #* (usually "/" or "\"). Note that on Win32, both gcc #* and Visual C++ use "/" as a directory separator !! #* #* HOSTSEP Directory separator for $(COPY) and $(DELETE) #* #* DELETE The forced remove/delete command to erase one or more #* files #* #* INCLUDE The location of all public header files. e.g. #* `$(TOP)/include'include' * #* #* SRC The directory containing all sources. e.g. #* '$(TOP)/src' #* #* OBJ_DIR The location where compiled object files will be #* placed, e.g. '$(TOP)/obj' #* #* LIB_DIR The location where the resulting library file will be #* placed, e.g. '$(TOP)/obj' #* #* LIBRARY The filename of the resulting library file, without #* its extension.. e.g. 'libfreetype' or 'freetype' #* #* O The object file suffix. Can be '.o', '.obj,' '.lo,' #* ';coff,' etc. #* #* A The library file suffix. Can be '.a' '.so,' '.lib' #* '.dll,' etc. #* #* I The path inclusion flag. Some compilers use a #* different flag than '-I' to specify an additional #* include path. Examples are '/i=' or '-J ', etc. #* #* D The macro definition flag. I haven't met compilers #* which don't use the '-D' switch to define a macro, but #* who knows... #* #* T The compilation flag used to identify the target. Some #* compilers use a different flag than '-o ' to specify #* the name of the target object file. #* #* CFLAGS The set of flags used to compile object files. #* (usually contains the flag '-c'). #* #* #* #******************************************************************* ifndef TOP TOP := . endif DELETE := del SEP := / HOSTSEP := \\ BUILD := $(TOP)$(SEP)config$(SEP)win32 PLATFORM := win32 CC := lcc # the directory where all object files are placed # # Note that this is not $(TOP)/obj !! # This lets you build the library in your own directory # with something like : # # set TOP=....../path/to/freetype2/top/dir... # mkdir obj # make -f %TOP%/Makefile setup [options] # make -f %TOP%/Makefile # # OBJ_DIR := obj # the directory where all library files are placed # # by default, this is the same as OBJ_DIR, however, this can be # changed to suit particular needs.. # LIB_DIR := $(OBJ_DIR) # the object file extension, this can be .o, .tco, .obj, etc.. # depending on the platform # O := obj # the library file extension, this can be .a, .lib, etc.. # depending on the platform # A := lib # The name of the final library file. # Note that the DOS-specific Makefile uses a shorter (8.3) name # LIBRARY := freetype # path inclusion flag. # # Some compilers use a different flag than '-I' to specify an # additional include path. Examples are "/i=" or "-J", etc... # I := -I # 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 - LCC uses "-Fo" instead of "-o ", what a broken compiler # # T := -Fo # The link flag used to specify a given library file on link. # Note that this is only used to compile the demo programs, not # the library itself. # L := -Fl # C flags # # These should concern : # # - debug output # - optimization # - warnings # - ansi compliance.. # ifndef CFLAGS CFLAGS := -c -g2 -O endif # ANSIFLAGS : put there the flags used to make your compiler ANSI-compliant # nothing (if it already is by default like LCC). # ANSIFLAGS := ifdef BUILD_FREETYPE include $(TOP)/config/freetype.mk clean_freetype: clean_freetype_dos distclean_freetype: distclean_freetype_dos # 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} # # The LCC-Win32 Librarian, called LCCLIB needs all object files in the current # directory. That _is_ stupid, but we'll have to deal with it.. # DIR_OBJ := $(subst /,\\,$(OBJ_DIR)) $(FT_LIBRARY): $(OBJECTS_LIST) @$(TOP)/config/win32/lcclib.bat endif