misc/libfreetype/docs/INSTALL.GNU
author koda
Mon, 17 Jun 2013 17:40:01 +0200
changeset 9234 2bf3796c5855
parent 5172 88f2e05288ba
permissions -rw-r--r--
This commit changes many aspect of our cmake build system - shared libraries are compiled by default: * this modifies RPATH of unix executables; * this will prevent a lot of linking issues, esp. from pascal world; * the old behaviour (static libs) is still available with -DBUILD_SHARED_LIBS=off; * of course in this case you have to provide the full list of dependencies with FPFLAGS and CMAKE_C_FLAGS; - pascal is now fully integrated with cmake, meaning you can just do add_sources and use CMAKE_Pascal_FLAGS: * some of the language features are only partially implemented, for example .inc files will not get rebuilt if you modify them; * target_link_libraries for pascal targets is just dummy as linking is determined within pascal files; * universal builds for osx are not available any more; - bundled libraries and system libraries are addressed using the target name: * this avoids depedency tracking; * this allows to name output as we wish.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5172
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     1
This document contains instructions  how to build the FreeType library
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     2
on non-Unix systems  with the help of GNU Make.  Note  that if you are
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     3
running Cygwin or MSys in  Windows, you should follow the instructions
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     4
in the file INSTALL.UNIX instead.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     5
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     6
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     7
  FreeType 2 includes a powerful and flexible build system that allows
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     8
  you to  easily compile it on  a great variety of  platforms from the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
     9
  command line.  To do so, just follow these simple instructions.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    10
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    11
  1. Install GNU Make
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    12
  -------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    13
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    14
    Because  GNU Make  is  the  only Make  tool  supported to  compile
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    15
    FreeType 2, you should install it on your machine.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    16
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    17
    The FreeType 2 build system relies on many features special to GNU
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    18
    Make.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    19
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    20
    NEARLY ALL OTHER MAKE TOOLS  FAIL, INCLUDING `BSD MAKE', SO REALLY
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    21
    INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    22
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    23
    Note that  make++, a  make tool written  in Perl,  supports enough
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    24
    features of GNU make to compile FreeType.  See
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    25
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    26
      http://makepp.sourceforge.net
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    27
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    28
    for more information; you need version 1.19 or newer, and you must
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    29
    pass option `--norc-substitution'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    30
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    31
    Make sure that you are invoking GNU Make from the command line, by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    32
    typing something like:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    33
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    34
      make -v
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    35
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    36
    to display its version number.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    37
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    38
    VERSION 3.80 OR NEWER IS NEEDED!
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    39
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    40
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    41
  2. Invoke `make'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    42
  ----------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    43
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    44
    Go to  the root  directory of FreeType  2, then simply  invoke GNU
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    45
    Make from the command line.   This will launch the FreeType 2 host
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    46
    platform  detection routines.   A summary  will be  displayed, for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    47
    example, on Win32.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    48
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    49
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    50
      ==============================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    51
      FreeType build system -- automatic system detection
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    52
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    53
      The following settings are used:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    54
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    55
        platform                     win32
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    56
        compiler                     gcc
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    57
        configuration directory      .\builds\win32
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    58
        configuration rules          .\builds\win32\w32-gcc.mk
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    59
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    60
      If this does not correspond to your system or settings please
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    61
      remove the file 'config.mk' from this directory then read the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    62
      INSTALL file for help.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    63
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    64
      Otherwise, simply type 'make' again to build the library
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    65
      or 'make refdoc' to build the API reference (the latter needs
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    66
      python).
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    67
      =============================================================
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    68
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    69
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    70
    If the detected settings correspond to your platform and compiler,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    71
    skip to step 5.  Note that if your platform is completely alien to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    72
    the build system, the detected platform will be `ansi'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    73
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    74
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    75
  3. Configure the build system for a different compiler
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    76
  ------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    77
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    78
    If the build system correctly detected your platform, but you want
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    79
    to use a different compiler  than the one specified in the summary
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    80
    (for most platforms, gcc is the default compiler), invoke GNU Make
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    81
    with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    82
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    83
      make setup <compiler>
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    84
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    85
    Examples:
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    86
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    87
      to use Visual C++ on Win32, type:  `make setup visualc'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    88
      to use Borland C++ on Win32, type  `make setup bcc32'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    89
      to use Watcom C++ on Win32, type   `make setup watcom'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    90
      to use Intel C++ on Win32, type    `make setup intelc'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    91
      to use LCC-Win32 on Win32, type:   `make setup lcc'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    92
      to use Watcom C++ on OS/2, type    `make setup watcom'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    93
      to use VisualAge C++ on OS/2, type `make setup visualage'
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    94
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    95
    The  <compiler> name to  use is  platform-dependent.  The  list of
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    96
    available  compilers for  your  system is  available  in the  file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    97
    `builds/<system>/detect.mk'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    98
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
    99
    If you  are satisfied  by the new  configuration summary,  skip to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   100
    step 5.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   101
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   102
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   103
  4. Configure the build system for an unknown platform/compiler
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   104
  --------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   105
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   106
    The auto-detection/setup  phase of the build system  copies a file
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   107
    to the current directory under the name `config.mk'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   108
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   109
    For    example,    on    OS/2+gcc,    it   would    simply    copy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   110
    `builds/os2/os2-gcc.mk' to `./config.mk'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   111
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   112
    If for  some reason your  platform isn't correctly  detected, copy
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   113
    manually the configuration sub-makefile to `./config.mk' and go to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   114
    step 5.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   115
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   116
    Note  that  this file  is  a  sub-Makefile  used to  specify  Make
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   117
    variables  for compiler  and linker  invocation during  the build.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   118
    You can  easily create your own  version from one  of the existing
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   119
    configuration files,  then copy it to the  current directory under
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   120
    the name `./config.mk'.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   121
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   122
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   123
  5. Build the library
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   124
  --------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   125
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   126
    The auto-detection/setup  phase should have  copied a file  in the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   127
    current  directory,  called  `./config.mk'.   This  file  contains
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   128
    definitions of various Make  variables used to invoke the compiler
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   129
    and linker during the build.  [It has also generated a file called
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   130
    `ftmodule.h'   in  the  objects   directory  (which   is  normally
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   131
    `<toplevel>/objs/');  please read  the  file `docs/CUSTOMIZE'  for
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   132
    customization of FreeType.]
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   133
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   134
    To  launch  the build,  simply  invoke  GNU  Make again:  The  top
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   135
    Makefile will detect the configuration file and run the build with
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   136
    it.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   137
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   138
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   139
  Final note
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   140
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   141
    The build  system builds a  statically linked library of  the font
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   142
    engine in the  `objs' directory.  It does _not_  support the build
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   143
    of  DLLs on  Windows and  OS/2.  If  you need  these, you  have to
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   144
    either   use  an   IDE-specific  project   file,  or   follow  the
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   145
    instructions in `INSTALL.ANY' to create your own Makefiles.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   146
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   147
----------------------------------------------------------------------
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   148
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   149
Copyright 2003, 2004, 2005, 2006, 2008 by
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   150
David Turner, Robert Wilhelm, and Werner Lemberg.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   151
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   152
This  file is  part of  the FreeType  project, and  may only  be used,
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   153
modified,  and distributed  under the  terms of  the  FreeType project
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   154
license,  LICENSE.TXT.  By  continuing to  use, modify,  or distribute
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   155
this file you  indicate that you have read  the license and understand
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   156
and accept it fully.
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   157
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   158
88f2e05288ba aaand let's add freetype as well while we are at it
koda
parents:
diff changeset
   159
--- end of INSTALL.GNU ---