Subject: Re: [boost] [context] Don't hard-code the assembler
From: Steven Watanabe (watanabesj_at_[hidden])
Date: 2014-04-01 22:01:20


AMDG

On 04/01/2014 02:00 PM, Oliver Kowalke wrote:
> I've to restrict the assembler implementation for the combination of
> architecture/address-model/binary-format/ABI
> to one assembler tool - otherwise I would be forced to provide asm-files
> for the assembler tools available (masm, nasm, flat asm, ...)
> - impossible.
>
> <snip>
>

Okay. Here's what I can do:

- define new types ASM_GAS, ans ASM_MASM which
  inherit from ASM. (It's also possible to
  switch on a feature, but I think different types
  is a more correct abstraction.)
- define two new tools gas and masm which can
  be initialized like this and which override
  the default assembler for the corresponding types

  using gas : [command] ;
  using masm : [command] ;

- in your Jamfile, specify the types of the asm files with
  [ cast make_i386_ms_pe_masm asm-masm : asm/make_i386_ms_pe_masm.asm ]

At this point:
- If the assembler provided by the toolset can handle
  the format, then everything should work. (As is
  the case now.)
- If not, then it can be fixed by adding a line to
  user-config.jam or project-config.jam.

It would also be possible for you to try to auto-configure
the assembler, but I'm not sure that's a good idea, since
it overrides the toolset which is supposed to be the
primary means of compiling.

In Christ,
Steven Watanabe