Changes between Version 24 and Version 25 of Bootstrapping


Ignore:
Timestamp:
May 26, 2007, 11:18:34 PM (18 years ago)
Author:
bird
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Bootstrapping

    v24 v25  
    88
    99
    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) ==
    4911
    5012 1. Modify env.sh to accept the uname output.
     
    10163 * The sed and GNU make configure scripts might not like the system sed. Try find a GNU sed binary or bootstrap it yourself. Copy you sed program to kBuild/bin/$BUILD_TARGET.$BUILD_TARGET_ARCH/ (without any prefix) and it'll be used instead of the system sed.
    10264 * Use a real YACC when compiling ash. GNU bison will not work (yyerrstatus undeclared error). You can add YACC=/path/to/real/yacc to the kmk command line if it's not in the PATH.
     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
     100Note! 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.