This is a repository for the vmsports_crtl package that is a component of the
VMSPORTS project for VMS.
Its primaary purpose is to provide a repository of common source used for
the VMSPORTS and GNV and other ported projects.
A secondary purpose is to possibly provide a library that is a wrapper for
the VMS CRTL to assist with porting projects. This is much more work.
Projects will copy source from this repo and if needed, customize it to the
If the customizations can be made generic then they should be checked back
in here for continous improvement.
Code submitted here is intended to be under an BSD style licence or LGPL
Possible directory structure under [.reference.vmsports_crtl]:
[.vms] This will be common tools for building and packaging
If this library ever becomes a package the kitting
procedure will be here.
[.configure] These are tools to help with configure scripts.
[.gpl...] These are source modules under GPL that
can only be used with GPL projects.
[.crtl...] These are CRTL supplimental or replacement routines.
Each file submitted here should have a self test. The procedure that
runs the self tests needs to also produce output in JUnit format.
For a supplimental library, the tasks are:
* Set up alternate header files for the C/C++ Compiler to use
* Document how to get C/C++ Compiler to transparently use the alternate
* Document how to link the alternate headers.
* Reliable unit tests.
For VMSPORTS/GNV components that are friendly forks of an open source project,
the reference/ directory will provide a copy of the unmodified upstream source
used for building the package.
For VMSPORTS/GNV components that have the VMS support totally integrated with
the upstream, then the repository here will be empty.
As the vmsports_crtl project is a VMS specific project, the source will be in
the reference/ directory, and the vms_source/ directory is empty.
A VMS concealed logical name of src_root: is for the reference directory and
a VMS concealed logical name of vms_root: is set ot the vms_source directory.
These are kept separate to make it easy to determine what VMS specific changes
where made and to allow retargeting the src_root: to a different version to
easily support maintaining multiple versions such as release, beta, and trunk
at the same time.
The user can then create a logical name of lcl_root: for the directory that
will contain the build products. The lcl_root: directory tree is the only
directory tree that the build procedure should be modifying.
A logcal name search list of prj_root: is set to lcl_root:,vms_root:,src_root:
for building the package.
Mercurial was chosen for the repository as there are clients that can run on
VMS that is native to it.