History log of /haiku/build/jam/HelperRules
Revision Date Author Comments
# af07b876 10-Oct-2020 Augustin Cavalier <waddlesplash@gmail.com>

HelperRules: Fix typo in the new CC_IS_LEGACY_GCC test.


# 47320dd0 06-Oct-2020 Augustin Cavalier <waddlesplash@gmail.com>

configure & build: Rework legacy GCC detection to parse versions outside of Jam.

Jam comparison logic is string-based, and so was detecting GCC >= 10
as being < 2. This rectifies that by removing the GCC version parsing
from Jam logic entirely, and setting various BuildConfig variables
instead.

Change-Id: I0c0ae3b9002fb5e77f9ca7a78600c91871657f03
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3293
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>


# 1e60bdea 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

Remove all invocations of SetSubDirSupportedPlatformsBeOSCompatible.


# b357daa5 30-Mar-2019 Augustin Cavalier <waddlesplash@gmail.com>

build: Deprecate SetSubDirSupportedPlatformsBeOSCompatible.

By default, all targets support the "haiku" platform, and we no longer
support building for BeOS, Dan0, Zeta, or other BeOS-compatible targets,
so this is no longer needed.

Also remove all references to the non-Haiku compatible platforms, and
change all BEOS_COMPATIBLE checks to HAIKU_COMPATIBLE. Removal of
all SetSubDirSupportedPlatformsBeOSCompatible invocations
will be in the next commit.


# 74bfec3b 06-May-2018 Jessica Hamilton <jessica.l.hamilton@gmail.com>

build/jam: whitespace cleanup.

Change-Id: I80c9a51417631b1f283923451f5bb530097b74f3


# 53b16252 18-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix host-only build.


# 93cfb722 04-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

build features/bootstrap repo: support secondary arch

* Add rule FSplitPackageName. It splits a package name into port name
and package suffix.
* FSetConditionsHold: Rename to FConditionsHold and replace the set
parameter by a predicate rule parameter, thus adding more flexibility.
* FIsBuildFeatureEnabled: Use the faster check.
* Add rule FQualifiedBuildFeatureName. Given a build feature name, it
prepends the current packaging architecture to yield a qualified
feature name. Is used by the other build feature rules so that the
same build feature can be configured differently for each arch.
* ExtractBuildFeatureArchives: The supplied list is now filtered via
FFilterByBuildFeatures, allowing for build feature conditions in the
list.
* Add rule InitArchitectureBuildFeatures. It is called early for each
configured architecture, setting up some basic build features for it.
"primary" is set for the primary architecture and a "secondary_<arch>"
is set for each secondary architecture.
* BuildFeatures: Add secondary architecture support: Use the correct
paths for libraries and headers (subdir for secondary architecture)
and configure the icu and zlib sources only for the primary
architecture.
* BootstrapPackageRepository: The package lists are now filtered via
FFilterByBuildFeatures, allowing for build feature conditions in the
lists.
* IsPackageAvailable, FetchPackage: Add secondary architecture support.
* HaikuPortsCross/x86_gcc2: Add icu and zlib x86 secondary packages.

The second stage Haiku cross devel package for the secondary
architecture can now be built.


# b0944c78 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# a3674601 08-Dec-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

HelperRules: Add FSetConditionsHold

A rule to check simple element containment conditions on sets.


# 4782f2be 27-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Remove now unneeded (hopefully) timezone data


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37769 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3734adc5 10-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Build fix of the timezone/keymap move. Sorry!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33985 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3e1c27d 26-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added FSplitString helper rule, which splits a string at a given delimiter
character, returning a component list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30872 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90aa2658 04-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Made the compatibility level for target libbe_test depend on the compatibility
of the host platform. The libtracker Jamfile seems to be the only one that
needs another exception.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21827 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da0f9ae0 02-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added Haiku as host platform supported by the build system ("haiku_host").
Completely untested yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21802 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c97a8d1 14-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Use -I instead of -isystem for system header directories when building
with gcc 4. Fixed resulting build errors (gcc is more lenient for
headers in -isystem directories).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69031529 05-Sep-2006 Jérôme Duval <korli@users.berlios.de>

