Commit Graph

80 Commits

Author SHA1 Message Date
Ingo Weinhold
d85bab41bd Add target for building a Haiku package repository
* Add rule HaikuRepository to build a repository from a repository info
  file and a list of package files. It calls a build_haiku_repository
  script which does all the work.
* Add target <repository>haiku for building the Haiku package
repository.
  It should be built via "jam -q @alpha-raw build <repository>haiku";
  the build profile is only needed to activate all build features.
2013-11-23 01:46:04 +01:00
Matt Madia
ab1ba83536 Add 'which' to the "mandatory" packages.
Note: untested on non-x86 archs.
2013-10-20 14:37:57 -04:00
Ingo Weinhold
f73f5d4c42 Initial changes to remove /boot/common
* find_directory() and hard-coded paths use /boot/system instead of
  /boot/common.
* The build system creates the writable directories in /boot/system
  instead of /boot/common.
* The build system no longer installs any packages in /boot/common.
2013-10-03 21:52:25 +02:00
Ingo Weinhold
24796718b9 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.
2013-08-17 09:20:35 +02:00
Ingo Weinhold
271e9484ed Build secondary architecture Haiku package for regular image
Also add secondary architecture packages to image.
2013-08-10 09:58:11 +02:00
Ingo Weinhold
57190167ef Fix usage of obsolete HAIKU_BUILD_FEATURE_OPENSSL_ENABLED 2013-08-05 00:25:30 +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
48b1ed4242 Add all bootstrap packages in DefaultBuildProfiles
* Don't handle the bootstrap case in the main Jamfile. Add all bootstrap
  packages to the image in the profile definition. That's less
  confusing, hopefully.
* Add the missing bootstrap packages (ncurses*, libtool_libltdl). The
  would normally be added in build_haiku_image when the package
  dependencies are resolved, but we don't do that for the bootstrap
  image, since we intentionally leave some dependencies out (e.g. perl)
  because they can be built.
2013-07-23 22:44:32 +02:00
Ingo Weinhold
33f23ea80f Remove more stuff from the Haiku bootstrap packages/image
Namely GL/Mesa and libtiff.
2013-07-21 03:34:35 +02:00
Ingo Weinhold
78f4c163d4 Beginnings of support for building a bootstrap Haiku image
Copy:
* packages: Haiku -> HaikuBootstrap
* images: HaikuImage -> HaikuImageBootstrap
... and remove some unncessary content.

Setting the jam variable HAIKU_BOOTSTRAP_BUILD enables using the
bootstrap files.
2013-07-07 13:45:38 +02:00
Ingo Weinhold
e8c5236a9c Move image definition jamfiles to build/jam/images 2013-07-07 10:44:43 +02:00
Ingo Weinhold
98c6dfa41e 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.
2013-07-05 10:51:42 +02:00
Ingo Weinhold
5a7d7bc5dd Remove *Kit pseudo targets from root Jamfile 2013-06-30 19:01:37 +02:00
Jérôme Duval
ef0c2a820b HaikuImage: use the same HaikuImage Jamfile for x86 and x86_64 2013-05-10 22:51:42 +02:00
Ingo Weinhold
f0cacbb32b OptionalBuildFeatures -> BuildFeatures, make use of new rules
Got rid of X86_ONLY and friends in HaikuImage, FloppyBootImage, etc.
Instead we use build feature specification annotated lists with
FFilterByBuildFeatures (either explicitly or implicitly where passing
the list directly to the image rules).

I just translated the variables to the respective annotatation in most
cases, though in some cases different annotation would be more correct
(e.g. for the OpenGL stuff).

Provides a simple framework for addressing #3798. The interested reader
may add the build features and add/adjust the annotations accordingly.
2012-12-09 04:07:48 +01:00
Alex Smith
700c8d3078 Support building images for x86_64.
Added a temporary Haiku64Image file that gets included instead of
HaikuImage when building for x86_64, which I will add to as I port
stuff. Images currently only include the boot loader, kernel and
a bunch of add-ons.
2012-07-22 11:36:50 +01:00
Matt Madia
f4eb5cf7e1 Process the sub-jam's opt packages before OptionalBuildFeatures
Several build features (including a future patch for WebKit)
are enabled only if a respective optional package is added.
Prior to this, none of those build features could be activated
in a sub-jam process.
2012-07-09 20:38:20 +00:00
Oliver Tappe
60f75e901c Merge liblocale.so into libbe.so.
* Make the locale kit a part of libbe.
* Drop the LocaleBackend kludge used from within libbe (and from
  other places, too) in order to access system catalog strings. 
  This is now done via gSystemCatalog, which is provided and initialized
  by libbe.
* Drop all references to liblocale.so from all Jamfiles.
* Add legacy symlink liblocale.so in order to keep optional packages
  that rely on it in a working state.

TODO: the documentation hasn't been updated.
2012-04-04 22:44:42 +02:00
Matt Madia
0fdf2b41aa Some cleanup. Removed 'alltests' as there are no other references to its
dependencies. Commented out GLInfo from OpenGLKit as it was removed in r33115.
Added some TODO's for MediaKit and LocaleKit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-31 13:26:59 +00:00
Matt Madia
9de5b02252 Renamed the variables for the catalogs and re-introduced the target 'catkeys',
which builds just the en.catkeys inside HAIKU_OUTPUT_DIR/objects/catalogs


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 16:55:33 +00:00
Matt Madia
a8fcb885b0 Improved upon r39090.
* removed the catkeys pseudo-target
 * created catalogs pseudo-target, which builds all catalogs & en.catkeys(.pre)
 * created LocalizedTargets pseudo-target, which builds all targets that have
 been localized.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-24 03:31:34 +00:00
Matt Madia
80ad173e89 Introduced a pseudo-target "catkeys", for building all of the localized
applications. The eventual goal is to have jam package a catkeys.zip,
which can be provided to the application translation websites.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 20:26:08 +00:00
Matt Madia
ad0bdcaa37 Automatic whitespace cleanup. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-10-23 19:24:06 +00:00
Adrien Destugues
2a90ce534c * Actually include ICU 4.4 in the image we build
Note this doesn't fix everything yet, apparently there is a problem with ICU genereating an invalid opcode exception.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37512 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-14 10:34:06 +00:00
Philippe Houdoin
546fac2d14 Removed NetworkingKit pseudo-target from OpenBeOS era: useless since long already.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@37497 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-07-13 17:57:47 +00:00
Jérôme Duval
69681c7500 fix typo
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-03-15 20:38:13 +00:00
Matt Madia
0e82d313d6 Allows AddOptionalHaikuImagePackages and OptionalPackageDependencies to work in
arbitrary order. Follow-up to r35830.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35867 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-03-15 16:11:47 +00:00
Matt Madia
429618d249 Moves the conditional adding of OpenSSL from HaikuImage to the root Jamfile.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35830 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-03-12 18:07:19 +00:00
Matt Madia
a5c31cbbc0 * Introduced "MandatoryPackages", which is added to all default images
* Renamed "BasicCommandLinesTools" to "Sed"
 * Removed isCDPackage's parameter from "Sed"s InstallOptionalHaikuImagePackage
 * Currently, "MandatoryPackages" only dependency is "Sed"
 * Fixes #5560


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35829 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-03-12 18:03:57 +00:00
Michael Lotz
100e91926c Adding buildsystem support for the "anyboot" images. They can be built using
the haiku-anyboot-image pseudo target. As I'm not too much at home with Jam I'd
appreciate any input. Especially for the TODO where removing the MBR using
RmTemps seems to cause a failure to get it built again every other time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-28 18:54:16 +00:00
Ingo Weinhold
de49044796 * Use the new Add{Files,Symlink}ToHaikuHybridImage rules in HaikuImage and
OptionalPackages. This makes the content definition part in
  AlternativeGCCArchive superfluous.
* Moved the cc and c++ wrapper scripts from src/bin to data/bin.
* Added build variable HAIKU_ADD_OPTIONAL_PACKAGES to add optional packages
  -- the list can be separated by slashes to allow easier passing through
  the shell.
* When invoking the sub-jam that builds the alternative GCC archive, we force
  it to ignore the UserBuildConfigs and we enable the optional packages
  enabled in the main jam.
* Reorganized /boot/develop:
  - There's now an "abi" subdirectory containing a <arch>/<gcc>/ subdirectory
    for each installed ABI-incompatible gcc version and a "current" symlink
    pointed to the currently selected one.
  - All ABI-dependent directories under /boot/develop/ (lib/x86, headers/cpp,
    tools/gnupro) symlink into /boot/develop/abi/current.
  - Changed BELIBRARIES to contain
    /boot/develop/abi/current/library-paths/common instead of /boot/common/lib.
    The former is a symlink to either /boot/common/lib or
    /boot/common/lib/<gccVersion>. There's also a respective "home" symlink.
  - Repackaged the optional binutils+gcc 2/4 packages accordingly. Also fixed
    the obsolete /boot/beos/system/lib/libstdc++.so symlink in the gcc 4
    package.
  - The new structure allows to switch between compilers by changing the
    /boot/develop/abi/current symlink. Added script setgcc to do that.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 01:12:34 +00:00
