Pre-requisite Software
Build platform support matrix
Below are common build platforms and their statuses. This is not meant as a complete list, and the build specifics might change with new versions of those platforms. Further below you'll find more specific help on how to set up the build.
| Platform | Package Manager | Supported | Skill Level | Notes |
| Haiku | pkgman | Yes | Beginner | Easiest (with caveats) |
| Arch Linux | pacman | Yes | Advanced | - |
| BeOS | pkg | No | - | Once upon a time.. |
| CentOS | rpm/yum | Yes | Intermediate | - |
| Debian Linux | apt | Yes | Intermediate | Missing mkisofs |
| Elementary OS | apt | Yes | Beginner | Missing mkisofs |
| Fedora | rpm/yum | Yes | Beginner | Missing mkisofs |
| FreeBSD | packages | Yes | Advanced | Works very well |
| Gentoo | Portage | Yes | Advanced | - |
| Linux Mint | apt | Yes | Beginner | Missing mkisofs |
| Mac OS X | MacPorts | Yes | Intermediate | - |
| NetBSD | packages | Yes | Advanced | Untested |
| OpenSUSE | rpm/zypper | Yes | Intermediate | Missing mkisofs |
| Red Hat Linux | rpm/yum | Yes | Intermediate | Missing mkisofs |
| Solaris | solaris pkg | No | - | - |
| Ubuntu | apt | Yes | Beginner | Missing mkisofs |
| Windows | Cygwin | No | - | - |
| Zeta | pkg | No | - | Once upon a time.. |
Generalized List
- Git client To clone source code from project
- SSH Client Only needed for commiters
Requirements for compiling the build tools
Requirements for compiling Haiku
- Haiku (cross) compiler Only needed for non-Haiku build platforms such as Linux
- Jam Haiku uses a custom fork of Jam
- mkisofs (genisoimage != mkisofs)
- wget Used to download optional packages
- NASM
- curl development 7.32.0+ For compiling libpackage
- bc
Requirements to compile Haiku for the ARM platform
Linux remarks - xattr
Building Haiku correctly currently requires proper xattr support on the file system you compile it with. Currently, your options are unfortunately rather limited, as for example, ext4 does not sufficiently support this feature. Recommended file systems to use under Linux are XFS, and ReiserFS at this time.
There is a fallback mechanism that is used otherwise, but this is known to be problematic sometimes.
In order to use xattr support, some distributions may need "attr" and "attr-dev" installed. See Configure Option : --use-xattr
APT-based GNU/Linux Distribution (Debian, Ubuntu, Mint...)
Here are the packages to install on Debian/Ubuntu/Mint, which uses APT and sudo.
sudo apt-get install git nasm autoconf automake texinfo flex bison gawk build-essential unzip wget zip less zlib1g-dev libcurl4-openssl-dev genisoimage libtool
For the ARM port you will also need these packages:
sudo apt-get install u-boot-tools util-linux mtools device-tree-compiler
pacman (Arch Linux)
Here are the packages to install on Arch Linux which uses pacman
sudo pacman -S base-devel bison git texinfo nasm openssh unzip curl wget flex cdrtools bc
For the ARM port you will also need these packages:
sudo pacman -S yaourt uboot-tools mtools
RPM-based GNU/Linux Distributions using yum(Fedora, CentOS...)
Here are the packages to install on Fedora/CentOS, which uses Yum.
sudo yum install git nasm autoconf automake texinfo flex bison gcc gcc-c++ make glibc-devel zlib-devel genisoimage curl-devel libfdt byacc mtools
With Fedora, you will also need to install the libstc++-static package if the build fails because of a missing libsupc++:
sudo yum install libstdc++-static
RPM-based GNU/Linux Distribution using zypper (OpenSUSE, SLES)
Here are the packages to install on OpenSUSE/SUSE Enterprise which uses zypper.
sudo zypper install git nasm autoconf automake texinfo flex bison gcc-c++ make glibc-devel zlib-devel curl-devel
Portage (Gentoo)
Here are the packages to install on Gentoo which uses Portage.
sudo emerge -av dev-vcs/git autoconf automake texinfo flex bison gawk tar sys-libs/zlib cdrkit wget nasm net-misc/curl bc
For the ARM port you will also need these packages:
sudo emerge -av u-boot-tools mtools util-linux dtc
BSD Based Distribution
Package based (FreeBSD < 10):
sudo pkg_add -r bison git nasm gawk texinfo cdrtools-devel wget u-boot mtools linuxfdisk curlPackage based (FreeBSD >= 10):
sudo pkg install bison git nasm gawk texinfo cdrtools-devel wget u-boot mtools linuxfdisk curlPorts based:
sudo portinstall devel/bison devel/git devel/nasm lang/gawk print/texinfo sysutils/cdrtools-devel ftp/curl ftp/wget devel/u-boot emulators/mtools sysutils/linuxfdisk
OS X
A case-sensitive file system is required to build Haiku. You can use Disk Utility to create a case-sensitive disk image and store the Haiku source tree on that. Case-sensitive HFS+ works fine.
First install Xcode or if you don't want all of Xcode you can install just the command line tools by running:
xcode-select --install
If you didn't install all of Xcode you will need to agree to the Xcode license by running:
xcodebuild -license
Once you have installed XCode and the command line tools as well as agreed to the end user license you can install the prerequisite software either by using MacPorts or by using Homebrew.
To install the prerequisite software using Macports do the following:
Install MacPorts (A standard Installer package is provided). Close your Terminal, and enter in a new one:
sudo port install autoconf cdrtools gawk wget nasm less mpfr gmp libmpc(You will be prompted for the administrator password of the current account)
If you get an error “port: command not found”, the MacPorts shell configuration, stored in ~/.profile, is probably not taken into account.
If you’re using Bash, you probably have a ~/.bash_profile or ~/.bash_login file, preventing bash to read ~/.profile.
Check the file used by Bash (in the mentioned order) and add these lines to the used file:
export PATH=/opt/local/bin:$PATH export MANPATH=$MANPATH:/opt/local/share/man export INFOPATH=$INFOPATH:/opt/local/share/infoIf you are using another shell, take a look a the shell documentation to see which file is parsed at login, and add the required commands. You can now retry the
port install... command in a new Terminal.
Note: the ARM port is not yet supported for OS X, MacPorts has mtools but is missing sfdisk at least.
To install the prerequisite software using Homebrew instead, do the following:
Install Homebrew using the ruby command line installer provided on the linked page. Next install the prerequisite software to build Haiku using the following command:
brew install autoconf cdrtools gawk wget nasm homebrew/dupes/less mpfr gmp libmpc
Note that you'll need to install gnu less from the dupes repository as OS X comes with BSD less while Haiku requires GNU less.
BeOS & Zeta
- Git : not available
- SSH : [net_server, BONE]
- Development Tools (contains obsolete GCC version; please use version linked below instead)
- GCC compiler 2.95.3
- GCC Haiku cross compiler 2.95.3 (extract to /boot to install)
- Jam, 2008-03-37
- yasm 0.8.0 for BONE
- wget
