Boost logo

Boost-Build :

Subject: [Boost-build] Extending bjam to compile C# source using mono
From: Deane Yang (deane_at_[hidden])
Date: 2015-09-07 16:55:27

I am trying to extend Boost Build to compile C# files using csc.exe on
Windows and msc (Mono compiler) on Linux and OS X.

First, for backward compatibility reasons, I am using version 1.49.0 of
boost and building Boost Build v2 using the source provided in that

The main issues I'm running into are the following:
1) How do I set up platform-dependent compiler names and option delimiters
(/ for windows and - for other OS's)?
2) How do I create a "library" that is called <library name>.dll on all
platforms rather than, say, lib<library name>.dylib on OS X?
3) Most importantly, how do I get the right path to the output of a target?
When I do the following on OS X:

feature cs-reference : : free dependency path ;
flags mcs.make-exe CS_REFERENCE <cs-reference> ;
actions make-exe
  mcs -target:exe -r:$(CS_REFERENCE) -out:$(<) $(>)

and my Jamfile has

lib cslib : cs_source

exe test : test.cs
                    : <cs-reference>cslib

and I do "bjam -n", I get

mcs -target:exe
-out:bin/darwin-4.2.1/debug/address-model-64/threading-multi/test test.cs

Note the spurious "<p" and ">" in the option "-r:". How do I get rid of

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at