#******************************************************************* #* #* 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 := $(strip \ ) BUILD := $(TOP)/config/os2 PLATFORM := os2 CC := gcc # the directory where all object files are placed # # Note that this is not $(TOP)/obj !! # This lets you build the library in your own directory # with something like : # # set TOP=....../path/to/freetype2/top/dir... # mkdir obj # make -f %TOP%/Makefile setup [options] # make -f %TOP%/Makefile # # OBJ_DIR := obj # the directory where all library files are placed # # by default, this is the same as OBJ_DIR, however, this can be # changed to suit particular needs.. # LIB_DIR := $(OBJ_DIR) # the object file extension, this can be .o, .tco, .obj, etc.. # depending on the platform # O := o # the library file extension, this can be .a, .lib, etc.. # depending on the platform # A := a # The name of the final library file. # Note that the DOS-specific Makefile uses a shorter (8.3) name # LIBRARY := libfreetype # path inclusion flag. # # Some compilers use a different flag than '-I' to specify an # additional include path. Examples are "/i=" or "-J", etc... # I := -I # The link flag used to specify a given library file on link. # Note that this is only used to compile the demo programs, not # the library itself. # L := -l # C flag used to define a macro before the compilation of a given # source object. Usually is '-D' like in "-DDEBUG" # D := -D # Target flag - beware, there is a space after the 'o' !! # # T := -o # C flags # # These should concern : # # - debug output # - optimization # - warnings # - ansi compliance.. # ifndef CFLAGS CFLAGS := -c -g -O6 -Wall endif # ANSIFLAGS : put there the flags used to make your compiler ANSI-compliant # nothing (if it already is by default like LCC). # ANSIFLAGS := -ansi -pedantic ifdef BUILD_FREETYPE include $(TOP)/config/freetype.mk clean_freetype: clean_freetype_dos distclean_freetype: distclean_freetype_dos # Librarian to use to build the static library # FT_LIBRARIAN := $(AR) -r # This final rule is used to link all object files into a single # library. It is part of the system-specific sub-Makefile because not # all librarians accept a simple syntax like : # # librarian library_file {list of object files} # $(FT_LIBRARY): $(OBJECTS_LIST) -$(DELETE) $@ $(FT_LIBRARIAN) $@ $(OBJECTS_LIST) # Cleaning rules # DIR_OBJ := $(subst $(SEP),\,$(OBJ_DIR)) clean_freetype_objects: -del $(DIR_OBJ)\*.$O clean_freetype_lib: -del $(subst $(SEP),\,$(FT_LIBRARY)) clean: clean_freetype_objects endif