#
#	This is the Makefile for the intermodule checker
#

#
#	WARNING: This Makefile is derived from the corresponding Metafile.
#	Don't even try to edit this file.  Instead, edit the Metafile, then
#	do a ``make Makefile''.
#
#	If you alter Metafile.defines in the top-level Modula-2 directory,
#	then you should do a ``make Makefiles'' to rederive all Makefiles
#	in all directories.


########################## Common Definitions ###############################

# Defines for conditional processing

VAX         = FALSE
MIPS        = TRUE
ARCH        = mips


# Top-level directory for installation.  Define as /tmp/ to test installation.
# Note that if you define DESTDIR, it must have a trailing /.
DESTDIR     = 
# Directory for installing libmod.a
LIBDIR      = /usr/local/lib
# Directory for installing the passes of the compiler
PASSESDIR   = /usr/local/lib/mod
# Directory for installing the .def files we provide
DEFSDIR     = /usr/local/defs
# Directory for installing the man pages for mod and p2m2
MANDIR      = /usr/man/manl
# Directory for installing the binaries mod and p2m2
BINDIR      = /usr/local/bin

# Name of Modula-2 driver program
MODBINNAME  = mod
# Name of Pascal driver program
PCBINNAME   = wrlpc
# Name of Pascal to Modula-2 converter program
P2M2BINNAME = p2m2
# Name of Modula-2 statement-level profiler
MODPROFBINNAME = modprof
# Name of Modula-2 preprocessor
PREPBINNAME = prep

# Name of directory in which Modula-2 library, compiler passes reside
TESTLIBDIR  = /pandora_a1/m2/m2-$(ARCH)/lib

# Defines for VMS
REMOTENODE = ophion::


# Defines for various utilities.  You may not have all these flags if you
# aren't running a recent release.  So set them according to your system's
# capabilities before trying to install anything.


# rm -f forces removal without asking question or reporting file not found
RM          = rm -f

# cp -p preserves modification data, etc.
CP          = cp -p

# mkdir -p creates intermediate directories as needed
MKDIR       = mkdir -p

RDIST       = rdist -c -h
LOCALHOST        = localhost:

########################## End of Definitions ###############################


REMOTEDIR = '[m2.imc]'
.SUFFIXES:
.SUFFIXES: .o .mod .def .c

CC = cc
CFLAGS = -O

MOD = ../mod/mod
TITAN = FALSE
MODFLAGS = -a -g -O -C -Dtitan=$(TITAN) -Dvax=$(VAX) -Dmips=$(MIPS) -B../lib

.def.mod:
	touch $*.mod
.mod.o:
	$(MOD) -c $(MODFLAGS) $*.mod
.c.o:
	$(CC) -c $(CFLAGS) $*.c

COMMONOBJS = imc.o execute.o list.o numtab.o porttab.o symtab.o Strings.o \
	FileInfo.o MemLib.o memlibc.o fileinfo.o aOut.o stab.o

OBJS = $(COMMONOBJS) mips.o ProcessMips.o

all:	mod2.2

test:	$(OBJS)
	$(MOD) -v -c $(MODFLAGS) -M $(OBJS)
imc:	$(OBJS)
	$(MOD) -o imc $(MODFLAGS) -m"$(MODFLAGS)" $(OBJS)
mod2.2:	$(OBJS)
	$(MOD) -o mod2.2 $(MODFLAGS) -m"$(MODFLAGS)" $(OBJS)
oops:	$(OBJS)
	$(MOD) -o imc $(MODFLAGS) $(OBJS)

Makefile: Metafile ../Metafile.defines
	mv Makefile Makefile.bak
	../prep/prep -Dvax=$(VAX) -Dmips=$(MIPS) <Metafile > Makefile

quickinstall: ${DESTDIR}$(PASSESDIR)
	install -c -s mod2.2 ${DESTDIR}$(PASSESDIR)/mod2.2

install: ${DESTDIR}$(PASSESDIR) ${DESTDIR}$(PASSESDIR)/mod2.2

${DESTDIR}$(PASSESDIR):
	-test -d $@ || $(MKDIR) $@

${DESTDIR}$(PASSESDIR)/mod2.2: mod2.2
	install -c -s mod2.2 ${DESTDIR}$(PASSESDIR)/mod2.2

checkin:
	ci -l -f -m"Checkin before VMS? changes"\
	-s"Experimental" \
	FileInfo.def FileInfo.mod aOut.def aOut.mod fileinfo.c \
	execute.def execute.mod imc.mod \
	list.def list.mod numtab.def numtab.mod porttab.def porttab.mod \
	stab.def stab.mod symtab.def symtab.mod Makefile

clean:
	-$(RM) *.o imc
