[botan-devel] Building Botan trunk on Windows

john skaller skaller at users.sourceforge.net
Tue Feb 11 01:40:03 EST 2014

On 11/02/2014, at 9:50 AM, Jack Lloyd wrote:

>> Second, after I built boost-filesystem I couldn't figure out a way to tell
>> configure.py where to find it (to build a shared lib).
> At the moment configure.py doesn't know how to deal with this at all, something
> which affects the use of any of the 3rd party libs (zlib, etc). I plan to have
> better support for this in the future but at the moment having libs in
> 'unexpected' (ie outside of the normal compiler search path) requires directly
> hacking the generated makefile to add the appropriate -L/path/to/lib flags.

I throw out configure scripts and make files :)

I require user supplied database of *.fpc (flx_pkgconfig)
files. Like this one:

~/felix>less src/config/unix/judy.fpc
Name: Judy
Description: Judy arrays
provides_dlib: -ljudy_dynamic
provides_slib: -ljudy_static
includes: '"Judy.h"'
library: judy
srcdir: src/judy/src
headers: Judy\.h
src: (JudyCommon/JudyMalloc|JudySL/.*|JudyHS/.*|Judy1/.*|JudyL/.*)\.c
build_includes: src/judy/src src/judy/src/Judy1 src/judy/src/JudyL src/judy/src/JudyHS src/judy/src/JudyCommon

This has all the information required to 

(a) Build Judy
(b) Use Judy

Client programs in Felix say:

	package require "judy";

and the rest is automatic. I haven't implemented yet but my tool will also
build C++ now. I would use something like:

	//$@package require "judy";

The header includes for C++ are a bit tricky. 

So basically, Makefiles suck,  auto*tools suck even more.
And none of that stuff can choose the desired compiler or
switches, selection options, or cross compile. My method
handles all those things by

	(a) a configure script guesses the right package contents
	(b) the user can edit them
	(c) the build system works entirely off the package files

The key point is (b). You can see the package files are plain
old text files with more or less "obvious" contents, so anyone
can create or edit a configuration, given instruction on 
what Botan expects.

john skaller
skaller at users.sourceforge.net

More information about the botan-devel mailing list