/* 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:46 PST 1992 By muller */ /* Modified On Tue Aug 11 07:56:01 PDT 1992 By kalsow */ /* Standard configuration file for VAX at SRC */ /* In most cases, changing the following parameters is enough: BINDIR, PUBDIR, LIBDIR, MANDIR : 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_VAX #define TARGET CPU_TYPE = vax #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 so; otherwise, the installation will fail, but can be restarted after you have fixed the permissions. */ PREFIX = /proj INSTALL_PREFIX = $(PREFIX) /* The user-accessible executables go there. */ BIN = ultrix/bin BIN_USE = $(PREFIX)/$(BIN) BIN_INSTALL = $(INSTALL_PREFIX)/$(BIN) /* The public interfaces go there. */ PUB = m3/pub.vax PUB_USE = $(PREFIX)/$(PUB) PUB_INSTALL = $(INSTALL_PREFIX)/$(PUB) /* The other files necessary to run Modula-3 go there. */ LIB = m3/lib.vax LIB_USE = $(PREFIX)/$(LIB) LIB_INSTALL = $(INSTALL_PREFIX)/$(LIB) /* The gnuemacs lisp code goes there. */ GNUEMACS_INSTALL = $(INSTALL_PREFIX)/generic/lib /* 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/src 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) dvips -o f.ps f.dvi #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 = /contrib/system/bin/gcc /* 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 = 0 /* When m3(1) receives the -g option, it really passes this to CC */ CC_G = @-g@ /* When m3(1) receives the -O option, it really passes this to CC */ 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 = 1 /* We don't want to use the predefined CFLAGS */ CFLAGS = -traditional /* 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 = @/contrib/system/bin/gcc@-traditional@ PASS2 = @/contrib/system/bin/gcc@-traditional@ 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.SRC