History log of /haiku/build/jam/FileRules
Revision Date Author Comments
# 6f582441 29-Oct-2023 Kacper Kasper <kacperkasper@gmail.com>

Support repositories created with git worktree

* .git is a file in worktree-created copies.
* Determines the correct directory using git command, when
running configure.
* Fixes #16808.

Change-Id: I72c7b2e79aac5140d35e0339fad16160a35911ae
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6914
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# dd04895c 22-Oct-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

build: retry-on-host-error while downloading files

* We might as well "try as hard as we can" to get build files.
* With this setting, DNS resolution errors count as retryable
errors. wget will retry to get files up to 20 times by default.
* Should improve build relability on less-than-ideal network
connections. (aka, a brief network disconnection shouldn't stop
a local build if possible)

Change-Id: I39652fafb5eee237c463e1b777b1057ee1d53db1


# b06ada87 12-Nov-2022 Dominic Martinez <dom@dominicm.dev>

build: clean hds schema directories correctly

Change-Id: Ie55706885cdaa5bb94f8bf419aac25c326192d64
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5814
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 128781e7 30-Aug-2019 Augustin Cavalier <waddlesplash@gmail.com>

build/jam: Inline HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR where possible.

The "exec" tool can only handle one command with environs set at
the beginning of the line, so now we set the ADD_BUILD_COMPAT...
in this format. This also seems to be a general performance
improvement to builds using real shells, too.

Change-Id: If4b3117651b5475039d5e8116cd3de398582290a


# b237fff4 09-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

FileRules: Fix typo.

Thanks PulkoMandy for reviewing!


# 134e58ec 09-Jan-2019 Augustin Cavalier <waddlesplash@gmail.com>

FileRules: Make DownloadLocatedFile1 less cryptic.

As Jam prints the entire erring command on failure, including this if-test
in the command itself makes the output somewhat difficult to decipher.
So instead we use two separate rules based on whether or not NO_DOWNLOADS
is set or not.


# b16a18cb 26-Sep-2018 Augustin Cavalier <waddlesplash@gmail.com>

build: Include extra information in the package version.

Previously only the "effective revision", i.e. the hrev by itself,
was used. Now we include the "commits ahead" count and the "dirty" flag,
if they're there, using _ instead of - of course.

Change-Id: I5238d01926c2cca242bffbdef30bff606a173a06
Reviewed-on: https://review.haiku-os.org/596
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
(cherry picked from commit e7c5d994267fb7d49e3dd50c2854e9b37c9ffca1)
Reviewed-on: https://review.haiku-os.org/597


# c9e6b4e0 30-Jun-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

jam: Extend wget wait

* I shrunk this down, but it seems like packages.haiku-os.org
is taking an long time to access some packages (>10 sec)
* This should help relability of package downloads until
someone checks out why connections take so long


# 3847e19f 04-Jul-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

jam: Make DownloadLocatedFile1 more aggressive. 10s timeout == retry


# 0230e26b 28-Jun-2014 Oliver Tappe <zooey@hirschkaefer.de>

Tell wget to retry for connection-refused errors.

* This should help the build process to survive short-lived connection
problems (as they happened to buildbot slaves tonight).


# d4563ace 31-May-2014 Oliver Tappe <zooey@hirschkaefer.de>

Improve handling of Haiku clone without any tags.

* Error out early with a hint about how to solve the problem (by setting
HAIKU_REVISION explicitly).


# 1a0cfb11 01-May-2014 Oliver Tappe <zooey@hirschkaefer.de>

Minor cleanup: remove superfluous semicolon.


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

Add new configuration option --no-downloads.

* If --no-downloads has been given, Haiku will be built without
trying to download anything, all required packages need to be put
into the download folder manually (the build will stop on missing
packages).
* As the required HaikuPorts repository can't be downloaded in this
mode, a local repository is created during the build, which only
contains the packages available in the downloads folder.

This is useful for building Haiku completely from source.


# af559cd6 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Add DetermineEffectiveHaikuRevision rule

Simplifies PreprocessPackageInfo a bit.


# d4bfbab3 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Implement generic Sed rule


# 1d6ca1da 25-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

rule DetermineHaikuRevision: Avoid duplicate command execution

... when HAIKU_REVISION is set.


# 5fc2757a 20-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add user settable HAIKU_REVISION build variable

