Commit Graph

54 Commits

Author SHA1 Message Date
Ingo Weinhold af559cd6ee Add DetermineEffectiveHaikuRevision rule
Simplifies PreprocessPackageInfo a bit.
2014-01-19 00:49:10 +01:00
Ingo Weinhold d4bfbab374 Implement generic Sed rule 2014-01-19 00:49:10 +01:00
Ingo Weinhold 1d6ca1dadd rule DetermineHaikuRevision: Avoid duplicate command execution
... when HAIKU_REVISION is set.
2013-12-26 00:22:45 +01:00
Ingo Weinhold 5fc2757a74 Add user settable HAIKU_REVISION build variable
Can be set to a revision string (hrev4...) to override the revision
determined via git. Useful when the repository doesn't have tags.
2013-11-20 16:42:05 +01:00
François Revol 39d26e3cdb Set HAIKU_TARGET_IS_EXECUTABLE in KernelLd as well
The kernel also needs to be stripped for m68k.

Propagate it to the revisioned binary as well.
2013-10-12 18:42:57 +02:00
Ingo Weinhold 3162883efd Add rules StripFile[s] 2013-10-12 17:21:49 +02:00
Ingo Weinhold cc5c6133d2 Revert "Rework stripping binaries when copying to containers"
This reverts commit e2332987bc.
2013-10-12 16:00:02 +02:00
François Revol e2332987bc Rework stripping binaries when copying to containers
We now only attempt to strip binaries, by detecting the
LINKFLAGS variable on the targets.

CopySetHaikuRevision now also forwards LINKFLAGS
to revisioned binaries.

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

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

Note we still don't keep resources and attributes when stripping.
2013-10-12 01:41:46 +02:00
Ingo Weinhold 04d9b3e89c CopySetHaikuRevision: Pull out rule DetermineHaikuRevision 2013-10-10 21:37:27 +02:00
Niels Sascha Reedijk f04f7042c5 Determine how to invoke sed with extended regexp
This will require re-running configure
2013-09-30 21:41:54 +02:00
Ingo Weinhold 86297ca0ff actions DownloadLocatedFile: fail, if wget fails 2013-08-28 01:07:17 +02:00
Ingo Weinhold a1e681690c Rework rule CopySetHaikuRevision
* Remove support for VCSs other than git.
* Make the haiku-revision file a regular build target and make sure it
  is built only once.
* Make determine_haiku_revision an actual shell script and simplify
  it a bit.
2013-08-26 16:38:50 +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 3e58289628 DownloadLocatedFile: fix use with older wget version
The option "--no-use-server-timestamps" is apparently newer than
Haiku's wget.
2013-07-11 14:21:47 +02:00
Ingo Weinhold 531a3d42bc Add rule ChecksumFileSHA256 2013-07-06 02:19:51 +02:00
Ingo Weinhold 46686fe6c0 Download*File rules: add optional source target
If specified the path to the source target can be used in the URL via
"$source".
2013-07-06 02:19:38 +02:00
Ingo Weinhold ff2e520912 Remove the old "CVS" package rules
... and all their invocations.
2013-06-30 18:59:11 +02:00
Ingo Weinhold 25a7b01d15 Merge branch 'master' into package-management
Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
  needed by packagefs.
* BuildFeatures: Add a build feature "gcc2" to allow for easier checks.
* Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter
  is not needed and prevents building for the build platform.
* zlib/zutil.h: Fix gcc 2 build. We really should use the external
  package instead.

