Building Haiku_x64 from within Haiku_x64

Ty shallow clone:

git clone --depth 1 https://review.haiku-os.org/buildtools.git

Please make your homework and research what shallow clone means to get answer to your question and/or do the cloning in Windows if you wish.

If you want a page with no “if” anywhere, you end up with different page for each Linux distro, and for each target arch. Because yes, pretty much each step needs to be adjusted to what you’re doing. This is why we have split the guide in 3 parts: one to install the dependencies (depends on the host OS), one to get the sourcecode (always the same), one to configure and build (depends mainly on the target, and in some special cases on the host).

So yes, in the end the instructions are not very complex for each combination. But there are a lot of combinations and this would be very repetitive. And I’m sure we would get complaints because people would still manage to copypaste the wrong block anyway.

Well, it worked! Thank you one and all for your help. Greatly appreciated.screenshot1

1 Like

Following this discussion here prompted me to try and compile Haiku myself, which I’ve never done before. Of course I have some knowledge about Haiku and also about compiling software, and I’m also a developer (whatever relevance this has to the current topic). So I went straight along the instructions in the documentation at https://www.haiku-os.org/guides/building . I compiled Haiku x86_64 under 64bit Ubuntu 18.04. Everything was very straightforward and worked without any problems. In my opinion the building process is very well documented and I really don’t see any need for improvement here. (It is very rare for me to say something like that :slight_smile: ) Especially if we keep in mind that we’re talking about an entire operating system here. I’ve compiled many applications that were much harder to compile and much less documented.
Anyway, just my opinion.

6 Likes

We could put the buildtools as submodule into the haiku tree, jam scripts could be adjusted, so if the user request a 64 bit build on 64 bit, it would automatically check out the buildtools submodule and using that.
We can ofc. check for the host variable, if it isn’t Haiku, the build scripts could try the best to set everything up accordingly.
This would mean extra complexity in the buildscripts, probably we don’t want that because maintenance.

@Luposian: now that you got it working would you reread the official build guides and propose changes to make it easier for beginners?

This isn’t even accounting for cross compiling, which would add at least 11 more pages, and it’s not accounting for building for or on nonbooting devices for development.

The problem is, you’re blaming your mistake of “not following directions” on the documentation. If the single file of build instructions for it confused you more, then three pages sounds reasonable when compared to one. Your suggestion does have its merrits, however, I view “dummifying” the building of software to be the job of the community. There are guides for how to build your own linux kernel, and software around it. If you want to see the closest comparison to haiku’s build guide in linux, though? Look at: building linux from scratch. You’re building everything, and each thing has a chapter with 3+ pages. That’s no where near as simple as building Haiku, no where near as safe as haiku, (you could brick your main install, if you’re building from an installed system,) and only doable on linux.

The build guides are designed from a knowledgeable perspective. You can’t make them any easier than they are, without changing who they’re geared towards. They are meant to cover EVERY platform, not just one platform. That’s the argument. I want something that I can go to, that has very specific instructions for JUST my use case (Building Haiku x86_64 within Haiku x86_64). I don’t want to have to “figure it out”. I want it laid out in black and white, in “Fool’s English”, as it were. And now this thread has that very thing. In less description than I imagined! But, other than my particular use case, who has the desire to create similar “pages” for different platforms that are just as simple AND maintain them!

PulkoMandy is not wrong. Maintaining a myriad of pages all “dumbed down” to the simplest instructions, such as we now have for my use case, requires more attention/devotion to an area that most developers don’t have time, energy, or desire for. I get that.

Just as you have people who say that a CLI is the ONLY way to do things, you have others that believe a GUI is the ONLY way to do things. Do you use/like “keyboard shortcuts”? I hate them. I’ve hated them since I first heard about them on the Atari 1040ST, back in the late 80’s. I only use them when I have to. I’d rather be able to use the mouse to do everything. But that’s me. If the Terminal weren’t necessary, I wouldn’t use it either. The Apple IIc and pre-Windows 95 era were the last of the CLI environments I used. But some things HAVE to be done in certain ways. So we adapt. Sometimes, begrudgingly. :smiley:

I’d gladly maintain just my own use case, for others who want things laid out so plain, you’d have to be blind AND stupid not to be able to follow it. But who else wants to chase down and maintain the other use cases for other platforms? Maybe I’m an edge case and no one else cares about having such over-simplified instructions. We’re all different.

But… if there were just ONE thing that I believe would help make the build guides easier for beginners (or less knowledgeable) types, is to have a date stamp next to the word “Updated” next to each of the three links when something is changed. That would tell them that something is different inside and then, maybe, a highlight or text in red or whatever, for the changes made. Yes, it requires more attention to detail in making changes more obvious, but… I think it would help.

