#*****************************************************************
#**                                                             **
#**             (C) Copyright 1992 the Regents of the           **
#**        University of California.  All Rights Reserved.      **
#**                                                             **
#**        This work was produced under the sponsorship of      **
#**         the U.S. Department of Energy.  The Government      **
#**                retains certain rights therein.              **
#**                                                             **
#**                         Written by                          **
#**         Distributed Programming Environments Project        **
#**           Computer Software and Networking Division,        **
#**                   Livermore Computer Center,                **
#**            Lawrence Livermore National Laboratory           **
#**                                                             **
#*****************************************************************

#	sccsid:		"@(#)Makefile	1.10 11/13/92 12:11:51 LLNL "

#
#	Make ELROS driver
#

#
# The following macros need to be appropriately defined.
#
#   RO_DIR - ELROS directory
#   RO_SWITCHES - C compilation flags and options
#   RO_PLATFORMS - ISODE or PURESOCKETS or ISODE_and_PURESOCKETS
#
#
# This will build a driver linked to the runtime and preprocessor directories
# of the specified RO_DIR.  If you wish to link to a different runtime 
# or preprocessor from the one in RO_DIR, you may define the following macros
# on the command line. 
#
#   RO_RUNTIME_DIR - path for runtime library
#   RO_PREPROCESOR_DIR - path for preprocessor
#
# If you want to build a verbose version of the driver ("echoes" all steps
# in an ELROS "compilation"), you should define the following macro on
# the command line to be 1 to override its default value of 0.
#
#   RO_DEBUG - disable or enable verbose version of driver
#

include ../Make.Defaults

#
# Paths and files
#
DISTFILES= README Makefile ecc.c sam.ec

#
# Local macros
#
RO_DEBUG=0

#
# Targets
#
all:	showenv$(RO_PLATFORMS) ecc
	@$(ECHOTEXT)
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) "Driver is up to date"
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT)

showenvPURESOCKETS:
	@$(ECHOTEXT)
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'Building new driver'
	@$(ECHOTEXT)
	@$(ECHOTEXT) RO_DIR=$(RO_DIR)
	@$(ECHOTEXT) RO_SWITCHES=$(RO_SWITCHES)
	@$(ECHOTEXT) RO_PLATFORMS=$(RO_PLATFORMS)
	@$(ECHOTEXT) RO_PREPROCESSOR_DIR=$(RO_PREPROCESSOR_DIR)
	@$(ECHOTEXT) RO_RUNTIME_DIR=$(RO_RUNTIME_DIR)
	@$(ECHOTEXT) RO_DEBUG=$(RO_DEBUG)
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT)

showenvISODE showenvISODE_and_PURESOCKETS:
	@$(ECHOTEXT)
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT) 'Building new driver'
	@$(ECHOTEXT)
	@$(ECHOTEXT) RO_DIR=$(RO_DIR)
	@$(ECHOTEXT) RO_SWITCHES=$(RO_SWITCHES)
	@$(ECHOTEXT) RO_PLATFORMS=$(RO_PLATFORMS)
	@$(ECHOTEXT) RO_PREPROCESSOR_DIR=$(RO_PREPROCESSOR_DIR)
	@$(ECHOTEXT) RO_RUNTIME_DIR=$(RO_RUNTIME_DIR)
	@$(ECHOTEXT) RO_DEBUG=$(RO_DEBUG)
	@$(ECHOTEXT) $(BORDER)
	@$(ECHOTEXT)

ecc:	ecc.c
	$(MAKE) $(D)RO_RUNTIME_DIR=$(RO_RUNTIME_DIR) \
		$(D)RO_PREPROCESSOR_DIR=$(RO_PREPROCESSOR_DIR) \
		$(D)RO_SWITCHES="$(RO_SWITCHES)" \
		ecc$(RO_PLATFORMS)

eccPURESOCKETS: ecc.c
	$(CC) $(RO_SWITCHES) -$(DEFINE)RO_DIR=\"$(RO_DIR)\" \
		-$(DEFINE)RO_RUNTIME=\"$(RO_RUNTIME_DIR)\" \
		-$(DEFINE)RO_PREPROCESSOR=\"$(RO_PREPROCESSOR_DIR)\" \
		-$(DEFINE)VERBOSE=$(RO_DEBUG) $(COPTS) ecc.c
	$(LD) -o ecc ecc.$(OSUFFIX) $(CLIBS)

eccISODE eccISODE_and_PURESOCKETS: ecc.c
	$(CC) $(RO_SWITCHES) -$(DEFINE)RO_DIR=\"$(RO_DIR)\" \
		-$(DEFINE)RO_RUNTIME=\"$(RO_RUNTIME_DIR)\" \
		-$(DEFINE)RO_PREPROCESSOR=\"$(RO_PREPROCESSOR_DIR)\" \
		-$(DEFINE)__RO_PLATFORM_ISODE \
		-$(DEFINE)VERBOSE=$(RO_DEBUG) $(COPTS) ecc.c
	$(LD) -o ecc ecc.$(OSUFFIX) $(CLIBS)


#
# Housekeeping targets
#
new:	clean

clean:
	$(RM) ecc.o ecc


#
# For the "package" target, the following macro must be defined on the 
# command line:
#
#    RO_DIST_DIR - directory where distribution files are to be copied
#
package:  $(DISTFILES)
	$(CP) -p $(DISTFILES) $(RO_DIST_DIR)

#
# For the "install" target, the following macro must be appropriately 
# defined.
#
#   RO_INSTALL_DIR - directory where installed files should be copied
#
MY_INSTALL_DIR=	$(RO_INSTALL_DIR)/driver

install: $(DISTFILES) $(MY_INSTALL_DIR)
	$(MV) -f $(RO_INSTALL_DIR)/archive/driver.tar \
		$(RO_INSTALL_DIR)/archive/old.driver.tar
	$(TAR) -cf $(RO_INSTALL_DIR)/archive/driver.tar $(MY_INSTALL_DIR)/*
	$(RM)  $(MY_INSTALL_DIR)/*
	$(FOR) i in $(DISTFILES); $(DO) ( \
		$(CP) -p $$i $(MY_INSTALL_DIR); \
		$(CHMOD) 444 $(MY_INSTALL_DIR)/$$i; \
	); $(DONE)
	$(CD) $(MY_INSTALL_DIR); $(MAKE)


