Fontconfig is built with the traditional configure script:

	$ ./configure --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man

This should generate valid Makefiles, then:

	$ make
	$ make install

If you're going to package fontconfig for release, there are several
important steps:

 1.	Update the version numbers
 		configure.in
		fontconfig/fontconfig.h
 2.	Fix the README
 		Change version number
		Set the date
 3.	Commit those changes
 4. 	rebuild the configuration files with autogen.sh
 		sh autogen.sh --sysconfdir=/etc --prefix=/usr --mandir=/usr/share/man --localstatedir=/var
 5.	make distcheck (NB: won't work without docbook-utils -PL)
 6.	tag the tree
 		cvs tag fc-2_2_xx
 7.	Split out the ChangeLog into ChangeLog-2.2.xx with
 	the changes since the previous release
 8.	Copy ChangeLog-2.2.xx and fontconfig-2.2.xx.tar.gz to
 	freedesktop.org:/srv/fontconfig.freedesktop.org/www/release
 9.	Update the Fontconfig Devel wiki page
 	http://fontconfig.org/wiki/Devel
10.	Compute md5sums for release files:
		md5sum fontconfig-2.2.xx.tar.gz ChangeLog-2.2.xx
11.	Post a note to fontconfig@fontconfig.org.  Include the md5sums.
	gpg sign the message.
