History log of /haiku/build/jam/MainBuildRules
Revision Date Author Comments
# 8764a298 09-Oct-2023 Augustin Cavalier <waddlesplash@gmail.com>

build/jam: Only add C++ header directories to include path for C++ code.

There are now some system headers (e.g. <stdatomic.h>) that have outright
different versions for C and C++ which are not compatible with each other.

Change-Id: Ibf797e0817f0fe4d5241424d7d06023b19888c02
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6991
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 8eb9f414 23-Feb-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

data: Drop ARM FDT dts from repo

* We depend on FDT passed to the bootloader now
from EFI or u-boot via fdt_addr_r now
* We leave an fdt path within the boot partition
(for now) to allow / encourage users to optionally
plug in their own DTB's for troubleshooting. (only
on u-boot loader)

Change-Id: I3f2d81b60d46f388f333d5caa27aa77e6e36447d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6081
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: X512 <danger_mail@list.ru>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Tested-by: Automation <automation@haiku-os.org>


# 7aa55747 30-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

kernel & addons: Build with the non-legacy GCC even on x86_gcc2h.

Only one code change: for some reason, GCC chokes on the cr3 functions
as macros (throwing errors about invalid registers.) The BSDs have them
as inline functions instead, so they are converted to that here.

Tested and working. There seems to be about a 10% decrease in CPU time
on some compilation benchmarks that I briefly tried.

Change-Id: I31666297394d7619f83fca6ff5f933ddd6f07420
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4515
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 37ea891a 08-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

Enable -fvisibility=hidden on static libraries by default.

Only on non-GCC2 for now, as GCC2 does not have -fvisibility.

An opt-out is left as a possibility, and is unfortunately necessary
for libshared and libicon, as these two are used even in WebKit instead
of linking to the .a. However, libcolumnlistview, libagg, and a whole
bunch of others are now no longer exported, so this is already a major
improvement on what symbols we were leaking.

This may provide performance differences for consumers of these APIs,
as GCC and the linker are now free to merge and directly use functions
that previously could have been semantically interposed. AGG usage in
app_server, especially, may benefit.

We can also now remove the addition from libnetservices, so do that.


# 03980b1f 08-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

build: Make LinkAgainst recursive for static libraries.

That is, it will now pull in NEEDLIBS and LINKLIBS set by LinkAgainst
from static libraries also built by Jam. This allows specifying what
libraries other static libraries need only once (in most cases;
occasionally things are not evaluated in a sane order and then
this does not quite work.)

Use this for libnetservices.a, which needs libshared.a, so that
dependencies on it do not have to be declared within most in-tree
consumers of libnetservices (e.g. Package Kit, http_streamer, etc.)


# 27ecd476 03-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

build: More miscellaneous fixes for MSYS.

Remove the .exe hack, as it is not needed.


# 7a617f59 03-May-2020 Augustin Cavalier <waddlesplash@gmail.com>

configure & build: Add basic support for building with MSYS.

Also remove the MINGW support, as it was far too incomplete.

This *should* work under case-sensitive NTFS, but instead,
it seems #14963 occurs. So perhaps there is a GCC bug
related to case-sensitive vs. case-insensitivity after all.


# a1e74397 05-Jan-2020 Augustin Cavalier <waddlesplash@gmail.com>

build: Rework gcc2 test_app_server build logic a bit.


# 32158f3d 31-Dec-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix test_app_server build.

Fixes #15536.


# f6fe3824 24-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

MainBuildRules: Fail if the generated struct-offsets header is empty.

In some LTO-related experiments, it came out empty due to GCC
not generating actual assembly but rather intermediate code,
resulting in various later targets failing with quite literally
thousands of errors.


# 807304b1 23-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Add basic support for MinGW hosts.

This doesn't fully work yet (the FS code in libroot_build
needs to be adapted, as some of the symlink-related calls
are not available on MinGW), but it gets much further than
the "Cygwin" target did.


# 37c10606 23-Nov-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Remove support for cross-building from Cygwin and SunOS.

These have been broken for a long time. Some Cygwin changes that
are relevant on MinGW are kept here, but users on Windows who
want to build Haiku should probably use WSL at this point.

However, now that we are using relative paths and don't need
to worry about drive path kludges, it's actually possible to
get some host tools built on MinGW. Changes for that coming.


