# By default nodemngr will assume the name of the system manager host to
# be the name of the host on which it was compiled.

#  Edit the next three lines if necessary.

DEFAULT_SM=`hostname`
INSTALL = install
DEBUG = 


BINDIR = bin/$(ARCH)
OBJDIR = obj/$(ARCH)
LIBDIR = lib/$(ARCH)

OBJ_DIRS = obj $(OBJDIR)
LIB_DIRS =  lib $(LIBDIR)
BIN_DIRS =  bin $(BINDIR)

COPYR = src/include/uw-copyright.h src/include/usc-copyr.h

MKFLS = $(OBJDIR)/Makefile-mgrs $(OBJDIR)/Makefile-ardp \
	$(OBJDIR)/Makefile-libs $(OBJDIR)/Makefile-CMMD 

MACHINE_H = src/include/$(ARCH)/pmachine.h

MGR_EXECS = $(BINDIR)/nodemngr $(BINDIR)/jobmngr \
	$(BINDIR)/sysmngr $(BINDIR)/term_iotask $(BINDIR)/file_iotask

MGR_PROGS = $(OBJDIR)/nodemngr $(OBJDIR)/jobmngr $(OBJDIR)/sysmngr \
	    $(OBJDIR)/term_iotask $(OBJDIR)/file_iotask

all:: install appls

install: $(MGR_EXECS) 
	@-\rm -f .done_$(ARCH)

$(MGR_EXECS):	$(OBJDIR)/$$(@F) 
	@-echo "install $(OBJDIR)/$(@F) $(BINDIR)" ; \
	$(INSTALL) $(OBJDIR)/$(@F) $(BINDIR) ||  \rm -f .done_$(ARCH) 

$(MGR_PROGS): $(OBJ_DIRS) $(BIN_DIRS) $(LIB_DIRS) $(MKFLS) $(COPYR) \
	.done_$(ARCH) $(MACHINE_H)
	@-[ -f .done_$(ARCH) ] || \
	{ cd $(OBJDIR) ; \
	echo "make -f ./Makefile-mgrs DEFINES=\"$(DEFINES) $(DEBUG)\" \
	DSM=\"$(DEFAULT_SM)\"" ; \
	make -f ./Makefile-mgrs DEFINES="$(DEFINES) $(DEBUG)" DSM="$(DEFAULT_SM)" ; }
	@-touch .done_$(ARCH)  

appls:  $(OBJDIR) $(OBJDIR)/Makefile-appl $(COPYR)
	cd $(OBJDIR) ; \
	make -f ./Makefile-appl DEFINES="$(DEFINES)"; 
	

$(MACHINE_H): src/include/$(ARCH) src/include/$$(@F).$(ARCH)
	cp src/include/$(@F).$(ARCH) $@
	
$(OBJ_DIRS) $(BIN_DIRS) $(LIB_DIRS) src/include/$(ARCH): 
	@-[ -d $@ ] || { echo "mkdir $@" ; mkdir $@ ; } 
	
$(MKFLS) $(OBJDIR)/Makefile-appl : src/$$(@F)
	cp src/$(@F) $(@D)


$(COPYR): $$(@F)
	ln -s $(@F) $@

.done_$(ARCH):

clean:: cleanar cleanm cleanl cleanCMMD cleana 

cleanar:
	cd $(OBJDIR) ; make -f Makefile-ardp clean

cleanm:
	cd $(OBJDIR) ; make -f Makefile-mgrs clean

cleanl:
	cd $(OBJDIR) ;  make -f Makefile-libs clean

cleanCMMD:
	cd $(OBJDIR) ;  make -f Makefile-CMMD clean

cleana:
	cd $(OBJDIR) ;  make -f Makefile-appl clean
