3 Makefile System
The makefile system of gamess-component-$VERSION is based on the makefile system of the CCA Toolkit template. We list most of makefiles and shell scripts, describe the purpose and our modification of those files for maintainance and upgrating.
autoconf processes ”configure.in” to produce a ”configure” script. ”configure” is a portable shell script which examines the build environment to determine which libraries are available, which features the platform has, where the libraries and headers are located, and so on [link]. If you need to add or delete an option, just edit ”configure.in” and use autoconf command to generate ”configure” shell script (you must have autoconf installed on your system).
”configure” shell script generates ”MakeIncl.user” from the input file ”MakeIncl.user.in”, where the path variables are specified with actuall locations. ”MakeIncl.user” is included by most of Makefile and shell scripts.
This makefile compiles the gamess-component package. The ”SUBDIRS” list decides which subdirectories the makefile will access and compile. Some customed rules can be added to this makefile. For example, we add ”.legacy” rule for compiling the GAMESS and DDI source codes.
Those makefiles are created for compiling GAMESS, GAMESS wrapper and DDI source code and linking the generated object files to static libraries.
Those shell scripts are copied from GAMESS source with minor modification for compiling GAMESS, GAMESS wrapper and DDI source code.
This makefile compile the server-side implemenation files and generate shared libraries.
Some user defined variables could be here for generating MakeIncl.user under each server-side subdirectory, such as components/GAMESS/cxx and components/drivers/cxx.
Define component with appropriate implementation languages here.
This makefile generates client-side files from the defined sidl interfaces.
Some user defined variables could be here for generating MakeIncl.user under each client-side subdirectory, such as ports/gaussianbasis/cxx and ports/drivers/cxx.
Templates for generating makefiles under client-side subdirectory, such as ports/gaussianbasis/cxx and server-side subdirectory, such as compnents/GAMESS/cxx.