Go to file
Axel Dörfler 681779f1c8 Our close-on-exec flag handling was broken: it's supposed to be specified per slot, not
per file descriptor (a descriptor can be shared among several slots). There is now a
second table in the io_context structure that contains that information in a bitmap.
There are now two new (private) functions to control the close-on-exec flag, fd_close_on_exec(),
and fd_set_close_on_exec().
F_DUPFD, dup(), and dup2() are supposed to clear the close-on-exec flag on the duplicated
slot - this fixes bug #57 (no output after a redirect of a shell builtin).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-06 09:02:59 +00:00
data Use our Terminal instead of MiniTerminal now that the server is stable enough to run it reliably 2005-08-14 00:12:29 +00:00
docs Added a boolean "synchronous" parameter to BRoster::Shutdown(). Used in the 2005-07-17 16:37:11 +00:00
headers Our close-on-exec flag handling was broken: it's supposed to be specified per slot, not 2005-10-06 09:02:59 +00:00
src Our close-on-exec flag handling was broken: it's supposed to be specified per slot, not 2005-10-06 09:02:59 +00:00
configure The "configure" script should now be able to detect the Haiku platform as well. 2005-09-02 13:23:51 +00:00
Jamfile added screensaver kit package 2005-08-30 12:22:22 +00:00
Jamrules update to freetype-2.1.10 2005-09-01 06:40:20 +00:00
makehdimage added uptime 2005-09-20 13:22:30 +00:00
ReadMe Added another comment suggested by Rogier van der Hee. 2005-07-10 23:11:40 +00:00

Setting Up
--------

The build system uses Jam/MR (http://www.perforce.com/jam/jam.html).
A BeOS executable of Jam 2.5 is available at:

  http://haiku-os.org/downloads.php?mode=download&id=10&mirror=0

Unzip the executable and copy it to /boot/home/config/bin.
The Jam source code is also included in the source tree. You can as well cd
into "src/tools/jam" and run "make" to obtain an executable.

To build Haiku you also need Oliver Tappe's GCC 2.95.3. You can get it at BeBits:

  http://www.bebits.com/app/4011

Older versions of GCC 2.95.3 will likely not work.


Configuring
--------

Open a Terminal and change to your Haiku trunk folder. To configure the build you
can run configure like this:

  $ ./configure --target=TARGET

Where "TARGET" is the target platform for the build. Valid targets are "r5", "bone",
"dano" and "haiku". If you omit the target it defaults to "haiku". To configure for ZETA
use the "dano" target.

The configure script generates a file named "BuildConfig" in the "build" directory.
As long as configure is not modified (!), there is no need to call it again. That is for
re-building you only need to invoke Jam or makehdimage (see below).
If you don't update the source tree very frequently, you may want to execute
configure after each update just to be on the safe side.


Building
--------

The preferred method to build Haiku (currently only possible on a BeOS machine)
is this:

  $ makehdimage /Haiku

Where "/Haiku" is the mounted BFS partition where you want to install Haiku on.
This can be any BFS partition with enough space available. Use DriveSetup to initialize
a partition to BFS.
If the parameter is omitted, makehdimage currently creates a 60 MB Haiku image in
this directory that you can use for Bochs, Qemu and other emulators to boot.

To build the whole source tree for your selected target platform (to use the apps,
drivers, add-ons, etc.) you can simply invoke Jam:

  $ jam

Or to build only a specific app/driver/etc. include it as an argument:

  $ jam Pulse

NOTE: If you have checked out the latest SVN revision, it is not unlikely that
some parts of the tree won't build.


Running
-------

Generally there are two ways of running Haiku. On real hardware using a partition
and on emulated hardware using an emulator like Bochs.

1. On Real Hardware

If you have installed Haiku to it's own partition you can include this partition in
your bootmanager and try to boot Haiku like any other OS you have installed.
To include a new partition in the BeOS bootmanager run this in a Terminal:

  $ bootman

And follow the steps of the installer.

2. On Emulated Hardware

For emulated hardware you should build a "haiku.image" using makehdimage without
arguments. How to setup this image depends on your emulater. A tutorial for Bochs
on BeOS is below.


Bochs
-----

Version 2.2 of Bochs for BeOS (BeBochs) can be downloaded from BeBits:

  http://www.bebits.com/app/3324

The package installs to: /boot/apps/BeBochs2.2

You have to set up a configuration for Bochs. You should edit the ".bochsrc" to include
the following:

ata0-master: type=disk, path="/path/to/haiku.image", cylinders=122, heads=16, spt=63
boot: disk

Now you can start Bochs:

  $ cd /boot/apps/BeBochs2.2
  $ ./bochs

Answer with RETURN and with some patience you will see Haiku booting.
If booting into the graphical evironment fails you can try to hit "space" at the very
beginning of the boot process. The Haiku bootloader should then come up and you can
select some safe mode options.


Docbook documentation
---------------------

Requirements :
- Docbook XML DTD (http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip)
- Docbook Stylesheets (http://prdownloads.sourceforge.net/docbook/docbook-xsl-1.68.1.tar.bz2)
- libxml2, xmllin (http://libpak.neoni.net/packages/LibPak_libxml2_dev.zip)
- libxslt, xsltproc (http://libpak.neoni.net/packages/LibPak_libxslt_dev.zip)

XML catalogs must be configured to avoid internet access :
- in Docbook Stylesheets directory : sh ./INSTALL
- in your .profile, add something like this :
	export XML_CATALOG_FILES="/boot/home/docbook-xsl-1.68.1/catalog.xml /boot/home/docbook-xml-4.2/catalog.xml /etc/xml/catalog"