Quantitative Analysis
Parallel Processing
Numerical Analysis
C++ Multithreading
Python for Excel
Python Utilities

I. Python Object Browser.
II. Python to R Communicator.
III. Manipulation of piecewise polynomial functions.
IV. Building C++ projects.
1. Why not use bjam?
2. Installation of ots.make.
3. Code structure (ots.make).
4. Example. Building boost::python DLL.
5. Example. Building boost::python extension involving Cuda code.
6. Example. Building in-process COM DLL with embedded boost::python engine.
Downloads. Index. Contents.

Why not use bjam?

ssuming a nontrivial project, following technology developments for years, what are chances of encountering a situation when bjam does not do it for unclear reason and googling for the problem does not pop up with a solution? My experience says it is a certainty. When that happens one falls back on make files. But then all the previous bjam development becomes useless. Why then use bjam? I do not know answer to this question.

Naturally, one could study implementation details of bjam. It is a judgement call. For me, the idea of inventing another scripting language is a big red flag.

Approaching the matter from a different direction, generalizing over project building is out there with generalizing over html building, generalizing over Monte-Carlo simulation or generalizing over features of financial contracts. There are three important traits in such activities:

1. It is very simple.

2. It is very diverse.

3. Every detail counts.

In such situation, every library is as generic as useless and as useful as lacking generality. Simplicity prevents forming of sufficiently large community, thus, only a small subset of practical questions would be answered on the web. Breaking such tendency has to be a stroke of genius. Until such genius emerges, every programmer is for himself.

I do not advocate ignorance, however. For example, the -d+2 option of bjam package has always being a very useful source of information for me. Similar remark may be made about many other libraries out there that I slightly use.

Why then, am I proposing another library? I had to make it to cover my needs. So now I have it and I am offering to share it. The library is not general but covers all C++ activities on this web-site. The main code is roughly 300 lines and is localized in the files makeFile.py and rules.py in the directory OTSProjects/python/ots/make/generator. The rest is enumeration of compiler and linker options with doc strings. Features are added as life develops.

Downloads. Index. Contents.

Copyright 2007