# 28ab14e3 17-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

MainBuildRules: Use $(CC) -E instead of "cpp" as the preprocessor.

"cpp" is the system C preprocessor, not the one from our cross-compiler,
and in the case of my system which does not have GCC installed at all,
it doesn't even exist.

With this, Clang-ARM builds successfully create a "haiku-arm.mmc".
I couldn't get it to output, even after blessing it with "rune",
but that may just be my fault...


# 47a96c09 11-Aug-2018 Augustin Cavalier <waddlesplash@gmail.com>

MainBuildRules: Fix CreateAsmStructOffsetsHeader on recent Clang.

It seems that at on some platforms at least, Clang uses @define instead
of #define, but with functionally identical syntax, so use sed to
process it as such.


# b2f22ba0 18-Jun-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Actually disable non-useful Clang warnings.

* The if-case was appending to gccBaseFlags after the rest of the file
was done using it, so it was ineffective. Now we set it with the rest
of the baseFlags.
* We already pass no-integrated-as in configure, no need to do it in
MainBuildRules.
* B_USE_BUILTIN_ATOMIC_FUNCTIONS isn't used anymore, so get rid of it.


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

build/jam: whitespace cleanup.

Change-Id: I80c9a51417631b1f283923451f5bb530097b74f3


# 5e19679e 13-Dec-2017 Augustin Cavalier <waddlesplash@gmail.com>

build: Use libroot_build on Haiku.

Previously we just used the system libroot, which of course meant
that when libroot's ABI changed, the build broke. Now we use the full
libroot_build that we do on non-Haiku platforms. The logic for "BeOS-compatible
but not Haiku" does not really apply anymore, so it has been gutted where
appropriate (and libhaikucompat has been decoupled from the build.)

The only caveat here is the change to Errors.h -- we really should be using
the system's one where I included the one from the tree, but for whatever
reason, GCC2 refused to handle the #include_next properly.

Fixes the build breakage of Haiku-on-Haiku by my prior commits (sorry).


# f10b49ed 07-Nov-2015 Jonathan Schleifer <js@webkeks.org>

Fixup for my last commit (better check for Clang)


# f2f1efc5 07-Nov-2015 Jonathan Schleifer <js@webkeks.org>

Use -no-integrated-as to create asm struct offsets

This depends on quite a nasty hack to generate those, namely using
inline assembly to generate a file with things that are not actually
assembly, which Clang therefore filters out.


# a2ddc1c0 23-Apr-2015 François Revol <revol@free.fr>

Fix CompileDTS rule to locate the device tree blob properly

This avoids having to call it from the BoardSetup files.


# 2311bdf2 09-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

AssembleNasm: add source dir to include path.

This makes it possible to %include local files. nasm doesn't allow this
otherwise (include paths are assumed relative to the working directory).

Fixes build of ape_reader.


# 88d51506 31-Oct-2014 François Revol <revol@free.fr>

Move ARM device tree files to an arch-specific subfolder

FDT are also used on PPC at least, and at least skeleton.dtsi
might clash since there is a different one for PPC.


# 128e69f9 31-Oct-2014 Ithamar R. Adema <ithamar@upgrade-android.com>

CompileDTS: use preprocessor on .dts files

Recent linux behaviour (and also copied by BSD) is to preprocess
DTS files with the C preprpocessor to enable sharing constants between
driver implementation and DTS content for more readability.


# f0b0d657 14-Sep-2014 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Undo accidental file mode changes.


# e5476626 10-Sep-2014 Jessica Hamilton <jessica.l.hamilton@gmail.com>

stage1/2 loaders: auto-generate binary files. Fixes #10723


# f7653b1b 11-Aug-2014 Oliver Tappe <zooey@hirschkaefer.de>

Optionally build glue code for bootstrap_stage0 platform.


# 220d0402 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# afde4473 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

* When using the non-legacy compiler, use the c++ and gcc headers
provided in the gcc_syslibs_devel build feature for building Haiku.
* Simplify declaration of c++ and gcc headers for the legacy compiler -
in the end we always use the ones living by our source tree anyway.
* Fix a couple of missing local declarations for jam variables, which
were necessary to avoid a build problem with strace. There are
probably more bugs like these hiding in our build system files, but
I'm saving the fix for those to the next commit.
* Add new gcc packages to the HaikuPorts (x86*-)repositories.