Conflicts:
	.gitignore
	build/jam/BuildSetup
	build/jam/FileRules
	build/jam/FloppyBootImage
	build/jam/HaikuImage
	build/jam/ImageRules
	build/jam/KernelRules
	build/jam/NetBootArchive
	build/jam/OptionalBuildFeatures
	build/jam/OptionalLibPackages
	build/jam/OptionalPackageDependencies
	build/jam/OptionalPackages
	build/scripts/build_haiku_image
	configure
	data/bin/installoptionalpackage
	data/system/boot/Bootscript
	headers/os/app/Message.h
	headers/os/package/PackageInfo.h
	headers/os/package/PackageInfoAttributes.h
	headers/os/package/PackageInfoSet.h
	headers/os/package/PackageRoster.h
	headers/os/package/PackageVersion.h
	headers/os/package/hpkg/PackageInfoAttributeValue.h
	headers/os/storage/FindDirectory.h
	headers/os/storage/Node.h
	headers/os/support/StringList.h
	headers/private/system/directories.h
	src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
	src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp
	src/add-ons/kernel/file_systems/packagefs/Jamfile
	src/add-ons/kernel/file_systems/packagefs/Package.cpp
	src/add-ons/kernel/file_systems/packagefs/Package.h
	src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageDomain.h
	src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h
	src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h
	src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageNode.h
	src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp
	src/add-ons/kernel/file_systems/packagefs/Version.cpp
	src/add-ons/kernel/file_systems/packagefs/Version.h
	src/add-ons/kernel/file_systems/packagefs/Volume.cpp
	src/add-ons/kernel/file_systems/packagefs/Volume.h
	src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp
	src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c
	src/apps/deskbar/BarApp.cpp
	src/apps/deskbar/BarMenuBar.cpp
	src/apps/deskbar/BarMenuBar.h
	src/apps/deskbar/BarView.cpp
	src/apps/deskbar/BarView.h
	src/apps/deskbar/BarWindow.cpp
	src/apps/deskbar/BarWindow.h
	src/apps/deskbar/DeskbarMenu.cpp
	src/apps/deskbar/DeskbarMenu.h
	src/apps/deskbar/DeskbarUtils.cpp
	src/apps/deskbar/DeskbarUtils.h
	src/apps/deskbar/ExpandoMenuBar.cpp
	src/apps/deskbar/ExpandoMenuBar.h
	src/apps/deskbar/TeamMenu.cpp
	src/apps/processcontroller/ProcessController.cpp
	src/apps/remotedesktop/RemoteDesktop.cpp
	src/bin/bash/config-top.h
	src/bin/finddir.c
	src/bin/package/Jamfile
	src/bin/package/command_add.cpp
	src/bin/package/command_create.cpp
	src/bin/package/command_list.cpp
	src/bin/package_repo/command_list.cpp
	src/bin/pkgman/command_refresh.cpp
	src/build/libbe/support/Jamfile
	src/build/libpackage/Jamfile
	src/build/libroot/Jamfile
	src/build/libroot/fs.cpp
	src/build/libroot/remapped_functions.h
	src/kits/locale/MutableLocaleRoster.cpp
	src/kits/opengl/GLRendererRoster.cpp
	src/kits/package/PackageInfo.cpp
	src/kits/package/PackageInfoSet.cpp
	src/kits/package/PackageRoster.cpp
	src/kits/package/PackageVersion.cpp
	src/kits/package/RepositoryCache.cpp
	src/kits/package/hpkg/PackageWriterImpl.cpp
	src/kits/package/hpkg/ReaderImplBase.cpp
	src/kits/package/hpkg/WriterImplBase.cpp
	src/kits/print/PrintTransport.cpp
	src/kits/print/Printer.cpp
	src/kits/screensaver/ScreenSaverRunner.cpp
	src/kits/support/StringList.cpp
	src/kits/tracker/ContainerWindow.cpp
	src/kits/tracker/DeskWindow.cpp
	src/kits/tracker/PoseView.cpp
	src/libs/print/libprint/Transport.cpp
	src/preferences/printers/AddPrinterDialog.cpp
	src/preferences/screensaver/ScreenSaverWindow.cpp
	src/servers/debug/DebugServer.cpp
	src/servers/input/AddOnManager.cpp
	src/servers/media_addon/MediaAddonServer.cpp
	src/system/boot/Jamfile
	src/system/boot/loader/Jamfile
	src/system/boot/loader/loader.cpp
	src/system/boot/loader/vfs.cpp
	src/system/kernel/fs/vfs.cpp
	src/system/kernel/fs/vfs_boot.cpp
	src/system/libroot/os/find_directory.cpp
	src/system/runtime_loader/runtime_loader.cpp
	src/tools/package/Jamfile
