Commit Graph

23 Commits

Author SHA1 Message Date
Ingo Weinhold
724f4e2d38 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.
2013-12-05 12:48:22 +01:00
Ingo Weinhold
af2e206845 rule Link: Set HAIKU_TARGET_IS_EXECUTABLE on target 2013-10-12 17:22:16 +02:00
François Revol
ddb1aa7353 revert 787843b
Restore the Clean action as "together".

Jam splits the args according to MAXLINE, which was too large.
2013-09-30 04:02:20 +02:00
François Revol
787843b286 Drop the together keyword on the Clean action
Since the PM merge we now have way too many targets,
here jam clean just fails in execve() due to too long arguments.

jam clean is now very verbose but at least it works.

Another option could be to override the Clean rule itself
to clean in batch by splitting the list...
Patches welcome.
2013-09-30 02:26:12 +02:00
Ingo Weinhold
b0944c78b0 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).
2013-08-01 08:54:06 +02:00
Ingo Weinhold
52a43b19ff MakeLocate rule: Avoid directory dependency, if already located
Only create the directory dependency for a target, if that's where the
target will actually end up. If it has already been located before, do
nothing.
2013-06-07 15:31:03 +02:00
Ingo Weinhold
518840e305 Complete MIME related support for image/package creation
* Update MimeSet rule to use the MIME DB the build system creates.
* Add CreateAppMimeDBEntries rule and call it from Link for targets that
  might be applications that need to be registered with the MIME DB. For
  the target the rule is invoked with it creates a directory into which
  the entries for the types to be registered are written. The directory
  is associated with the target via the HAIKU_MIME_DB_ENTRIES variable.
* AddFilesToContainer: If a target is added that has MIME DB entries,
  also add those to the container.
* build_haiku_package: Call mimeset for the package contents.
2013-05-09 03:38:10 +02:00
Ingo Weinhold
89804230e1 Override File actions to be whitespace-safe 2013-04-23 19:49:21 +02:00
Ingo Weinhold
297827477b 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
2009-05-22 14:51:16 +00:00
Ingo Weinhold
0feb2904db Moved AssembleNasm to MainBuildRules.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-30 15:11:55 +00:00
David McPaul
91fbc75fd1 Fix coding style violation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29800 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-30 09:33:33 +00:00
David McPaul
73734dbf97 Add nasm rule and action
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29798 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-30 06:52:51 +00:00
Ingo Weinhold
bfdf82d450 * When using the generic attribute emulation the Link actions does now
first remove the target and its attributes (if any). Before gcc would
  just unlink it and leak the attributes, which could lead to later
  mixups, if the file's inode ID was re-used. As reported by Rene this
  improves the attribute mixup situation, but doesn't solve it
  completely. So that status quo is still the same: When using the
  generic attribute emulation one has to build from the scratch to be
  sure all attributes are fine.
* Got rid of superfluous whitespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-08 23:03:52 +00:00
Ingo Weinhold
f3d12d460b Execute chmod at least command or the set permissions might get lost
again. I'm not totally sure why that is, but the set-uid permission kept
disappearing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-18 23:51:21 +00:00
Ingo Weinhold
071f9c3aa2 Build configurations shouldn't be done in svn controlled files, so I
finally created a solution to avoid that: Header files that contain
configuration settings (and nothing else) go to build/config_headers.
To change settings, create a directory build/user_config_headers (which
is ignored by svn), copy the respective header there and modify it at
your leisure. Currently only tracing_config.h has been moved to the new
location, but more files will follow eventually. It is also recommended
to move optional macro definitions in Jamfile (as for BFS) to a config
header instead; the build system will then automatically rebuild on
changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24611 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-27 22:01:38 +00:00
Ingo Weinhold
0ba49c35b3 * 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
2008-03-22 21:05:03 +00:00
Ingo Weinhold
3f2a43554a * Moved the DeferredSubInclude rules into MiscRules.
* Added new rule HaikuSubInclude for more comfortable subdirectory inclusion.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-07 16:01:19 +00:00
Marcus Overhagen
3f493ef624 Force recreation of *.a archives to avoid build errors caused by
stale dependencies after renaming or deleting object files.
This will avoid link error like the one that was caused by the 
recent mesa update.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-02-17 22:42:16 +00:00
Jérôme Duval
0a4542854b added iasl bin tool from acpica-20061109
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-17 19:53:01 +00:00
Ingo Weinhold
32bf6c0b07 LibraryFromObjects did set AR on $(1) instead of on $(_l), the latter
one being $(1:S=$(SUFLIB)). Thus the wrong AR would be used when
the name passed to LibraryFromObjects didn't have the .a suffix yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15029 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-19 00:57:21 +00:00
Ingo Weinhold
8b5934c975 * 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
2005-11-12 22:58:54 +00:00
Ingo Weinhold
24ecde09c8 Source files/headers generated by lex or yacc need to inherit the platform
from the respective object file or they are misplaced.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-31 14:14:05 +00:00
Ingo Weinhold
338b8dc301 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
2005-10-29 16:27:43 +00:00