# a07cdb6e 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Define two pseudo targets for the target and build platform.

* The main build rules now cause their targets to depend on the
platform such that global per-platform intializations can be
set up by making the platform pseudo target depend on the
target returned by the initialization rule.


# 8c54af56 30-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Whitespace cleanup in root and 'build' folder.

* Removed trailing whitespace and empty lines at top of files.


# d6f80927 28-Mar-2014 Jonathan Schleifer <js@webkeks.org>

Sorry, my last commit was incomplete


# 724f4e2d 04-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix kernel -Werror support

The introduction of secondary arch support for kernel files disabled
-Werror for all kernel files, since the -Werror flags were moved from
{CC,C++}FLAGS to TARGET_WARNING_{CC,C++}FLAGS_<arch>, which, however,
was overwritten by the SetupKernel rule. This commit introduces new
global variables {HAIKU,HOST,TARGET}_WERROR_FLAGS[_<arch>], which
contain the additional -Werror flags to be applied for the architecture.
The config variable WARNINGS can be set to "treatAsErrors" to cause
-Werror and {HOST,TARGET}_WERROR_FLAGS[_<arch>] to be appended to the
compilation flags.

Fixes #10280.


# 124830be 18-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: FDT: add DTS[I] files for the first couple of targets.

Both for the rPI and the Verdex target we now have FDTs. The verdex
DTS is homebrew, the pxa DTSIs come from Linux and should be kept
in sync.

The rPI DTS and Broadcom DTSI come from FreeBSD HEAD, and should
ofcourse also be kept in sync.

One global new Jam rule has been introduced for handling DTS
compilation, aptly named CompileDTS....

More coming!


# 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).


# 6b40edde 24-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

build: switch from link option -nostart to -shared for addons and libs.

* they are interchangeable in GCC 2 and 4.6.


# a235c39e 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Added BuildPlatformStaticLibraryPIC rule.

It works like BuildPlatformStaticLibrary, but generates position
independent code.


# bc93eff8 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Added BuildPlatformStaticLibraryPIC rule.

It works like BuildPlatformStaticLibrary, but generates position
independent code.