Can be set to a revision string (hrev4...) to override the revision
determined via git. Useful when the repository doesn't have tags.


# 39d26e3c 12-Oct-2013 François Revol <revol@free.fr>

Set HAIKU_TARGET_IS_EXECUTABLE in KernelLd as well

The kernel also needs to be stripped for m68k.

Propagate it to the revisioned binary as well.


# 3162883e 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add rules StripFile[s]


# cc5c6133 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Rework stripping binaries when copying to containers"

This reverts commit e2332987bce967387b49c5dce24867688a01317f.


# e2332987 11-Oct-2013 François Revol <revol@free.fr>

Rework stripping binaries when copying to containers

We now only attempt to strip binaries, by detecting the
LINKFLAGS variable on the targets.

CopySetHaikuRevision now also forwards LINKFLAGS
to revisioned binaries.

Introduce separate AppendToContainerCopyFilesScriptStripFile actions
which are used for copying and stripping, and avoids many useless
shell tests.

When asked to strip binaries, they are detected and handled
individually for simplicity.

Note we still don't keep resources and attributes when stripping.


# 04d9b3e8 10-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

CopySetHaikuRevision: Pull out rule DetermineHaikuRevision


# f04f7042 29-Sep-2013 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Determine how to invoke sed with extended regexp

This will require re-running configure


# 86297ca0 27-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

actions DownloadLocatedFile: fail, if wget fails


# a1e68169 26-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Rework rule CopySetHaikuRevision

* Remove support for VCSs other than git.
* Make the haiku-revision file a regular build target and make sure it
is built only once.
* Make determine_haiku_revision an actual shell script and simplify
it a bit.


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


# 3e582896 11-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

DownloadLocatedFile: fix use with older wget version

The option "--no-use-server-timestamps" is apparently newer than
Haiku's wget.


# 531a3d42 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add rule ChecksumFileSHA256


# 46686fe6 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Download*File rules: add optional source target

If specified the path to the source target can be used in the URL via
"$source".


# ff2e5209 30-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove the old "CVS" package rules

... and all their invocations.


# 6c6d6490 30-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

ExtractArchive rule: Allow the directory to have a grist


# bcdf4924 02-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Simplify/fix the ExtractArchive rule and friends

* The call to the dummy actions isn't needed
* The calls to Extract{Zip,Tar,HPKG}Archive1 couldn't work like that.
The directory has to be the main target, since ExtractArchive is
potentially invoked multiple times with different extracted file
targets and the Extract*Archive1 is only invoked the first time.
Tested only with the HPKG actions, but they others should work as
well.


# d091af40 04-Nov-2012 François Revol <revol@free.fr>

Revert hrev44743

Downloaded optional packages aren't actually removed as I thought on jam clean,
so it's not that much useful...


# 962eb4be 03-Nov-2012 François Revol <revol@free.fr>

Allow local caching of optional packages

Introduce HAIKU_DOWNLOAD_CACHE variable that can point to a directory.
containing optional packages to check first before downloading.
Missing packages are also added to the cache.
This allows sharing and reusing them to make builds without a connection.


# 36aac7c5 03-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Fix typo


# 577d81a9 04-Jan-2012 François Revol <revol@free.fr>

Add proper error on ExtractArchive with missing filename

The * case was not generating any message due to empty string expansion I suppose...


# c9c6e365 03-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Use PropagateContainerUpdateTargetFlags rule

Propagate all update variables in CopySetHaikuRevision and for the
kernel pseudo target.


# f724ec0e 19-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

ExtractArchive: Add hpkg support


# 8e4f760c 07-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Apply patch from mmadia to add a Release Notes file to the alpha image desktop.

Allow wget to output to files with spaces in the DownloadFile rule.

Fixes #7609.


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


# 2fe19bf6 16-May-2011 Oliver Tappe <zooey@hirschkaefer.de>

Adjusted code for determining the revision in order to hopefully work on FreeBSD, too
* convert determine_haiku_revision to only contain functions and now pass the arguments
via function call


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


# 8ff44a43 15-May-2011 Oliver Tappe <zooey@hirschkaefer.de>

Fix and improve code for determining Haiku revision from a git repo
* break out most of the CopySetHaikuRevision action into a separate script:
determine_haiku_revision
* fix git branch detection such that it'll actually work for local branches (thanks to
Andreas Färber for the hint)
* add some sanity checks


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


