#################################################################
#
# Makefile for cluster_install part
# install of the NMEN
#
#
# Copyright 2001 Sun Microsystems, Inc. All rights reserved.
#
##################################################################

RM    = /usr/bin/rm
TOUCH = /usr/bin/touch

#
# install_os tools directory
#
INSTALL_LIB_TOOLS=$(NHINSTALL_LIB)/tools/lib/
INSTALL_OS_TOOLS=$(NHINSTALL_LIB)/tools/install_os/
INSTALL_OS_TOOLS_COMMON=$(NHINSTALL_LIB)/tools/install_os/common
INSTALL_OS_TOOLS_SOL=$(NHINSTALL_LIB)/tools/install_os/$(target_os)

all: setup_solaris_services patchadd_nmen rbs nhas2_nmen

nhas2_nmen: nhadm cgtp cmm pmd ma addon_fnmen end

ma: jdk_install ma_local_install

setup_solaris_services: smosservices disklessenv disklesspkg addon_snmen 

#
# cleardiskless calls all modules deleting directories when recovered
#
cleardiskless: 
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_diskless.pl \
		-z 0 \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_diskless.pl \
		-z 0 \
		-W $(WORKING_DIR) \
		-n 2 \
		$(DEBUG_FLAG)
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_solaris.pl \
		-z 0 \
		-S $(SOLARIS_DIR) \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_solaris.pl \
		-z 0 \
		-S $(SOLARIS_DIR) \
		-W $(WORKING_DIR) \
		-n 2 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/*

#
# OS services
#
smosservices: $(STAGES_DISKLESS_DIR)/SERVICES_MEN1_DONE $(STAGES_DISKLESS_DIR)/SERVICES_MEN2_DONE 

#
# also create the diskless under installation indicator
#
$(STAGES_DISKLESS_DIR)/SERVICES_MEN1_DONE:
	$(TOUCH) $(STAGES_DISKLESS_DIR)/DISKLESS_INSTALL_RUNNING
	if [ -f $(STAGES_DISKLESS_DIR)/SERVICES_MEN1_RUNNING ] ;\
	then $(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_solaris.pl \
		-z 0 \
		-S $(SOLARIS_DIR) \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/SERVICES_MEN1_RUNNING
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_solaris.pl \
		-S $(SOLARIS_DIR) \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/SERVICES_MEN1_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/SERVICES_MEN1_DONE

$(STAGES_DISKLESS_DIR)/SERVICES_MEN2_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/SERVICES_MEN2_RUNNING ] ;\
	then $(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_solaris.pl \
		-z 0 \
		-S $(SOLARIS_DIR) \
		-W $(WORKING_DIR) \
		-n 2 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/SERVICES_MEN2_RUNNING
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_solaris.pl \
		-S $(SOLARIS_DIR) \
		-W $(WORKING_DIR) \
		-n 2 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/SERVICES_MEN2_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/SERVICES_MEN2_DONE

#
#  DISKLESS environment
#
disklessenv: $(STAGES_DISKLESS_DIR)/DISKLESS_MEN1_DONE $(STAGES_DISKLESS_DIR)/DISKLESS_MEN2_DONE

$(STAGES_DISKLESS_DIR)/DISKLESS_MEN1_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/DISKLESS_MEN1_RUNNING ] ;\
	then $(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_diskless.pl \
		-z 0 \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/DISKLESS_MEN1_RUNNING
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_diskless.pl \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/DISKLESS_MEN1_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/DISKLESS_MEN1_DONE	

$(STAGES_DISKLESS_DIR)/DISKLESS_MEN2_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/DISKLESS_MEN2_RUNNING ] ;\
	then $(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_diskless.pl \
		-z 0 \
		-W $(WORKING_DIR) \
		-n 2 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/DISKLESS_MEN2_RUNNING
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_diskless.pl \
		-W $(WORKING_DIR) \
		-n 2 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/DISKLESS_MEN2_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/DISKLESS_MEN2_DONE	

#
# DISKLESS packages on master
#

disklesspkg: $(STAGES_DISKLESS_DIR)/DISKLESSPKG_NMEN_DONE

$(STAGES_DISKLESS_DIR)/DISKLESSPKG_NMEN_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/DISKLESSPKG_NMEM_RUNNING ] ;\
	then $(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_disklesspkg.pl \
		-z 0 \
		-S $(SOLARIS_DIR) \
		-K $(SOLARIS_SUBDIR) \
		-u "$(USRPLATFORM_PACKAGES)" \
		-p "$(PLATFORM_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/DISKLESSPKG_NMEM_RUNNING
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_disklesspkg.pl \
		-S $(SOLARIS_DIR) \
		-K $(SOLARIS_SUBDIR) \
		-u "$(USRPLATFORM_PACKAGES)" \
		-p "$(PLATFORM_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/DISKLESSPKG_NMEM_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/DISKLESSPKG_NMEN_DONE
#
#  CGTP patch for diskless
#
patchadd_nmen: $(STAGES_DISKLESS_DIR)/PATCHADD_NMEN_DONE

$(STAGES_DISKLESS_DIR)/PATCHADD_NMEN_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/PATCHADD_NMEN_RUNNING ] ;\
	then $(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_cgtppatch.pl \
		-z 0 \
		-R $(ROOT_DIR) \
		-C $(PATCH_SUBDIR) \
		-m "$(CGTP_PATCH)" \
		-n 1 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/PATCHADD_NMEN_RUNNING
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_cgtppatch.pl \
		-R $(ROOT_DIR) \
		-C $(PATCH_SUBDIR) \
		-m "$(CGTP_PATCH)" \
		-n 1 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/PATCHADD_NMEN_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/PATCHADD_NMEN_DONE

#
#  Boot server configuration
#
rbs: $(STAGES_DISKLESS_DIR)/RBS_MEN1_DONE $(STAGES_DISKLESS_DIR)/RBS_MEN2_DONE

$(STAGES_DISKLESS_DIR)/RBS_MEN1_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/RBS_MEN1_RUNNING ] ;\
	then $(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_rbs.pl \
		-z 0 \
		-R $(ROOT_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-p "$(RBS_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/RBS_MEN1_RUNNING
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_rbs.pl \
		-R $(ROOT_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-p "$(RBS_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/RBS_MEN1_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/RBS_MEN1_DONE

$(STAGES_DISKLESS_DIR)/RBS_MEN2_DONE:
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_rbs.pl \
		-R $(ROOT_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-p "$(RBS_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 2 \
		$(DEBUG_FLAG)
	$(TOUCH) $(STAGES_DISKLESS_DIR)/RBS_MEN2_DONE

#
#  CGTP package installation for diskless
#
cgtp: $(STAGES_DISKLESS_DIR)/CGTP_NMEN_DONE

$(STAGES_DISKLESS_DIR)/CGTP_NMEN_DONE:
	$(SILENT) $(INSTALL_OS_TOOLS_SOL)/nmen_cgtp.pl \
		-R $(ROOT_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-p "$(CGTP_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(TOUCH) $(STAGES_DISKLESS_DIR)/CGTP_NMEN_DONE


#
#  CMM package installation for diskless
#
cmm: $(STAGES_DISKLESS_DIR)/CMM_NMEN_DONE

$(STAGES_DISKLESS_DIR)/CMM_NMEN_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/CMM_NMEM_RUNNING ] ;\
	then $(SILENT) $(INSTALL_OS_TOOLS_COMMON)/nmen_cmm.pl \
		-z 0 \
		-R $(ROOT_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-p "$(CMM_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/CMM_NMEM_RUNNING
	$(SILENT) $(INSTALL_OS_TOOLS_COMMON)/nmen_cmm.pl \
		-R $(ROOT_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-p "$(CMM_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/CMM_NMEM_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/CMM_NMEN_DONE

#
#  Post-installation
#
end: $(STAGES_DISKLESS_DIR)/END_NMEN_DONE $(STAGES_DISKLESS_DIR)/REBOOT_NMEN_MEN1_DONE $(STAGES_DISKLESS_DIR)/REBOOT_NMEN_MEN2_DONE

$(STAGES_DISKLESS_DIR)/END_NMEN_DONE:
	$(SILENT) $(INSTALL_OS_TOOLS_COMMON)/nmen_end.pl \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(TOUCH) $(STAGES_DISKLESS_DIR)/END_NMEN_DONE

$(STAGES_DISKLESS_DIR)/REBOOT_NMEN_MEN1_DONE:
	$(RM) $(STAGES_DISKLESS_DIR)/DISKLESS_INSTALL_RUNNING
	if [ "$$AUTO_REBOOT" = "YES" ] ;\
	then $(SILENT) $(INSTALL_LIB_TOOLS)/reboot.pl \
		-n 1 \
		-r FS \
		$(DEBUG_FLAG) ;\
	else \
		$(SILENT) echo "Reboot master eligible node MEN1" ;\
		$(SILENT) echo "- on the console on MEN1" ;\
		$(SILENT) echo "- Type : reboot " ;\
		$(SILENT) echo "- Wait for Console Login Prompt " ;\
		$(SILENT) echo "Answer y when ready !" ;\
		ANSWER="n" ; while [ \"$${ANSWER}\" != \"y\" ] ;\
			do read ANSWER ;\
			done ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/REBOOT_NMEN_MEN1_DONE

$(STAGES_DISKLESS_DIR)/REBOOT_NMEN_MEN2_DONE:
	if [ "$$AUTO_REBOOT" = "YES" ] ;\
	then $(SILENT) $(INSTALL_LIB_TOOLS)/reboot.pl \
		-n 2 \
		-r FS \
		$(DEBUG_FLAG) ;\
	else \
		$(SILENT) echo "Reboot master eligible node MEN2" ;\
		$(SILENT) echo "- on the console of MEN2" ;\
		$(SILENT) echo "- Type : reboot " ;\
		$(SILENT) echo "- Wait for Console Login Prompt " ;\
		$(SILENT) echo "Answer y when ready !" ;\
		ANSWER="n" ; while [ \"$${ANSWER}\" != \"y\" ] ;\
			do read ANSWER ;\
			done ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/REBOOT_NMEN_MEN2_DONE

#
#  NHADM installation for diskless
#
nhadm: $(STAGES_DISKLESS_DIR)/NHADM_NMEN_DONE

$(STAGES_DISKLESS_DIR)/NHADM_NMEN_DONE:
	$(SILENT) $(INSTALL_OS_TOOLS_COMMON)/nmen_checker.pl \
		-R $(ROOT_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-p "$(CHECKER_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(TOUCH) $(STAGES_DISKLESS_DIR)/NHADM_NMEN_DONE

#
#  PMD installation for diskless
#

pmd: $(STAGES_DISKLESS_DIR)/PMD_NMEN_DONE

$(STAGES_DISKLESS_DIR)/PMD_NMEN_DONE:
	$(SILENT) $(INSTALL_OS_TOOLS_COMMON)/nmen_pmd.pl \
		-R $(ROOT_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-p "$(PMD_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(TOUCH) $(STAGES_DISKLESS_DIR)/PMD_NMEN_DONE

#
#  JDK installation for diskless
#

jdk_install: $(STAGES_DISKLESS_DIR)/JDK_NMEN_DONE

$(STAGES_DISKLESS_DIR)/JDK_NMEN_DONE:
	$(SILENT) $(INSTALL_OS_TOOLS_COMMON)/nmen_jdk.pl \
		-R $(JDK_DIR) \
		-P $(JDK_SUBDIR) \
		-p "$(JDK_PACKAGES)" \
		-o $(target_os) \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(TOUCH) $(STAGES_DISKLESS_DIR)/JDK_NMEN_DONE

#
#  MA Local packages installation
#
ma_local_install: $(STAGES_DISKLESS_DIR)/MA_NMEN_DONE

$(STAGES_DISKLESS_DIR)/MA_NMEN_DONE:
	$(SILENT) $(INSTALL_OS_TOOLS_COMMON)/nmen_ma.pl \
		-R $(ROOT_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-p "$(MA_LOCAL_PACKAGES)" \
		-W $(WORKING_DIR) \
		-n 1 \
		$(DEBUG_FLAG)
	$(TOUCH) $(STAGES_DISKLESS_DIR)/MA_NMEN_DONE

#
# Supplementary NHAS patches
#

#
# add-on after Solaris installation on MEN
#

addon_snmen: $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN1_DONE $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN2_DONE

$(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN1_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN1_RUNNING ] ;\
	then $(SILENT) $(INSTALL_LIB_TOOLS)/addon.pl \
		-z 0 \
		-R $(ROOT_DIR) \
		-S $(SOLARIS_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-K $(SOLARIS_SUBDIR) \
		-W $(WORKING_DIR) \
		-p "S_NMEN" \
		-n 1 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN1_RUNNING
	$(SILENT) $(INSTALL_LIB_TOOLS)/addon.pl \
		-R $(ROOT_DIR) \
		-S $(SOLARIS_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-K $(SOLARIS_SUBDIR) \
		-W $(WORKING_DIR) \
		-p "S_NMEN" \
		-n 1 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN1_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN1_DONE

$(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN2_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN2_RUNNING ] ;\
	then $(SILENT) $(INSTALL_LIB_TOOLS)/addon.pl \
		-z 0 \
		-R $(ROOT_DIR) \
		-S $(SOLARIS_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-K $(SOLARIS_SUBDIR) \
		-W $(WORKING_DIR) \
		-p "S_NMEN" \
		-n 2 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN2_RUNNING
	$(SILENT) $(INSTALL_LIB_TOOLS)/addon.pl \
		-R $(ROOT_DIR) \
		-S $(SOLARIS_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-K $(SOLARIS_SUBDIR) \
		-W $(WORKING_DIR) \
		-p "S_NMEN" \
		-n 2 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN2_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/ADDON_SNMEN_MEN2_DONE

#
# add-on after Foundation Services installation on NMEN
#

addon_fnmen: $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN1_DONE $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN2_DONE

$(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN1_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN1_RUNNING ] ;\
	then $(SILENT) $(INSTALL_LIB_TOOLS)/addon.pl \
		-z 0 \
		-R $(ROOT_DIR) \
		-S $(SOLARIS_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-K $(SOLARIS_SUBDIR) \
		-W $(WORKING_DIR) \
		-p "F_NMEN" \
		-n 1 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN1_RUNNING
	$(SILENT) $(INSTALL_LIB_TOOLS)/addon.pl \
		-R $(ROOT_DIR) \
		-S $(SOLARIS_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-K $(SOLARIS_SUBDIR) \
		-W $(WORKING_DIR) \
		-p "F_NMEN" \
		-n 1 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN1_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN1_DONE

$(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN2_DONE:
	if [ -f $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN2_RUNNING ] ;\
	then $(SILENT) $(INSTALL_LIB_TOOLS)/addon.pl \
		-z 0 \
		-R $(ROOT_DIR) \
		-S $(SOLARIS_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-K $(SOLARIS_SUBDIR) \
		-W $(WORKING_DIR) \
		-p "F_NMEN" \
		-n 2 \
		$(DEBUG_FLAG) ;\
	fi
	$(TOUCH) $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN2_RUNNING
	$(SILENT) $(INSTALL_LIB_TOOLS)/addon.pl \
		-R $(ROOT_DIR) \
		-S $(SOLARIS_DIR) \
		-P $(PACKAGE_SUBDIR) \
		-K $(SOLARIS_SUBDIR) \
		-W $(WORKING_DIR) \
		-p "F_NMEN" \
		-n 2 \
		$(DEBUG_FLAG)
	$(RM) $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN2_RUNNING
	$(TOUCH) $(STAGES_DISKLESS_DIR)/ADDON_FNMEN_MEN2_DONE
