summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2008-09-24 17:22:51 -0400
committerBehdad Esfahbod <behdad@behdad.org>2008-09-24 17:23:28 -0400
commitab682a6ff28ca89cc0dd8fd641a0bbc42487f613 (patch)
treea1d6a1d77ecdb6d392c6926fab774eda746eabd0
parent5a06ca852c909f8225d7b6e7f29668b0ac79898f (diff)
Add README.win32, courtesy of Damian Frank
-rw-r--r--AUTHORS1
-rw-r--r--HACKING2
-rw-r--r--Makefile.am1
-rw-r--r--README.win3271
4 files changed, 74 insertions, 1 deletions
diff --git a/AUTHORS b/AUTHORS
index ef14e3aec..d9b7721b5 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -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
diff --git a/HACKING b/HACKING
index 679e676ab..c2998f086 100644
--- a/HACKING
+++ b/HACKING
@@ -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
diff --git a/Makefile.am b/Makefile.am
index 95ffe80e8..c36cfbbe4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -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 \
diff --git a/README.win32 b/README.win32
new file mode 100644
index 000000000..8507fdd14
--- /dev/null
+++ b/README.win32
@@ -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.
+