This service provided by BeBits: The Best Source of BeOS Software!
BuildingCairo
BeBits > TableOfContents > DeveloperArea > HowTo

How to build Cairo in lots and lots of easy steps

OR

The dependencies of my dependencies are also dependencies

To build Cairo you will need a few tools and a few dependencies built first:
Note: I may have missed somethings that I've installed earlier, notify me if that is the case.
Note: Tested under BONE and Zeta.

Preparing To Build

  • Setting Up The Tools and Dependencies

    1. Installing The 'make' Utility.
      - Download make from BeBits. (http://www.bebits.com/app/2394)
      - Unpack it, but don't run the install.sh script. ( It replaces your original make file and it may come in handy some day )
      - Right click the make file and choose "Get Info", check that Execute Permissions are checked, if not check them ( at least for owner )
      - Move the unpacked make file to /boot/home/config/bin
      - Start a terminal and run:

      make --version

      - Make sure it says "GNU Make version 3.79.1" or better because Mozilla needs 3.79 or better to build properly.

    2. Installing Oliver Tappe's gcc compiler.
      - Download gcc-2.95.3 from BeBits. (http://www.bebits.com/app/4011)
      - Expand the archive and follow the installation directions.
      - Additional Note for Net_Server /boot/develop/tools/gcc-2.95.3_binutils-2.15/lib/gcc-lib/i586-pc-beos/2.95.3-beos-041202/specs is a symlink to specs.Default, which lacks -lnet entry. To correct this, relink specs to specs.R5 in same folder.

    3. Installing libxml2
      - Download libxml2-2.6.27.tar.gz
      - Unpack it to where you want to keep it. Keeping it allows you to do 'make uninstall' later if you want it gone from your system.
      - For BONE, Open the files nanoftp.c and nanohttp.c and change the line:

      #ifndef __BEOS__

      to:

      #if !defined(__BEOS__) || defined(BONE_VERSION)

      For reference the line after should be:

      #define closesocket(s) close(s)

      - Open a Terminal and cd to the directory where you unpacked it.
      - Run the following from Terminal:

      LDFLAGS="-lbind -lbsd" configure --prefix=/boot/home/config
      make
      make install
                                   

      - make install will install a lot of file in '/boot/home/config' which you may want to remove someday, keeping the original directory allows you to do this later by running:

      make uninstall

      Hopefully someone may do a better BeOS package.

    4. Installing pkg-config
      - Download pkg-config-0.21.tar.gz
      - Unpack it to where you want to keep it. Keeping it allows you to do 'make uninstall' later if you want it gone from your system.
      - Open a Terminal and cd to the directory where you unpacked it.
      - Run the following from Terminal:

      configure --prefix=/boot/home/config
      make
      make install
                                   

      - make install will install a lot of file in '/boot/home/config' which you may want to remove someday, keeping the original directory allows you to do this later by running:

      make uninstall

      Hopefully someone may do a better BeOS package.

    5. Installing freetype
      - Download freetype-2.3.1.tar.gz.
      - Unpack it to where you want to keep it. Keeping it allows you to do 'make uninstall' later if you want it gone from your system.
      - Open a Terminal and cd to the directory where you unpacked it.
      - Run the following from Terminal:

      configure --prefix=/boot/home/config
      make
      make install
                                   

      - make install will install a lot of file in '/boot/home/config/' which you may want to remove someday, keeping the original directory allows you to do this later by running:

      make uninstall

      Hopefully someone may do a better BeOS package.

    6. Installing expat
      - Download expat-2.0.0.tar.gz.
      - Unpack it to where you want to keep it. Keeping it allows you to do 'make uninstall' later if you want it gone from your system.
      - Open a Terminal and cd to the directory where you unpacked it.
      - Run the following from Terminal:

      configure --prefix=/boot/home/config
      make
      make install
                                   

      - make install will install a lot of file in '/boot/home/config' which you may want to remove someday, keeping the original directory allows you to do this later by running:

      make uninstall

      Hopefully someone may do a better BeOS package.

    7. Installing font-config
      - Download fontconfig-2.4.2.tar.gz.
      - Unpack it to where you want to keep it. Keeping it allows you to do 'make uninstall' later if you want it gone from your system.
      - Open a Terminal and cd to the directory where you unpacked it.
      - Run the following from Terminal:

      LDFLAGS="-lbind -lsocket" configure --prefix=/boot/home/config --with-expat=/boot/home/config
      make
      make install
                                   

      - if "make" fails with lots of warnings about "endif", delete the contents of fontconfig-2.4.2/src/fcaliastail.h
      - make install will install a lot of files in '/boot/home/config' which you may want to remove someday, keeping the original directory allows you to do this later by running:

      make uninstall

      Hopefully someone may do a better BeOS package.

    8. Installing libpng (needed to run tests)
      - Download libpng-1.2.16.tar.gz.
      - Unpack it to where you want to keep it. Keeping it allows you to do 'make uninstall' later if you want it gone from your system.
      - Open a Terminal and cd to the directory where you unpacked it.
      - Run the following from Terminal:

      configure --prefix=/boot/home/config
      make
      make install
                                   

      -Zeta users: this version of libpng is incompatible with the one used in Zeta 1.21 and 1.5. You will have problems with tracker and other apps. Do not restart your machine until you finish building cairo.
      - make install will install a lot of files in '/boot/home/config' which you may want to remove someday, keeping the original directory allows you to do this later by running:

      make uninstall

      Hopefully someone may do a better BeOS package.

    There that wasn't that easy (err, I mean hard) was it. Now it's time to build Cairo.

  • Installing Cairo

    - Download cairo-1.3.14.tar.gz
    - Unpack it to where you want to keep it. Keeping it allows you to do 'make uninstall' later if you want it gone from your system.
    - Modify a few files [TBD] ( see : tqh's modifications )
    - Open a Terminal and cd to the directory where you unpacked it.
    - Run the following from Terminal

    configure --prefix=/boot/home/config --enable-beos=yes
    make
    make install
                

    - make install will install a lot of files in '/boot/home/config/' which you may want to remove someday, keeping the original directory allows you to do this later by running:

    make uninstall

    Hopefully someone may do a better BeOS package.

    Zeta users: after finishing cairo, you must delete the file /boot/home/config/lib/libpng.so. This is a link to the libpng created above. When it is removed, Zeta will only find the default. If you need to rebuild cairo at some point, create the link again from, from /boot/home/config/lib/libpng12.so.

    Now running make test you should get an idea where the BeOS port is at. I haven't really worked on any of that yet.

/TQH with edits by tigerdog, mmadia

PAGE VISITS
10,390

LINKS HERE
HowTo
CrosscompilingFirefox

NEW PAGES
CrosscompilingFirefox
BuildingCairo
StoringDataInBetweenOSes
ScriptingBeosRuby
ScriptingBeosPython
HaikuOS
QemUwinbe
MinimalBeos
XpMBRoverwrite
SteveSakoman

RECENT CHANGES
CorumIII
BeUserProfiles
PhilipDybowski
BuildingFirebird
FrontPage
BeAcademic
CrosscompilingFirefox
HowTo
BuildingCairo
BeCommunity
Edit Page | Front Page | BeBits
Site content is in the public domain. Unless otherwise noted, everything else is copyright © 1999-2002 Fifth Ace Productions, LLC. All Rights Reserved.
For more legal trivia, take a gander at our
Legal Stuff page and our Privacy Statement.
Fifth Ace Productions