# 24df6592 11-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
[set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


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


# 783930d9 31-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* reverted the part of r35362 that introduced support for minor ABI versioning - my evil twin made
me do that!

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


# 418b8758 31-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* added support for minor ABI versions to the SharedLibrary rule, as otherwise updating libz.so
could prove to be a major PITA (because of all the dependencies that would need to be rebuilt)
* when adding a library to the image, its optional minor abi version is taken care of, too (i. e. a
corresponding link is created).
* the ABI-related links in /system/lib are now replicated in /boot/develop/lib/<arch>

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


# 291785f8 27-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* added support for library (API-)versioning and private system libraries to
build system
* declared ICU-libs as private system libraries, which causes them to no longer
be available for building software (they no longer are linked from the
development lib folder, so the linker won't find them)


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


# c682a193 27-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

SharedLibrary: The soname of the library can now be set explicitly by setting
the HAIKU_SONAME variable on the target.


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


# 29782747 22-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added rule SetVersionScript to set the version script for a target and adjusted
the Link and KernelLd rules to support it.


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


# 77e84f21 13-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

configure does now check the yasm version for target architecture x86, and
sets the HAIKU_YASM build variable, which will be checked in BuildSetup.
Re-running configure or adding the variable manually to
generated/build/BuildConfig is required.


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


# 31433f61 11-Apr-2009 David McPaul <dlmcpaul@gmail.com>

test for valid ASFLAGS before calling yasm

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


# 1c258c3d 09-Apr-2009 David McPaul <dlmcpaul@gmail.com>

use yasm instead of nasm

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


# 0feb2904 30-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved AssembleNasm to MainBuildRules.


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


# 296f476e 01-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Missing config header directories in the CreateAsmStructOffsetsHeader
rule.
* Automatic whitespace cleanup.


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


# ba97f782 23-Jul-2008 Maurice Kalinowski <mauricek@nowhere.fake>

julun+mauricek:
* add cygwin specific options.
* Cygwin cannot handle -fPIC option and throws warnings, thus we only use it on non windows platforms for the host tools.
* Windows uses PATH instead of LD_LIBRARY_PATH, so before calling a host tool this environment variable needs to be expanded... Brilliant...
* Using jam on Windows is kind of complicated, as the cygwin included gcc creates executables with a .exe extension. When jam parses dependencies for being up to date it ignores this extension again and tries to rebuild the executables again and again. This hack removes the extension after successful linking. Though jam has a SUFEXE variable for cygwin builds, we cannot use this one directly as crosscompiled targets do not have an extension, it is complicated to use the same jam for both platforms. A more clean attempt would be to check for the extension on each host target depending on the platform. This should be fixed later on.
* Btw. Say hello to Haiku compiling successfully on Windows :) with one patch to be discussed for jam...

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


# feeb7a71 21-Jun-2008 François Revol <revol@free.fr>

On m68k immediate values are prefixed by #, not $, so we must filter it out too...


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


# 9d00a03d 03-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved --no-undefined flag addition to AddSharedObjectGlueCode where it
is added in case of target platform haiku only.


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


# 7870b77c 03-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

The Executable and Addon rules also use --no-undefined, now. Apparently
-nostdlib disables that for executables although it should be enabled by
default.


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


# 3b9651f3 05-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Pass "--no-undefined" to the linker when building a shared library for
Haiku. Support for undefined symbols is nice in principle, but not
really needed for building Haiku itself, and can get little annoying, if
one really just forgot to link in a symbol or has a typo in a function
name in C code.


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


# 0ba49c35 22-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* BuildPlatformMain supports overriding HOST_LIBROOT on the target now,
so one can set it to the static libroot, if desired.
* Generic attribute emulation:
- Added build tool rm_attrs, a simple "rm" replacement, which also
removes the attributes directory for a given file.
- Added build/scripts/rm_attrs shell script, which wraps the
invocation of the rm_attrs tool. If it doesn't exist yet, the
ordinary rm is used.
- The RM jam variable refers to the rm_attrs script now, i.e. whenever
something is removed by the build system, the attributes are removed
too (if the build tool has already been built, that is).
- Removed the shell function attrrmrf() in build_haiku_image. We use
the rm_attrs tool instead, if necessary.


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


# 34b3b26b 10-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged branch haiku/branches/developer/bonefish/optimization revision
23139 into trunk, with roughly the following changes (for details svn
log the branch):
* The int 99 syscall handler is now fully in assembly.
* Added a sysenter/sysexit handler and use it on Pentiums that support
it (via commpage).
* Got rid of i386_handle_trap(). A bit of functionality was moved into
the assembly handler which now uses a jump table to call C functions
handling the respective interrupt.
* Some optimizations to get user debugger support code out of the
interrupt handling path.
* Introduced a thread::flags fields which allows to skip handling of
rare events (signals, user debug enabling/disabling) on the
common interrupt handling path.
* Got rid of the explicit iframe stack. The iframes can still be
retrieved by iterating through the stack frames.
* Made the commpage an architecture independent feature. It's used for
the real time data stuff (instead of creating a separate area).
* The x86 CPU modules can now provide processor optimized versions for
common functions (currently memcpy() only). They are used in the
kernel and are provided to the userland via commpage entries.
* Introduced build system feature allowing easy use of C structure
member offsets in assembly code.

Changes after merging:
* Fixed merge conflict in src/system/kernel/arch/x86/arch_debug.cpp
(caused by refactoring and introduction of "call" debugger command).



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


# 44211832 02-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Changed Ld rule to allow adding resource files.
* Changed ResAttr rule to allow not deleting the file before writing the
attributes.
* Added application signatures for the runtime_loader and zbeos, just so that
they may have an icon, too (hint, hint) :-)
* As a side effect, this also let's FileTypes handle these two as apps (even
though they aren't), so that I can close bug #606.


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


# 0385b065 22-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Samuel Rodriguez Perez, slightly modified by myself: New
configure flag "--use-32bit" enabling 32 bit builds with a 64 bit host
compiler.


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


# f18b0dff 17-Jun-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Use named parameters.
* Use Object{Cc,C++}Flags instead of setting {CC,C++}FLAGS on the
objects directly.


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


# 4a9059fb 16-Jun-2007 Travis Geiselbrecht <geist@foobox.com>

