README.git
----------

FreeType's official repository site is

  https://gitlab.freedesktop.org/freetype  ,

from  which the  'freetype.git' and  'freetype-demos.git' repositories
can be cloned in the usual way.

  git clone https://gitlab.freedesktop.org/freetype/freetype.git
  git clone https://gitlab.freedesktop.org/freetype/freetype-demos.git

If you  want to  use the  Savannah mirror  instead, you  have to  do a
slightly different  incantation because  the repository  names contain
digit '2' for historical reasons.

  git clone \
    https://git.savannah.nongnu.org/git/freetype/freetype2.git \
    freetype
  git clone \
    https://git.savannah.nongnu.org/git/freetype/freetype2-demos.git \
    freetype-demos


The git  archive doesn't  contain pre-built configuration  scripts for
UNIXish platforms.  To generate them say

  sh autogen.sh

which in turn depends on the following packages:

  automake (1.10.1)
  libtool (2.2.4)
  autoconf (2.62)

The versions given  in parentheses are known to  work.  Newer versions
should  work too,  of course.   Note  that `autogen.sh`  also sets  up
proper file permissions for the `configure` and auxiliary scripts.

The `autogen.sh`  script now  checks the versions  of the  above three
packages  whether they  match the  numbers above.   Otherwise it  will
complain and suggest either upgrading or using an environment variable
to point to a more recent version of the required tool(s).

Note that  `aclocal` is provided  by the 'automake' package  on Linux,
and that `libtoolize` is called `glibtoolize` on Darwin (OS X).


For static  builds that don't use  platform-specific optimizations, no
configure script is necessary at all; saying

  make setup ansi
  make

should  work on  all platforms  that  have GNU  `make` (or  `makepp`).
Similarly, a build  with `cmake` or `meson` can be  done directly from
the git repository.


For  using  the `FT_DEBUG_LOGGING`  macro  while  debugging (see  file
`docs/DEBUG`  for more  information)  the following  git commands  are
necessary to check out the 'dlg' library as a git submodule.

  git submodule init
  git submodule update


If you want to contribute to FreeType it is recommended to install the
`git-merge-changelog` program – we use a `ChangeLog` file, which often
prevents   simple   merging   due  to   conflicts.    Most   GNU/Linux
distributions  have a  package  for this  program;  otherwise you  can
install it via the 'gnulib' git repository.  Detailed instructions can
be found at the beginning of

  https://git.savannah.gnu.org/cgit/gnulib.git/tree/lib/git-merge-changelog.c

To make  it actually work, add  to file `.git/config` in  the FreeType
git repository (or to your `$HOME/.gitconfig` file) the lines

  [merge "merge-changelog"]
     name = GNU-style ChangeLog merge driver
     driver = /usr/local/bin/git-merge-changelog %O %A %B


----------------------------------------------------------------------

Copyright (C) 2005-2021 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.


--- end of README.git ---
