next up previous contents
Next: Variables in Makefiles Up: The Basic SUIF Programming Previous: Vector   Contents


The Makefile System and System Installation

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




next up previous contents
Next: Variables in Makefiles Up: The Basic SUIF Programming Previous: Vector   Contents
David Heine
1999-11-22