[botan-devel] build system feature request

john skaller skaller at users.sourceforge.net
Sat Jan 26 09:40:49 EST 2013


Ok, I've had a look at the build system and I'd like to try
for a specification of a feature request.

1. Command option:

python configure.py --pyconfig-data=filename.py .....

This option specifies that the configure.py script will write some data,
as specified below, into filename.py.

2. filename.py format

class botan_data:
	"""
	list of strings of files to be made available for use of library
	"""
	def get_public_include_files()
	
	"""
	list of strings of dirs required to compile the library and tools,
	i.e. to use after -I switches
	"""
	def get_lib_include_dirs()
	"""
	list of source files to be compiled to make the library
	"""
	def get_lib_sources()
	"""
	list of source files to be compiled into executable tools
	"""
	def get_tool_sources()

The format is chosen so the generated file and be imported.

============================================================

Use case: Felix uses fbuild to build things. It is desirable
to embed core third party libraries directly in the build so as
to relieve customers of the burden of configuration.
Felix already embeds Google RE2, Tre, sqlite3.

Felix uses a specific method to build things.
We define a command for building

	compiling static link library code
	compiling dynamic link library code
	linking static libraries
	linking dynamic libraries
	compiling executables
	linking executables

and the compiler switches are "the same" for all code in the system
for each class. Also, libraries are named in a fixed way: felix built
libraries get called something like:

	libflx_libname_static.a
	libflx_libname_dynamic.so

on unix for example. The "flx_" is to prevent a clash with the same
library available externally. The "static" or "dynamic" is to prevent
stupid linkers like ld finding the wrong kind of library.

There's one more hassle: setting BOTAN_DLL. New email for that one :)

--
john skaller
skaller at users.sourceforge.net
http://felix-lang.org






More information about the botan-devel mailing list