some make system work to get x86-64 linux compiles working:
-The biggest problem with linking host libraries (libbe_build and libroot_build) was not having the source files compiled with the -fPIC flag. As far as I can tell, we want to do this on all of the other host platforms as well, so hacked the jam files a bit to add it.
Forgive me if I've committed more Jamfile sins.


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


# 6dcd0ccf 18-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Morgan Howe (slightly modified): Several changes to support
building on Mac OS X (Darwin). A problem with makebootable remains.


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


# ea3f7d3d 06-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added an "isExecutable" parameter to the Translator rule. All
translators pass "true" (was used before), but I suppose most of them
don't really need it.


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


# 1acbe440 06-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the obsolete second argument ("relpath") of the Addon rule and
shuffled "isExecutable" to the end. The new order favors the common use
cases. Adjusted all Addon invocations and while at it also removed
separate LinkAgainst invocations.


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


# f7d29d33 25-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't include the grist in libraries' sonames.


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


# b0634f65 05-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Resource definition files (*.rdef) are now piped through the C preprocessor.


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


# 51b3b53e 22-Apr-2006 Jérôme Duval <korli@users.berlios.de>

now links against libroot.so after user link objects
this avoids linking against libroot.so's glob symbol when user lib provides it
fixes bug #535. this implies libroot.so's glob implementation could need a review.


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


# 353d20c0 27-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* libroot and the runtime loader are no longer built with kernel rules.
* New rule Ld, analogously to KernelLd.
* Added StaticLibrary parameter for supplying additional objects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15191 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


# a2ddc1c06e44c238f5d0492cb50450e5c8923d71 23-Apr-2015 François Revol <revol@free.fr>

Fix CompileDTS rule to locate the device tree blob properly

This avoids having to call it from the BoardSetup files.


# 2311bdf24f00d956ce57db799321f02c2749a366 09-Dec-2014 Adrien Destugues <pulkomandy@gmail.com>

AssembleNasm: add source dir to include path.

This makes it possible to %include local files. nasm doesn't allow this
otherwise (include paths are assumed relative to the working directory).

Fixes build of ape_reader.


# 88d51506d0f23af02f95b881c85a2aba204c1e23 31-Oct-2014 François Revol <revol@free.fr>

Move ARM device tree files to an arch-specific subfolder

FDT are also used on PPC at least, and at least skeleton.dtsi
might clash since there is a different one for PPC.


# 128e69f9e5607ea15bcfa96f3e982901ccc4496d 31-Oct-2014 Ithamar R. Adema <ithamar@upgrade-android.com>

CompileDTS: use preprocessor on .dts files

Recent linux behaviour (and also copied by BSD) is to preprocess
DTS files with the C preprpocessor to enable sharing constants between
driver implementation and DTS content for more readability.


# f0b0d6578b5d3bb566b2f10f80c8f6e8bb924f96 14-Sep-2014 Jessica Hamilton <jessica.l.hamilton@gmail.com>

Undo accidental file mode changes.


# e547662664d88e5ee79048bd00ad8eefa45e7074 10-Sep-2014 Jessica Hamilton <jessica.l.hamilton@gmail.com>

stage1/2 loaders: auto-generate binary files. Fixes #10723


# f7653b1b74f0d97b7785f0a323013f8b7f956ce4 11-Aug-2014 Oliver Tappe <zooey@hirschkaefer.de>

Optionally build glue code for bootstrap_stage0 platform.


# 220d04022750f40f8bac8f01fa551211e28d04f2 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# afde44733fdff43256384ea0441585a082e73c95 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

* When using the non-legacy compiler, use the c++ and gcc headers
provided in the gcc_syslibs_devel build feature for building Haiku.
* Simplify declaration of c++ and gcc headers for the legacy compiler -
in the end we always use the ones living by our source tree anyway.
* Fix a couple of missing local declarations for jam variables, which
were necessary to avoid a build problem with strace. There are
probably more bugs like these hiding in our build system files, but
I'm saving the fix for those to the next commit.
* Add new gcc packages to the HaikuPorts (x86*-)repositories.


# a07cdb6e9f8e484b6ba9f209fbeb144e906d3405 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Define two pseudo targets for the target and build platform.

* The main build rules now cause their targets to depend on the
platform such that global per-platform intializations can be
set up by making the platform pseudo target depend on the
target returned by the initialization rule.