# 64c5bc63 13-May-2011 Oliver Tappe <zooey@hirschkaefer.de>

* add support for generating a useful haiku-revision from a
git repository

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


# 490b4a94 10-Apr-2011 Matt Madia <mattmadia@gmail.com>

Patch by Corneliu - Claudiu Prodescu "cprodescu". Ensures that ExtractArchive
extracts the files, even when the specified target directory exists.
Fixes #7425. Thanks!


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


# e6287988 15-Feb-2011 Axel Dörfler <axeld@pinc-software.de>

* Fixed a typo, whitespace cleanup.


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


# 9d123fc2 21-Mar-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Färber:
CopySetHaikuRevision: Added support for extracting the svn revision number
from an hg repository.


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


# 05bbc668 27-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

From: Matt Madia

* InstallOptionalHaikuImagePackage: Made the first argument an actual file
name, i.e. the extension ".zip" is no longer appended by it.
* Renamed rules UnzipArchiveTo{Container,HaikuImage} to
ExtractArchiveTo{Container,HaikuImage} and generalized them to support
tgz/tar.gz archives (implemented in build_haiku_{image,cd}).
* Removed DownloadOptionalPackage. DownloadFile is used instead.


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


# 3ccf442a 25-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Author: Matt Madia

Cleaned up usage comment of ExtractArchive.


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


# 76fa0be3 25-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Matt Madia:
* Renamed DownloadFile to DownloadLocatedFile.
* Pulled a generalized rule DownloadFile out of DownloadOptionalPackage.
* Added InstallSourceArchive rule which can be used in OptionalPackages to
add sources for installed packages to the image.
* Added configure option --include-sources to enable including the sources
for third party software in the image.


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


# 3cd300bc 25-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Matt Madia: Generalized the UnzipArchive rule to support *.tgz files
as well, and renamed it to ExtractArchive.


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


# 39c91458 19-Sep-2009 Travis Geiselbrecht <geist@foobox.com>

Fix the CopySetHaikuRevision1 rule if you're building in a plain git
repository, not mirroed via git-svn. Calling git-svn on a plain
repository seems to cause it to go haywire.

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


# 520cf266 20-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

HaikuInstall rule: Allow optional list of target names.


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


# a1c6f0fd 30-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Andreas to unify SVN version detection with GIT, also fixing
bug #2860.


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


# e7f2fa91 08-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't use MakeLocate to make sure that the parent directory exists, since
that also sets LOCATE, which could cause jam to incorrectly place our
directory. Should fix the problems with the SSL build feature some people
have been seeing.


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


# d339b68b 08-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added UnzipArchive rule which unzips a zip file into a target directory.
* Added DownloadOptionalPackage which is mainly a wrapper around DownloadFile
preventing the package from being downloaded twice, even if invoked more
than once.
* InstallOptionalHaikuImagePackage uses DownloadOptionalPackage now.


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


# 2dd847b6 18-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed CopySetHaikuRevision1 actions not to fail, when either of the
tools doesn't exist. Fixes #2860.


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


# 8c74d99c 15-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Andreas that uses git as a fallback in case retrieving
the revision failed using "svn info".
* While there is no official git tree, this should help those people using
svn over git.


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


# 3fffcad1 14-Dec-2007 François Revol <revol@free.fr>

Use LC_ALL=C to really make sure the locale isn't used on svn info.


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


# 16df02e5 04-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New DownloadFile rule, downloading a file using wget.


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


# 1485d7a2 14-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added small tool source_to_data, which takes an arbitrary data file and
generates a C source file defining an array variable containing the file's
data. DataFileToSourceFile is the respective jam rule.

The idea is to directly built the boot archive into the boot loader for
network booting (and thus avoiding to download it from somewhere). In
case of PXE this doesn't work, though, due to restrictions to the size
of the NBP. Maybe Open Firmware is less restrictive.



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


# a970df44 29-Jun-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Include HaikuImage after the Jamfiles, so they can provide/adjust info
relevant for the image creation.
* The CopySetHaikuRevision propagates the value of the
HAIKU_INCLUDE_IN_IMAGE variable from the source to the target.
* Propagate the value of HAIKU_INCLUDE_IN_IMAGE from "kernel" to
"kernel_$(TARGET_ARCH)".

