#
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
|
#
74bfec3b |
|
06-May-2018 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
build/jam: whitespace cleanup. Change-Id: I80c9a51417631b1f283923451f5bb530097b74f3
|
#
ff0184be |
|
30-Jul-2017 |
Augustin Cavalier <waddlesplash@gmail.com> |
Remove GPL-add-ons build machinery. No longer used by anything (it appears some old kernel drivers that are not included in the build might use it, but I don't know why they need it -- we already ship GPL'd code [libntfs] for the kernel in the default build unconditionally.) Briefly discussed with js a few weeks back.
|
#
3d6edc43 |
|
13-Jun-2014 |
PulkoMandy <pulkomandy@pulkomandy.tk> |
Patch by dnivra (GSoC 2014, ARM suppport) * Cleanup the SD card image building to allow jam -q @bootstrap-mmc to work. There are a few remaining tricks before you can safely build an image: * This uses a non-POSIX du option, and is only tested with Linux du only (Linux is the only supported system to run bootstrap builds, anyway) * The Python recipe in haikuports.cross is known to not build on Debian/Ubuntu, but work fine on OpenSuse. There is a patch available in haikuports bugtracker to allow the reverse. * You need to populate the haikuports repo package list with some packages (which don't exist yet) to make the build system happy. But our git hook to generate the repositories is preventnig me to share this hack. Once built, the image currently crashes early in the kernel execution. On to debug that!
|
#
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.
|
#
7076d5bb |
|
05-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fix update-all build profile action The same disclaimer as before package management applies (i.e. voids warranty, use at your own risk).
|
#
dfd6a5c9 |
|
03-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Make the "build" build profile action more intelligent If additional parameters are specified, only those targets are built, but under the influence of the build profile. E.g. "jam @alpha-raw build haiku.hpkg" builds the package with SSL support, while "jam haiku.hpkg" would build it without (unless explicitly enabled in UserBuildConfig).
|
#
24796718 |
|
17-Aug-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Bootstrap Haiku image: add source for more required packages * Introduce build variable HAIKU_IMAGE_ADDITIONAL_PACKAGES which can be set to add additional packages to the image. * Use HAIKU_IMAGE_ADDITIONAL_PACKAGES to support specifying a list of additional packages via the build-package-list build profile action. * Add htmldoc and texi2html when building the list of the packages for which we need source packages when building the bootstrap Haiku image. We don't want them on the regular image, but they are needed to build some packages that are on it.
|
#
c965ee60 |
|
06-Aug-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
bootstrap image: build needed source packages and add them * IsPackageAvailable, FetchPackage: Add flags parameter. The only flag supported ATM is nameResolved, indicating that the specified package name does not need to be resolved with respect to a secondary architecture anymore. * Add build profile action "build-package-list". As an argument the file to which the list of all packages needed for the image is written. The rule BuildHaikuImagePackageList implements the action. * BuildBootstrapRepositoryConfig: Does now require the variable HAIKU_REPOSITORY_TREE_PATH to be set on the config file target instead of hard-coding the path. Allows reuse of the actions. * Add rules BuildHaikuPortsSourcePackageDirectory and BuildHaikuPortsRepositoryConfig. The former builds all HaikuPorts source packages needed to build the packages for an alpha image. The latter generates a haikuports.conf file for use on the bootstrap Haiku. * HaikuImageBootstrap: Add directory /boot/home/haikuports which contains a subdirectory with the source packages and a haikuports.conf.
|
#
d31a50ee |
|
04-Aug-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Move build feature rules to separate file
|
#
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).
|
#
e173a1ec |
|
20-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Integrate building the HaikuPorts bootstrap packages * Add configure option --bootstrap which allows specifying the haikuporter and HaikuPorts repository paths. * Add rules for supporting a second repository type. The PackageRepository rule is now private and RemotePackageRepository is used for remote repositories. The new BootstrapPackageRepository rule is for defining a bootstrap repository (there will probably be only the HaikuPorts cross repository) whose packages can be built as needed via haikuporter. * Rename DownloadPackage to FetchPackage. * Define repository HaikuPortsCross. * HaikuCrossDevel package(s): There are now two sets of packages: A "stage1" set with the same content as before and a final set additionally containing the libraries libbe, libnetwork, libpackage. Those are needed for building the libsolv bootstrap package while for building them we need other bootstrap packages (ICU, libz). This is basically all that's required to build a bootstrap Haiku completely from sources, with a few caveats: * There's no ICU bootstrap recipe yet (so one has to cheat and use the prebuilt package ATM). * Probably doesn't work on Haiku yet (tested on Linux only). * A 32 bit environment must be used (otherwise building the gcc 2 bootstrap package fails). * Building with multiple jobs doesn't work yet, since haikuporter uses common directories for building different packages and there's no explicit serialization yet. * Haven't tested the resulting image save for booting it. So it probably needs a bit more work before it can actually build the final HaikuPorts packages.
|
#
67e84002 |
|
20-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
rule ExtractBuildFeatureArchives: implement placeholders Add support for placeholders in the attribute values. The values of the currently supported placeholders depend on the package file name (package version, actual package and port name, etc.).
|
#
014eed80 |
|
06-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Change repository directory layout * Under the base URL there are supposed to be the repository files and a subdirectory "packages". * Fix the repository URL related confusion introduced earlier. The URL in the repository info (and thus in the repository file) is supposed to be the base URL for the repository. It is not a (potentially) different base URL for the package files. Package and repository files were supposed to live in the same directory. Now, by requiring the package files to live in a subdirectory -- which can also be a symlink -- we gain some flexibility. The URL in the repository config is usually the same as the in the repository info, unless it refers to a mirror site. This allows for mirrors to copy the original repository verbatim. * Remove the PackageURL rule and introduce a DownloadPackage rule instead. The URL for a package file cannot be computed in the jam parsing phase anymore, as it contains the hash value of the package list. * BRepositoryConfig: Add PackagesURL() for convenience.
|
#
98c6dfa4 |
|
05-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Switch build system from optional package to repositories * Build libsolv and the dependency solver part of the package kit for the build platform. * Add build tool get_package_dependencies. Given a list of package files and a list of repository files it determines the additional packages that need to be retrieved from the repositories and prints their URLs. * Add rules to work with external repositories in the build system (build/jam/RepositoryRules): - PackageRepository declares an external repository with all its packages. The URL of the repository file isn't specified. It is computed from a given base URL and the SHA256 hash of the list of package files. - GeneratedRepositoryPackageList generates a file containing the file names of all packages in a repository. - IsPackageAvailable returns whether a package is available in any repository. - PackageURL returns the URL for a package. * Declare the HaikuPorts repository for x86_gcc2 (build/jam/repositories/HaikuPorts/x86_gcc2). * Add rule AddHaikuImagePackages to add a package to the image and rule IsHaikuImagePackageAdded to determine whether a package has been added. * OptionalPackages: Remove all entries that just downloaded and installed an external package. AddHaikuImagePackages can be used instead and is used in the remaining entries. Also move the remaining optional package dependency declarations from OptionalPackageDependencies here. * ExtractBuildFeatureArchives: Instead of the URL parameter a package name must be specified now. This allows to simplify BuildFeatures significantly, since there's no dealing with URLs anymore. "if" out the entries that aren't supported yet. * build_haiku_image: For the packages installed in system and common resolve their dependencies and download and install them as well.
|
#
215954e3 |
|
10-May-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
FFilterByBuildFeatures: fixed typo
|
#
4bee3d6f |
|
05-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add more rules to simplify dealing with build features * Introduce the notion of build feature attributes and add rules SetBuildFeatureAttribute and BuildFeatureAttribute to set respectively get a build feature attribute. * Add rule ExtractBuildFeatureArchives to download and extract archives and set build feature attributes to extracted entries. * Add rule UseBuildFeatureHeaders as a shorthand for getting a build feature attribute and adding it as a system header search directory.
|
#
7c092d4d |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add build profile action update-packages Equivalent to "jam <list of all hpkgs> && jam @... <list of all hpkgs>", i.e. it makes sure all hpkgs that are supposed to be in the image are rebuilt respectively downloaded and copied to the image. It doesn't remove old packages nor the activation files -- that still has to be done manually.
|
#
ffa0014b |
|
08-Dec-2012 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
MiscRule: Add new rules to deal with build features * EnableBuildFeatures: Enables build features. * FIsBuildFeatureEnabled: Checks whether a build feature is enabled. * FMatchesBuildFeatures: Checks more complex build feature specifications. * FFilterByBuildFeatures: Filters lists annotated with build feature specifications.
|
#
161d45fe |
|
03-Jul-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Support for package "update" build profile action * Add global HAIKU_PACKAGES_UPDATE_ONLY build system variable, which is set for the "update" and "update-all" build profile actions. * Change the HAIKU_INCLUDE_IN_CONTAINER_VAR variable on packages to HAIKU_INCLUDE_IN_PACKAGES for all packages. The variable is also set for the "update" and "update-all" build profile actions. * Introduce HAIKU_CONTAINER_INHERIT_UPDATE_VARIABLE on container variable. If set, the contained variable will be set on the container when one or more files in it are updated. It is set on packages so an update of a file in a package causes the package to be updated in the image. * Introduce HAIKU_CONTAINER_ALWAYS_CREATE_DIRECTORIES on container variable. If set, directories will be created also in update mode. It is set on packages.
|
#
364de37e |
|
08-Jan-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Added Ingo's explanations as comments to the MakeLocate variants. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40157 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9f10e7ac |
|
03-May-2010 |
Matt Madia <mattmadia@gmail.com> |
Added some documentation about the anyboot images. Verification appreciated. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36601 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26b5ecec |
|
15-Mar-2010 |
Matt Madia <mattmadia@gmail.com> |
Create "anyboot-image" and define build profile rules to utilize it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35871 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b58d844 |
|
20-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Prefixed the INCLUDE_GPL_ADDONS variable by "HAIKU_". configure needs to be run again or generated/build/BuildConfig needs to be adjusted manually. * Removed bochs debug hack. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34721 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a84f41d8 |
|
23-May-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Patch by Matt Madia: Added "cd-image" build profile type and "alpha-cd" build profile. Small changes by myself. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30832 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
35d0aeac |
|
08-Apr-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added rule SetupFeatureObjectsDir that simplifies using different output directories when a certain feature is enabled/disabled/configured a certain way. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30019 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
37aefc9c |
|
23-Feb-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved jam argument processing to new build/jam/CommandLineArguments. * Check the first argument for "help" as well. If given print a somewhat helpful text. Consider this my excuse to close ticket #1883. :-) * Track available and added optional packages and fail, if an optional package is requested that doesn't exist. Closes ticket #3332. * Check for duplicate build profile definitions and fail if encountered. Closes ticket #3333. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29298 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
937f717c |
|
28-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Quote the command line arguments, so arguments with whitespace will work. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27769 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
29ad53f1 |
|
15-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added an "update-all" build profile action that updates all files. This can be used to update an installation without erasing the whole volume (ie. it works like install-haiku on BFS capable platforms). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26435 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a0a9d225 |
|
02-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added a new fancy build system feature called "build profiles". Especially people building various kinds of images with different settings may want to have a look at the respective section in the UserBuildConfig.ReadMe. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24757 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be8a6e43 |
|
30-Mar-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added JAMFILE to the config variables. * Added additional parameters to DeferredSubInclude. It's now possible to specify an alternative Jamfile name. * Added DeferredSubInclude example to UserBuildConfig.ReadMe showing the new feature. * Moved ExecuteDeferredSubIncludes in the root Jamfile before the inclusion of HaikuImage, NetBootArchive etc., so that targets defined in the subdirectories are already known there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24680 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7fe764cc |
|
31-Jul-2007 |
Axel Dörfler <axeld@pinc-software.de> |
bonefish: Fixed bug #1346. The relative output directory for the root directory was computed as '.' which resulted in output path ending with '/.', causing mkdir to choke. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21778 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4ce381e2 |
|
30-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed "jam run" feature for older shells. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20925 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
315cfc48 |
|
07-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
The ":" to identify a target for the "run" feature must be at the beginning of the string; it was formerly matched anywhere. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20610 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c24a1a9 |
|
05-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
New handy build system feature: It is now possible to pass a command line to jam that contains build targets and that will be executed by the build system after building the targets and replacing their occurrences in the command line by their paths. The keyword indicating such a command line is "run", targets are marked by a leading ":". E.g.: jam -q run ':<build>xres' -l :libtracker.so This builds the xres tool for the host platform and libtracker.so for Haiku, and afterwards lists the resources libtracker.so contains. Note, that this feature requires using Haiku's jam version. The functionality is implemented by the new RunCommandLine rule, which can, of course, also be used in the UserBuildConfig. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20598 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f51c1470 |
|
05-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added rules NextID, which returns an numerical ID incremented with each invocation, and NewUniqueTarget, which returns a unique target name. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20597 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3f2a4355 |
|
07-Mar-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* 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
|
#
9c556338 |
|
13-Dec-2006 |
Ryan Leavengood <leavengood@gmail.com> |
Removing the now unneeded SearchAndReplace and Sed rules. They can always be added back if need be. There were some building bugs anyhow in these versions. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19507 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dd481a03 |
|
13-Dec-2006 |
Ryan Leavengood <leavengood@gmail.com> |
Added a few new rules that do some search and replacing using sed. AFAIK all our build platforms should have sed support (it is built into Jambase at least.) I use these rules to do some code generation in my soon to be committed MarkAs Tracker add-ons. This works pretty nifty if I do say so myself. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19481 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
|
#
3d6edc43d98295a74f801343f14c6e27d5a6084c |
|
13-Jun-2014 |
PulkoMandy <pulkomandy@pulkomandy.tk> |
Patch by dnivra (GSoC 2014, ARM suppport) * Cleanup the SD card image building to allow jam -q @bootstrap-mmc to work. There are a few remaining tricks before you can safely build an image: * This uses a non-POSIX du option, and is only tested with Linux du only (Linux is the only supported system to run bootstrap builds, anyway) * The Python recipe in haikuports.cross is known to not build on Debian/Ubuntu, but work fine on OpenSuse. There is a patch available in haikuports bugtracker to allow the reverse. * You need to populate the haikuports repo package list with some packages (which don't exist yet) to make the build system happy. But our git hook to generate the repositories is preventnig me to share this hack. Once built, the image currently crashes early in the kernel execution. On to debug that!
|
#
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.
|
#
7076d5bb2bd6715c14ec91f8ec7dba880eb3258b |
|
05-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fix update-all build profile action The same disclaimer as before package management applies (i.e. voids warranty, use at your own risk).
|
#
dfd6a5c97387d03949a8e8f07f70cbf9b9e643dd |
|
03-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Make the "build" build profile action more intelligent If additional parameters are specified, only those targets are built, but under the influence of the build profile. E.g. "jam @alpha-raw build haiku.hpkg" builds the package with SSL support, while "jam haiku.hpkg" would build it without (unless explicitly enabled in UserBuildConfig).
|
#
24796718b99aff208846310dd982c5c41d5e7eff |
|
17-Aug-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Bootstrap Haiku image: add source for more required packages * Introduce build variable HAIKU_IMAGE_ADDITIONAL_PACKAGES which can be set to add additional packages to the image. * Use HAIKU_IMAGE_ADDITIONAL_PACKAGES to support specifying a list of additional packages via the build-package-list build profile action. * Add htmldoc and texi2html when building the list of the packages for which we need source packages when building the bootstrap Haiku image. We don't want them on the regular image, but they are needed to build some packages that are on it.
|
#
c965ee60b5656a5ef749adfdacd64918adee6cf5 |
|
06-Aug-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
bootstrap image: build needed source packages and add them * IsPackageAvailable, FetchPackage: Add flags parameter. The only flag supported ATM is nameResolved, indicating that the specified package name does not need to be resolved with respect to a secondary architecture anymore. * Add build profile action "build-package-list". As an argument the file to which the list of all packages needed for the image is written. The rule BuildHaikuImagePackageList implements the action. * BuildBootstrapRepositoryConfig: Does now require the variable HAIKU_REPOSITORY_TREE_PATH to be set on the config file target instead of hard-coding the path. Allows reuse of the actions. * Add rules BuildHaikuPortsSourcePackageDirectory and BuildHaikuPortsRepositoryConfig. The former builds all HaikuPorts source packages needed to build the packages for an alpha image. The latter generates a haikuports.conf file for use on the bootstrap Haiku. * HaikuImageBootstrap: Add directory /boot/home/haikuports which contains a subdirectory with the source packages and a haikuports.conf.
|
#
d31a50eef768be42588772f94a101e28c8b6415c |
|
04-Aug-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Move build feature rules to separate file
|
#
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).
|
#
e173a1ec1c0c1f48e355f3cbc34c0114e336ff88 |
|
20-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Integrate building the HaikuPorts bootstrap packages * Add configure option --bootstrap which allows specifying the haikuporter and HaikuPorts repository paths. * Add rules for supporting a second repository type. The PackageRepository rule is now private and RemotePackageRepository is used for remote repositories. The new BootstrapPackageRepository rule is for defining a bootstrap repository (there will probably be only the HaikuPorts cross repository) whose packages can be built as needed via haikuporter. * Rename DownloadPackage to FetchPackage. * Define repository HaikuPortsCross. * HaikuCrossDevel package(s): There are now two sets of packages: A "stage1" set with the same content as before and a final set additionally containing the libraries libbe, libnetwork, libpackage. Those are needed for building the libsolv bootstrap package while for building them we need other bootstrap packages (ICU, libz). This is basically all that's required to build a bootstrap Haiku completely from sources, with a few caveats: * There's no ICU bootstrap recipe yet (so one has to cheat and use the prebuilt package ATM). * Probably doesn't work on Haiku yet (tested on Linux only). * A 32 bit environment must be used (otherwise building the gcc 2 bootstrap package fails). * Building with multiple jobs doesn't work yet, since haikuporter uses common directories for building different packages and there's no explicit serialization yet. * Haven't tested the resulting image save for booting it. So it probably needs a bit more work before it can actually build the final HaikuPorts packages.
|
#
67e84002a1f97e4f853f89c0fe41ad358c7389c8 |
|
20-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
rule ExtractBuildFeatureArchives: implement placeholders Add support for placeholders in the attribute values. The values of the currently supported placeholders depend on the package file name (package version, actual package and port name, etc.).
|
#
014eed80e289c2bbc187ac91bb7b3a35560a971f |
|
06-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Change repository directory layout * Under the base URL there are supposed to be the repository files and a subdirectory "packages". * Fix the repository URL related confusion introduced earlier. The URL in the repository info (and thus in the repository file) is supposed to be the base URL for the repository. It is not a (potentially) different base URL for the package files. Package and repository files were supposed to live in the same directory. Now, by requiring the package files to live in a subdirectory -- which can also be a symlink -- we gain some flexibility. The URL in the repository config is usually the same as the in the repository info, unless it refers to a mirror site. This allows for mirrors to copy the original repository verbatim. * Remove the PackageURL rule and introduce a DownloadPackage rule instead. The URL for a package file cannot be computed in the jam parsing phase anymore, as it contains the hash value of the package list. * BRepositoryConfig: Add PackagesURL() for convenience.
|
#
98c6dfa41e20c57edf426197a8d9aab6223a59fd |
|
05-Jul-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Switch build system from optional package to repositories * Build libsolv and the dependency solver part of the package kit for the build platform. * Add build tool get_package_dependencies. Given a list of package files and a list of repository files it determines the additional packages that need to be retrieved from the repositories and prints their URLs. * Add rules to work with external repositories in the build system (build/jam/RepositoryRules): - PackageRepository declares an external repository with all its packages. The URL of the repository file isn't specified. It is computed from a given base URL and the SHA256 hash of the list of package files. - GeneratedRepositoryPackageList generates a file containing the file names of all packages in a repository. - IsPackageAvailable returns whether a package is available in any repository. - PackageURL returns the URL for a package. * Declare the HaikuPorts repository for x86_gcc2 (build/jam/repositories/HaikuPorts/x86_gcc2). * Add rule AddHaikuImagePackages to add a package to the image and rule IsHaikuImagePackageAdded to determine whether a package has been added. * OptionalPackages: Remove all entries that just downloaded and installed an external package. AddHaikuImagePackages can be used instead and is used in the remaining entries. Also move the remaining optional package dependency declarations from OptionalPackageDependencies here. * ExtractBuildFeatureArchives: Instead of the URL parameter a package name must be specified now. This allows to simplify BuildFeatures significantly, since there's no dealing with URLs anymore. "if" out the entries that aren't supported yet. * build_haiku_image: For the packages installed in system and common resolve their dependencies and download and install them as well.
|
#
215954e3e3ecb87542f584694ba050c7d0520d80 |
|
10-May-2013 |
Jérôme Duval <jerome.duval@gmail.com> |
FFilterByBuildFeatures: fixed typo
|
#
4bee3d6fb9b62a1ca1c508b263d037df6b863e57 |
|
05-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add more rules to simplify dealing with build features * Introduce the notion of build feature attributes and add rules SetBuildFeatureAttribute and BuildFeatureAttribute to set respectively get a build feature attribute. * Add rule ExtractBuildFeatureArchives to download and extract archives and set build feature attributes to extracted entries. * Add rule UseBuildFeatureHeaders as a shorthand for getting a build feature attribute and adding it as a system header search directory.
|
#
7c092d4d865eb53029c28fb5b1ddfbbada85899f |
|
20-Apr-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Add build profile action update-packages Equivalent to "jam <list of all hpkgs> && jam @... <list of all hpkgs>", i.e. it makes sure all hpkgs that are supposed to be in the image are rebuilt respectively downloaded and copied to the image. It doesn't remove old packages nor the activation files -- that still has to be done manually.
|
#
ffa0014b8e5fcb12082546572d21e50ef4fd187a |
|
08-Dec-2012 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
MiscRule: Add new rules to deal with build features * EnableBuildFeatures: Enables build features. * FIsBuildFeatureEnabled: Checks whether a build feature is enabled. * FMatchesBuildFeatures: Checks more complex build feature specifications. * FFilterByBuildFeatures: Filters lists annotated with build feature specifications.
|
#
161d45feb55fde0e00e3e065ddd800529bdd1074 |
|
03-Jul-2011 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Support for package "update" build profile action * Add global HAIKU_PACKAGES_UPDATE_ONLY build system variable, which is set for the "update" and "update-all" build profile actions. * Change the HAIKU_INCLUDE_IN_CONTAINER_VAR variable on packages to HAIKU_INCLUDE_IN_PACKAGES for all packages. The variable is also set for the "update" and "update-all" build profile actions. * Introduce HAIKU_CONTAINER_INHERIT_UPDATE_VARIABLE on container variable. If set, the contained variable will be set on the container when one or more files in it are updated. It is set on packages so an update of a file in a package causes the package to be updated in the image. * Introduce HAIKU_CONTAINER_ALWAYS_CREATE_DIRECTORIES on container variable. If set, directories will be created also in update mode. It is set on packages.
|
#
364de37ea7e5b2ed8de71f0919c691db2139700c |
|
08-Jan-2011 |
Axel Dörfler <axeld@pinc-software.de> |
* Added Ingo's explanations as comments to the MakeLocate variants. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40157 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
9f10e7acc7a2324725c3002c1964a95fc112d172 |
|
03-May-2010 |
Matt Madia <mattmadia@gmail.com> |
Added some documentation about the anyboot images. Verification appreciated. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36601 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
26b5ececca97f8adcb30fbb21727070d6a70acff |
|
15-Mar-2010 |
Matt Madia <mattmadia@gmail.com> |
Create "anyboot-image" and define build profile rules to utilize it. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35871 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
0b58d8440cdd5ffb87ff7ec5e8938818a68ec261 |
|
20-Dec-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Prefixed the INCLUDE_GPL_ADDONS variable by "HAIKU_". configure needs to be run again or generated/build/BuildConfig needs to be adjusted manually. * Removed bochs debug hack. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34721 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a84f41d8a032daa1127c45f35692f05f09fe27c6 |
|
23-May-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Patch by Matt Madia: Added "cd-image" build profile type and "alpha-cd" build profile. Small changes by myself. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30832 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
35d0aeac70aec6db30a71870f0afe613e66cb9b4 |
|
08-Apr-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added rule SetupFeatureObjectsDir that simplifies using different output directories when a certain feature is enabled/disabled/configured a certain way. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30019 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
37aefc9c6f6dc3456d74dbccc3a606e30192baf4 |
|
23-Feb-2009 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Moved jam argument processing to new build/jam/CommandLineArguments. * Check the first argument for "help" as well. If given print a somewhat helpful text. Consider this my excuse to close ticket #1883. :-) * Track available and added optional packages and fail, if an optional package is requested that doesn't exist. Closes ticket #3332. * Check for duplicate build profile definitions and fail if encountered. Closes ticket #3333. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29298 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
937f717ceddf21c272ab1d281098004b756afde5 |
|
28-Sep-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Quote the command line arguments, so arguments with whitespace will work. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27769 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
29ad53f16af59195409dc5993d1455cc8eb75395 |
|
15-Jul-2008 |
Axel Dörfler <axeld@pinc-software.de> |
* Added an "update-all" build profile action that updates all files. This can be used to update an installation without erasing the whole volume (ie. it works like install-haiku on BFS capable platforms). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26435 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
a0a9d225d3e48f81429a769b8c0ed5c961bf1516 |
|
02-Apr-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added a new fancy build system feature called "build profiles". Especially people building various kinds of images with different settings may want to have a look at the respective section in the UserBuildConfig.ReadMe. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24757 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
be8a6e43ff859d400ce60ad3c4c8fba0cf68ae2e |
|
30-Mar-2008 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* Added JAMFILE to the config variables. * Added additional parameters to DeferredSubInclude. It's now possible to specify an alternative Jamfile name. * Added DeferredSubInclude example to UserBuildConfig.ReadMe showing the new feature. * Moved ExecuteDeferredSubIncludes in the root Jamfile before the inclusion of HaikuImage, NetBootArchive etc., so that targets defined in the subdirectories are already known there. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24680 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
7fe764cce5536eff2df2383138884eb5a5fd50c4 |
|
31-Jul-2007 |
Axel Dörfler <axeld@pinc-software.de> |
bonefish: Fixed bug #1346. The relative output directory for the root directory was computed as '.' which resulted in output path ending with '/.', causing mkdir to choke. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21778 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
4ce381e26c0bc2a009e71f18f5554965fc031302 |
|
30-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fixed "jam run" feature for older shells. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20925 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
315cfc48cae14453531b36115958ef833815d590 |
|
07-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
The ":" to identify a target for the "run" feature must be at the beginning of the string; it was formerly matched anywhere. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20610 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
2c24a1a9f609984ecde4c3525521518ecdf50146 |
|
05-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
New handy build system feature: It is now possible to pass a command line to jam that contains build targets and that will be executed by the build system after building the targets and replacing their occurrences in the command line by their paths. The keyword indicating such a command line is "run", targets are marked by a leading ":". E.g.: jam -q run ':<build>xres' -l :libtracker.so This builds the xres tool for the host platform and libtracker.so for Haiku, and afterwards lists the resources libtracker.so contains. Note, that this feature requires using Haiku's jam version. The functionality is implemented by the new RunCommandLine rule, which can, of course, also be used in the UserBuildConfig. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20598 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
f51c1470437cb5838179b9c98f2bb884917517d0 |
|
05-Apr-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Added rules NextID, which returns an numerical ID incremented with each invocation, and NewUniqueTarget, which returns a unique target name. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20597 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
3f2a43554aac02cdc372d3598d034d14433d093a |
|
07-Mar-2007 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
* 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
|
#
9c55633809d2886d06def3da9547d94e4df74de3 |
|
13-Dec-2006 |
Ryan Leavengood <leavengood@gmail.com> |
Removing the now unneeded SearchAndReplace and Sed rules. They can always be added back if need be. There were some building bugs anyhow in these versions. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19507 a95241bf-73f2-0310-859d-f6bbb57e9c96
|
#
dd481a03fc4982202af15a850ea18696171ebe5f |
|
13-Dec-2006 |
Ryan Leavengood <leavengood@gmail.com> |
Added a few new rules that do some search and replacing using sed. AFAIK all our build platforms should have sed support (it is built into Jambase at least.) I use these rules to do some code generation in my soon to be committed MarkAs Tracker add-ons. This works pretty nifty if I do say so myself. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19481 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
|