# 8c54af563ce823c0e5b029716b2a020896c90ff4 30-Apr-2014 Oliver Tappe <zooey@hirschkaefer.de>

Whitespace cleanup in root and 'build' folder.

* Removed trailing whitespace and empty lines at top of files.


# d6f80927323b91e9c8105aec3aa8488698ab4e11 28-Mar-2014 Jonathan Schleifer <js@webkeks.org>

Sorry, my last commit was incomplete


# 724f4e2d387826f0b501981e542ea21ca99bd64d 04-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Fix kernel -Werror support

The introduction of secondary arch support for kernel files disabled
-Werror for all kernel files, since the -Werror flags were moved from
{CC,C++}FLAGS to TARGET_WARNING_{CC,C++}FLAGS_<arch>, which, however,
was overwritten by the SetupKernel rule. This commit introduces new
global variables {HAIKU,HOST,TARGET}_WERROR_FLAGS[_<arch>], which
contain the additional -Werror flags to be applied for the architecture.
The config variable WARNINGS can be set to "treatAsErrors" to cause
-Werror and {HOST,TARGET}_WERROR_FLAGS[_<arch>] to be appended to the
compilation flags.

Fixes #10280.


# 124830be8d438d54f587b68408e7fc036c8bd0f4 18-Sep-2013 Ithamar R. Adema <ithamar@upgrade-android.com>

ARM: FDT: add DTS[I] files for the first couple of targets.

Both for the rPI and the Verdex target we now have FDTs. The verdex
DTS is homebrew, the pxa DTSIs come from Linux and should be kept
in sync.

The rPI DTS and Broadcom DTSI come from FreeBSD HEAD, and should
ofcourse also be kept in sync.

One global new Jam rule has been introduced for handling DTS
compilation, aptly named CompileDTS....

More coming!


# 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).


# 6b40eddef71e4aa1a8d455a7606c589bacbc9537 24-Apr-2013 Jérôme Duval <jerome.duval@gmail.com>

build: switch from link option -nostart to -shared for addons and libs.

* they are interchangeable in GCC 2 and 4.6.


# a235c39ee40de135bc695bca257ba271b65c1e2c 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Added BuildPlatformStaticLibraryPIC rule.

It works like BuildPlatformStaticLibrary, but generates position
independent code.


# bc93eff874d5240b252c388381dac84cb34f5821 16-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Added BuildPlatformStaticLibraryPIC rule.

It works like BuildPlatformStaticLibrary, but generates position
independent code.


# 24df65921befcd0ad0c5c7866118f922da61cb96 11-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged signals-merge branch into trunk with the following changes:
* Reorganized the kernel locking related to threads and teams.
* We now discriminate correctly between process and thread signals. Signal
handlers have been moved to teams. Fixes #5679.
* Implemented real-time signal support, including signal queuing, SA_SIGINFO
support, sigqueue(), sigwaitinfo(), sigtimedwait(), waitid(), and the addition
of the real-time signal range. Closes #1935 and #2695.
* Gave SIGBUS a separate signal number. Fixes #6704.
* Implemented <time.h> clock and timer support, and fixed/completed alarm() and
[set]itimer(). Closes #5682.
* Implemented support for thread cancellation. Closes #5686.
* Moved send_signal() from <signal.h> to <OS.h>. Fixes #7554.
* Lots over smaller more or less related changes.


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


# 783930d9166e3e7f14581748c2d393e04c75ef87 31-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* reverted the part of r35362 that introduced support for minor ABI versioning - my evil twin made
me do that!

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


# 418b8758bf73e3afd6d16b7f61c14a932152f6bf 31-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* added support for minor ABI versions to the SharedLibrary rule, as otherwise updating libz.so
could prove to be a major PITA (because of all the dependencies that would need to be rebuilt)
* when adding a library to the image, its optional minor abi version is taken care of, too (i. e. a
corresponding link is created).
* the ABI-related links in /system/lib are now replicated in /boot/develop/lib/<arch>

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


# 291785f88f68d0a3127d15b056236626a8ce8cb8 27-Jan-2010 Oliver Tappe <zooey@hirschkaefer.de>

