general.hpp File Reference

Plans for handling of configuration data regarding external sources. More...

Go to the source code of this file.

Detailed Description

Plans for handling of configuration data regarding external sources.

Handling of version numbers
  • DONE Names like doxygen_supported_not_recommended_version_numbers_okl are misleading (these versions are not "not recommended"), and they are too long. Proposal: doxygen_other_versions_okl
  • And e.g. "gcc_recommended_version_number_okl" should become "gcc_version_okl".
  • E.g. "gcc_recommended_package_name_okl" should become "gcc_package_name_okl".
  • And all other uses of "recommended" should be eliminated.
Remove usage of xxx_targets_prefix_okl : DONE
  • This is a relict of the old system, to be removed.
  • Except where still the old system is used.
Update to the new system
  • Coq
  • Ocaml
  • Postgresql
Software management
  • All information about whether software (like doxygen, gcc etc.) needed is installed locally or system-wide, and where to find it, must be found in the configuration directory (in an easily accesible way).
  • It must be possible to update the system (installing a new gcc, for example), perhaps by setting variables about supported and recommended versions.
  • All definitions for one external source go to for example Buildsystem/ExternalSources/gcc.mak, while ExternalSources/all.mak includes all these files.
  • How we call our internal targets must be decoupled from how packages are called etc.
  • There are several inline-comments in ExternalSources/all.mak, typically referring to apparently stale variables.
  • The variables related to the targets all (should) follow the same scheme, and perhaps should be defined in a general way in the main external-sources makefile (perhaps using a list for all external sources supported, and then generating these variables) ?!
  • The role of Configuration/all.mak must be clarified. DONE (contains all variable setting for making special sources which are general and relate to the version number and/or to the documentation and web pages and other resources provided by the external source)
  • Why do we have to use
    $(shell (type -P $(gpp_system_call)))
    and can't use just
    $(shell type -P $(gpp_system_call))
  • Perhaps we should process all shell-calls in one go?
  • We should improve parsing of version numbers:
    1. Shall we use shell pattern matching or awk?
    2. If using awk, how can we extract the field with the matching content?
    3. We need bash version 3.0 or newer for the regular expression matching operator "=~"; perhaps this is common now.
    4. Newer versions of bash seem to have "[:digit:]", but 3.00.0 doesn't have it, so we better use "[0-9]" instead.

Definition in file general.hpp.