2013-05-05 15:03:26 +02:00
Ingo Weinhold 6c6d6490bf ExtractArchive rule: Allow the directory to have a grist 2013-05-01 02:01:44 +02:00
Ingo Weinhold bcdf492404 Simplify/fix the ExtractArchive rule and friends
* The call to the dummy actions isn't needed
* The calls to Extract{Zip,Tar,HPKG}Archive1 couldn't work like that.
  The directory has to be the main target, since ExtractArchive is
  potentially invoked multiple times with different extracted file
  targets and the Extract*Archive1 is only invoked the first time.
  Tested only with the HPKG actions, but they others should work as
  well.
2013-04-02 17:17:46 +00:00
François Revol d091af40ea Revert hrev44743
Downloaded optional packages aren't actually removed as I thought on jam clean,
so it's not that much useful...
2012-11-04 10:47:37 +01:00
François Revol 962eb4be43 Allow local caching of optional packages
Introduce HAIKU_DOWNLOAD_CACHE variable that can point to a directory.
containing optional packages to check first before downloading.
Missing packages are also added to the cache.
This allows sharing and reusing them to make builds without a connection.
2012-11-04 01:17:00 +01:00
Alexandre Deckner 36aac7c55f Fix typo 2012-07-04 01:15:26 +02:00
François Revol 577d81a9b6 Add proper error on ExtractArchive with missing filename
The * case was not generating any message due to empty string expansion I suppose...
2012-01-05 03:30:10 +01:00
Ingo Weinhold c9c6e36537 Use PropagateContainerUpdateTargetFlags rule
Propagate all update variables in CopySetHaikuRevision and for the
kernel pseudo target.
2011-07-17 16:54:59 +02:00
Ingo Weinhold f724ec0e1e ExtractArchive: Add hpkg support 2011-07-17 16:54:18 +02:00
Ryan Leavengood 8e4f760cb8 Apply patch from mmadia to add a Release Notes file to the alpha image desktop.
Allow wget to output to files with spaces in the DownloadFile rule.

Fixes #7609.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-06-07 17:52:13 +00:00
Oliver Tappe 2fe19bf6ac Adjusted code for determining the revision in order to hopefully work on FreeBSD, too
* convert determine_haiku_revision to only contain functions and now pass the arguments 
  via function call


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41539 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-16 16:11:42 +00:00
Oliver Tappe 8ff44a4329 Fix and improve code for determining Haiku revision from a git repo
* break out most of the CopySetHaikuRevision action into a separate script:
  determine_haiku_revision
* fix git branch detection such that it'll actually work for local branches (thanks to 
  Andreas Färber for the hint)
* add some sanity checks


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-15 22:45:43 +00:00
Oliver Tappe 64c5bc6323 * add support for generating a useful haiku-revision from a
git repository

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-05-13 20:38:02 +00:00
Matt Madia 490b4a9481 Patch by Corneliu - Claudiu Prodescu "cprodescu". Ensures that ExtractArchive
extracts the files, even when the specified target directory exists.
Fixes #7425.  Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-04-10 17:58:35 +00:00
Axel Dörfler e62879885e * Fixed a typo, whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40515 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-15 17:56:05 +00:00
Ingo Weinhold 9d123fc2e8 Patch by Andreas Färber:
CopySetHaikuRevision: Added support for extracting the svn revision number
from an hg repository.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-03-21 17:02:14 +00:00
Ingo Weinhold 05bbc668af From: Matt Madia
* InstallOptionalHaikuImagePackage: Made the first argument an actual file
  name, i.e. the extension ".zip" is no longer appended by it.