* added support for library (API-)versioning and private system libraries to
build system
* declared ICU-libs as private system libraries, which causes them to no longer
be available for building software (they no longer are linked from the
development lib folder, so the linker won't find them)


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


# c682a1937e6664e1f82ebac2cf337523d838cc5b 27-Dec-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

SharedLibrary: The soname of the library can now be set explicitly by setting
the HAIKU_SONAME variable on the target.


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


# 297827477bc348fcf07166b09cb15a28d8c23a74 22-May-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added rule SetVersionScript to set the version script for a target and adjusted
the Link and KernelLd rules to support it.


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


# 77e84f219a28bcb45d9287a756e312c1d19e6623 13-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

configure does now check the yasm version for target architecture x86, and
sets the HAIKU_YASM build variable, which will be checked in BuildSetup.
Re-running configure or adding the variable manually to
generated/build/BuildConfig is required.


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


# 31433f615ea358688121b79b3449baabf988082c 11-Apr-2009 David McPaul <dlmcpaul@gmail.com>

test for valid ASFLAGS before calling yasm

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


# 1c258c3d59b6bea12c28dd50b914bc43ac1a4763 09-Apr-2009 David McPaul <dlmcpaul@gmail.com>

use yasm instead of nasm

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


# 0feb2904db0923c4f9ecee593248dd876344845e 30-Mar-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved AssembleNasm to MainBuildRules.


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


# 296f476ec9f4a553b4999222092b9c8276900030 01-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Missing config header directories in the CreateAsmStructOffsetsHeader
rule.
* Automatic whitespace cleanup.


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


# ba97f78287a4050f033a22729ee124d096b7effc 23-Jul-2008 Maurice Kalinowski <mauricek@nowhere.fake>

julun+mauricek:
* add cygwin specific options.
* Cygwin cannot handle -fPIC option and throws warnings, thus we only use it on non windows platforms for the host tools.
* Windows uses PATH instead of LD_LIBRARY_PATH, so before calling a host tool this environment variable needs to be expanded... Brilliant...
* Using jam on Windows is kind of complicated, as the cygwin included gcc creates executables with a .exe extension. When jam parses dependencies for being up to date it ignores this extension again and tries to rebuild the executables again and again. This hack removes the extension after successful linking. Though jam has a SUFEXE variable for cygwin builds, we cannot use this one directly as crosscompiled targets do not have an extension, it is complicated to use the same jam for both platforms. A more clean attempt would be to check for the extension on each host target depending on the platform. This should be fixed later on.
* Btw. Say hello to Haiku compiling successfully on Windows :) with one patch to be discussed for jam...

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


# feeb7a7124e8144695f7df3734d7db4eeed4a111 21-Jun-2008 François Revol <revol@free.fr>

On m68k immediate values are prefixed by #, not $, so we must filter it out too...


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


# 9d00a03d7bbac9ed5d5e6c474cc51275b0f75843 03-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Moved --no-undefined flag addition to AddSharedObjectGlueCode where it
is added in case of target platform haiku only.


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


# 7870b77c1848ab7da4ab22f8d9074b0be6c661ce 03-Jun-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

The Executable and Addon rules also use --no-undefined, now. Apparently
-nostdlib disables that for executables although it should be enabled by
default.


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


# 3b9651f3fc8f55c2cc10adf0039280dbce3951b1 05-Apr-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Pass "--no-undefined" to the linker when building a shared library for
Haiku. Support for undefined symbols is nice in principle, but not
really needed for building Haiku itself, and can get little annoying, if
one really just forgot to link in a symbol or has a typo in a function
name in C code.


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


# 0ba49c35b3ad2588217c45e3aa02144c7b2124f0 22-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* BuildPlatformMain supports overriding HOST_LIBROOT on the target now,
so one can set it to the static libroot, if desired.
* Generic attribute emulation:
- Added build tool rm_attrs, a simple "rm" replacement, which also
removes the attributes directory for a given file.
- Added build/scripts/rm_attrs shell script, which wraps the
invocation of the rm_attrs tool. If it doesn't exist yet, the
ordinary rm is used.
- The RM jam variable refers to the rm_attrs script now, i.e. whenever
something is removed by the build system, the attributes are removed
too (if the build tool has already been built, that is).
- Removed the shell function attrrmrf() in build_haiku_image. We use
the rm_attrs tool instead, if necessary.


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