Now "jam update-install kernel" should work as expected.


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


# 2660d61a 12-Jun-2007 Ryan Leavengood <leavengood@gmail.com>

As I said I would:

1. Deleted headers/shared/
2. Added a Jamfile to src/shared to build it into a static library libshared.a.
3. Removed my changes in the build/jam directory.
4. Have ShowImage include libshared.a.

I forgot to add AboutWindow.h to headers/private/shared. I will do that next.



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


# 5a1210fb 11-Jun-2007 Ryan Leavengood <leavengood@gmail.com>

Moved the BAboutWindow implementation to the shared source directory, which
despite being talked about repeatedly, does not currently exist.

Adding this required adding some new Jam rules to deal with this shared source
directory and headers. I had some fun figuring this out. Despite writing
articles about Jam in the Haiku newsletter a few years ago I still find Jam to
be a PITA at times.

But my solution seems to work pretty well. Basically you just call the rule
UseSharedSource and pass the name of the shared source file you want to use.
This rule sets up the header directories and the right Jam variables for the
source file. You then add the source file to the source list in the Application
rule like any other source file.

I also made the authors list sent to the about window constructor null
terminated instead of passing the size of the array, as suggested by Hugo.


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


# 655fd21c 20-Feb-2007 Jérôme Duval <korli@users.berlios.de>

changed the lang to C as suggested by mmu_man


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


# 6281bfb9 15-Feb-2007 Jérôme Duval <korli@users.berlios.de>

fix the build on non english locale systems (to have svn info output Revision instead of Révision)


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


# a4e0c1d4 06-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* We do now have a special "_haiku_revision" section in our libroot,
containing the Haiku SVN revision number which is used by uname(). The
value is 0 when built, but updated by the build system before copying
libroot to the image (new rule CopySetHaikuRevision).
* For AboutHaiku we no longer write the SVN revision number into a
resource. Instead we use the uname() info.


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


# 3847e19f7f32ef1e77fecf170f1cddc4ee73e728 04-Jul-2015 Alexander von Gluck IV <kallisti5@unixzen.com>

jam: Make DownloadLocatedFile1 more aggressive. 10s timeout == retry


# 0230e26b37c709a4086914bc4d3e4660f7984d01 28-Jun-2014 Oliver Tappe <zooey@hirschkaefer.de>

Tell wget to retry for connection-refused errors.

* This should help the build process to survive short-lived connection
problems (as they happened to buildbot slaves tonight).


# d4563ace7249976077d803b82397ab72af9bfe74 31-May-2014 Oliver Tappe <zooey@hirschkaefer.de>

Improve handling of Haiku clone without any tags.

* Error out early with a hint about how to solve the problem (by setting
HAIKU_REVISION explicitly).


# 1a0cfb112bc3008af3be9d3ac0df569e46ed0dca 01-May-2014 Oliver Tappe <zooey@hirschkaefer.de>

Minor cleanup: remove superfluous semicolon.


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

Add new configuration option --no-downloads.

* If --no-downloads has been given, Haiku will be built without
trying to download anything, all required packages need to be put
into the download folder manually (the build will stop on missing
packages).
* As the required HaikuPorts repository can't be downloaded in this
mode, a local repository is created during the build, which only
contains the packages available in the downloads folder.

This is useful for building Haiku completely from source.


# af559cd6eece8ef251a98935fb0d77407c1115bb 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Add DetermineEffectiveHaikuRevision rule

Simplifies PreprocessPackageInfo a bit.


# d4bfbab374b764d9ab44e7fcb25a8e2b0de68e1e 18-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

Implement generic Sed rule


# 1d6ca1dadd29817f6cff9bd1ae00ad837c92ec44 25-Dec-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

rule DetermineHaikuRevision: Avoid duplicate command execution

... when HAIKU_REVISION is set.


# 5fc2757a746c240e537ab61ca29e8ab2d97205b1 20-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add user settable HAIKU_REVISION build variable

Can be set to a revision string (hrev4...) to override the revision
determined via git. Useful when the repository doesn't have tags.


# 39d26e3cdbc48462dc8db95de45970ee16bf2ddf 12-Oct-2013 François Revol <revol@free.fr>

Set HAIKU_TARGET_IS_EXECUTABLE in KernelLd as well

The kernel also needs to be stripped for m68k.