* Renamed rules UnzipArchiveTo{Container,HaikuImage} to
  ExtractArchiveTo{Container,HaikuImage} and generalized them to support
  tgz/tar.gz archives (implemented in build_haiku_{image,cd}).
* Removed DownloadOptionalPackage. DownloadFile is used instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-27 17:48:12 +00:00
Ingo Weinhold 3ccf442a03 Author: Matt Madia
Cleaned up usage comment of ExtractArchive.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-26 12:34:07 +00:00
Ingo Weinhold 76fa0be374 Patch by Matt Madia:
* Renamed DownloadFile to DownloadLocatedFile.
* Pulled a generalized rule DownloadFile out of DownloadOptionalPackage.
* Added InstallSourceArchive rule which can be used in OptionalPackages to
  add sources for installed packages to the image.
* Added configure option --include-sources to enable including the sources
  for third party software in the image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35617 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-25 16:13:22 +00:00
Ingo Weinhold 3cd300bc61 Patch by Matt Madia: Generalized the UnzipArchive rule to support *.tgz files
as well, and renamed it to ExtractArchive.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35616 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-02-25 14:54:50 +00:00
Travis Geiselbrecht 39c91458b2 Fix the CopySetHaikuRevision1 rule if you're building in a plain git
repository, not mirroed via git-svn. Calling git-svn on a plain
repository seems to cause it to go haywire.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-09-19 20:19:50 +00:00
Ingo Weinhold 520cf2669f HaikuInstall rule: Allow optional list of target names.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 23:03:28 +00:00
Axel Dörfler a1c6f0fde1 * Applied patch by Andreas to unify SVN version detection with GIT, also fixing
bug #2860.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-06-30 15:20:54 +00:00
Ingo Weinhold e7f2fa91bc Don't use MakeLocate to make sure that the parent directory exists, since
that also sets LOCATE, which could cause jam to incorrectly place our
directory. Should fix the problems with the SSL build feature some people
have been seeing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30039 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-08 18:03:18 +00:00
Ingo Weinhold d339b68bef * Added UnzipArchive rule which unzips a zip file into a target directory.
* Added DownloadOptionalPackage which is mainly a wrapper around DownloadFile
  preventing the package from being downloaded twice, even if invoked more
  than once.
* InstallOptionalHaikuImagePackage uses DownloadOptionalPackage now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-08 09:55:33 +00:00
Ingo Weinhold 2dd847b6ff Changed CopySetHaikuRevision1 actions not to fail, when either of the
tools doesn't exist. Fixes #2860.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-18 09:23:42 +00:00
Axel Dörfler 8c74d99c63 * Applied patch by Andreas that uses git as a fallback in case retrieving
the revision failed using "svn info".
* While there is no official git tree, this should help those people using
  svn over git.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26977 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-15 11:00:07 +00:00
François Revol 3fffcad10d Use LC_ALL=C to really make sure the locale isn't used on svn info.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-14 21:21:55 +00:00
Ingo Weinhold 16df02e515 New DownloadFile rule, downloading a file using wget.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-05 03:08:38 +00:00
Ingo Weinhold 1485d7a2d7 Added small tool source_to_data, which takes an arbitrary data file and
generates a C source file defining an array variable containing the file's
data. DataFileToSourceFile is the respective jam rule.

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



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-15 00:04:27 +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
Ryan Leavengood 2660d61ad6 As I said I would:
1. Deleted headers/shared/
2. Added a Jamfile to src/shared to build it into a static library libshared.a.
3. Removed my changes in the build/jam directory.
4. Have ShowImage include libshared.a.

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



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-13 02:35:29 +00:00
Ryan Leavengood 5a1210fbef Moved the BAboutWindow implementation to the shared source directory, which
despite being talked about repeatedly, does not currently exist.

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

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

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


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-06-12 03:54:07 +00:00