1Quick-start build instructions 2------------------------------ 31) Configure the package: 4 5 ./configure 6 72) Compile it: 8 9 make 10 113) Install it: 12 13 make install 14 15This final step may require temporary root access (eg. with sudo) if 16you don't have write permission to the directory in which cairo will 17be installed. 18 19NOTE: If you are working with source from git/cvs rather than from a tar 20file, then you should use ./autogen.sh in place of ./configure 21anywhere it is mentioned in these instructions. 22 23More detailed build instructions 24-------------------------------- 251) Configure the package 26 27 The first step in building cairo is to configure the package by 28 running the configure script. [Note: if you don't have a configure 29 script, skip down below to the Extremely detailed build 30 instructions.] 31 32 The configure script attempts to automatically detect as much as 33 possible about your system. So, you should primarily just accept 34 its defaults by running: 35 36 ./configure 37 38 The configure script does accept a large number of options for 39 fine-tuning its behavior. See "./configure --help" for a complete 40 list. The most commonly used options are discussed here. 41 42 --prefix=PREFIX 43 44 This option specifies the directory under which the software 45 should be installed. By default configure will choose a 46 directory such as /usr/local. If you would like to install 47 cairo to some other location, pass the director to configure 48 with the --prefix option. For example: 49 50 ./configure --prefix=/opt/cairo 51 52 would install cairo into the /opt/cairo directory. You could 53 also choose a prefix directory within your home directory if 54 you don't have write access to any system-wide directory. 55 56 After installing into a custom prefix, you will need to set 57 some environment variables to allow the software to be 58 found. Assuming the /opt/cairo prefix and assuming you are 59 using the bash shell, the following environment variables 60 should be set: 61 62 PKG_CONFIG_PATH=/opt/cairo/lib/pkgconfig 63 LD_LIBRARY_PATH=/opt/cairo/lib 64 export PKG_CONFIG_PATH LD_LIBRARY_PATH 65 66 (NOTE: On Mac OS X, at least, use DYLD_LIBRARY_PATH in place 67 of LD_LIBRARY_PATH above.) 68 69 --enable-XYZ 70 --enable-XYZ=yes 71 --enable-XYZ=auto 72 --enable-XYZ=no 73 --disable-XYZ 74 75 Cairo's various font and surface backends and other features can be 76 enabled or disabled at configure time. Features can be divided into 77 three categories based on their default state: 78 79 * default=yes: These are the recommended features like PNG functions 80 and PS/PDF/SVG backends. It is highly recommended to not disable 81 these features but if that's really what one wants, they can be 82 disabled using --disable-XYZ. 83 84 * default=auto: These are the "native" features, that is, they are 85 platform specific, like the Xlib surface backend. You probably 86 want one or two of these. They will be automatically enabled if 87 all their required facilities are available. Or you can use 88 --enable-XYZ or --disable-XYZ to make your desire clear, and then 89 cairo errs during configure if your intention cannot be followed. 90 91 * default=no: These are the "experimental" features, and hence by 92 default off. Use --enabled-XYZ to enable them. 93 94 The list of all features and their default state can be seen in the 95 output of ./configure --help. 96 972) Compile the package: 98 99 This step is very simple. Just: 100 101 make 102 103 The Makefiles included with cairo are designed to work on as many 104 different systems as possible. 105 106 When cairo is compiled, you can also run some automated tests of 107 cairo with: 108 109 make check 110 111 NOTE: Some versions of X servers will cause the -xlib tests to 112 report failures in make check even when cairo is working just 113 fine. If you see failures in nothing but -xlib tests, please 114 examine the corresponding -xlib-out.png images and compare them to 115 the -ref.png reference images (the -xlib-diff.png images might also 116 be useful). If the results seem "close enough" please do not report 117 a bug against cairo as the "failures" you are seeing are just due 118 to subtle variations in X server implementations. 119 1203) Install the package: 121 122 The final step is to install the package with: 123 124 make install 125 126 If you are installing to a system-wide location you may need to 127 temporarily acquire root access in order to perform this 128 operation. A good way to do this is to use the sudo program: 129 130 sudo make install 131 132Extremely detailed build instructions 133------------------------------------- 134So you want to build cairo but it didn't come with a configure 135script. This is probably because you have checked out the latest 136in-development code via git. If you need to be on the bleeding edge, 137(for example, because you're wanting to develop some aspect of cairo 138itself), then you're in the right place and should read on. 139 140However, if you don't need such a bleeding-edge version of cairo, then 141you might prefer to start by building the latest stable cairo release: 142 143 http://cairographics.org/releases 144 145or perhaps the latest (unstable) development snapshot: 146 147 http://cairographics.org/snapshots 148 149There you'll find nicely packaged tar files that include a configure 150script so you can go back the the simpler instructions above. 151 152But you're still reading, so you're someone that loves to 153learn. Excellent! We hope you'll learn enough to make some excellent 154contributions to cairo. Since you're not using a packaged tar file, 155you're going to need some additional tools beyond just a C compiler in 156order to compile cairo. Specifically, you need the following utilities: 157 158 automake 159 autoconf 160 autoheader 161 aclocal 162 libtoolize 163 pkg-config [at least version 0.16] 164 gtk-doc (recommended) 165 166Hopefully your platform of choice has packages readily available so 167that you can easily install things with your system's package 168management tool, (such as "apt-get install automake" on Debian or "yum 169install automake" on Fedora, etc.). Note that Mac OS X ships with 170glibtoolize instead of libtoolize. 171 172Once you have all of those packages installed, the next step is to run 173the autogen.sh script. That can be as simple as: 174 175 ./autogen.sh 176 177But before you run that command, note that the autogen.sh script 178accepts all the same arguments as the configure script, (and in fact, 179will generate the configure script and run it with the arguments you 180provide). So go back up to step (1) above and see what additional 181arguments you might want to pass, (such as prefix). Then continue with 182the instructions, simply using ./autogen.sh in place of ./configure. 183 184Happy hacking! 185