2 posts were split to a new topic: How to exclude apps when building Haiku?

Actually, that would be great, because currently if you want to build an old version of Haiku, you have to “guess” which version of buildtools is needed (by looking at commit dates). Would you mind creating a ticket on the bugtracker for it?

It’s also possibly a nice easy beginner task for someone who wants to write some bash scripts :slight_smile:

Ok, here’s my new issue:

I’m running Haiku_x86_64 hrev 53971. I deleted both /haiku and /buildtools and “started over”. Ran pkgman install -y mtools cmd:python3 cmd:xorriso; nothing to update. Ran pkgman update git; nothing to update. Downloaded /buildtools and /haiku. No issues. Configured the cross-tools. Everything went fine there, too.

I go to jam -q -j2 @nightly-anyboot and… this is my full build log, start to finish.

Welcome to the Haiku shell.

~> pkgman install -y mtools cmd:python3 cmd:xorriso
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku…done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts…done.
python3-3.7.6-1 from repository system is already installed.
mtools-4.0.19-1 from repository system is already installed.
xorriso-1.5.2-2 from repository system is already installed.
Nothing to do.
~> pkgman update git
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku…done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts…done.
Nothing to do.
~> cd haiku
~/haiku> cd generated.x86_64
~/haiku/generated.x86_64> jam -q -j2 @nightly-anyboot
Starting build of type regular …
Building Haiku Nightly
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…patience…
…found 158430 target(s)…
…updating 11698 target(s)…
InitScript1 haiku-floppyboot-init-vars
InitScript1 haiku-floppyboot-make-dirs
AddTargetVariableToScript1 <unique!target>_target_233
CreateContainerMakeDirectoriesScript1 haiku-floppyboot-make-dirs
AddVariableToScript1 haiku-floppyboot-init-vars
InitScript1 haiku-floppyboot-copy-files
C++ objects/haiku/x86_64/release/add-ons/kernel/partitioning_systems/intel/PartitionMapWriter.o
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/bus_managers
AddDirectoryToContainerCopyFilesScript data/mime_db/-/usb_mimedb
AddDirectoryToContainerCopyFilesScript data/mime_db/-/<mimedb-app-uhci_mimedb
AddDirectoryToContainerCopyFilesScript data/mime_db/-/<mimedb-app-ohci_mimedb
AddDirectoryToContainerCopyFilesScript data/mime_db/-/<mimedb-app-ehci_mimedb
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/busses/ata
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/busses/scsi
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/console
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/file_systems
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/generic
Link objects/haiku/x86_64/release/add-ons/kernel/partitioning_systems/intel/intel
InitScript1 haiku.image-init-vars
AddTargetVariableToScript1 <unique!target>_target_713
SetType1 objects/haiku/x86_64/release/add-ons/kernel/partitioning_systems/intel/intel
AddTargetVariableToScript1 <unique!target>_target_813
MimeSet1 objects/haiku/x86_64/release/add-ons/kernel/partitioning_systems/intel/intel
AddTargetVariableToScript1 <unique!target>target_913
AddTargetVariableToScript1 <unique!target>target_023
AddTargetVariableToScript1 <unique!target>target_123
AddTargetVariableToScript1 <unique!target>target_223
AddTargetVariableToScript1 <unique!target>target_323
AddTargetVariableToScript1 <unique!target>target_423
SetVersion1 objects/haiku/x86_64/release/add-ons/kernel/partitioning_systems/intel/intel
AddTargetVariableToScript1 <unique!target>target_523
Chmod1 objects/haiku/x86_64/release/add-ons/kernel/partitioning_systems/intel/intel
AddTargetVariableToScript1 <unique!target>target_623
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/partitioning_systems
AddTargetVariableToScript1 <unique!target>target_723
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/busses/usb
AddTargetVariableToScript1 <unique!target>target_823
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/cpu
InitScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku_loader.hpkg/scripts/haiku.package-init-vars
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/drivers/disk/scsi
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system/add-ons/kernel/drivers/bin
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/drivers/dev/disk/usb/usb_disk
AddTargetVariableToScript1 <unique!target>target_35
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-system
AddTargetVariableToScript1 <unique!target>target_45
AppendToContainerCopyFilesScript haiku-floppyboot-copy-files-dummy-home/config/settings/kernel/drivers
AddTargetVariableToScript1 <unique!target>target_55
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/acpi
AddTargetVariableToScript1 <unique!target>target_65
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/ata
AddTargetVariableToScript1 <unique!target>target_75
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/config_manager
AddTargetVariableToScript1 <unique!target>target_85
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/dpc
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/pci
AddTargetVariableToScript1 <unique!target>target_95
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/isa
AddTargetVariableToScript1 <unique!target>target_06
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/scsi
AddVariableToScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku_loader.hpkg/scripts/haiku.package-init-vars
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/usb
InitScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku_loader.hpkg/scripts/haiku.package-make-dirs
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/ata_adapter
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/locked_pool
CreateContainerMakeDirectoriesScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku_loader.hpkg/scripts/haiku.package-make-dirs
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/scsi_periph
InitScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku_loader.hpkg/scripts/haiku.package-copy-files
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/ahci
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/generic_ide_pci
AppendToContainerCopyFilesScript <hpkg
-haiku_loader.hpkg>haiku.package-copy-files-dummy-.
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/silicon_image_3112
InitScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku_loader.hpkg/scripts/haiku.package-extract-files
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/legacy_sata
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/it8211
BuildHaikuPackage1 objects/haiku/x86_64/packaging/packages/haiku_loader.hpkg
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/uhci
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/ohci
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/ehci
haiku_loader.hpkg: Removing and re-creating package contents dir …
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/scsi_cd
haiku_loader.hpkg: Collecting package contents …
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/scsi_disk
haiku_loader.hpkg: mimeset’ing package contents …
haiku_loader.hpkg: Creating the package …
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/usb_disk
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/intel
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/session
InitScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku.hpkg/scripts/haiku.package-init-vars
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/attribute_overlay
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/bfs
AddTargetVariableToScript1 <unique!target>target_732
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/iso9660
AddTargetVariableToScript1 <unique!target>target_832
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/packagefs
AddTargetVariableToScript1 <unique!target>target_932
AddSymlinkToContainerCopyFilesScript system/add-ons/kernel/boot/write_overlay
AddTargetVariableToScript1 <unique!target>target_042
warning: using independent target /boot/home/haiku/generated.x86_64/./haiku-floppyboot-init-vars
warning: using independent target /boot/home/haiku/generated.x86_64/./haiku-floppyboot-make-dirs
warning: using independent target /boot/home/haiku/generated.x86_64/./haiku-floppyboot-copy-files
BuildFloppyBootArchive1 haiku-floppyboot.tgz
AddTargetVariableToScript1 <unique!target>target_142
AddTargetVariableToScript1 <unique!target>target_242
AddTargetVariableToScript1 <unique!target>target_342
AddTargetVariableToScript1 <unique!target>target_442
Preparing contents of archive haiku-floppyboot.tgz …
AddVariableToScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku.hpkg/scripts/haiku.package-init-vars
InitScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku.hpkg/scripts/haiku.package-make-dirs
CreateContainerMakeDirectoriesScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku.hpkg/scripts/haiku.package-make-dirs
AppendToContainerMakeDirectoriesScriptAttributes <hpkg
-haiku.hpkg>haiku.package-make-dirs-attributes-dummy-apps
AppendToContainerMakeDirectoriesScriptAttributes <hpkg
-haiku.hpkg>haiku.package-make-dirs-attributes-dummy-preferences
…on 100th target…
InitScript1 objects/haiku/x86_64/packaging/packages_build/regular/hpkg
-haiku.hpkg/scripts/haiku.package-copy-files
AppendToContainerCopyFilesScript <hpkg
-haiku.hpkg>haiku.package-copy-files-dummy-data/firmware/iprowifi2100
AppendToContainerCopyFilesScript <hpkg
-haiku.hpkg>haiku.package-copy-files-dummy-data/firmware/iprowifi2200
AppendToContainerCopyFilesScript <hpkg
-haiku.hpkg>haiku.package-copy-files-dummy-add-ons/kernel/bus_managers
AddDirectoryToContainerCopyFilesScript <hpkg
-haiku.hpkg>data/mime_db/-/usb_mimedb
AddDirectoryToContainerCopyFilesScript <hpkg
-haiku.hpkg>data/mime_db/-/<mimedb-app-uhci_mimedb
AddDirectoryToContainerCopyFilesScript <hpkg
-haiku.hpkg>data/mime_db/-/<mimedb-app-ohci_mimedb
AddDirectoryToContainerCopyFilesScript <hpkg
-haiku.hpkg>data/mime_db/-/<mimedb-app-ehci_mimedb
AddDirectoryToContainerCopyFilesScript <hpkg
-haiku.hpkg>data/mime_db/-/<mimedb-app-xhci_mimedb
AddDirectoryToContainerCopyFilesScript <hpkg
-haiku.hpkg>data/mime_db/-/libbe.so_mimedb
AddDirectoryToContainerCopyFilesScript <hpkg
-haiku.hpkg>data/mime_db/-/libmail.so_mimedb
AddDirectoryToContainerCopyFilesScript <hpkg
-haiku.hpkg>data/mime_db/-/libtextencoding.so_mimedb
AddDirectoryToContainerCopyFilesScript <hpkg
-haiku.hpkg>data/mime_db/-/libtracker.so_mimedb
C++ objects/haiku/x86_64/release/servers/app/AppServer.o
Building archive /boot/home/haiku/generated.x86_64/haiku-floppyboot.tgz …
C++ objects/haiku/x86_64/release/servers/app/BitmapManager.o
BuildFloppyBootImage1 haiku-boot-floppy.image
2880+0 records in
2880+0 records out
2949120 bytes (2.9 MB, 2.8 MiB) copied, 0.036121 s, 81.6 MB/s
587+1 records in
587+1 records out
301016 bytes (301 kB, 294 KiB) copied, 0.001733 s, 174 MB/s
7+1 records in
7+1 records out
2296143 bytes (2.3 MB, 2.2 MiB) copied, 0.001755 s, 1.3 GB/s
BuildCDBootImageEFI haiku-boot-cd.iso
GNU xorriso 1.5.2 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev ‘stdio:haiku-boot-cd.iso’
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 284g free
xorriso : WARNING : -volid text is too long for Joliet (20 > 16)
xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA 119 rules
Added to ISO image: file ‘/haiku-boot-floppy.image’=’/boot/home/haiku/generated.x86_64/haiku-boot-floppy.image’
xorriso : UPDATE : 1 files added in 1 seconds
Added to ISO image: file ‘/esp.image’=’/boot/home/haiku/generated.x86_64/esp.image’
Added to ISO image: file ‘/README.html’=’/boot/home/haiku/data/boot_cd/README.html’
xorriso : UPDATE : 3 files added in 1 seconds
ISO image produced: 3065 sectors
Written to medium : 3065 sectors at LBA 0
Writing to ‘stdio:haiku-boot-cd.iso’ completed successfully.

