wiki:Bootstrapping

Version 2 (modified by bird, 18 years ago) (diff)

--

Bootstrapping steps:

  1. Modify env.sh to accept the uname output.
  2. Modify header.kmk to accept and correctly configure the platform / target OS.
  3. Run kBuild/env.sh to configure the kBuild environment.
  4. Copy unix like tools from you system to kBuild/bin/$BUILD_TARGET_ARCH.$BUILD_TARGET/. kBuild requires all ash, cat, cp, echo, install, ln, mkdir, mv, rm and sed. The kBuild copies must be prefixed with kmk_. Some of these tools will be replaced later in the bootstrapping.

  1. If GNU Make v3.81 or later isn't availble, build plain make:
    1. Run aclocal, autoconf and automake in src/gmake if needed.
    2. Create and enter src/gmake/obj.
    3. Run ../configure.
    4. Run make
    5. We've now got our own make binary which will be used in the next step.
  2. Build kBuild using GNU Make:
    1. Run kBuild/env.sh to configure the environment properly.
    2. Go to the root.
    3. make -f Makefile.kmk
    4. Copy out/$BUILD_TARGET.$BUILD_TARGET_ARCH/debug/kBuild/bin/$BUILD_TARGET_ARCH.$BUILD_TARGET/ to kBuild/bin/$BUILD_TARGET_ARCH.$BUILD_TARGET/.
  3. Build a release build using kmk (which should now be in the path):
    1. Run kBuild/env.sh (or continue in the shell from the previous step).
    2. Go to the root.
    3. kmk BUILD_TYPE=release
    4. Copy out/$BUILD_TARGET.$BUILD_TARGET_ARCH/release/kBuild/bin/$BUILD_TARGET_ARCH.$BUILD_TARGET/ to kBuild/bin/$BUILD_TARGET_ARCH.$BUILD_TARGET/.
  4. Add and commit the changes (including the binaries).