Commit Graph

87 Commits

Author SHA1 Message Date
Oliver Tappe
ff35d6c18a Refactor definition of Haiku image contents.
* Move actual definitions of respective image contents to files
  underneath build/jam/images/definitions (minimum, bootstrap, regular).
* HaikuImage now only includes the image definitions for the selected
  build profile and adds the Haiku packages.
* Simplified topmost Jamfile to some extent.
* Move definition of DESKBAR_APPLICATIONS and DESKBAR_DESKTOP_APPLETS
  from build/jam/packages/Haiku to the respective image definition file.
* Sort and reformat several lists to make them more readable.
2014-03-16 21:17:22 +01:00
Oliver Tappe
72e677911f Make set of source packages for bootstrap-image configurable.
* Add new build profile 'minimum', which defines a minimum set of
  packages.
* Introduce HAIKU_BOOTSTRAP_SOURCES_PROFILE and let it default to
  '@minimum-raw'. This can be overruled in UserBuildConfig, setting
  it to '@release-raw' will cause all source packages required for a
  full release to be put onto the bootstrap-image.
* Add new image HaikuImageMinimum, which is meant to define the minimum
  useful Haiku image (yeah, I know that's vague).
* Add HAIKU_MINIMUM_BUILD, which indicates that HaikuImageMinimum should
  be used (it would be better to merge this with HAIKU_BOOTSTRAP_BUILD
  into something like HAIKU_BUILD_TYPE)
* Cleanup duplicate references to basic packages - those are now added
  by the topmost Jamfile (no longer referenced by the build profiles).
2014-03-16 01:17:55 +01:00
Oliver Tappe
8219739b06 Put curl on every image, as it is required by the haiku package. 2014-03-02 21:55:26 +01:00
Jérôme Duval
91e3737dd8 gawk: use the HaikuPorts package.
* left the in-tree version as its libintl is used by gdb.
* added as bootstrap package.
2014-02-25 22:20:32 +01:00
Jérôme Duval
8b804bc17b findutils: use the HaikuPorts package.
* removed in-tree version.
* added as bootstrap package.
* note: HaikuPorts package has no rdef for binaries.
2014-02-25 17:58:32 +01:00
Ingo Weinhold
be5e6fefdf Add repository config for the Haiku repository to the image
* HaikuRepository rule: Create the repository config.
* HaikuImage: Add the repository config for the Haiku image. The
repository cache is not added, though (it would only be available, if
the repository had been built before).

Implements #10287. The Haiku repository is now available in Haiku by
default.
2014-01-19 00:49:11 +01:00
Alexander von Gluck IV
5fd5e562aa GL: Ensure mesa_devel and mesa_swrast are always present
* As the OpenGL kit is assumed by most ports (and BeOS apps)
  to "exist", lets make mesa_devel present by default until
  post R1
* mesa_swrast ensures we always have the basic swrast renderer
  To play with mesa_swpipe (gallium llvmpipe, gcc4) uninstall
  mesa_swrast and install mesa_swpipe. (you can install both,
  but it's first renderer found, first used atm)
2013-12-23 01:57:05 -06:00
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