C++ objects/haiku/x86_64/release/servers/app/Canvas.o
C++ objects/haiku/x86_64/release/servers/app/ClientMemoryAllocator.o
C++ objects/haiku/x86_64/release/servers/app/Desktop.o
C++ objects/haiku/x86_64/release/servers/app/DesktopSettings.o
C++ objects/haiku/x86_64/release/servers/app/DrawState.o
C++ objects/haiku/x86_64/release/servers/app/Layer.o
C++ objects/haiku/x86_64/release/servers/app/PictureBoundingBoxPlayer.o
C++ objects/haiku/x86_64/release/servers/app/ServerApp.o
C++ objects/haiku/x86_64/release/servers/app/ServerBitmap.o
C++ objects/haiku/x86_64/release/servers/app/ServerCursor.o
C++ objects/haiku/x86_64/release/servers/app/ServerFont.o
…/src/servers/app/ServerFont.cpp:27:10: fatal error: fontconfig.h: No such file or directory
#include <fontconfig.h>
^~~~~~~~~~~~~~
compilation terminated.

/boot/home/haiku/generated.x86_64/cross-tools-x86_64/bin/x86_64-unknown-haiku-gcc -c “…/src/servers/app/ServerFont.cpp” -O2 -Wall -Wno-multichar -Wpointer-arith -Wsign-compare -Wno-ctor-dtor-privacy -Woverloaded-virtual -Werror -Wno-error=unused-but-set-variable -Wno-error=deprecated -Wno-error=deprecated-declarations -Wno-error=cpp -Wno-error=trigraphs -Wno-error=cast-align -Wno-error=format-truncation -fno-strict-aliasing -fno-delete-null-pointer-checks -fno-builtin-fork -fno-builtin-vfork -nostdinc -DFONTCONFIG_ENABLED -DARCH_x86_64 -DBOOT_ARCHIVE_IMAGE_OFFSET=320 -D__HAIKU_PRIMARY_PACKAGING_ARCH=“x86_64” -DHAIKU_DISTRO_COMPATIBILITY_DEFAULT -DHAIKU_TARGET_PLATFORM_HAIKU -DHAIKU_REGULAR_BUILD -iquote …/build/user_config_headers -iquote …/build/config_headers -iquote …/src/servers/app -iquote objects/common/servers/app -iquote objects/haiku_host/x86_64/common/servers/app -iquote objects/haiku/x86_64/common/servers/app -iquote …/src/servers/app/drawing -iquote …/src/servers/app/drawing/Painter -iquote …/src/servers/app/drawing/interface/local -iquote …/src/servers/app/drawing/interface/remote -iquote …/src/servers/app/stackandtile -iquote …/src/servers/app/decorator -iquote …/src/servers/app/font -I …/headers/libs/agg -I …/headers/private/app -I …/headers/private/graphics -I …/headers/private/input -I …/headers/private/interface -I …/headers/private/kernel -I …/headers/private/shared -I …/headers/private/storage -I …/headers/private/support -I build_packages/freetype-2.9.1-1-x86_64/develop/headers -I build_packages/freetype-2.9.1-1-x86_64/develop/headers/freetype2 -I build_packages/fontconfig-2.13.92-1-x86_64/develop/headers -I build_packages/fontconfig-2.13.92-1-x86_64/develop/headers/fontconfig -I build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64/develop/headers/c++ -I build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64/develop/headers/c++/x86_64-unknown-haiku -I build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64/develop/headers/c++/backward -I build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64/develop/headers/c++/ext -I …/headers/glibc -I …/headers/posix -I build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64/develop/headers/gcc/include -I build_packages/gcc_syslibs_devel-8.3.0_2019_05_24-7-x86_64/develop/headers/gcc/include-fixed -I …/headers -I …/headers/os -I …/headers/os/add-ons -I …/headers/os/add-ons/file_system -I …/headers/os/add-ons/graphics -I …/headers/os/add-ons/input_server -I …/headers/os/add-ons/registrar -I …/headers/os/add-ons/screen_saver -I …/headers/os/add-ons/tracker -I …/headers/os/app -I …/headers/os/device -I …/headers/os/drivers -I …/headers/os/game -I …/headers/os/interface -I …/headers/os/kernel -I …/headers/os/locale -I …/headers/os/media -I …/headers/os/mail -I …/headers/os/midi -I …/headers/os/midi2 -I …/headers/os/net -I …/headers/os/storage -I …/headers/os/support -I …/headers/os/translation -I …/headers/private/. -o “objects/haiku/x86_64/release/servers/app/ServerFont.o”