Oliver Tappe
723383c0f4 Applied patch by PulkoMandy, adjusted and extended by myself:
* integrating most of the locale kit into the build (and image)
* removed LocaleBuild.h and _IMPEXP_LOCALE since that does not make
  sense for elf (which usually exports all symbols anyway)
* added a couple of locale kit related pseudo targets for convenience
Hey, some of that stuff already seems to work :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-01 21:56:16 +00:00
Ingo Weinhold
ff81d306d4 * Moved the optional package dependency definitions into the new
build/jam/OptionalPackageDependencies and include it earlier (before the
  Jamfiles).
* Introduced build/jam/OptionalBuildFeatures which is supposed to do the setup
  for optional build features that need it.
* Renamed USE_SSL to HAIKU_BUILD_FEATURE_SSL and made it more intelligent.
  The OpenSSL optional package is downloaded and unzipped automatically when
  enabled. Switching between enabled/disabled HAIKU_BUILD_FEATURE_SSL is
  handled gracefully -- the concerned components are built in separate
  subdirectories. Adding the OpenSSL optional package to the image also enables
  HAIKU_BUILD_FEATURE_SSL.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30021 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-08 10:07:17 +00:00
Ingo Weinhold
37aefc9c6f * 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
2009-02-23 22:33:09 +00:00
Michael Lotz
e2c3dec923 Preliminary support for building ISO only Haiku CDs. Not working completely
clean yet. Provides a haiku-cd target and creates a bootable image using mkisofs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 02:34:32 +00:00
Ingo Weinhold
ad27081fa6 Missed to check this one in:
* Invoke the UserBuildConfigRulePostBuildTargets rule.
* Some automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-12-06 18:42:33 +00:00
François Revol
c7d3cf5b8a First attempt at a PPC bootable iso, doesn't work yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-07 02:35:46 +00:00
Ingo Weinhold
be8a6e43ff * 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
2008-03-30 15:34:30 +00:00
François Revol
9ed64004cc Rules and targets to build a boot CD iso... use:
jam haiku-boot-cd


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-02 04:38:29 +00:00
François Revol
22ec1df3f0 Add rules to create a boot floppy (use jam haiku-boot-floppy), in preparation for CD booting.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-02 03:05:23 +00:00
François Revol
a7ec9c1d59 Hook in 3rdparty/ to the main build.
Currently it's optional, you must define HAIKU_INCLUDE_3RDPARTY in [User]BuildConfig.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23408 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 18:14:51 +00:00
Ingo Weinhold
689e67941d Reset the correct subdir environment before doing the final stuff (haiku
image, netboot archive, etc).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-26 23:09:18 +00:00
Ingo Weinhold
b39c8d3711 * Refactored the image creation rules. There are now generalized rules that
work on arbitrary "containers". The image rules are just
  specializations.
* Added rules, a definition file (build/jam/NetBootArchive), and a shell
  script for creating a gzipped tar archive containing kernel and modules
  required for network booting (the contents may need some fine-tuning).
  ATM it can be built via the haiku-netboot-archive pseudo target. It is
  generated in the output directory (e.g. "generated").


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-11 01:04:35 +00:00
Ingo Weinhold
a970df44af * 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
2007-06-29 19:28:11 +00:00
Ingo Weinhold
48d60fa69c Introduced new build system features: The variable HAIKU_DONT_INCLUDE_SRC to
turn off the inclusion of src/Jamfile, and the rule DeferredSubInclude to
include a subdirectory in UserBuildConfig. Together they allow a developer
working on a subproject to reduce jam's parsing time when only building the
subproject. Relevant mostly on BeOS; on Linux jam is pretty fast anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-04 05:09:59 +00:00
DarkWyrm
1effc98815 Add the spam filter and server to the MailKit pseudo-target
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-12-16 05:09:54 +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
Jérôme Duval
1559de1285 added screensaver kit package
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-30 12:22:22 +00:00
Philippe Houdoin
99a77abfdf Added an OpenGLKit pseudo-target.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-28 23:17:52 +00:00
Marcus Overhagen
184dd027c3 adjusted media kit library dependencies to allow compiling for R5
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-05 18:05:01 +00:00