#
# Copyright 2002-2009 Sun Microsystems, Inc.  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.  Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.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, 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, 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, all); \
	fi
endif

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
