Add README.win32, courtesy of Damian Frank

This commit is contained in:
Behdad Esfahbod 2008-09-24 17:22:51 -04:00
parent 5a06ca852c
commit ab682a6ff2
4 changed files with 74 additions and 1 deletions

View file

@ -23,6 +23,7 @@ Miklós Erdélyi <erdelyim@gmail.com> Fix typo leading to a crash
Behdad Esfahbod <behdad@behdad.org> Huge piles of bug fixes, improvements, and general maintenance
Brian Ewins <Brian.Ewins@gmail.com> ATSUI maintenance (first success at making it really work)
Bertram Felgenhauer <int-e@gmx.de> Fixes for subtle arithmetic errors
Damian Frank <damian.frank@gmail.com> Build system improvements for win32
Bdale Garbee <bdale@gag.com> Provided essential support for cairo achitecture sessions
Jens Granseuer <jensgr@gmx.net> Fixes to generate proper compiler flags
Laxmi Harikumar <laxmi.harikumar@digital.com> Build fix

View file

@ -90,7 +90,7 @@ regular "./configure; make; make install" sequence can be used.
See file named INSTALL for more details.
There is limited support for a win32 build system.
See Makefile.win32 files in various directories.
See README.win32 and Makefile.win32 files in various directories.
ChangeLog

View file

@ -1,6 +1,7 @@
include $(top_srcdir)/build/Makefile.am.common
EXTRA_DIST += \
README.win32 \
Makefile.win32 \
build/Makefile.win32.common \
build/Makefile.win32.features \

71
README.win32 Normal file
View file

@ -0,0 +1,71 @@
Building Cairo on Windows
=========================
There are two primary ways to build Cairo on Windows. You can use a
UN*X-like setup, such as Cygwin, with the conventional configure
script shipped with Cairo releases. In this configuration, you will
build with GCC and end up with (for instance) a Cygwin-dependent
library. In theory, this technique is no different than the ordinary
build process for the Cairo library.
The second way is to use a GNU-compatible make, but build using
Microsoft's Visual C++ compiler to produce native libraries. This is
the setup this README is written for.
Tools required
==============
You will need GNU make, version 3.80 or later. Earlier versions or
other modern make implementations may work, but are not guaranteed to.
You will also need Microsoft Visual C++. Version 7 has been most
heavily tested, but other versions are likely to work fine.
Libraries required
==================
Cairo requires a compatible version of the pixman library. Full build
instructions are beyond the scope of this document; however, using the
same tools, it should be possible to build pixman simply by entering
the pixman/src directory and typing:
make -f Makefile.win32 CFG=release
Depending on your feature set, you may also need zlib and libpng.
Building
========
There are a few files that you will need to edit. First, you must
determine which features will be built. Edit
build/Makefile.win32.features and set the features as desired. Note
that most features have external dependencies; specifically,
CAIRO_HAS_PNG_FUNCTIONS requires libpng to be present, and
CAIRO_HAS_PS_SURFACE and CAIRO_HAS_PDF_SURFACE both require zlib.
To ensure that the compiler can find all dependencies, you may need to
edit build/Makefile.win32.common. In particular, ensure that
PIXMAN_CFLAGS contains a -I parameter pointing to the location of
your pixman header files and that PIXMAN_LIBS points to the actual
location of your pixman-1.lib file. You may also need to edit the
various occurrences of CAIRO_LIBS to point to other libraries
correctly. Note also that if you wish to link statically with zlib,
you should replace zdll.lib with zlib.lib.
Finally, from the top Cairo directory, type:
make -f Makefile.win32 CFG=release
If this command succeeds, you will end up with src/release/cairo.dll.
To successfully use Cairo from your own programs, you will probably
want to move this file to some central location. You will also
probably want to copy the Cairo header files. These should be placed
in a cairo subdirectory (for instance, c:/code/common/include/cairo).
The exact set to copy depends on your features and is reported to you
at the end of the build.