#
# Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#

################################################################
# INSTALL  TARGETS
################################################################

install:  install-build

# The generated java files are generated as a set, so instead of
# setting the INSTALL variable to that list of files, set it to
# the .PHONY target that generates the set of files.
INSTALL = install

# put the generated patch in their own place in OUTPUTDIR
INSTALL_OUTPUTDIR = $(ABS_OUTPUTDIR)

INSTALL_DEBUG_NAME=fastdebug

INSTALL_BUILD_TARGETS = sanity all
INSTALL_BUILD_ARGUMENTS = $(COMMON_BUILD_ARGUMENTS) \
			ALT_OUTPUTDIR=$(INSTALL_OUTPUTDIR) \
			ALT_RTPATCH_DIR=$(ALT_RTPATCH_DIR) \
			ALT_BASE_IMAGE_ZIP=$(ALT_BASE_IMAGE_ZIP) \
			ALT_BASE_IMAGE_DIR=$(ALT_BASE_IMAGE_DIR) \
			ALT_NEW_IMAGE_DIR=$(ALT_NEW_IMAGE_DIR) \
			ALT_BUNDLE_DATE=$(BUNDLE_DATE) \
			INSTALL_DEBUG_NAME=$(INSTALL_DEBUG_NAME)

ifeq ($(BUILD_LANGTOOLS), true)
  INSTALL_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif

install: install-build

install-build:
ifeq ($(BUILD_INSTALL), true)
	@$(call MakeStart,install,$(INSTALL_BUILD_TARGETS))
	($(CD) $(INSTALL_TOPDIR)/make && \
	  $(MAKE) $(INSTALL_BUILD_TARGETS) $(INSTALL_BUILD_ARGUMENTS))
	@$(call MakeFinish,install,$(INSTALL_BUILD_TARGETS))
endif

update-patcher:
ifeq ($(BUILD_INSTALL), true)
	if [ -r $(INSTALL_TOPDIR)/make/update/Makefile ]; then \
	  $(call MakeStart,install_update,all); \
	  ( $(CD) $(INSTALL_TOPDIR)/make/update && \
	    $(MAKE) all $(INSTALL_BUILD_ARGUMENTS) ); \
	  $(call MakeFinish,install_update,all); \
	fi
endif

update-patchgen:
ifeq ($(BUILD_INSTALL), true)
	if [ -r $(INSTALL_TOPDIR)/make/update/Makefile ]; then \
	  $(call MakeStart,install_update,patchgen); \
	  ( $(CD) $(INSTALL_TOPDIR)/make/update && \
	    $(MAKE) patchgen $(INSTALL_BUILD_ARGUMENTS) ); \
	  $(call MakeFinish,install_update,patchgen); \
	fi
endif

installer:
ifeq ($(BUILD_INSTALL), true)
	if [ -r $(INSTALL_TOPDIR)/make/installer/Makefile ]; then \
	  $(call MakeStart,install_installer,all); \
	  ( $(CD) $(INSTALL_TOPDIR)/make/installer && \
	    $(MAKE) all $(INSTALL_BUILD_ARGUMENTS) ); \
	  $(call MakeFinish,install_installer,all); \
	fi
endif

combo_build:
	@$(ECHO) $@ installer combo build started: `$(DATE) '+%y-%m-%d %H:%M'`
	$(CD) $(INSTALL_TOPDIR)/make/installer/bundles/windows/ishield/wrapper/wrapper.jreboth ; $(MAKE) all
	$(CD) $(INSTALL_TOPDIR)/make/installer/bundles/windows/ishield/jre ; $(MAKE) au_combo
	$(CD) $(INSTALL_TOPDIR)/make/installer/bundles/windows/xmlinffile ; $(MAKE) all

install-clobber:
ifeq ($(BUILD_INSTALL), true)
	@$(call MakeStart,install,clobber)
	($(CD) $(INSTALL_TOPDIR)/make && \
	  $(MAKE) clobber $(INSTALL_BUILD_ARGUMENTS))
	@$(call MakeFinish,install,clobber)
endif

install-sanity:: 
ifeq ($(BUILD_INSTALL), true)
	($(CD) $(INSTALL_TOPDIR)/make && \
	  $(MAKE) sanity $(INSTALL_BUILD_ARGUMENTS))
endif

######################################
# Rules for making the install
######################################

.PHONY: install install-build install-clobber install-sanity \
	update-installer update-patchgen installer