# 34b3b26b3b8c46ba46ddde037b10dd173f4936d6 10-Jan-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Merged branch haiku/branches/developer/bonefish/optimization revision
23139 into trunk, with roughly the following changes (for details svn
log the branch):
* The int 99 syscall handler is now fully in assembly.
* Added a sysenter/sysexit handler and use it on Pentiums that support
it (via commpage).
* Got rid of i386_handle_trap(). A bit of functionality was moved into
the assembly handler which now uses a jump table to call C functions
handling the respective interrupt.
* Some optimizations to get user debugger support code out of the
interrupt handling path.
* Introduced a thread::flags fields which allows to skip handling of
rare events (signals, user debug enabling/disabling) on the
common interrupt handling path.
* Got rid of the explicit iframe stack. The iframes can still be
retrieved by iterating through the stack frames.
* Made the commpage an architecture independent feature. It's used for
the real time data stuff (instead of creating a separate area).
* The x86 CPU modules can now provide processor optimized versions for
common functions (currently memcpy() only). They are used in the
kernel and are provided to the userland via commpage entries.
* Introduced build system feature allowing easy use of C structure
member offsets in assembly code.

Changes after merging:
* Fixed merge conflict in src/system/kernel/arch/x86/arch_debug.cpp
(caused by refactoring and introduction of "call" debugger command).



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


# 4421183286ff7b0d57da9c7692691936e98c80bb 02-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* Changed Ld rule to allow adding resource files.
* Changed ResAttr rule to allow not deleting the file before writing the
attributes.
* Added application signatures for the runtime_loader and zbeos, just so that
they may have an icon, too (hint, hint) :-)
* As a side effect, this also let's FileTypes handle these two as apps (even
though they aren't), so that I can close bug #606.


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


# 0385b0657b9c255b849c6e6031cd258e041a17ac 22-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Samuel Rodriguez Perez, slightly modified by myself: New
configure flag "--use-32bit" enabling 32 bit builds with a 64 bit host
compiler.


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


# f18b0dff8b0bae32d21a314bd4ddcc7f391daafd 17-Jun-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Use named parameters.
* Use Object{Cc,C++}Flags instead of setting {CC,C++}FLAGS on the
objects directly.


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


# 4a9059fb38fc8568f94b6eb2635ded2fee19ee45 16-Jun-2007 Travis Geiselbrecht <geist@foobox.com>

some make system work to get x86-64 linux compiles working:
-The biggest problem with linking host libraries (libbe_build and libroot_build) was not having the source files compiled with the -fPIC flag. As far as I can tell, we want to do this on all of the other host platforms as well, so hacked the jam files a bit to add it.
Forgive me if I've committed more Jamfile sins.


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


# 6dcd0ccf238263a3e5eb2e2a44e2ed0da1617a42 18-May-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Morgan Howe (slightly modified): Several changes to support
building on Mac OS X (Darwin). A problem with makebootable remains.


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


# ea3f7d3d8d3ec4e4a589491e9d67517426a4d367 06-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added an "isExecutable" parameter to the Translator rule. All
translators pass "true" (was used before), but I suppose most of them
don't really need it.


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


# 1acbe440b8dd798953bec31d18ee589aa3f71b73 06-Apr-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Removed the obsolete second argument ("relpath") of the Addon rule and
shuffled "isExecutable" to the end. The new order favors the common use
cases. Adjusted all Addon invocations and while at it also removed
separate LinkAgainst invocations.


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


# f7d29d339b00d2432ee695809c92698ce7886ab0 25-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't include the grist in libraries' sonames.


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


# b0634f6510127dba0effc6d2c1bce5f6f83d6026 05-Aug-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Resource definition files (*.rdef) are now piped through the C preprocessor.


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


# 51b3b53e711829b6e24b84c5affe44e2ebf89c55 22-Apr-2006 Jérôme Duval <korli@users.berlios.de>

now links against libroot.so after user link objects
this avoids linking against libroot.so's glob symbol when user lib provides it
fixes bug #535. this implies libroot.so's glob implementation could need a review.


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


# 353d20c0c5f19d1120a8acb0f4f7f3b266da730f 27-Nov-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

* libroot and the runtime loader are no longer built with kernel rules.
* New rule Ld, analogously to KernelLd.
* Added StaticLibrary parameter for supplying additional objects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15191 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