| 10 | | == The Current Bootstrapping Procedure == |
| 11 | | |
| 12 | | 1. Modify env.sh to accept the uname output. |
| 13 | | 1. Modify header.kmk to accept and correctly configure the platform / target OS. |
| 14 | | 1. Run kBuild/env.sh to configure the kBuild environment. |
| 15 | | 1. Copy unix like tools from you system to kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/. kBuild requires all ash (bash is recommended), cat, cp, echo, install, ln, mkdir, mv, rm, rmdir and (gnu) sed. The kBuild copies must be prefixed with {{{kmk_}}}. These tools will be replaced later in the bootstrapping. |
| 16 | | 1. Configure and build GNU sed: |
| 17 | | 1. Go to the src/sed directory. |
| 18 | | 1. Run aclocal, autoconf and automake in src/sed if needed. |
| 19 | | 1. Create and enter src/sed/obj. |
| 20 | | 1. Run ../configure --disable-nls. |
| 21 | | 1. Run make |
| 22 | | 1. Copy config.h to src/sed/config.h.$BUILD_TARGET (or similar, see Makefile.kmk). |
| 23 | | 1. Copy sed/sed[.exe] to kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/kmk_sed[.exe]. |
| 24 | | 1. Configure and build plain GNU Make: |
| 25 | | 1. Run aclocal, autoconf and automake in src/gmake if needed. |
| 26 | | 1. Create and enter src/gmake/obj. |
| 27 | | 1. Run ../configure --disable-nls. |
| 28 | | 1. Run make |
| 29 | | 1. Copy config.h to src/gmake/config.h.$BUILD_TARGET (or similar, see Makefile.kmk). Append empty string #defines for LOCALEDIR, LIBDIR, INCLUDEDIR and ALIASPATH (see config.h.linux). |
| 30 | | 1. We've now got our own make binary which will be used further down. |
| 31 | | 1. Build src/gmake using the GNU Make we just made: |
| 32 | | 1. Go to the src/gmake directory. |
| 33 | | 1. obj/make -f Makefile.kmk |
| 34 | | 1. When it breaks fix the compiler / linker error and redo the previous step. |
| 35 | | 1. Copy out/$BUILD_TARGET.$BUILD_TARGET_ARCH/release/kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/ to kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/. |
| 36 | | 1. Rebuild everything using kmk (which should now be in the path): |
| 37 | | 1. Run kBuild/env.sh (or continue in the shell from the previous step). |
| 38 | | 1. Go to the root. |
| 39 | | 1. kmk BUILD_TYPE=release rebuild |
| 40 | | 1. Fix build breaks and repeat the previous step. |
| 41 | | 1. Copy out/$BUILD_TARGET.$BUILD_TARGET_ARCH/release/kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/ to kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/. |
| 42 | | 1. Add and commit the changes (including the binaries). |
| 43 | | |
| 44 | | Note! On GNU/Linux make sure you have a real yacc install. GNU bison is not sufficiently compatible with yacc to make src/ash (from NetBSD) happy. |
| 45 | | |
| 46 | | |
| 47 | | |
| 48 | | == The New Bootstrapping Procedure (src/gmakenew) == |
| | 10 | == The New Bootstrap Procedure (src/gmakenew) == |
| | 65 | |
| | 66 | == The OLD Bootstrap Procedure == |
| | 67 | |
| | 68 | 1. Modify env.sh to accept the uname output. |
| | 69 | 1. Modify header.kmk to accept and correctly configure the platform / target OS. |
| | 70 | 1. Run kBuild/env.sh to configure the kBuild environment. |
| | 71 | 1. Copy unix like tools from you system to kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/. kBuild requires all ash (bash is recommended), cat, cp, echo, install, ln, mkdir, mv, rm, rmdir and (gnu) sed. The kBuild copies must be prefixed with {{{kmk_}}}. These tools will be replaced later in the bootstrapping. |
| | 72 | 1. Configure and build GNU sed: |
| | 73 | 1. Go to the src/sed directory. |
| | 74 | 1. Run aclocal, autoconf and automake in src/sed if needed. |
| | 75 | 1. Create and enter src/sed/obj. |
| | 76 | 1. Run ../configure --disable-nls. |
| | 77 | 1. Run make |
| | 78 | 1. Copy config.h to src/sed/config.h.$BUILD_TARGET (or similar, see Makefile.kmk). |
| | 79 | 1. Copy sed/sed[.exe] to kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/kmk_sed[.exe]. |
| | 80 | 1. Configure and build plain GNU Make: |
| | 81 | 1. Run aclocal, autoconf and automake in src/gmake if needed. |
| | 82 | 1. Create and enter src/gmake/obj. |
| | 83 | 1. Run ../configure --disable-nls. |
| | 84 | 1. Run make |
| | 85 | 1. Copy config.h to src/gmake/config.h.$BUILD_TARGET (or similar, see Makefile.kmk). Append empty string #defines for LOCALEDIR, LIBDIR, INCLUDEDIR and ALIASPATH (see config.h.linux). |
| | 86 | 1. We've now got our own make binary which will be used further down. |
| | 87 | 1. Build src/gmake using the GNU Make we just made: |
| | 88 | 1. Go to the src/gmake directory. |
| | 89 | 1. obj/make -f Makefile.kmk |
| | 90 | 1. When it breaks fix the compiler / linker error and redo the previous step. |
| | 91 | 1. Copy out/$BUILD_TARGET.$BUILD_TARGET_ARCH/release/kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/ to kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/. |
| | 92 | 1. Rebuild everything using kmk (which should now be in the path): |
| | 93 | 1. Run kBuild/env.sh (or continue in the shell from the previous step). |
| | 94 | 1. Go to the root. |
| | 95 | 1. kmk BUILD_TYPE=release rebuild |
| | 96 | 1. Fix build breaks and repeat the previous step. |
| | 97 | 1. Copy out/$BUILD_TARGET.$BUILD_TARGET_ARCH/release/kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/ to kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/. |
| | 98 | 1. Add and commit the changes (including the binaries). |
| | 99 | |
| | 100 | Note! On GNU/Linux make sure you have a real yacc install. GNU bison is not sufficiently compatible with yacc to make src/ash (from NetBSD) happy. |