Propagate it to the revisioned binary as well.


# 3162883efd321c42553caae7e10f454ead1dd77d 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add rules StripFile[s]


# cc5c6133d2d071f7405a06354f5710987abe261f 12-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Revert "Rework stripping binaries when copying to containers"

This reverts commit e2332987bce967387b49c5dce24867688a01317f.


# e2332987bce967387b49c5dce24867688a01317f 11-Oct-2013 François Revol <revol@free.fr>

Rework stripping binaries when copying to containers

We now only attempt to strip binaries, by detecting the
LINKFLAGS variable on the targets.

CopySetHaikuRevision now also forwards LINKFLAGS
to revisioned binaries.

Introduce separate AppendToContainerCopyFilesScriptStripFile actions
which are used for copying and stripping, and avoids many useless
shell tests.

When asked to strip binaries, they are detected and handled
individually for simplicity.

Note we still don't keep resources and attributes when stripping.


# 04d9b3e89cb79dbfc4102f32df4f663bbfdbe934 10-Oct-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

CopySetHaikuRevision: Pull out rule DetermineHaikuRevision


# f04f7042c5559ac05a6e2e3fe65020b30e7c4eb9 29-Sep-2013 Niels Sascha Reedijk <niels.reedijk@gmail.com>

Determine how to invoke sed with extended regexp

This will require re-running configure


# 86297ca0ffd327e9c0e4950b868ebc674f410734 27-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

actions DownloadLocatedFile: fail, if wget fails


# a1e681690c19a50d6c61e6c8bd98d6af4be146d4 26-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Rework rule CopySetHaikuRevision

* Remove support for VCSs other than git.
* Make the haiku-revision file a regular build target and make sure it
is built only once.
* Make determine_haiku_revision an actual shell script and simplify
it a bit.


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


# 3e582896286875a36309113141ecc155b83debac 11-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

DownloadLocatedFile: fix use with older wget version

The option "--no-use-server-timestamps" is apparently newer than
Haiku's wget.


# 531a3d42bc3351d7bf7892a33529106fa580866c 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Add rule ChecksumFileSHA256


# 46686fe6c025b159796d9bdf2c1956173777b704 05-Jul-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Download*File rules: add optional source target

If specified the path to the source target can be used in the URL via
"$source".


# ff2e520912416877692e36bb130608d1a92df078 30-Jun-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Remove the old "CVS" package rules

... and all their invocations.


# 6c6d6490bfa0b6cff6d018e86db189e412abc82d 30-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

ExtractArchive rule: Allow the directory to have a grist


# bcdf4924048db31db99f55626fd4ce735cc1fff1 02-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Simplify/fix the ExtractArchive rule and friends

* The call to the dummy actions isn't needed
* The calls to Extract{Zip,Tar,HPKG}Archive1 couldn't work like that.
The directory has to be the main target, since ExtractArchive is
potentially invoked multiple times with different extracted file
targets and the Extract*Archive1 is only invoked the first time.
Tested only with the HPKG actions, but they others should work as
well.


# d091af40ea9b84e7a492366eb0f9868978635391 04-Nov-2012 François Revol <revol@free.fr>

Revert hrev44743

Downloaded optional packages aren't actually removed as I thought on jam clean,
so it's not that much useful...


# 962eb4be43090d3df30276c8e5dae44538351b89 03-Nov-2012 François Revol <revol@free.fr>

Allow local caching of optional packages

Introduce HAIKU_DOWNLOAD_CACHE variable that can point to a directory.
containing optional packages to check first before downloading.
Missing packages are also added to the cache.
This allows sharing and reusing them to make builds without a connection.


# 36aac7c55f78fdd6aae2dff8759150dd6d34dea6 03-Jul-2012 Alexandre Deckner <alexandre.deckner@uzzl.com>

Fix typo


# 577d81a9b6baebc1b0a9e6edca4f79fc19e7f899 04-Jan-2012 François Revol <revol@free.fr>

Add proper error on ExtractArchive with missing filename

The * case was not generating any message due to empty string expansion I suppose...


# c9c6e365376258f4f29d474675c37f7e4ca75498 03-Jul-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Use PropagateContainerUpdateTargetFlags rule

Propagate all update variables in CopySetHaikuRevision and for the
kernel pseudo target.


# f724ec0e1ee8b5420fa5df8c1660f029c570809d 19-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

ExtractArchive: Add hpkg support


# 8e4f760cb88c16de1d11f14d20e8cf847e8dd8c7 07-Jun-2011 Ryan Leavengood <leavengood@gmail.com>

Apply patch from mmadia to add a Release Notes file to the alpha image desktop.

Allow wget to output to files with spaces in the DownloadFile rule.

Fixes #7609.


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


# 2fe19bf6ac78937f8f1daa77e9519c12f5c978ad 16-May-2011 Oliver Tappe <zooey@hirschkaefer.de>

Adjusted code for determining the revision in order to hopefully work on FreeBSD, too
* convert determine_haiku_revision to only contain functions and now pass the arguments
via function call


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


# 8ff44a43293c7a00470f8bf52881f7610899e256 15-May-2011 Oliver Tappe <zooey@hirschkaefer.de>

Fix and improve code for determining Haiku revision from a git repo
* break out most of the CopySetHaikuRevision action into a separate script:
determine_haiku_revision
* fix git branch detection such that it'll actually work for local branches (thanks to
Andreas Färber for the hint)
* add some sanity checks


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


# 64c5bc632365808cc4d108a9e9e0121a3b4dcc20 13-May-2011 Oliver Tappe <zooey@hirschkaefer.de>

* add support for generating a useful haiku-revision from a
git repository

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


# 490b4a94810a8c8fbca524b8e3951f9460f8afea 10-Apr-2011 Matt Madia <mattmadia@gmail.com>

Patch by Corneliu - Claudiu Prodescu "cprodescu". Ensures that ExtractArchive
extracts the files, even when the specified target directory exists.
Fixes #7425. Thanks!


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


# e62879885ea8fe73cefb96cc3bbbd830dd536965 15-Feb-2011 Axel Dörfler <axeld@pinc-software.de>

* Fixed a typo, whitespace cleanup.


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


# 9d123fc2e8c5de2128c391c91d3c9b336fbfedb6 21-Mar-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Färber:
CopySetHaikuRevision: Added support for extracting the svn revision number
from an hg repository.


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


# 05bbc668af9660bdef195f7b3b2ab18d3cfc52ae 27-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

From: Matt Madia

* InstallOptionalHaikuImagePackage: Made the first argument an actual file
name, i.e. the extension ".zip" is no longer appended by it.
* Renamed rules UnzipArchiveTo{Container,HaikuImage} to
ExtractArchiveTo{Container,HaikuImage} and generalized them to support
tgz/tar.gz archives (implemented in build_haiku_{image,cd}).
* Removed DownloadOptionalPackage. DownloadFile is used instead.


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


# 3ccf442a0303ef864cb63eebf804b59931feb727 25-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Author: Matt Madia

Cleaned up usage comment of ExtractArchive.


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


# 76fa0be374dd0b9b66c7e1845d6ea0a79c84d231 25-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Matt Madia:
* Renamed DownloadFile to DownloadLocatedFile.
* Pulled a generalized rule DownloadFile out of DownloadOptionalPackage.
* Added InstallSourceArchive rule which can be used in OptionalPackages to
add sources for installed packages to the image.
* Added configure option --include-sources to enable including the sources
for third party software in the image.


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


# 3cd300bc61004ba009450111a6d193b0281879ee 25-Feb-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Matt Madia: Generalized the UnzipArchive rule to support *.tgz files
as well, and renamed it to ExtractArchive.


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


# 39c91458b2092a81a8bdba2ea9b73cf7f9b77317 19-Sep-2009 Travis Geiselbrecht <geist@foobox.com>

Fix the CopySetHaikuRevision1 rule if you're building in a plain git
repository, not mirroed via git-svn. Calling git-svn on a plain
repository seems to cause it to go haywire.

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


# 520cf2669f359811bfe6f9144a5cee55618da3fd 20-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

HaikuInstall rule: Allow optional list of target names.


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


# a1c6f0fde1af5b2bc3d9c9fb03e256c5c5106d95 30-Jun-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Andreas to unify SVN version detection with GIT, also fixing
bug #2860.


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


# e7f2fa91bc681fb02ceef5b722ef0f6e57f79372 08-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Don't use MakeLocate to make sure that the parent directory exists, since
that also sets LOCATE, which could cause jam to incorrectly place our
directory. Should fix the problems with the SSL build feature some people
have been seeing.


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


# d339b68befe7c4a3e8122e3e5b620f9487483bcc 08-Apr-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added UnzipArchive rule which unzips a zip file into a target directory.
* Added DownloadOptionalPackage which is mainly a wrapper around DownloadFile
preventing the package from being downloaded twice, even if invoked more
than once.
* InstallOptionalHaikuImagePackage uses DownloadOptionalPackage now.


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


# 2dd847b6ff8693fbbedebb483f39c7c2278b5146 18-Oct-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Changed CopySetHaikuRevision1 actions not to fail, when either of the
tools doesn't exist. Fixes #2860.


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


# 8c74d99c63ebdd204199bc8d574dda7cf378a015 15-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Andreas that uses git as a fallback in case retrieving
the revision failed using "svn info".
* While there is no official git tree, this should help those people using
svn over git.


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


# 3fffcad10da9d7725951f5b225265bb226a8d3ac 14-Dec-2007 François Revol <revol@free.fr>

Use LC_ALL=C to really make sure the locale isn't used on svn info.


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


# 16df02e51593b094b2f4b196302a0c266d17c0c9 04-Sep-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

New DownloadFile rule, downloading a file using wget.


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


# 1485d7a2d7e9d2af5c68965b3f35671448c5e337 14-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added small tool source_to_data, which takes an arbitrary data file and
generates a C source file defining an array variable containing the file's
data. DataFileToSourceFile is the respective jam rule.

The idea is to directly built the boot archive into the boot loader for
network booting (and thus avoiding to download it from somewhere). In
case of PXE this doesn't work, though, due to restrictions to the size
of the NBP. Maybe Open Firmware is less restrictive.



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


# a970df44af54bbb4be84f2d9839eda842536c81a 29-Jun-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Include HaikuImage after the Jamfiles, so they can provide/adjust info
relevant for the image creation.
* The CopySetHaikuRevision propagates the value of the
HAIKU_INCLUDE_IN_IMAGE variable from the source to the target.
* Propagate the value of HAIKU_INCLUDE_IN_IMAGE from "kernel" to
"kernel_$(TARGET_ARCH)".

Now "jam update-install kernel" should work as expected.


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


# 2660d61ad6ba8b7165a589046de77a435845db38 12-Jun-2007 Ryan Leavengood <leavengood@gmail.com>

As I said I would:

1. Deleted headers/shared/
2. Added a Jamfile to src/shared to build it into a static library libshared.a.
3. Removed my changes in the build/jam directory.
4. Have ShowImage include libshared.a.

I forgot to add AboutWindow.h to headers/private/shared. I will do that next.



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


# 5a1210fbeffef1010c67193dc7faff4d34369b71 11-Jun-2007 Ryan Leavengood <leavengood@gmail.com>

Moved the BAboutWindow implementation to the shared source directory, which
despite being talked about repeatedly, does not currently exist.

Adding this required adding some new Jam rules to deal with this shared source
directory and headers. I had some fun figuring this out. Despite writing
articles about Jam in the Haiku newsletter a few years ago I still find Jam to
be a PITA at times.

But my solution seems to work pretty well. Basically you just call the rule
UseSharedSource and pass the name of the shared source file you want to use.
This rule sets up the header directories and the right Jam variables for the
source file. You then add the source file to the source list in the Application
rule like any other source file.

I also made the authors list sent to the about window constructor null
terminated instead of passing the size of the array, as suggested by Hugo.


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


# 655fd21ca8d14e8f56fbd3638232335388496a52 20-Feb-2007 Jérôme Duval <korli@users.berlios.de>

changed the lang to C as suggested by mmu_man


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


# 6281bfb9141284b235dc7cc395b572acc420f75b 15-Feb-2007 Jérôme Duval <korli@users.berlios.de>

fix the build on non english locale systems (to have svn info output Revision instead of Révision)


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


# a4e0c1d43dab6a1cc681a55e0430ef4aa3d7eaa8 06-Feb-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* We do now have a special "_haiku_revision" section in our libroot,
containing the Haiku SVN revision number which is used by uname(). The
value is 0 when built, but updated by the build system before copying
libroot to the image (new rule CopySetHaikuRevision).
* For AboutHaiku we no longer write the SVN revision number into a
resource. Instead we use the uname() info.


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