Commit Graph

97 Commits

Author SHA1 Message Date
Oliver Tappe
220d040227 Use libstdc++, libsupc++ and libgcc from gcc_syslibs.
* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
  from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
  x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
  necessary since we're only using libgcc-as-single-object for libroot
  with x86_gcc2, where the filtered object file doesn't exist. Should
  the objects that used to be filtered cause any problems as part of
  libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
  x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
  x86_gcc2, we still build libstdc++.so from the sources in the Haiku
  source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.
2014-08-13 13:32:44 +02:00
Oliver Tappe
afde44733f * When using the non-legacy compiler, use the c++ and gcc headers
provided in the gcc_syslibs_devel build feature for building Haiku.
* Simplify declaration of c++ and gcc headers for the legacy compiler -
  in the end we always use the ones living by our source tree anyway.
* Fix a couple of missing local declarations for jam variables, which
  were necessary to avoid a build problem with strace. There are
  probably more bugs like these hiding in our build system files, but
  I'm saving the fix for those to the next commit.
* Add new gcc packages to the HaikuPorts (x86*-)repositories.
2014-08-13 13:32:34 +02:00
Jérôme Duval
9cd7c6a433 tiff: use the outsourced packages.
* packages for secondary architectures would be welcomed.
2014-06-02 23:45:19 +02:00
Jérôme Duval
1ee3031a90 wget: use the outsourced packages.
* remove wget Jamfile from the build.
2014-06-02 00:06:31 +02:00
Jérôme Duval
c73c8e2367 gutenprint: add gutenprint as a mandatory package.
* use the shared library libgutenprint.so
* remove the xml data files from the tree and the Haiku package.
2014-05-10 13:08:35 +02:00
Oliver Tappe
8c54af563c Whitespace cleanup in root and 'build' folder.
* Removed trailing whitespace and empty lines at top of files.
2014-05-01 12:55:41 +02:00
Jérôme Duval
1a8c694443 less: use the outsourced packages.
* added packages for x86 and x86_64.
2014-04-17 00:03:28 +02:00
Jérôme Duval
eb763779e3 sharutils: use the hpkg.
* delete the intree sources.
2014-04-14 22:52:58 +02:00
Oliver Tappe
a8c098a3ba Replace HAIKU_{BOOTSTRAP,MINIMUM}_BUILD with HAIKU_BUILD_TYPE.
* Instead of separate variables, HAIKU_BUILD_TYPE is set to one of
  'bootstrap', 'minimum' or 'regular'.
* Adjust uses of HAIKU_BOOTSTRAP_BUILD accordingly.
2014-03-22 20:24:07 +01:00
Oliver Tappe
6d8c8a9dfd Default packages are now selected via image build feature.
* Introduce a build feature per image type (i.e. minimum_image, 
  bootstrap_image and regular_image).
* Activate the build feature matching the active image type.
* Use the image build features to group the default packages.
2014-03-22 20:24:06 +01:00
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