…failed C++ objects/haiku/x86_64/release/servers/app/ServerFont.o …

BUILD FAILURE:
…failed updating 1 target(s)…
…skipped 8 target(s)…
…updated 126 target(s)…
~/haiku/generated.x86_64>

Done. https://dev.haiku-os.org/ticket/15840

I would remove the generated folder and start from scratch.

But… I just did that… I create the directory and configured the tools no more than about 1.5 hours ago. It said everything was fine! It got something wrong and didn’t know it?

Best way to do this:

  1. Ensure the kernel code was successfly built beforehand by checking for a correlating nightly image.

The one you are currently using may not have a prebuilt nightly image. So, it could just be a faulty commit. Try the latest revision, hrev54010, to retest your dev environment.

Otherwise, you may have something wrong in the dev environment. Try ‘pkgman full-sync’ for completion.
Then, review your installed packages and test compilation again This will help devs track down your issues.

So it looks like fontconfig is missing.
Delete generated/build_packages/fontconfig* and generated/downloads/fontconfig* and run jam again.
There is a known bug in the code that fetches and extract packages during the build, if a download fails, it ends up with a partially downloaded or partially extracted package and that confuses the buildsystem. Deleting the partial package will make it download and extract againm hopefully correctly that time.

Interesting that you should mention that, because I’ve had a bugger of a time getting Haiku to build. It keeps failing at files it’s trying to download or unpack or whatever. And I run Jam again and again and it fails at a different file each time. Finally its failing at the same file/place now. But since you’ve mentioned that, now I’m not sure what to think… is the entire thing all monkey’d up or what? The download of /buildtools and /haiku seemed to go fine. Everything else, too. Except Jam. At one point, Haiku just lost it’s Wifi connection in the middle of a Jam. Rebooted, then it seemed to work ok for awhile (Jam went a lot further), then started Build Failing at different files and… ugh!

Is there an issue with getting files during a Jam? Shouldn’t Jam just do everything offline, to prevent this kinda situation from happening? I mean, isn’t everything you need acquired in the run of pkgman and the download of /buildtools and /haiku and then running configure?

Jam cause download of packages that are used for building, but not need to be installed to system. Downloaded packages are stored in download folder of configure folder. If required files are already downloaded, they are reused.

No. Thats not true.

YES!!! Hallelujah! I FINALLY got a working Anyboot .iso! I installed it to a 32Gb thumb drive and it boots perfectly! Lotsa free space, too! :smiley: