Version 4 (modified by 9 years ago) ( diff ) | ,
---|
The GBGP Repository
The whole GBGP development system is divided into three areas:
- gbgp_src : Deliverable code & supporting development system
- gbgp_doc : User and project documentation
- gbgp_test : Test Folder (test system and its results)
The repository for GBGP can be accessed via the Subversion server at the URL
https://svn.romsaf.org/gbgp/
For a complete list of Subversion commands see the SVN reference manual (version 1.7)
Checking out trunk
To checkout the latest development (trunk) versions:
svn checkout https://svn.romsaf.org/gbgp/gbgp_src/trunk ./trunk svn checkout https://svn.romsaf.org/gbgp/gbgp_doc/trunk ./trunk svn checkout https://svn.romsaf.org/gbgp/gbgp_test/trunk ./trunk
This will check out the source code (with build support), documentation and Test Folder, respectively, to the local working directory (e.g. ~/gbgp/src, ~/gbgp/doc or ~/gbgp/test)
Checking out old release versions
To checkout the older (tagged) release versions:
svn checkout https://svn.romsaf.org/gbgp/gbgp_src/tags/<ver> ./<ver> svn checkout https://svn.romsaf.org/gbgp/gbgp_doc/tags/<ver> ./<ver> svn checkout https://svn.romsaf.org/gbgp/gbgp_test/tags/<ver> ./<ver>
This will check out the tagged source code, documentation, and test folder, respectively to the local working directory. Here, <ver> is the tagged release version, e.g. 1.0, 1.1 etc.
Tags
A tag is just a copy or snapshot of a a particular revision of the repository. In the case of GBGP, a copy taken from the head of trunk at the time that the distribution files for a release were built. You could just as well checkout the revision number instead, but a tag is easier to remember.
Branches
Developments to GBGP should be made from, and committed to, a branch rather than directly to the latest trunk version. This allows changes to be tested before merging the required changes back into the trunk. The trunk therefore represents a stable 'next potential release' state for GBGP. Branches can be temporary and might be for working on resolving a specific Trac Ticket.
Instructions for developers working with branches in GBGP are available here.
Preparation for building
Having checked out gbgp_src
(trunk, tag or branch) some commands need to be run to locally create intermediate configuration and make files not in the repository, before the configure / make / make install
sequence can begin:
aclocal -I m4 --force automake -a -c autoconf
Thereafter, if any changes are made to the low-level configure.ac
or Makefile.am
template files, an autoreconf
should be sufficient. The whole sequence needs to be re-run if any .m4 (macro) file is changed.
Developing new code
In order to add a new sub-directory to the GBGP build system within a module it is necessary to edit the AC_CONFIG_FILES
list of sub-directory Makefiles in the top-level configure.ac
file. It is also necessary to update the SUBDIRS
list of subdirectories in the top-level Makefile.am
file.
To add any new subroutine files to the build system it is necessary to update the build/Makefile.am
file by defining a list of subroutines with a suitable collection name and then adding the collection name to the libropp_<modname>_a_SOURCES
list. If any new F90 modules are to be built, the module names should be added to the MODULES
listing.
All '.f90' and 'Makefile' files are included in the GBGP distribution as default. In order to include other files (e.g. data files) within the GBGP distribution, it is necessary to explicitly define these as EXTRA_DIST
within the Makefile.am
file in the appropriate subdirectory.
Having edited configure.ac
and or Makefile.am
files, type autorconf
to generate the corresponding configure
or Makefile.in
scripts. In order to generate the updated Makefile
script it is necessary to run configure
, usually from a compiler-specific configuration file with the appropriate compiler flag settings and library paths.
autoreconf ropp_configure_<compiler>_<architecture>
Writing documentation
A number of LibreOffice, MS Word and LaTeX template files tailored for GBGP are contained in the repository. To access these to your local machine, you can use:
svn co https://svn.grassaf.org/gbgp/gbgp_doc/trunk/gbgp_templates ./gbgp_templates