Changeset 4351cf4 in rtems-source-builder


Ignore:
Timestamp:
Apr 14, 2013, 3:16:55 AM (6 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, 4.9, master
Children:
69f9806
Parents:
e45a2e4
Message:

Updated documentation.

Location:
doc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • doc/host-results.csv

    re45a2e4 r4351cf4  
    1 FreeBSD 9,FreeBSD kaka 9.1-RELEASE amd64, All builds, All builds, AVR and M32C fail,
    2 Windows 7,CYGWIN_NT-6.1-WOW64 popov 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin,,ARM,ARM,Needs more testers and after hardware.
    3 Fedora 17,Linux rtbf64a 3.7.3-101.fc17.x86_64, All builds,,,
     1FreeBSD 9,FreeBSD kaka 9.1-RELEASE amd64, Build clean, Build clean,AVR fails (CFLAGS for build),
     2Windows 7,CYGWIN_NT-6.1-WOW64 popov 1.7.17(0.262/5/3) 2012-10-19 14:39 i686 Cygwin,,ARM,ARM fails (GCC PR56771),Needs more testers and after hardware.
     3Fedora 17,Linux rtbf64a 3.7.3-101.fc17.x86_64, Build clean,,,
  • doc/source-builder.txt

    re45a2e4 r4351cf4  
    1010
    1111Chris Johns <chrisj@rtems.org>
    12 1.0, April 2013
     121.2, April 2013
    1313
    1414RTEMS Tools From Source
     
    3333from source and taught this tool. The RTEMS Source Builder has been tested on:
    3434
    35 * Archlinux
    36 * Centos
    37 * Fedora
    38 * FreeBSD
    39 * MacOS
    40 * openSUSE
    41 * Raspbian
    42 * Ubuntu
    43 * Windows
    44 
    45 Windows support is being added how-ever there are issues with the Python
    46 threading used in the RTEMS Source Builder and the MinGW project's MSYS process
    47 handling of `make`.
     35* <<_archlinux,Archlinux>>
     36* <<_centos,Centos>>
     37* <<_fedora,Fedora>>
     38* <<_freebsd,FreeBSD>>
     39* <<_macos,MacOS>>
     40* <<_opensuse,openSUSE>>
     41* <<_raspbian,Raspbian>>
     42* <<_ubuntu,Ubuntu>>
     43* <<_windows,Windows>>
    4844
    4945The RTEMS Source Builder has two types configuration data. The first is the
     
    154150-------------------------------------------------------------
    155151$ ../source-builder/sb-set-builder --list-bsets <1>
    156 RTEMS Source Builder - Set Builder, v0.1
     152RTEMS Source Builder - Set Builder, v0.2.0
    157153Examining: config <2>
    158154Examining: ../source-builder/config <2>
    159     4.11/rtems-all.bset <3>
    160     4.11/rtems-arm.bset <4>
     155    4.10/rtems-all.bset <3>
     156    4.10/rtems-arm.bset <4>
     157    4.10/rtems-autotools.bset
     158    4.10/rtems-avr.bset
     159    4.10/rtems-bfin.bset
     160    4.10/rtems-h8300.bset
     161    4.10/rtems-i386.bset
     162    4.10/rtems-lm32.bset
     163    4.10/rtems-m32c.bset
     164    4.10/rtems-m32r.bset
     165    4.10/rtems-m68k.bset
     166    4.10/rtems-mips.bset
     167    4.10/rtems-nios2.bset
     168    4.10/rtems-powerpc.bset
     169    4.10/rtems-sh.bset
     170    4.10/rtems-sparc.bset
     171    4.11/rtems-all.bset
     172    4.11/rtems-arm.bset
     173    4.11/rtems-autotools.bset
    161174    4.11/rtems-avr.bset
    162175    4.11/rtems-bfin.bset
    163176    4.11/rtems-h8300.bset
     177    4.11/rtems-i386.bset
     178    4.11/rtems-lm32.bset
    164179    4.11/rtems-m32c.bset
    165180    4.11/rtems-m32r.bset
     
    172187    4.11/rtems-sh.bset
    173188    4.11/rtems-sparc.bset
     189    4.11/rtems-sparc64.bset
     190    4.11/rtems-v850.bset
     191    4.9/rtems-all.bset
     192    4.9/rtems-arm.bset
     193    4.9/rtems-autotools.bset
     194    4.9/rtems-i386.bset
     195    4.9/rtems-m68k.bset
     196    4.9/rtems-mips.bset
     197    4.9/rtems-powerpc.bset
     198    4.9/rtems-sparc.bset
    174199    gnu-tools-4.6.bset
     200    rtems-4.10-base.bset <5>
    175201    rtems-4.11-base.bset
    176     unstable/4.11/rtems-all.bset <5>
     202    rtems-4.9-base.bset
     203    rtems-base.bset <5>
     204    unstable/4.11/rtems-all.bset <6>
    177205    unstable/4.11/rtems-arm.bset
    178206    unstable/4.11/rtems-avr.bset
    179207    unstable/4.11/rtems-bfin.bset
    180208    unstable/4.11/rtems-h8300.bset
     209    unstable/4.11/rtems-i386.bset
     210    unstable/4.11/rtems-lm32.bset
    181211    unstable/4.11/rtems-m32c.bset
    182212    unstable/4.11/rtems-m32r.bset
     
    188218    unstable/4.11/rtems-sh.bset
    189219    unstable/4.11/rtems-sparc.bset
     220    unstable/4.11/rtems-sparc64.bset
     221    unstable/4.11/rtems-v850.bset
    190222-------------------------------------------------------------
    191223<1> Only option needed is +--list-bsets+
    192224<2> The paths inspected. See <<X1,+_configdir+>> variable.
    193 <3> Build all the architectures.
    194 <4> The build set for the ARM architecture.
    195 <5> Unstable tool sets are used by RTEMS developers to test new tool sets. You
     225<3> Build all RTEMS 4.10 supported architectures.
     226<4> The build set for the ARM architecture on RTEMS 4.10.
     227<5> Support build set file with common functionality included by other build
     228    set files.
     229<6> Unstable tool sets are used by RTEMS developers to test new tool sets. You
    196230    are welcome to try them but you must remember they are unstable, can change
    197231    at point in time and your application may not work. If you have an issue
     
    207241$ ../source-builder/sb-set-builder --log=l-sparc.txt <1> \
    208242                --prefix=$HOME/development/rtems/4.11 <2> 4.11/rtems-sparc <3>
    209 Source Builder - Set Builder, v0.1
     243Source Builder - Set Builder, v0.2.0
    210244Build Set: 4.11/rtems-sparc
    211245config: expat-2.1.0-1.cfg <4>
    212246package: expat-2.1.0-x86_64-freebsd9.1-1
    213247building: expat-2.1.0-x86_64-freebsd9.1-1
    214 installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11 <5>
    215 config: tools/rtems-binutils-2.22-1.cfg <6>
     248config: tools/rtems-binutils-2.22-1.cfg <5>
    216249package: sparc-rtems4.11-binutils-2.22-1
    217250building: sparc-rtems4.11-binutils-2.22-1
    218 installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
    219 config: tools/rtems-gcc-4.7.2-newlib-1.20.0-1.cfg <7>
     251config: tools/rtems-gcc-4.7.2-newlib-1.20.0-1.cfg <6>
    220252package: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
    221253building: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
    222 installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
    223 config: tools/rtems-gdb-7.5.1-1.cfg <8>
     254config: tools/rtems-gdb-7.5.1-1.cfg <7>
    224255package: sparc-rtems4.11-gdb-7.5.1-1
    225256building: sparc-rtems4.11-gdb-7.5.1-1
     257installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11 <8>
     258installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
     259installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
    226260installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
    227261cleaning: expat-2.1.0-x86_64-freebsd9.1-1 <9>
     
    241275<4> The SPARC build set first builds the expat library as is used in GDB. This
    242276    is the expat configuration used.
    243 <5> Installing the expat package to the install prefix.
    244 <6> The binutils build configuration.
    245 <7> The GCC and Newlib build configuration.
    246 <8> The GDB build configuration.
     277<5> The binutils build configuration.
     278<6> The GCC and Newlib build configuration.
     279<7> The GDB build configuration.
     280<8> Installing the built packages to the install prefix.
    247281<9> All the packages built are cleaned at the end. If the build fails all the
    248282    needed files are present. You may have to clean up by deleting the build
     
    283317COLLECT_LTO_WRAPPER=/usr/home/chris/development/rtems/4.11/bin/../ \
    284318libexec/gcc/sparc-rtems4.11/4.7.2/lto-wrapper
    285 Target: sparc-rtems4.11
    286 Configured with: ../gcc-4.7.2/configure
     319Target: sparc-rtems4.11 <1>
     320Configured with: ../gcc-4.7.2/configure <2>
    287321--prefix=/home/chris/development/rtems/4.11
    288322--bindir=/home/chris/development/rtems/4.11/bin
     
    300334--enable-threads --enable-plugin --enable-newlib-io-c99-formats
    301335--enable-newlib-iconv --enable-languages=c,c++
    302 Thread model: rtems
    303 gcc version 4.7.2 20120920 (RTEMS) (GCC)
    304 -------------------------------------------------------------
     336Thread model: rtems <3>
     337gcc version 4.7.2 20120920 <4>
     338 (RTEMS4.11-RSB(cb12e4875c203f794a5cd4b3de36101ff9a88403)-1,gcc-4.7.2/newlib-2.0.0) (GCC)
     339-------------------------------------------------------------
     340
     341<1> The target the compiler is built for.
     342<2> The configure options used to build GCC.
     343<3> The threading model is always RTEMS. This makes the RTEMS tools difficult
     344    for bare metal development more difficult.
     345<4> The version string. It contains the Git hash of the RTEMS Source Builder
     346    you are using. If your local clone has been modifed that state is also
     347    recorded in the version string. The hash allows you to track from a GCC
     348    executable back to the original source used to build it.
    305349
    306350Installing and Tar Files
    307351~~~~~~~~~~~~~~~~~~~~~~~~
    308352
    309 The RTEMS Source Builder can install the built packages directly and optionally it can
    310 create a build set tar file or a tar file per package built. The normal and
    311 default behaviour is to let the RTEMS Source Builder install the tools. The
     353The RTEMS Source Builder can install the built packages directly and optionally
     354it can create a build set tar file or a tar file per package built. The normal
     355and default behaviour is to let the RTEMS Source Builder install the tools. The
    312356source will be downloaded, built, installed and cleaned up.
    313357
     
    328372         --prefix=$HOME/development/rtems/4.11 \
    329373         --bset-tar-file <1> 4.11/rtems-sparc
    330 Source Builder - Set Builder, v0.1
     374Source Builder - Set Builder, v0.2.0
    331375Build Set: 4.11/rtems-sparc
    332376config: expat-2.1.0-1.cfg
    333377package: expat-2.1.0-x86_64-freebsd9.1-1
    334378building: expat-2.1.0-x86_64-freebsd9.1-1
    335 installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11 <2>
    336379config: tools/rtems-binutils-2.22-1.cfg
    337380package: sparc-rtems4.11-binutils-2.22-1
    338381building: sparc-rtems4.11-binutils-2.22-1
    339 installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
    340382config: tools/rtems-gcc-4.7.2-newlib-1.20.0-1.cfg
    341383package: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
    342384building: sparc-rtems4.11-gcc-4.7.2-newlib-1.20.0-1
    343 installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
    344385config: tools/rtems-gdb-7.5.1-1.cfg
    345386package: sparc-rtems4.11-gdb-7.5.1-1
    346387building: sparc-rtems4.11-gdb-7.5.1-1
     388installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11 <2>
     389installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
     390installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
    347391installing: rtems-4.11-sparc-rtems4.11-1 -> /home/chris/development/rtems/4.11
    348392tarball: tar/rtems-4.11-sparc-rtems4.11-1.tar.bz2 <3>
     
    355399
    356400<1> The option to create a build set tar file.
    357 <2> The installation still happens.
     401<2> The installation still happens unless you specify `--no-install`.
    358402<3> Creating the build set tar file.
    359403
     
    365409            --prefix=$HOME/development/rtems/4.11 \
    366410            --bset-tar-file --no-install <1> 4.11/rtems-sparc
    367 Source Builder - Set Builder, v0.1
     411Source Builder - Set Builder, v0.2.0
    368412Build Set: 4.11/rtems-sparc
    369413config: expat-2.1.0-1.cfg
     
    400444            --prefix=$HOME/development/rtems/4.11 \
    401445            --bset-tar-file --pkg-tar-files <1> --no-install 4.11/rtems-sparc
    402 Source Builder - Set Builder, v0.1
     446Source Builder - Set Builder, v0.2.0
    403447Build Set: 4.11/rtems-sparc
    404448config: expat-2.1.0-1.cfg
     
    500544backtrace into the bug report. If the tools fail to build please locate the
    501545first error in the log file. This can be difficult to find on hosts with many
    502 cores so it sometimes pays to run the command with the +--no-smp+ option to get
    503 a log that is correctly sequenced.
     546cores so it sometimes pays to run the command with the +--jobs=none+ option to
     547get a log that is correctly sequenced.
    504548
    505549Configuration
     
    542586~~~~~~~~~~~~~~~~~~~
    543587
    544 The RTEMS Source Builder uses a table of _macros_ called the _defaults_. The
    545 values the _defaults_ are initialised to is dependent on your host. This lets
    546 the Source Builder handle differences in the hosts. Build set and configuration
    547 files can define new values extending the defaults. For example builds are
    548 given a release number. This is typically a single number at the end of the
    549 package name. For RTEMS this is set in the top level build set configuration
    550 file with:
     588The RTEMS Source Builder uses tables of _macros_ read in when the tool
     589runs. The initial global set of macros is called the _defaults_. These values
     590are read from a file called `defaults.mc` and modified to suite your host. This
     591host specific adaption lets the Source Builder handle differences in the build
     592hosts.
     593
     594Build set and configuration files can define new values updating and extending
     595the global macro table. For example builds are given a release number. This is
     596typically a single number at the end of the package name. For example:
    551597
    552598-------------------------------------------------------------
     
    568614-------------------------------------------------------------
    569615
    570 A nested build set is given a separate copy of the defaults. Changes in one
    571 change set are not seen in other build sets. That same happens with
    572 configuration files unless inline includes are used.
     616A nested build set is given a separate copy of the global macro maps. Changes
     617in one change set are not seen in other build sets. That same happens with
     618configuration files unless inline includes are used. Inline includes are seen
     619as part of the same build set and configuration and changes are global to that
     620build set and configuration.
     621
     622Macro Maps and Files
     623^^^^^^^^^^^^^^^^^^^^
     624
     625Macros are read in from files when the tool starts. The default settings are
     626read from the defaults macro file called `defaults.mc` located in the top level
     627RTEMS Source Builder command directory. User macros can be read in at start up
     628by using the `--macros` command line option.
     629
     630The format for a macro in macro files is:
     631
     632[options="header,compact",width="50%",cols="15%,15%,15%,55%"]
     633|=================================
     634| Name | Type | Attribute | String
     635|=================================
     636
     637where 'Name' is a case insensitive macro name, the 'Type' field is:
     638
     639[horizontal]
     640`none`:: Nothing, ignore.
     641`dir`:: A directory path.
     642`exe`:: An executable path.
     643`triplet`:: A GNU style architecture, platform, operating system string.
     644
     645the 'Attribute' field is:
     646
     647[horizontal]
     648`none`:: Nothing, ignore
     649`required`:: The host check must find the executable or path.
     650`optional`:: The host check generates a warning if not found.
     651`override`:: Only valid outside of the `global` map to indicate this macro
     652             overrides the same one in the `global` map when the map containing
     653             it is selected.
     654`undefine`:: Only valid outside of the `global` map to undefine the macro if it
     655             exists in the `global` map when the map containing it is
     656             selected. The `global` map's macro is not visible but still
     657             exists.
     658
     659and the 'String' field is a single or tripled multiline quoted string. The
     660'String' can contain references to other macros. Macro that loop are not
     661currently detected and will cause the tool to lock up.
     662
     663Maps are declared anywhere in the map using:
     664
     665-------------------------------------------------------------
     666# Comments
     667[my-special-map]
     668_host:  none, override, 'abc-xyz'
     669multiline: none, override, '''First line,
     670second line,
     671and finally the last line'''
     672-------------------------------------------------------------
     673
     674Any macro defintions following a map declaration are placed in that map and the
     675default map is `global` when loading a file. Maps are selected in configuration
     676files by using the `%select` directive.
     677
     678-------------------------------------------------------------
     679%select my-special-map
     680-------------------------------------------------------------
     681
     682Selecting a map means all requests for a macro first check the selected map and
     683if present return that value else the `global` map is used. Any new macros or
     684changes update only the `global` map. This may change in future releases so
     685please make sure you use the `override` attibute.
     686
     687The macro files are looked for in the `_configdir` paths. See
     688<<X1,+_configdir+>> variable for details.
    573689
    574690Build Set Files
     
    669785revision number will not be effected by the change. This locks down a specific
    670786configuration over time.
     787
     788Snapshot Testing
     789~~~~~~~~~~~~~~~~
     790
     791Testing of release canidates and snapshots is important to those helping
     792maintain tool sets. The RTEMS Source Builder helps by providing a simple and
     793flexible way to use existing build sets and configuration without needing to
     794change them or creating new temporary build sets and configurations.
     795
     796The process uses snapshot macro files loaded via the command line option
     797`--macros`. These files provide macros that override the standard build set and
     798configuration file macros.
     799
     800Lets consider testing a GCC 4.7 snapshot for RTEMS 4.11. Lets assume the
     801current RTEMS 4.11 tools reference GCC 4.7.3 with a patch as the stable tool
     802set. We want to use a recent snapshot with no patches. In the
     803`rtems/config/snapshots` directoy create a file called `gcc-4.7-snapshot.mc`
     804containing:
     805
     806-------------------------------------------------------------
     807[gcc-4.7-snapshot]
     808GCC_Version: none, override, '4.7-20130413'
     809Source0:     none, override, 'http://mirrors.kernel.org/sources.redhat.com/gcc/
     810snapshots/%{gcc_version}/gcc-%{gcc_version}.tar.bz2'
     811Patch0:      none, udefine,  ''
     812-------------------------------------------------------------
     813
     814In the standard configuration file `source-builder/config/gcc-4.7-1.cfg` the
     815map is selected with:
     816
     817-------------------------------------------------------------
     818#
     819# Select the GCC 4.7 Snapshot Macro Map
     820#
     821%select gcc-4.7-snapshot
     822-------------------------------------------------------------
     823
     824On the command line add `--macros=snapshots/gcc-4.7-snapshot.mc` and this
     825snapshot will be built. With careful use of the `--prefix` option you can
     826locate the tools in a specific directory and test them without needing to
     827effect your production environment.
    671828
    672829Scripting
     
    700857+%warning+:: Print the following string as a warning and continue.
    701858+%error+:: Print the following string as an error and exit.
     859+%select+:: Select the macro map. If there is no map nothing is reported.
    702860+%define+:: Define a macro. Macros cannot be redefined, you must first undefine it.
    703861+%undefine+:: Undefine a macro.
     
    11151273Source Builder. This can also be used as `%{error: message}`.
    11161274
     1275%select
     1276^^^^^^^
     1277
     1278The +%select+ macro selects the map specified. If there is no map no error or
     1279warning is generated. Macro maps provide a simple way for a user to override
     1280the settings is a configuration file without having to edit it. The changes are
     1281recorded in the build report so can be traced.
     1282
     1283Configuration use different maps so macro overrides can target a specific
     1284package.
     1285
     1286The default map is `global'.
     1287
     1288-------------------------------------------------------------
     1289%select gcc-4.8-snapshot <1>
     1290%define one_plus_one 2 <2>
     1291-------------------------------------------------------------
     1292
     1293<1> The map switches to `gcc-4.8-snapshot`. Any overrides in this map will be
     1294    used.
     1295<2> Defining macros only updates the `global` map and not the selected map.
     1296
    11171297%define
    11181298^^^^^^^
     
    13261506RTEMS Source Builder, an RTEMS Tools Project (c) 2012-2013 Chris Johns
    13271507Options and arguments:
    1328 --force                : Create directories that are not present
    1329 --trace                : Trace the execution (not current used)
     1508--force                : Force the build to proceed
     1509--quiet                : Quiet output (not used)
     1510--trace                : Trace the execution
    13301511--dry-run              : Do everything but actually run the build
    13311512--warn-all             : Generate warnings
    13321513--no-clean             : Do not clean up the build tree
    1333 --no-smp               : Run with 1 job and not as many as CPUs
    1334 --rebuild              : Rebuild (not used)
     1514--always-clean         : Always clean the build tree, even with an error
     1515--jobs                 : Run with specified number of jobs, default: num CPUs.
    13351516--host                 : Set the host triplet
    13361517--build                : Set the build triplet
    13371518--target               : Set the target triplet
    13381519--prefix path          : Tools build prefix, ie where they are installed
    1339 --prefixbase path      :
    13401520--topdir path          : Top of the build tree, default is $PWD
    13411521--configdir path       : Path to the configuration directory, default: ./config
     
    13431523--sourcedir path       : Path to the source directory, default: ./source
    13441524--tmppath path         : Path to the temp directory, default: ./tmp
     1525--macros file[,[file]  : Macro format files to load after the defaults
    13451526--log file             : Log file where all build out is written too
    1346 --url url              : URL to look for source
     1527--url url[,url]        : URL to look for source
    13471528--targetcflags flags   : List of C flags for the target code
    13481529--targetcxxflags flags : List of C++ flags for the target code
     
    13511532--without-<label>      : Add the --without-<label> to the build
    13521533$ ../source-builder/sb-check
    1353 RTEMS Source Builder environment is ok
     1534RTEMS Source Builder - Check, v0.2.0
     1535Environment is ok
    13541536-------------------------------------------------------------
    13551537
     
    13661548Options and arguments:
    13671549--force                : Force the build to proceed
    1368 --trace                : Trace the execution (not current used)
     1550--quiet                : Quiet output (not used)
     1551--trace                : Trace the execution
    13691552--dry-run              : Do everything but actually run the build
    13701553--warn-all             : Generate warnings
    13711554--no-clean             : Do not clean up the build tree
    1372 --no-smp               : Run with 1 job and not as many as CPUs
    1373 --rebuild              : Rebuild (not used)
     1555--always-clean         : Always clean the build tree, even with an error
     1556--jobs                 : Run with specified number of jobs, default: num CPUs.
    13741557--host                 : Set the host triplet
    13751558--build                : Set the build triplet
    13761559--target               : Set the target triplet
    13771560--prefix path          : Tools build prefix, ie where they are installed
    1378 --prefixbase path      :
    13791561--topdir path          : Top of the build tree, default is $PWD
    13801562--configdir path       : Path to the configuration directory, default: ./config
     
    13821564--sourcedir path       : Path to the source directory, default: ./source
    13831565--tmppath path         : Path to the temp directory, default: ./tmp
     1566--macros file[,[file]  : Macro format files to load after the defaults
    13841567--log file             : Log file where all build out is written too
    1385 --url url              : URL to look for source
     1568--url url[,url]        : URL to look for source
    13861569--targetcflags flags   : List of C flags for the target code
    13871570--targetcxxflags flags : List of C++ flags for the target code
     
    14011584Options and arguments:
    14021585--force                : Force the build to proceed
    1403 --trace                : Trace the execution (not current used)
     1586--quiet                : Quiet output (not used)
     1587--trace                : Trace the execution
    14041588--dry-run              : Do everything but actually run the build
    14051589--warn-all             : Generate warnings
    14061590--no-clean             : Do not clean up the build tree
    1407 --no-smp               : Run with 1 job and not as many as CPUs
    1408 --rebuild              : Rebuild (not used)
     1591--always-clean         : Always clean the build tree, even with an error
     1592--jobs                 : Run with specified number of jobs, default: num CPUs.
    14091593--host                 : Set the host triplet
    14101594--build                : Set the build triplet
    14111595--target               : Set the target triplet
    14121596--prefix path          : Tools build prefix, ie where they are installed
    1413 --prefixbase path      :
    14141597--topdir path          : Top of the build tree, default is $PWD
    14151598--configdir path       : Path to the configuration directory, default: ./config
     
    14171600--sourcedir path       : Path to the source directory, default: ./source
    14181601--tmppath path         : Path to the temp directory, default: ./tmp
     1602--macros file[,[file]  : Macro format files to load after the defaults
    14191603--log file             : Log file where all build out is written too
    1420 --url url              : URL to look for source
     1604--url url[,url]        : URL to look for source
    14211605--targetcflags flags   : List of C flags for the target code
    14221606--targetcxxflags flags : List of C++ flags for the target code
     
    14261610--bset-tar-file        : Create a build set tar file
    14271611--no-report            : Do not create a package report.
    1428 --keep-going           : Do not stop on error.
    14291612--list-configs         : List available configurations
    14301613--report-format        : The report format (text, html, asciidoc).
     
    14561639amend or generate new patches. It also allows you to review configure type
    14571640output such as +config.log+.
    1458 +--no-smp+;;
    1459 Run +make+ with 1 job and not as many as there are cores. This option can help
    1460 isolate parallel make type bugs or make the log file output
    1461 sequential. Parallel jobs can make the output confusing.
     1641+--always-clean+;;
     1642Clean away the results of a build even if the build fails. This is normally
     1643used with `--keep-going` when regression testing to see which build sets
     1644fail to build. It keeps the disk usage down.
     1645+--jobs+;;
     1646Control the number of jobs make is given. The jobs can 'none' for only 1 job,
     1647'half' so the number of jobs is half the number of detected cores, a fraction
     1648such as '0.25' so the number of jobs is a quarter of the number of detected
     1649cores and a number such as '25' which forces the number of jobs to that
     1650number.
    14621651+--host+;;
    14631652Set the host triplet value. Becareful with this option.
     
    14691658+--prefix path+;;
    14701659Tools build prefix, ie where they are installed.
    1471 +--prefixbase path+;;
    1472 The prefix base is appended to the build root path.
    14731660+--topdir path+;;
    14741661Top of the build tree, that is the current directory you are in.
     
    14811668+--tmppath path+;;
    14821669Path to the temporary directory. This overrides the default of +tmp+.
     1670+--macros files+;;
     1671Macro files to load. The configuration directory path is searched.
    14831672+--log file+;;
    14841673Log all the output from the build process. The output is directed to +stdout+
     
    15201709Print a list of dependent files used by a build set. Dependent files have a
    15211710'dep[?]' prefix where '?' is a number. The files are listed alphabetically.
     1711+--report-format format+;;
     1712The report format can be 'text' or 'html'. The default is 'html'.
    15221713
    15231714Set Builder (sb-builder)
     
    15321723RTEMS Source Builder, an RTEMS Tools Project (c) 2012 Chris Johns
    15331724Options and arguments:
    1534 --force                : Create directories that are not present
    1535 --trace                : Trace the execution (not current used)
     1725--force                : Force the build to proceed
     1726--quiet                : Quiet output (not used)
     1727--trace                : Trace the execution
    15361728--dry-run              : Do everything but actually run the build
    15371729--warn-all             : Generate warnings
    15381730--no-clean             : Do not clean up the build tree
    1539 --no-smp               : Run with 1 job and not as many as CPUs
    1540 --rebuild              : Rebuild (not used)
     1731--always-clean         : Always clean the build tree, even with an error
     1732--jobs                 : Run with specified number of jobs, default: num CPUs.
    15411733--host                 : Set the host triplet
    15421734--build                : Set the build triplet
    15431735--target               : Set the target triplet
    15441736--prefix path          : Tools build prefix, ie where they are installed
    1545 --prefixbase path      :
    15461737--topdir path          : Top of the build tree, default is $PWD
    15471738--configdir path       : Path to the configuration directory, default: ./config
     
    15491740--sourcedir path       : Path to the source directory, default: ./source
    15501741--tmppath path         : Path to the temp directory, default: ./tmp
     1742--macros file[,[file]  : Macro format files to load after the defaults
    15511743--log file             : Log file where all build out is written too
    1552 --url url              : URL to look for source
     1744--url url[,url]        : URL to look for source
    15531745--targetcflags flags   : List of C flags for the target code
    15541746--targetcxxflags flags : List of C++ flags for the target code
     
    16511843Windows tool sets are supported creating native Windows executable. Native
    16521844Windows tools are built using a MinGW compiler and do not need any extra
    1653 libraries or emulation layer to run. The tools understand and use standard
    1654 Windows paths and integrate easly into Windows IDE environments.
     1845libraries or emulation layer to run once built. The tools understand and use
     1846standard Windows paths and integrate easly into Windows IDE environments. A
     1847shell maybe needed to build other parts of your system how-ever if your
     1848development tools are all native Windows tool you can easly integrate these
     1849tool sets.
    16551850
    16561851Building on Windows is a little more complicated because the Cygwin shell is
     
    16621857Cygwin is supported.
    16631858
    1664 Install a recent Cygwin version using the Cygwin setup tool. Select the 'Devel'
    1665 group and install:
    1666 
    1667 - +autoconf+
    1668 - +automake+
    1669 - +binutils+
    1670 - +bison+
    1671 - +flex+
    1672 - +gcc+
    1673 - +git+
    1674 - +make+
    1675 - +ming64-x86_64-binutils+
    1676 - +ming64-x86_64-gcc-core+
    1677 - +ming64-x86_64-g+++
    1678 - +ming64-x86_64-headers+
    1679 - +ming64-x86_64-runtime+
    1680 - +python+
    1681 - +win32api-headers+
    1682 - +win32api-runtime+
    1683 -  +zlib-devel+
     1859Install a recent Cygwin version using the Cygwin setup tool. Select and install
     1860the groups and packages listed:
     1861
     1862.Cygwin Packages
     1863[options="header,compact",width="50%",cols="20%,80%"]
     1864|================================
     1865|Group   |Package
     1866|Archive |bsdtar
     1867|        |unzip
     1868|        |xz
     1869|Devel   |autoconf
     1870|        |autoconf2.1
     1871|        |autoconf2.5
     1872|        |automake
     1873|        |binutils
     1874|        |bison
     1875|        |flex
     1876|        |gcc4-core
     1877|        |gcc4-g++
     1878|        |git
     1879|        |make
     1880|        |mingw64-x86_64-binutils
     1881|        |mingw64-x86_64-gcc-core
     1882|        |mingw64-x86_64-g++
     1883|        |mingw64-x86_64-runtime
     1884|        |mingw64-x86_64-zlib
     1885|        |zlib-devel
     1886|MinGW   |mingw-zlib-devel
     1887|Python  |python
     1888|================================
     1889
     1890The setup tool will add a number of dependent package and it is ok to accept
     1891them.
     1892
     1893I have found turning off Windows Defender improves performance if you have
     1894another up to date virus detection tool installed and enabled. I used the
     1895excellent `Process Hacker 2` tool to monitor the performance and I found the
     1896Windows Defender service contributed a high load. In my case I had a 3rd party
     1897virus tool installed so the Windows Defender service was not needed.
    16841898
    16851899A Canadian cross-compile (Cxc) is required on Cygwin because the host is Cygwin
     
    17401954    Dual Core 6000+ running at 3GHz with 4G RAM running Windows 7 64bit.
    17411955
     1956CAUTION: Cygwin documents the 'Big List Of Dodgy Apps' or 'BLODA'. The link is
     1957http://cygwin.com/faq/faq.using.html#faq.using.bloda and it is worth a
     1958look. You will see a large number of common pieces of software found on Windows
     1959systems that can cause problems. My testing has been performed with NOD32
     1960running and I have seen some failures. The list is for all of Cygwin so I am
     1961not sure which of the listed programs effect the RTEMS Source Biulder. The
     1962following FAQ item talks about +fork+ failures and presents some technical
     1963reasons they cannot be avoided in all cases. Cygwin and it's fork MSYS are
     1964fantastic pieces of software in a difficult environment. I have found building
     1965a single tool tends to work, building all at once is harder.
     1966
     1967
     1968
    17421969Build Status By Host
    17431970~~~~~~~~~~~~~~~~~~~~
  • doc/wscript

    re45a2e4 r4351cf4  
    1111def build(ctx):
    1212    ctx(target = 'source-builder.html', source = 'source-builder.txt')
     13    ctx.add_manual_dependency(ctx.path.find_node('source-builder.txt'),
     14                              ctx.path.find_node('host-results.csv'))
    1315
    1416import waflib.TaskGen
Note: See TracChangeset for help on using the changeset viewer.