/* Copyright (C) 1989, 1992 Digital Equipment Corporation                    */
/* All rights reserved.                                                      */
/* See the file COPYRIGHT for a full description.                            */

/* Last Modified On Tue Oct 27 11:26:50 PST 1992 By muller                   */
/*      Modified On Fri Feb 28 14:07:38 PST 1992 By kalsow                   */

/* Standard configuration file for SUN3 */

/* In most cases, changing the following parameters is enough:

      PREFIX, INSTALL_PREFIX,  :  where you want Modula-3 installed
      BUILD_X11R4, XLIBPATH    :  do you have X11R4 ? 
      HAVE_TeX, DVIPS          :  do you have TeX ?

   The other configuration parameters have values that should be ok.
*/

#if !defined (TARGET)
#define TARGET_SUN3
#define TARGET
CPU_TYPE = SUN3
#endif

/* Path names defined in the rest of this file will be prefixed by PREFIX
   or INSTALL_PREFIX, depending on the context. When a path is used 
   in the documentation or in the Modula-3 driver, PREFIX is used. 
   When a file is installed, INSTALL_PREFIX is used. That is, if PREFIX
   is 'a', INSTALL_PREFIX is 'b' and LIB is 'c', the Modula-3 driver
   will look for the Modula-3 runtime in 'a/c', but 'make install' will
   attempt to put it in 'b/c'.

   During the installation, destination directories that do not exists 
   will be created. You need the necessary permissions to do; otherwise,
   the installation will fail, but can be restarted after you have 
   fixed the permissions. */

PREFIX = /usr/local
INSTALL_PREFIX = $(PREFIX)

/* The user-accessible executables go there. */
BIN = bin
BIN_USE     = $(PREFIX)/$(BIN)
BIN_INSTALL = $(INSTALL_PREFIX)/$(BIN)

/* The public interfaces go there. */
PUB = include/m3
PUB_USE     = $(PREFIX)/$(PUB)
PUB_INSTALL = $(INSTALL_PREFIX)/$(PUB)

/* The other files necessary to run Modula-3 go there. */
LIB = lib/m3
LIB_USE     = $(PREFIX)/$(LIB)
LIB_INSTALL = $(INSTALL_PREFIX)/$(LIB)

/* The gnuemacs lisp code goes there. */
GNUEMACS_INSTALL = $(INSTALL_PREFIX)/lib/elisp

/* The manual pages normally go in subdirs man{1,...8} of MAN.
   If you prefer to have them in a given section, say l,
   define MAN_SECTION */
MAN = man
MAN_USE  = $(PREFIX)/$(MAN)
MAN_INSTALL = $(INSTALL_PREFIX)/$(MAN)
/*#define MAN_SECTION l*/


/* If you have X11R4 installed and would like the X11R4 binding interfaces
   to be built, define BUILD_X11R4, set XLIBPATH to be the colon
   separated list of directories in which to find the X libraries, and
   set XLIB to be the list of libraries to link with: if you use the 
   MIT server with DECnet support, you need X11 and dnet, otherwise
   X11 should be enough.
   
   Since X11R5 is an extension of X11R4, you can use the X11R5 libraries
   instead of X11R4.  However, the Modula-3 binding interfaces have not
   yet been upgraded to X11R5. */
#define BUILD_X11R4

#if defined(BUILD_X11R4)
XLIBPATH = /usr/local/lib
XLIB     = -lX11
#endif

/* If you have TeX, define HAVE_TeX and define DVIPS to convert DVI files
   to PostScript (or whatever your printer accepts). This will allow 
   processing of the implementation notes. */
#define HAVE_TeX

#if defined (HAVE_TeX)
#define DVIPS(f) dvi2ps f.dvi > f.ps
#endif

/* CC is the compiler that will be used to compile C code that
   is part of the distribution.

   Note: the value of this symbol must not use the values of
   other symbols. */
CC = /bin/cc
 
/* Set CC_WARNS_FOR_UNKNOWN_FILES to 1 if CC issues a warning if
   you try to link filenames with an extension .io or .mo;
   in that case, the m3 driver will change the names of those files.
   Otherwise, set this symbol to 0 and m3 will run faster. */
