Commit Graph

21 Commits

Author SHA1 Message Date
Maciej Bałuta
72c791bc1f jam: update default paths in Jambase
Running "./jam0 install" installed jam in /boot/common/bin/ which
is no longer used. Other directories also looked outdated so they
are updated too.

Test plan:
1. make
2. ./jam0 install
   Install /boot/system/non-packaged/bin/jam
3. which jam
   /boot/system/non-packaged/bin/jam

Change-Id: I69c719eab0bd211f545c17337e3bc73bb1ab78fe
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4617
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2021-10-20 17:56:33 +00:00
Franck LeCodeur
4b7b6c63e8 jam: Remove ignored archiver flag modifier
The call of make in buildtools/jam produces the following output:

LINKLIBS= ./jam0
...patience...
...found 271 target(s)...
...updating 33 target(s)...
MkDir1 bin.linuxx86
Cc bin.linuxx86/builtins.o
< reduced output >
Cc bin.linuxx86/variable.o
Archive bin.linuxx86/libjam.a
ar: `u' modifier ignored since `D' is the default (see `U')
ar: creating bin.linuxx86/libjam.a
...

'make' bootstraps 'jam0' which calls 'ar' to create the static library 'libjam.a'.
The call looks like this:

ar ru bin.linuxx86/libjam.a bin.linuxx86/builtins.o <reduced output> bin.linuxx86/variable.o

The modifier 'u' gets ignored.

The underlying cause is that the build was done in deterministic mode ('D'), a.o. NOT using timestamps, which is completely fine.
But because of this the archiver tool (ar) can never update files in the archive based on timestamps.
"ru" means replace files (flag 'r') only if they are updated (flag suffix 'u') based on timestamps.
This patch removes the flag suffix 'u'.

Change-Id: I57fa2d50c2081ee66d1b71648714e773ecb7cd59
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/4419
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-09-13 06:10:36 +00:00
Augustin Cavalier
139f4e7c6c jam: Pass -e to JAMSHELL.
Equivalent to hrev55387 in Haiku.
2021-09-06 16:11:04 -04:00
Puck Meerburg
51dc302367 jam/Jambase: split AR into ARFLAGS
This brings Jam's usage of AR to be more conventional: the flags for AR
are moved to a separate variable, called ARFLAGS, ensuring that any
environment that overrides the AR variable will still end up using the
correct flags to create the archve.

Change-Id: I00449b284fab132d5fc9239017d742480fb51820
Reviewed-on: https://review.haiku-os.org/c/buildtools/+/3226
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2020-09-16 19:16:28 +00:00
Augustin Cavalier
b3407e33b3 Jambase: Restore old ar flags to fix GCC2. 2018-11-25 11:08:39 -05:00
Augustin Cavalier
6ce894a916 jam: Bump Jambase version, fix typo, and regenerate jambase.c. 2018-11-21 19:07:39 -05:00
Augustin Cavalier
2671c4b959 Jambase: Change default ARFLAGS and enable NOARSCAN by default.
On most systems, "D" (deterministic) is now the default archiving mode,
and so specifying "u" will throw a warning that "D" is being used anyway.
Jam previously assumed, as it was passing "u", that the timestamps inside
.a's were valid when they were actually 0, which was leading to spurious
rebuilds of .as.

After this change, we assume archives cannot be scanned for timestamps,
which should stop the spurious rebuilds of targets on most systems.
2018-11-21 18:46:31 -05:00
Augustin Cavalier
1d198a6bf6 Jambase: Update some rules from Haiku's overridden set.
These are the simple ones that were just overridden to handle spaces
in file names properly.
2018-11-21 18:44:04 -05:00
Augustin Cavalier
35013601f4 Jambase: Remove crelib.
Not needed anymore as I've just removed the platforms that used it.
2018-11-21 18:35:02 -05:00
Augustin Cavalier
8f66ea4bf2 Jambase: Remove old UNIXes. 2018-11-21 18:27:25 -05:00
Augustin Cavalier
b47cc04d00 Jambase: Add a blanket disclaimer about modifications.
Hopefully this is enough to satisfy the license requirements.
Remove some of the "LOCAL CHANGE" comments as a result (ones about
the HeaderCache remain.)
2018-11-21 15:00:12 -05:00
Augustin Cavalier
4d114c95a7 Jambase: Remove Mac OS 9 support.
macOS support is provided via the "MACOSX" case under "UNIX"
and is unaffected by this.

Also remove the Win98 (!) cruft while we're at it.
2018-11-21 14:57:36 -05:00
Augustin Cavalier
531869677c Jambase: Remove RELOCATE.
We don't need to support these ancient compliers anymore, so this
hack can go away.
2018-11-21 14:53:20 -05:00
Augustin Cavalier
161fe1206c Jambase: Remove OS/2, VMS, and Borland support. 2018-11-21 14:51:27 -05:00
Augustin Cavalier
7d73e6afae Jambase: Cleanup formatting and inline LICENSE.
No functional change intended.

We have been putting off refactoring this for too long. It's time to
change that.
2018-11-21 14:48:04 -05:00
Jérôme Duval
f625dd9f94 Revert "jam: Fix build/run on Windows."
This reverts commit 148cc99040.
It broke the build on Linux.
2015-08-07 17:22:50 +02:00
Augustin Cavalier
148cc99040 jam: Fix build/run on Windows.
Only works when compiled in 32-bit mode, as there's a whole bunch
of pointer arithmetic that depends on "int" being 32bit, not 64bit.
2015-07-23 16:45:11 -04:00
Paweł Dziepak
862b5480a9 jam: do not set OPTIM by default
If setting OPTIM by jam basically makes it impossible for the project that
is using jam to set its own optimization level while still allowing user
to override that in command line. For example in Haiku jam files there is
line like this: "OPTIM ?= -O2", which obviously is meant to set optimization
level to O2 unless user overwrites it. Unfortunately, because Jam have already
set OPTIM to -O this line never had an intended effect.

After this Jam no longer thinks it knows best what is good for projects
that are using it and Haiku is by default compiled with -O2.

Signed-off-by: Paweł Dziepak <pdziepak@quarnos.org>
2014-08-25 22:58:39 +02:00
Stephan Aßmus
15d161b97e Patch by scottmc:
* On Haiku, the jam install folder should be /boot/common.


git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@32875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-31 20:39:54 +00:00
Ingo Weinhold
7b6de8037d Ported to Haiku.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@24623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-28 14:14:44 +00:00
Ingo Weinhold
ecc89c9a6a Moved jam into the buildtools modules, where it belongs.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@15729 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 18:40:48 +00:00