[haiku-development] Re: Need help with UEFI and Jam

  • From: Fredrik Holmqvist <fredrik.holmqvist@xxxxxxxxx>
  • To: haiku-development <haiku-development@xxxxxxxxxxxxx>
  • Date: Wed, 21 Aug 2013 20:44:55 +0200

2013/8/18 Ingo Weinhold <ingo_weinhold@xxxxxx>:
> On 08/17/2013 03:28 PM, Axel Dörfler wrote:
>> x86 would be the architecture, efi the platform. Since I'm pretty rusty
>> when it comes to the build system, I don't know how exactly you would do
>> this just for the boot loader.
>> In any case, you are supposed to specify HAIKU_BOOT_PLATFORM=efi when
>> building either when calling jam or in your user build config.
>> There is (AFAIK) no way to use the "configure" script to do this yet.
>
>
> Indeed. If you need to compile the boot loader for x86-64, then I think it
> would be easiest, if you built a x86-64 Haiku, since the build system knows
> only one compiler ATM.

Ah, that clarifies a lot. We probably want an UEFI app distributed on
all x86 images so we can install the EFI bootloader, maybe the efi
platform should be a prebuilt package and the target built manually.

> A few comments regarding your Jamfile:

> This adds the paths to the main include search paths, not the system include
> search paths. If headers are only needed locally, please put them with the
> sources. There's also a UsePrivateHeaders which expects paths relative to
> headers/private, so it may be preferable to use those here.

Ah, that explains when to use UsePrivateHeaders.

>> SubDirCcFlags -fno-pic -D_KERNEL_MODE ;
>
>
> Why _KERNEL_MODE?

I copy pasted it from somewhere, probably just so I'd have an example
of setting flags and defines.

>> local efi_glue_src =
>
>
> While there are no official coding guidelines for Jam code, I'd suggest to
> stick with the guidelines for C/C++ for local variables.

Ok, I'll clean it up when I get it into something that runs.

> I assume the target arch macro is required by the EFI sources/headers? The
> preferred way to define macros is to add them to the DEFINES variable
> (without the "-D").

Yes, IIRC it is used in one or two headers. Can probably be cleaned a
bit later on.

I think I know enough now to get an UEFI app building with Jam. Thanks.

Fredrik Holmqvist, TQH

Other related posts: