39 Commits

Author SHA1 Message Date
Sebastian Huber
ad29cd659d sb: Change default prefix
Use OS prefix + "rtems" + $rtems_version as the default prefix to
automatically separate different RTEMS versions.

Close #3680.
2019-01-22 14:56:25 +01:00
Chris Johns
e5ec9681be sb: Option --source-only-download does not download the source.
The option expansion is missing `--with-download'.

Close #3296
2018-02-08 09:17:16 +11:00
Chris Johns
61d2c55de6 sb: Backport from 4.11 the --rsb-file with releases fixes.
Close #3286
2018-02-05 14:14:43 +11:00
Chris Johns
38ed59a301 sb: Support --dry-run --with-download for 3rd party RTEMS BSP packages.
The building of 3rd party packages for an RTEMS BSP requires a valid
BSP so the standard method to download the source for releasing does
not work. This change adds support to allow this. The RTEMS BSP support
will not generate an error is no BSP or tools are provided or found.

The change addis logic operators to the %if statement so you can '||'
to 'or' and '&&' to 'and' logic expressions.

A new %log directive has been added to clean up the messages.

A new %{!define ...} has been added to aid checking within logic
expressions.

All command line --with/--without now appear as macros.

Add version.version to get just the RTEMS major and minor version.

Some pkg-config issues have been resolved.

Closes #2655.
2016-03-17 16:50:05 +11:00
Chris Johns
d3fa158109 sb: Add a download option --with-release-url/--without-release-url.
The default without the option is to prepend the release URL to the URL
list to download from the RTEMS FTP site first if the RSB is released. This
option can force the RTEMS FTP to be tried first when not a release,
or you can supply a different URL to download from or you can request
no RTEMS URL is tried first. Eg:

 --with-release-url
 --with-release-url=file://opt/local/cache
 --without-release-url

Move the RTEMS release URL to the default.mc file. Change the URL
to the RTEMS FTP server and do not use the https method of access.

The option's with_arg call was cleaned up to make sense.

Remove the log's raw output of an extra space.

Some download error message formating was cleaned up.

Closes #2636.
2016-03-10 16:32:49 +11:00
Chris Johns
9bae339bef sb: Report platform import errors. 2016-03-08 22:27:07 +11:00
Chris Johns
3a972f6102 sb: Update code base to support Python3 and Python2.
Fix Windows support to allow MSYS2 Python to be used.

Updates #2619.
2016-03-07 15:02:58 +11:00
Chris Johns
7dddcc2647 VERSION is an INI format file.
VERSION is an INI format file with 2 sections:

 1. version
  The version of the release. It contains:
    release = version-string
 2. hashes
  A list of hashes for packages that are formed when creating a release.
  A hash entry is:
    file-name = hash-type checksum

The approach means we do not need to hold hash values in configuration files
which need to be updated when a release is made. The release scripts can
generate the hashes when creating the release.

Update the version to 4.12.
2015-12-11 16:35:31 +11:00
Chris Johns
40e4222d87 Support released downloading of the RTEMS Tools and RTEMS Kernel.
Add a --without-error-reports flags to reduce the noise on --with-downloading.
2015-12-11 12:11:54 +11:00
Chris Johns
47d703fd8c sb. Add VERSION support for releasing the RSB.
Add support to release the RSB by adding the VERSION file. The file
is a single line with the version.

Fix the reports to include the version. Update the INI file
support to include the details of the build.

Show the GIT or released version when the command starts.

Closes #2480.
2015-12-03 22:25:00 +11:00
Chris Johns
6444d5806d Canandian Cross Compiling and RTEMS 3rd party package building Fixes.
The change fixes installing for RTEMS 3rd Party packages where the
RSB considered them Canadian Cross Compiling (Cxc). Fixing the
Cxc issue broke real Cxc builds. The change corrects the issue of
macros being changed in the Cxc and the prep data not being udpated.
The configuration is loaded again after the updated macros. The
macros are also copied and restored to ensure a clean stable base.

The change also introduces --rtems-tools and --rtems-bsp to align
the command line with the waf configure process or RTEMS application.
2015-07-20 13:49:42 +10:00
Chris Johns
e9dfd95dd9 Revert "add basic support for OpenBSD"
This reverts commit 83d97daa070d67d177b90796ed22e4044ec9012c.

It contains a GPL license.
2015-06-22 10:14:54 +10:00
Karel Gardas
83d97daa07 add basic support for OpenBSD 2015-06-22 10:12:44 +10:00
Chris Johns
ba0008c372 sb: Do not accept an extra separate option for --with/--without.
The --with/--without that does not have an extra option was
consuming an extra option on the command line.
2015-03-20 13:57:27 +11:00
Chris Johns
d7550652cb Add options support for --with/--without processing. Add --with-download support.
You can now test downloading by using --dry-run and --with-download.

Print the redirect if one is taken.
2015-02-18 10:27:02 +11:00
Chris Johns
3963ac4aae Detect a Cxc build from the options and automatically disabled installing.
This is similar to always providing --no-install on the command when building
a Cxc package.
2015-01-18 11:24:11 +11:00
Chris Johns
85b46b85f1 sb: Provide a default log if none is provided. 2014-10-31 15:11:10 +11:00
Karel Gardas
5eb832f296 add support for i386-solaris2 platform 2014-10-07 19:50:59 +11:00
Chris Johns
74da24cb61 sb: Generate an error report on an error.
Generate an error report users can send to the mailing list with
error details.
2014-05-08 13:20:29 +10:00
Chris Johns
8c19df26f6 sb: Fix git to clean before updating. 2014-03-26 17:13:47 +11:00
Chris Johns
348e4983df sb: Add options log_info.
Provide a log_info method for the options class to log the command line
and the python version string.
2013-09-03 07:59:38 +10:00
Ivan Temp
a4937d8585 sb: Add NetBSD support. 2013-09-01 08:39:12 +10:00
Chris Johns
ebf8a1f0f8 Automtically build the Autotools to bootstrap RTEMS.
This changes adds support to build the autotools if the host installed
version is not a suitable version. Autoconf and automake have hard coded
references to the install prefix and host tools and this makes it impossible
to relocate, that is use in any path other than the install prefix. To
bootstrap automake you need to first build a suitable autoconf and with that
you can built automake for the install prefix. The other complication is
not referencing the install prefix in the path when building in the RSB.
Having the install prefix in the path can result in strange issues appearing
such as gcc using a new assembler feature not present in an older assember
installed under the install prefix.

The process is to build the autotools using an install prefix to an
internal path inside the RSB temporary path and to use that autoconf
to build the version for the install prefix. The internal install
prefix version is also used to bootstrap RTEMS.
2013-07-16 10:02:41 +10:00
Chris Johns
54d142615c Clean the paths passed as args. 2013-05-17 12:52:22 +10:00
Chris Johns
1a56a07605 Add bare/config and move the source-builder/config to it.
Rework the RTEMS build set files to point to the new location.

Move the files into devel, this follows the ports naming in
FreeBSD.

Update the macros, defaults, and options to support this.
2013-05-14 11:08:02 +10:00
Chris Johns
5237f1ccb7 Fix support for Windows (MinGW) native builds using MSYS.
Fix paths that need to be coverted to host format.

The shell expansion needs to invoke a shell on Windows as cmd.exe
will not work.

Munch the paths into smaller sizes for Windows due to the limited
path size.
2013-05-13 14:44:49 +10:00
Chris Johns
2edd4c9f28 Produce a better error message if the host support code does not load. 2013-05-01 05:30:22 +10:00
Chris Johns
fbb39e70c3 Add options help. 2013-04-30 13:22:28 +10:00
Chris Johns
dfdc129a08 Add user private macro loading. 2013-04-30 11:19:09 +10:00
Chris Johns
5142becd8e Refactor the logging support. 2013-04-21 18:37:02 +10:00
Chris Johns
82e9f91ccf Add the --regression option. 2013-04-16 14:42:05 +10:00
Chris Johns
2cc7a974a5 PR 2117 - Only check the prefix is writable if installing and not a dry run. 2013-04-15 12:16:26 +10:00
Chris Johns
255e032bab PR 2115 - Fix checking when the path does not fully exist. 2013-04-15 11:15:01 +10:00
Chris Johns
c95c2456a4 PR 2116 - Fix the option parsing to handle both ' ' and '='. 2013-04-15 10:13:43 +10:00
Chris Johns
9994530920 PR 2115 - Check prefix path write access before starting to build.
Added a check in the options post processing to check is the
prefix path allows writes. No actual write check is made. just
the permissions are checked. If the --no-install options is
used the check is not made.

Moved the --no-install option from the set builder to the options
module.
2013-04-15 10:05:23 +10:00
Chris Johns
5e02e80d5a Add --no-download to disable the downloader. 2013-04-15 09:48:42 +10:00
Chris Johns
667255cb77 Fix options bug when the macro file is not found. 2013-04-13 14:30:22 +10:00
Chris Johns
014bfa9572 Add --macros option to load macro files. 2013-04-13 10:34:04 +10:00
Chris Johns
cb12e4875c Refactor defaults, macros and options.
To support building snapshots and pre-release source the defaults
has been refactored. The defaults have been moved to a stand alone
file and a macros.py module added. This modile abstracts the
old default dictionary turning it into a class. The macros
class can load macros from a file therefore the defaults have
been moved to a stand alone file.

The use of defaults has been removed from the project. The only
case where it is used in the options where the defaults are read
from a file. Macros are used everywhere now.

The defaults.py has been moved to the option.py and the separate
options and defaults values has been moved to a new pattern. When
constructing an object that needs macros and options if the macros
passed in is None the defaults from the options are used. This makes
it clear when the defaults are being used or when a modified set of
macros is being used.

The macros class support maps. The default is 'global' and where all
the defaults reside and where configuratiion file changes end up.
Maps allow macros to be read from a file and override the values
being maintained in the 'global' map. Reading a macro first checks
the map and if not present checks the 'global' map.

The addition of maps to the macros provides the base to support
snapshots and pre-release testing with standard configurations.
This functionality needs to be added. It works by letting to
specify a snapshot with:

source0: none, override, 'my-dist.tar.bz2'

and it will be used rather the value from the standard configuration.
With a build set you need to also specify the package these macros
are for. The maps provide this.
2013-04-09 13:51:43 +10:00