haiku/3rdparty/docker/bootstrap
Alexander von Gluck IV 0dbb417d43 3rdparty/docker/bootstrap: Fix defaults to be more generic and engine selection
Change-Id: I8a1e3c6bd641ea08a5a06985389269d708d94655
2019-07-01 14:07:03 -05:00
..
Dockerfile docker/bootstrap: Add libncurses-dev, needed by texinfo. 2019-06-15 16:21:25 -04:00
Dockerfile.fedora docker/bootstrap: Add alternative fedora bootstrap container 2019-06-19 11:25:05 -05:00
Makefile 3rdparty/docker/bootstrap: Fix defaults to be more generic and engine selection 2019-07-01 14:07:03 -05:00
README.md bootstrap: Add some tools to test bootstrap steps 2019-02-15 11:27:04 -06:00
bootstrap.sh docker/bootstrap: Add --debug to get better haikuporter debug output 2018-11-04 08:37:54 -06:00
crosstools.sh docker/bootstrap: Add extra gcc bootstrap requirements 2018-11-02 22:32:12 -05:00
haikuports_build.sh bootstrap: Add some tools to test bootstrap steps 2019-02-15 11:27:04 -06:00
haikuports_chroot.sh docker/bootstrap: Fix sysroot stage variable 2019-04-03 20:47:12 -05:00
prep.sh docker/bootstrap: Add a few tools to bootstrap in a container 2018-11-02 15:12:04 -05:00

README.md

Haiku bootstrap in a container

The Haiku bootstrap process is highly dependant on what tools are installed on the host machine. Bootstraped haikuporter builds can pick up on things like the locally installed clang vs the gcc toolchain we are providing.

By running bootstrap within a container, we can better isolate the process from the end users host and create more-reproduceable bootstrap builds.

This is designed for GCC bootstraps. In theory if Haiku changed to clang, the need for a crosstools toolchain is removed... however the clang work is too early to know exactly how this process will work.

Requirements

  1. docker
  2. make
  3. An internet connection

Process

  1. Build the docker container

make

  1. Check out the required sources

make init

  1. Build the crosstools (gcc only) for your target architecture

TARGET_ARCH=arm make crosstools

  1. Begin the bootstrap (building Haiku + the required bootstrap hpkgs)

TARGET_ARCH=arm make bootstrap

  1. If you need to enter the build environment, TARGET_ARCH=arm make enter will quickly let you do so.
  2. profit!