added a SubDirAsFlags rule


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18764 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 223ff764 28-Jun-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Added rule FGetGrist. I almost used it... ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17955 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b5934c9 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added support for compiling Haiku with GCC 4. The main difference is that
we use the libstdc++ (including it's headers) that comes with the
compiler.
* Apparently option "-I-" has been deprecated, which is why we now treat the
include stuff a bit differently.
* Removed avcodec from the Haiku image, since the library wouldn't build with
gcc 4, and I'm not in the mood to fix that (declaration of an array of an
incomplete type).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14876 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca9e5772 07-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reintroduced third LinkAgainst parameter <mapLibs>, defaulting to true.
Library names are now mapped for all targets but "host" (not only for
"haiku") -- added one more level of indirection to achieve that.
(TARGET_LIBRARY_NAME_MAP -> *_LIBRARY_NAME_MAP_*).
* Renamed build/HaikuBuildCompatibility.h to BeOSBuildCompatibility.h
(auto-included when compiling something that uses the Be API for platform
"host" on anon-BeOS platform), and introduced build/HaikuBuildCompatibility.h,
which can be included when compiling something that can be built for both,
Haiku and BeOS compatible platforms.
* Introduced libhaikucompat.a, a library that adds a few functions existing
under Haiku, but not under BeOS.
* New rule AddSubDirSupportedPlatforms.
* Renamed libopenbeos.so to libbe_haiku.so.
* Introduced new target platform "libbe_test", which is basically equivalent
to a BeOS compatible host platform target, with the exception, that instead
of the host platform's libbe.so a special build of Haiku's libbe.so
(libbe_haiku.so (formerly known as libopenbeos.so)) is used. Furthermore
Haiku's public app, interface, storage, and support kit headers are used
when compiling. This replaces the less nice way in which the test app server
and applications for this test environment were built.
When building for platform "libbe_test", the library name "be" is
autotranslated to "libbe_haiku.so". Thus most applications don't need
special fiddling when them building them for the app server test environment;
usually an "AddSubDirSupportedPlatforms libbe_test ;" will suffice.
* Reduced the dependencies of <syscalls.h> and fixed problems caused by this
(e.g. source files not including the needed headers directly).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14749 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc3 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 53b162523f35ee9c2ba4c67e8fcbf59201d0f491 18-Sep-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix host-only build.


# 93cfb722707a5870dc99fefe0c05dff0ca4e966f 04-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

build features/bootstrap repo: support secondary arch

* Add rule FSplitPackageName. It splits a package name into port name
and package suffix.
* FSetConditionsHold: Rename to FConditionsHold and replace the set
parameter by a predicate rule parameter, thus adding more flexibility.
* FIsBuildFeatureEnabled: Use the faster check.
* Add rule FQualifiedBuildFeatureName. Given a build feature name, it
prepends the current packaging architecture to yield a qualified
feature name. Is used by the other build feature rules so that the
same build feature can be configured differently for each arch.
* ExtractBuildFeatureArchives: The supplied list is now filtered via
FFilterByBuildFeatures, allowing for build feature conditions in the
list.
* Add rule InitArchitectureBuildFeatures. It is called early for each
configured architecture, setting up some basic build features for it.
"primary" is set for the primary architecture and a "secondary_<arch>"
is set for each secondary architecture.
* BuildFeatures: Add secondary architecture support: Use the correct
paths for libraries and headers (subdir for secondary architecture)
and configure the icu and zlib sources only for the primary
architecture.
* BootstrapPackageRepository: The package lists are now filtered via
FFilterByBuildFeatures, allowing for build feature conditions in the
lists.
* IsPackageAvailable, FetchPackage: Add secondary architecture support.
* HaikuPortsCross/x86_gcc2: Add icu and zlib x86 secondary packages.

The second stage Haiku cross devel package for the secondary
architecture can now be built.


# b0944c78b074a8110bd98e060415d0e8f38a7f65 01-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

More work towards hybrid support

* All packaging architecture dependent variables do now have a
respective suffix and are set up for each configured packaging
architecture, save for the kernel and boot loader variables, which
are still only set up for the primary architecture.
For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++,
and TARGET_LIBSTDC++ are set to the respective values for the primary
packaging architecture by default.
* Introduce a set of MultiArch* rules to help with building targets for
multiple packaging architectures. Generally the respective targets are
(additionally) gristed with the packaging architecture. For libraries
the additional grist is usually omitted for the primary architecture
(e.g. libroot.so and <x86>libroot.so for x86_gcc2/x86 hybrid), so that
Jamfiles for targets built only for the primary architecture don't
need to be changed.
* Add multi-arch build support for all targets needed for the stage 1
cross devel package as well as for libbe (untested).


