#
#	This is the global Makefile to make and install the entire
#	Modula-2 release.
#

$INCLUDE "Metafile.defines"

# Names of VMS directories (not yet supported)
$CONST WantVMS = FALSE
REMOTEDIR = '[.m2]'
SUBJECT    = "Here are the results of the remote make (MMS on VMS)."
REMOTENODE = ophion::

$IF WantVMS THEN
	To automatically update your local VMS node, uncomment the following
	section and comment out the section after that.

all : makemod.com descrip.mms
	(cd mod	    ; make all)
	(cd lib	    ; make all)
	(cd mod2    ; make mod2.0)
	(cd imc	    ; make mod2.2)
	(cd xlate   ; make mod2.1)
	(cd test    ; make test)
	@echo "Submitting makemod.com to $(REMOTENODE) for MMS on VMS."
	@dcp -S makemod.com $(REMOTENODE)

$ELSE
all :
	(cd doc     ; make all)
	(cd mod	    ; make all)
	(cd prep    ; make all)
	(cd lib	    ; make all)
	(cd mod2    ; make mod2.0)
#	(cd mod2    ; make mod2.0 mod2.0t)
	(cd imc	    ; make all)
$IF vax THEN
	(cd pascal  ; make pas2.0)
#	(cd pascal  ; make pas2.0 pas2.0t)
	(cd xlate   ; make all)
	(cd p2m2    ; make all)
$END
	(cd modprof ; make all)
	(cd bench   ; make -i all)
#	(cd test    ; make all)
$END (* if vms ... else ... *)

Makefile: Metafile Metafile.defines
	$(CP) Makefile Makefile.bak
	(cd mod     ; make mod)
	(cd prep    ; make prep)
	prep/prep -Dvax=$(VAX) -Dmips=$(MIPS) <Metafile > Makefile

Makefiles:
	              make Makefile
	(cd doc     ; make Makefile)
	(cd mod     ; make Makefile)
	(cd prep    ; make Makefile)
	(cd lib     ; make Makefile)
	(cd mod2    ; make Makefile)
	(cd imc     ; make Makefile)
$IF vax THEN
	(cd pascal  ; make Makefile)
	(cd xlate   ; make Makefile)
	(cd p2m2    ; make Makefile)
$END
	(cd modprof ; make Makefile)
	(cd bench   ; make Makefile)
#	(cd test    ; make Makefile)

quickinstall:
	(cd doc	    ; make quickinstall)
	(cd mod	    ; make quickinstall)
	(cd prep    ; make quickinstall)
	(cd lib	    ; make quickinstall)
	(cd mod2    ; make quickinstallmod2.0)
#	(cd mod2    ; make quickinstallmod2.0 quickinstallmod2.0t)
	(cd imc	    ; make quickinstall)
$IF vax THEN
	(cd pascal  ; make quickinstallpas2.0)
#	(cd pascal  ; make quickinstallpas2.0 quickinstallpas2.0t)
	(cd xlate   ; make quickinstall)
	(cd p2m2    ; make quickinstall)
$END
	(cd modprof ; make quickinstall)

install :
	(cd doc	    ; make install)
	(cd mod	    ; make install)
	(cd prep    ; make install)
	(cd lib	    ; make install)
	(cd mod2    ; make installmod2.0)
#	(cd mod2    ; make installmod2.0 installmod2.0t)
	(cd imc	    ; make install)
$IF vax THEN
	(cd pascal  ; make installpas2.0)
#	(cd pascal  ; make installpas2.0 install pas2.0t)
	(cd xlate   ; make install)
	(cd p2m2    ; make install)
$END
	(cd modprof ; make install)

release:
	maketar m2.tar
	-$(RM) m2.tar.Z
	compress m2.tar

clean :
	(cd doc	    ; make clean)
	(cd mod	    ; make clean)
	(cd prep    ; make clean)
	(cd lib	    ; make clean)
	(cd mod2    ; make clean)
	(cd imc	    ; make clean)
$IF vax THEN
	(cd pascal  ; make clean)
	(cd xlate   ; make clean)
	(cd p2m2    ; make clean)
$END
	(cd modprof ; make clean)
	(cd bench   ; make clean)

checkin :
	(cd doc     ; make checkin)
	(cd mod	    ; make checkin)
	(cd prep    ; make checkin)
	(cd lib	    ; make checkin)
	(cd mod2    ; make checkin)
	(cd imc	    ; make checkin)
$IF vax THEN
# don't checkin pascal, uses same files as mod2
	(cd xlate   ; make checkin)
	(cd p2m2    ; make checkin)
$END
	(cd modprof ; make checkin)

makemod.com : Makefile
	@echo "Re-creating the submit file: $@"
	@echo \$$ SET VERIFY > $@
	@echo \$$ SET DEFAULT $(REMOTENODE)$(REMOTEDIR) >> $@
	@echo \$$ "@NEWMOD" >> $@
	@echo \$$ MMS/OUTPUT=MAKE.LOG >> $@
	@echo \$$ MAIL MAKE.LOG $${HOST}::$${USER} /SUBJECT='$(SUBJECT)' >>$@
	@echo \$$ SET NOVERIFY >> $@

descrip.mms : Makefile
	@echo "Please update $@ and copy it to $(REMOTENODE)$(REMOTEDIR)."
