A simple but flexible make system is used by the system. It is driven by the file Makefile.std in the nci directory.
At present the system works on Linux, OSF (Alpha) and Sun Solaris. If you are porting to other systems, you may encounter problems. In that case, please ask for help if you need it, and we would like to merge any changes you have to make back into the main system. We recommend that you use egcs version 2.91 or later, or the newest merged gcc, 2.95 or later. (The system will also compile with Microsoft C but the system build process is totally different).
Makes can be initiated in any directory, just by typing ``make'', or possibly ``gmake'' if your make command does not invoke gmake. The directory and all its sub-directories are made.
A number of options files are available for configuration of the make
system. These files are all included with the
``install'' command so that no error is given if the
file does not exist. The options files are included in this order:
-include $(NCIHOME)/Makefile.options.$(COMPILER_NAME)
-include $(NCIHOME)/Makefile.options.$(ARCH)
-include $(NCIHOME)/Makefile.options.$(HOSTNAME)
-include $(NCIHOME)/Makefile.options.$(LOGNAME)
Normally, the last two will not exist. These allow you to configure
the make system for a particular platform or for a particular
user.
You should avoid changing the Makefile.std except to fix bugs therein since if your changes are not accepted back into the main distribution you will have to continue changing this in the future.
The following variables may need to be changed in options files for your environment. Some of this is handled automatically by the install script described later:
| variable | default | description |
| SHARED_LIB_FLAGS | -shared |
Flag required on build of shared library |
| DYNAMIC_LINKING_LIBRARY | -ldl |
Library containing dynamic link routines (dlopen etc) |
| STATIC_LIBEXT | .a |
Extension used for static libraries |
| DYNAMIC_LIBEXT | .so |
Extension used for dynamic libraries |
| CCFLAGS | -g |
Compiler flags |
| SYSINCLDIRS | -I. -I$(BASETYPEDIR) |
Standard include directories |
| DEPSFLAG | -M |
Flag used with C++ compiler to generate dependencyfiles |
| CC | gcc | Compiler name for C compiler |
| CXX | g++ | Compiler name for C++ compiler |
| AWK | gawk | The name of the awk processor, Usually gawk or nawk, not plain awk |