# a3674601c04675b28aa3fcaf4101ca361d021d9c 08-Dec-2012 Ingo Weinhold <ingo_weinhold@gmx.de>

HelperRules: Add FSetConditionsHold

A rule to check simple element containment conditions on sets.


# 4782f2be6c8c82d41e4525afebb71812aee16e4c 27-Jul-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

* Remove now unneeded (hopefully) timezone data


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37769 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3734adc5b328c3b2b45e2fe48ebe45c2e7bb96c7 10-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Build fix of the timezone/keymap move. Sorry!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33985 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d3e1c27d6bfa016a9b011467c4062b97a217a3ea 26-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added FSplitString helper rule, which splits a string at a given delimiter
character, returning a component list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30872 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 90aa265896901309458d517fdf7e73899fe4707c 04-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Made the compatibility level for target libbe_test depend on the compatibility
of the host platform. The libtracker Jamfile seems to be the only one that
needs another exception.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21827 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da0f9ae040921d1af3cdbac209bdf16fe80f95b3 02-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added Haiku as host platform supported by the build system ("haiku_host").
Completely untested yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21802 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2c97a8d164b49c7e608ac1eb1a9dd4b7496b2dd4 14-Mar-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Use -I instead of -isystem for system header directories when building
with gcc 4. Fixed resulting build errors (gcc is more lenient for
headers in -isystem directories).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69031529d4feb3a2feb4f7734e48ca59e27e880e 05-Sep-2006 Jérôme Duval <korli@users.berlios.de>

added a SubDirAsFlags rule


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18764 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 223ff7647783e40d451c252ac07882140f68c332 28-Jun-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Added rule FGetGrist. I almost used it... ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17955 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8b5934c975d7c3eb1c19f396dbe2a150df4f086a 12-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added support for compiling Haiku with GCC 4. The main difference is that
we use the libstdc++ (including it's headers) that comes with the
compiler.
* Apparently option "-I-" has been deprecated, which is why we now treat the
include stuff a bit differently.
* Removed avcodec from the Haiku image, since the library wouldn't build with
gcc 4, and I'm not in the mood to fix that (declaration of an array of an
incomplete type).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14876 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca9e5772c3fa971474035b57ee9226ccc429ebc9 07-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* Reintroduced third LinkAgainst parameter <mapLibs>, defaulting to true.
Library names are now mapped for all targets but "host" (not only for
"haiku") -- added one more level of indirection to achieve that.
(TARGET_LIBRARY_NAME_MAP -> *_LIBRARY_NAME_MAP_*).
* Renamed build/HaikuBuildCompatibility.h to BeOSBuildCompatibility.h
(auto-included when compiling something that uses the Be API for platform
"host" on anon-BeOS platform), and introduced build/HaikuBuildCompatibility.h,
which can be included when compiling something that can be built for both,
Haiku and BeOS compatible platforms.
* Introduced libhaikucompat.a, a library that adds a few functions existing
under Haiku, but not under BeOS.
* New rule AddSubDirSupportedPlatforms.
* Renamed libopenbeos.so to libbe_haiku.so.
* Introduced new target platform "libbe_test", which is basically equivalent
to a BeOS compatible host platform target, with the exception, that instead
of the host platform's libbe.so a special build of Haiku's libbe.so
(libbe_haiku.so (formerly known as libopenbeos.so)) is used. Furthermore
Haiku's public app, interface, storage, and support kit headers are used
when compiling. This replaces the less nice way in which the test app server
and applications for this test environment were built.
When building for platform "libbe_test", the library name "be" is
autotranslated to "libbe_haiku.so". Thus most applications don't need
special fiddling when them building them for the app server test environment;
usually an "AddSubDirSupportedPlatforms libbe_test ;" will suffice.
* Reduced the dependencies of <syscalls.h> and fixed problems caused by this
(e.g. source files not including the needed headers directly).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14749 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 338b8dc301721b1f472e8297a898d4eaa2f2ee3a 29-Oct-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged changes from branch build_system_redesign at revision 14573.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14574 a95241bf-73f2-0310-859d-f6bbb57e9c96