A developers' log is provided in several places: First, files Notes.log in the documentation subdirectories of the source tree contain running notes up to 2008. Then, the WikiSpaces facility of sourceforge was used. However, this was discontinued by sourceforge.net. The resulting logs are provided in the documentation directories as WikiNotes.log. Currently, the <a href="http://sourceforge.net/projects/quantity/develop> WordPress facilities of the project provide a means of keeping (and updating) the developers' logs. Since this facility is very slow at least on some internet connections, it was decided in early 2010 to keep text type log files again on local development machines, in order to have a quick running note facility. However, it is suggested to include in the names these files the developer's and machine's name to distinguish different logs and to avoid clashes when submitting to cvs.
Each of the source code directories includes a subdirectory test
which contains test programs. Documentation sources are located in subdirectory documentation
. Supporting macros for the build system are located in subdirectory m4
.
After installation, the following directories are generated and populated:
<_install_directory_>/include/Quantities-<versionnumber>/Quantities
: the header files in the respective subdirectories<_install_directory_>/lib/Quantities-<versionnumber><libtag>
: the (possibly static and shared) libraries; libraries with different libtags are thus installed into different directories. If the libtag is different from an empty string, this encodes the fact whether the library contains debugging information (-d) or is optimized (-o). Selection of a library with particular properties defined by the libtag is easily done by selecting the respective directory.<_install_directory_>/share/Quantities-<versionnumber>
: the documentation files, including the doxygen tag file, and the html as well as the latex subdirectories.Thus, the installed file layout looks like this:
<_install_directory_>
+- include
| +- Quantities-<versionnumber>
| | +- Quantities
| | | +- Quantity
| | | +- PhysicalQuantities
| | | +- GeneralQuantities
| | | +- MathematicalQuantities
+- lib
| +- Quantities-<versionnumber>
| +- Quantities-<versionnumber>-o
| +- Quantities-<versionnumber>-d
| +- Quantities-<versionnumber>-o-d
+- share
| +- Quantities-<versionnumber>
Additional functionality is imported through the boost.m4 macros (latest version, documentation). The most recent download for development was on September 2, 2010. The code was slightly enhanced to accomodate more recent gcc versions (up to 4.5.0).
With the recent autotools (see above), it is no longer necessary to use the bootstrap skript after downloading the cvs code. Rather,
autoreconf --install
After this, the sequence
./configure <options> make make install make check make doc make doc-install
As also mentioned above, libraries compiled and linked according to various configure
options may be installed in the respective subdirectories in the <_install_directory_>/lib
tree. It is important to purge the object files generated by the compilation step, before it is attempted to compile code with different options with
make clean
Note that for linking versions of Quantities with debug information or optimization enabled, the respective versions of the BSUtilities libraries must be available.
make distcheck
for testing<_source_directory>/*/test
make doc
.You should also set the recommended version number of BSUtilities to be used in
Quantities
is a package that is implemented mostly in the form of C++ template classes and functions. It is thus extandable by instantiating additional instances of these templates. An extension needs to define a new dimension, new units, a new base quantity and new derived quantities. In some cases, more simple modifications of existing quantities is possible.
... defaults ...
(to be written)
... needs DerivedQuantity type ...
... needs DerivedQuantityTraits traits template ...
... defaults ...
... define OverwriteName/Symbol bools ...
... if bool set to true -> define the string, if set to false -> no definition of string is necessary ...
... define StorageUnit ...
... decide on the mode ...
... for UniqueConstant: only ONE for a particular derived quantity, unresticted number for a base quantity; if several UniqueConstants are needed based on a base quantity -> use different DQT ...
... can be defined ad hoc without typedef ...
... physical quantities, base quantities, derived quantities ...
... fundamental physical constants (natural constants) ... (to be written)
back to Quantities start page