CC_WARNS_FOR_UNKNOWN_FILES = 1

/* When m3(1) receives the -g option, it really does this */
CC_G = @-g@

/* When m3(1) receives the -O option, it really does this */
CC_O = @-O@
 
/* Give the value 0 if you want the m3 driver to pass -L/-l arguments to 
   LD for libraries; otherwise (value = 1), the m3 driver will pass 
   the full path name of the librairies it located */
KEEP_LIBRARIES_RESOLVED = 0

/* We don't want to use the predefined CFLAGS */
CFLAGS = 
 
/* Default optimization for Modula-3 programs (using m3makefiles) */
M3OPT = -g

/* Default optimization for the boostrap compiler and driver */
BOOTOPT = -g

/* Imake may need to be configured */
IMAKEFLAGS =

/* Some versions of make(1) let us specify the shell to use. In any
   case, we want sh */
SHELL = /bin/sh

/* What about CPP ?

   Note: the value of this symbol must not use the values of other symbols. */
CPP = /lib/cpp

/* What about MAKE ?

   Note: the value of this symbol must not use the values of other symbols. */
MAKE = make
   
/* And install ? */
#define INSTALL(f,d,p) install -c -m p f d

/* Here are the pieces that the Modula-3 driver needs.
    PASS0: the Modula-3 to C compiler
    PASS1: the C compiler, with options to compile Modula-3 code
    PASS2: the C compiler, with options to link Modula-3 code
    PASS3: ar, to build archives
    PASS4: ranlib, to create the table of contents in archives
    PASS5: the linker, with options to create an overlay

   The syntax for each piece is @pgm@arg1@...@argn@.  You can use
   another character than @ as a separator, but you need to change SEP.

   When a "base" program is built BASE_ARGS are added to the PASS2 arguments.

   When an overlay is built the following commmand is constructed:
       PASS5  base.b  OVERLAY_0  -o overlay.ov  objects...  OVERLAY1
   where "base.b" is the base program that will load the overlay,
   "overlay.ov" is the name of the new overlay and "objects..." is
   the list of object modules to include in the overlay.

   Note: the driver only creates plain archives.  The templates
   take care of building the shared libraries. */
SEP   = @
PASS0 = @$(LIB_USE)/m3compiler@
PASS1 = @$(CC)@
PASS2 = @$(CC)@
PASS3 = @/bin/ar@cru@
PASS4 = @ranlib@
PASS5 = @/bin/ld@-A@
OVERLAY_0 = @-g@
OVERLAY_1 = @-lc@
BASE_ARGS = @-N@

/* The maximum size (in megabytes) that Pass0 is allowed to reach as
   a persistent server before the driver kills it.  Setting SERVER_LIMIT
   to zero disables the server mode. */
SERVER_LIMIT = 0
/* NOTE: the compiler is buggy, leave SERVER_LIMIT alone! */

/* The default path to search for Modula-3 interfaces.  The standard
   interfaces are installed in PUB. */
DEFPATH = .:$(PUB_USE)

/* The default path to search for libraries.  The standard
   Modula-3 libraries are installed in LIB.  This path does not
   need to include directories searched by default by cc(1) if
   they don't contain libraries with Modula-3 code. */
#if defined (BUILD_X11R4)
LIBPATH = .:$(LIB_USE):$(XLIBPATH)
#else
LIBPATH = .:$(LIB_USE)
#endif

/* These files are systematically linked with Modula-3 programs. The
   first symbol is used for bootstrap programs. */
LINKBFILES = @-lm@
LINKFILES = @-lm3@-lm@

/* These files are linked with Modula-3 programs when -Z is specified. */
LINKCOVER  = $(LIB_USE)/report_coverage.o

/* The C code generated by the Modula-3 to C translator #include's some
   basic files, to be found in this directory. */
INCL = $(LIB_USE)

/* The template to use for m3make(1) */
TEMPLATE = toplevel.tmpl
