Commit Graph

47 Commits

Author SHA1 Message Date
Ingo Weinhold
1b56bd2b40 * Added rule CopyDirectoryToAlternativeGCCArchive, analogous to
CopyDirectoryToHaikuImage just for the alternative GCC.
* Added rules Add{Files,Symlink}ToHaikuHybridImage. Those call both the
  Add{Files,Symlink}toHaikuImage and Add{Files,Symlink}toAlternativeGCCArchive
  rules, the latter with an optionally slightly changed parameter.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30873 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-27 00:42:04 +00:00
Ingo Weinhold
a474455132 Changed the way the zip archive with the alternative gcc libraries is built.
Now that's done like building the network boot archive, which gives us a lot
more flexibility for defining its contents.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30850 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-05-25 01:21:32 +00:00
François Revol
9c08ace28c Add the checksum required step for atari_m68k on the boot floppy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-27 20:00:28 +00:00
François Revol
4eae7ffa1e Use arch specific floppy image size, Atari machines don't know about 2.88kB... plus it still fits in.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-27 19:28:13 +00:00
Michael Lotz
4585fda629 The bootfloppy image has become so fat that it simply doesn't fit the 1.44 size
anymore. This was the case for GCC4 already but is now also true for GCC2. We
might want to look into that again, or we can just ignore it as noone is really
using floppies anymore and for eltorito boot we can live with the 2.88 floppy
emulation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-22 00:17:22 +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
Axel Dörfler
317bd7dda3 * Changed directory structure as suggested on the mailing list.
* Made the TimeZoneView less error prone, and also actually use Haiku code (the
  previous check didn't work since it used #if, not #ifdef).
* Also took the liberty to rename our boot loader to haiku_loader, since I had
  to update the nasm binary anyway. Updated the assembly sources to nasm 2.0.
* I haven't found where the synth location in the MIDI code is specified,
  though.
* Also, NetBootArchive, and FloppyBootImage haven't been updated yet. Will do
  so next.
* Some optional packages still put their license to beos/etc/licenses. I didn't
  update them yet, as we'll probably do so anyway at some point. Also, I think
  we might want to introduce a common/data/licenses instead for those.
* If you encounter any problems, please tell!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29876 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-04-03 09:02:44 +00:00
Ingo Weinhold
d15b54c97f Removed HAIKU_ADD_ALL_OPTIONAL_PACKAGES build variable. It did more harm than
good lately.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29608 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-19 12:15:13 +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
f96525f73f The GCC4 built boot floppy archive is too large, it doesn't fit on a 1.44 image.
Therefore we switch to building a 2.88 floppy image in that case so it's at
least usable to build a bootable CD.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-02-15 14:54:05 +00:00
François Revol
1c532eedf1 Make the tgz archive offset in floppy image settable. Set it to 270k for now, until zbeos gets some diet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-15 03:30:00 +00:00
François Revol
76778d1e14 Add missing rules for floppy images...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-14 20:26:17 +00:00
François Revol
0d1f354d28 Fix typo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-11 19:26:58 +00:00
François Revol
47577f1cba Add COFF loader to ppc ISO.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-11 19:22:16 +00:00
François Revol
14ff3a6a54 Finally found a hack to get the iso bootable in QEMU SVN (with some patching to get OpenHackware happy)...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-09 21:36:07 +00:00
François Revol
df6e910b47 Try harder with PReP boot, still no go.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28553 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-07 19:15:55 +00:00
François Revol
360ca11440 - tried making an HFS CD, doesn't boot either in qemu yet.
- add an HFS map file


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28552 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-07 16:45:29 +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
Axel Dörfler
c5134b4758 * When updating all targets, symlinks and directories are now also recreated.
* Removed superfluous white space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 19:23:34 +00:00
Jérôme Duval
0afec1917e added AddNewDriversToHaikuImage to replace AddDriverRegistrationToHaikuImage: it places drivers which supports the new device architecture at the right place
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 20:32:54 +00:00
Ingo Weinhold
3c504a317e Added rules F{Files,Symlinks}In{Container,HaikuImage}Directory returning
the targets/symlinks added to a container/Haiku image directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25535 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-17 23:31:04 +00:00
Ingo Weinhold
5f78d261a2 Added rules AddOptionalPackageDescriptionToHaikuImage and
AddLicenseToHaikuImage that can be used in optional package definitions
to add a copyright entry in AboutSystem and add a license file to
/etc/licenses.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-04 16:06:41 +00:00
Ingo Weinhold
5b420b6d10 Replaced "echo -n >" by "touch" as it's more portable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-03 19:52:43 +00:00
Ingo Weinhold
f8cb30712e * Replaced the dummy implementations of the <grp.h> and <pwd.h>
functions by ones reading /etc/{group,passwd}.
* Added quasi-standard getpwent_r() and getgrent_r().
* Added _SC_GETGR_R_SIZE_MAX and _SC_GETPW_R_SIZE_MAX sysconf()
  constants.
* Moved initgroups() and getgrouplist() definition to grp.cpp. They use
  the same backend as the <grp.h> functions.
* Set the permissions of files created by the build system to what they
  should be on the image (executables: 755, others: 644). Otherwise only
  root could do anything under Haiku.
* Added build system variables HAIKU_ROOT_USER_NAME and
  HAIKU_ROOT_USER_REAL_NAME to customize name and real name of Haiku's
  root user.
* Added build system rules AddUserToHaikuImage and AddGroupToHaikuImage
  for adding additional users and groups (by default only root user and
  group and a "users" group are created).
* Adjusted BIND port and coreutils config.h files according to what
  features have become available.
* Fixed HAIKU_DOCUMENTATION_OBJECT_DIR definition. Untested, but it used
  a wrong variable name before.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-02 14:02:52 +00:00
Ingo Weinhold
d4954058b5 Added OptionalPackageDependencies rule to specify dependencies between
optional packages, i.e. installing one will install all its
dependencies, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-29 15:15:18 +00:00
Ingo Weinhold
c904fe377e * Added new optional parameter to AddHeaderDirectoryToHaikuImage,
specifying the name of the header directory on the image.
* Renamed the "gnu" header directory on the image to "3rdparty" and
  created a "gnu" symlink for compatiblity.
* Added zlib and libpng headers to the "3rdparty" header dir.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-26 23:48:41 +00:00
Ingo Weinhold
88c4c6627b * Added new rule CopyDirectoryToHaikuImage which recursively copies a
directory to the image. It supports exclude patterns.
* Changed Add{Source,Header}DirectoryToHaikuImage to use the
  CopyDirectoryToHaikuImage rule. The special handling in the
  build_haiku_image script is gone now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-26 04:14:25 +00:00
Ingo Weinhold
d41c97f7a5 Append the .zip extension to the package name rather than to replace the
suffix or otherwise package names with dots in them would be mangled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-25 01:58:41 +00:00
Ingo Weinhold
0ba49c35b3 * BuildPlatformMain supports overriding HOST_LIBROOT on the target now,
so one can set it to the static libroot, if desired.
* Generic attribute emulation:
  - Added build tool rm_attrs, a simple "rm" replacement, which also
    removes the attributes directory for a given file.
  - Added build/scripts/rm_attrs shell script, which wraps the
    invocation of the rm_attrs tool. If it doesn't exist yet, the
    ordinary rm is used.
  - The RM jam variable refers to the rm_attrs script now, i.e. whenever
    something is removed by the build system, the attributes are removed
    too (if the build tool has already been built, that is).
  - Removed the shell function attrrmrf() in build_haiku_image. We use
    the rm_attrs tool instead, if necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-22 21:05:03 +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
Axel Dörfler
631145a976 * Added new rule AddHeaderDirectoryToHaikuImage that copies header
directories. Note that you need an updated "sed" (from the Haiku
  repository) if you want to use that rule.
* The "Development" optional package now installs the Haiku headers
  needed to build stuff (ie. "os", "gnu", and "posix"). It also makes
  a symlink "be" so that we can still use the BeOS compiler with its
  builtin header paths.
* Fixed AddVariableToScript for older shells that do not support '+='.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-22 10:33:43 +00:00
Ingo Weinhold
2fcb695c2b axeld + bonefish:
Changed the way the VMware image is built. Instead of creating a normal
image first and then adding vmdk header and that image, we create the
VMware image in one go, now. Therefore "jam update-vmware-image ..."
does now actually update the VMware image directly, instead of updating
the normal image and recreating the VMware image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-17 13:54:32 +00:00
Ingo Weinhold
96b421b83d Added support for "optional packages". Those can be defined in
HaikuImage and enabled individually using the
AddOptionalHaikuImagePackages rule or all at once by setting
HAIKU_ADD_ALL_OPTIONAL_PACKAGES. In principle an optional package can
be any kind of addition to the Haiku image, but usually a zip file will
be downloaded from somewhere and unzipped onto the image. I've added a
WonderBrush package as an example.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-05 18:36:17 +00:00
Ingo Weinhold
0d469404ed Added support for unzipping archives onto the Haiku image. The new rule
to do that is UnzipArchiveToHaikuImage. Cf. UserBuildConfig.sample for
a usage example.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-04 21:50:00 +00:00
Ingo Weinhold
c0d613f845 Obsolete variable was still checked, which led to source directories
being copied onto the image even when updating only and alwaysUpdate
unspecified.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 01:03:36 +00:00
Ingo Weinhold
1ca065fa88 * Added second parameter to AddDirectoryToHaikuImage, a list of resource
(or rdef) files which will be converted to attributes and added to the
  installed directory. Adjusted build_haiku_image script accordingly.
* Added directory data/image_directories, which is where the resource
  files for the directories attributes shall be stored. As naming
  convention I suggest using the target directory path with slashes
  replaced by hyphens, e.g. home-config-bin.rdef for home/config/bin.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-26 23:20:58 +00:00
Axel Dörfler
fe452e51f0 Fixed update-image and update-install which were broken after the NetBootArchive changes, courtesy Ingo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-17 23:37:40 +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
afed18de79 New build system feature to shorten the turn-around times when working
with image files. E.g.

  jam -q update-image libbe.so kernel_x86

will only build libbe.so and the kernel (if necessary) and copy them
onto the already existing Haiku image. The MIME DB will not be
reinstalled, and only those source directories will be copied for which
the AddSourceDirectoryToHaikuImage rule is given a second argument
(e.g. "1"). The image will otherwise remain unchanged.

The "update-vmware-image" and "update-install" work similarly for the
VMWare image and the directory installation respectively. Note that, due
to the way the VMWare image is created (prepending a header to the
standard image), the file itself is fully rebuilt, i.e. changes made
during the emulation will be lost after updating the VMWare image.

The feature requires Haiku's jam. With other jam versions a similar
effect can be reached by accordingly setting the HAIKU_IMAGE_UPDATE_ONLY
and HAIKU_INCLUDE_IN_IMAGE in the UserBuildConfig file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-04-06 21:13:35 +00:00
Ingo Weinhold
4477befef2 * Modified AddVariableToScript to support multi-element arrays.
* Added rule AddSourceDirectoryToHaikuImage to copy source directories
  onto the image. They will be placed in /boot/home/HaikuSource/...
  according to their relative path. This should make it a bit more
  comfortable to use gdb as a source level debugger. Alas, the
  directories have to be made known to gdb individually (with the
  "directory" command). I guess we should update to 6.6...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-03-24 23:34:28 +00:00
Ingo Weinhold
a7bbb81537 New rule to create a VMWare image from the plain Haiku image using Marcus'
vmdkheader tool. New pseudo target haiku-vmware-image to build it.
Image default name is "haiku.vmdk", adjustable via the
HAIKU_VMWARE_IMAGE_NAME variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-27 12:54:10 +00:00
Jérôme Duval
8ca0de0c89 jam seems to badly handle parenthesis with the B modifier : the workaround is to remove other modifiers
fixes ticket #981


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-01-24 18:39:22 +00:00
Jérôme Duval
c20e9eefcd added a jam rule AddDriverRegistrationToHaikuImage to add device mappings on the image
commented the insertion of the attribute name in patterns in the case of a string attribute
notify_probe_by_file chooses a module based on a bus specific suffix
dm_register_child_device has a parameter to optionally check the support for the node
added scanning of bus devices after the boot filesystem is mounted
fixed dm_rescan, locking was misbehaving
fixed SYSTEM_DRIVER_REGISTRATION definition
added B_DRIVER_MAPPING attributes for PCI and ACPI devices:
  %vendor%_%device% for PCI, hid_%hid% and type_%type% for ACPI
moved acpi_device_module_info definition to public ACPI.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@19394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-11-29 19:09:45 +00:00
Ingo Weinhold
3d3a473670 A target can now be installed more than once on the image.
Fixes bug #696.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-06-29 12:08:53 +00:00
Ingo Weinhold
4d5192896a We also pass the "-n" (no dereference) switch to ln when creating symlinks
on the Haiku image/installation. Apparently BeOS R5's ln is buggy in that
it always assumes "-n". A correct ln would resolve an existing symlink to
a directory and create/replace the symlink there. If you have such an ln,
you may find symlinks /boot/beos/apps/apps, /boot/beos/preferences/preferences,
and /boot/home/home on your boot partition (if you have run "jam install-haiku"
at least twice).
Fixes bug #143.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-02-11 19:50:38 +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