[botan-devel] build system feature request

john skaller skaller at users.sourceforge.net
Tue Jan 29 19:48:39 EST 2013

On 30/01/2013, at 5:06 AM, Jack Lloyd wrote:

> I like this in concept.

You really need three scripts IMHO.

1. Guess params
2. Calculate abstract build instructions (from params)
3. Convenience concrete build (makefile)

In more detail:

Script 1

Script 1 calculates things by guessing, or maybe user inputs.
Stuff like: do you want inline assembler? Do you want
to use OpenSSL? Is the header for XYZ.h available?
Do you have SSSE3?

This script CANNOT WORK unless the build is performed
on the client host platform. So it is a convenience hack.

For example, the build system could be Debian Autobuilder
with SSSE3 but the client processor may not have SSSE3.

For example, the build and host may be Linux, but I could
be cross compiling for Windows.

So it's important to understand this script is a convenience
guess, so it must output a file which is editable, and
in a format which can be generated by the client
some other way. It's a "thank you for helping but you
don't own these decisions" file.

This script is the rough analogue of "autoconf",
just please written in Python and not M4 :)

[I will not deploy this script on my system]

Script 2

This script uses the output of script 1 to calculate which
Botan files can be compiled, and perhaps some other

**** This script is entirely platform independent *****

It's a mathematical computation only. It may change
when the code in Botan or the layout of Botan changes.
It's purpose is to isolate the client builder from
the structure of Botan.

[I want to invoke this script directly on my system.
In particular I want to be able to scrub Botan
and reload it from upstream without ANY patches,
and this script is what allows YOU to change Botan
whilst I do not have to care]

Script 3

This is a convenience hack script which helps with
popular platforms by generating a makefile from
the output of script 2.

You could have more than one of these scripts.

[I will not deploy this script on my system]

Hope this helps!

john skaller
skaller at users.sourceforge.net

More information about the botan-devel mailing list