#
# Copyright (c) 2001, 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.
#

################################################################
# JDK TARGETS
################################################################

JDK_JAVA_EXE = $(OUTPUTDIR)/bin/java$(EXE_SUFFIX)

# NO_IMAGES may be set in conjunction with DEV_ONLY
IMAGES_TARGET = images
ifdef DEV_ONLY
  ifdef NO_IMAGES
    IMAGES_TARGET =
  endif
endif

# GENERATE_DOCS determines if we ask for the docs target
DOCS_TARGET = docs
ifeq ($(GENERATE_DOCS),false)
  DOCS_TARGET =
endif
  
JDK_BUILD_TARGETS = sanity all $(DOCS_TARGET) $(IMAGES_TARGET)

JDK_CLOBBER_TARGETS = clobber

JDK_BUILD_ARGUMENTS = $(COMMON_BUILD_ARGUMENTS) \
    ALT_OUTPUTDIR=$(ABS_OUTPUTDIR)

ifeq ($(BUILD_LANGTOOLS), true)
  JDK_BUILD_ARGUMENTS += ALT_LANGTOOLS_DIST=$(ABS_LANGTOOLS_DIST)
endif
ifeq ($(BUILD_CORBA), true)
  JDK_BUILD_ARGUMENTS += ALT_CORBA_DIST=$(ABS_CORBA_DIST)
endif
ifeq ($(BUILD_JAXP), true)
  JDK_BUILD_ARGUMENTS += ALT_JAXP_DIST=$(ABS_JAXP_DIST)
endif
ifeq ($(BUILD_JAXWS), true)
  JDK_BUILD_ARGUMENTS += ALT_JAXWS_DIST=$(ABS_JAXWS_DIST)
endif

ifeq ($(BUILD_HOTSPOT), true)
  JDK_BUILD_ARGUMENTS += ALT_HOTSPOT_IMPORT_PATH=$(HOTSPOT_DIR)/import
endif

JDK_BUILD_ARGUMENTS += \
        BUILD_HOTSPOT=$(BUILD_HOTSPOT)


$(JDK_JAVA_EXE):: jdk-build

jdk: jdk-build
jdk-build:
	@$(call MakeStart,jdk,$(JDK_BUILD_TARGETS))
	( $(CD) $(JDK_TOPDIR)/make && \
	  $(MAKE) $(JDK_BUILD_TARGETS) $(JDK_BUILD_ARGUMENTS) ; )
	@$(call MakeFinish,jdk,$(JDK_BUILD_TARGETS))

jdk-clobber::
	@$(call MakeStart,jdk,$(JDK_CLOBBER_TARGETS))
	( $(CD) $(JDK_TOPDIR)/make && \
	  $(MAKE) $(JDK_CLOBBER_TARGETS) $(JDK_BUILD_ARGUMENTS) ; )
	@$(call MakeFinish,jdk,$(JDK_CLOBBER_TARGETS))

jdk-sanity::
	( $(CD) $(JDK_TOPDIR)/make && \
	  $(MAKE) sanity HOTSPOT_IMPORT_CHECK=false $(JDK_BUILD_ARGUMENTS) ; )

compare-images: compare-image
compare-image:
	@$(call MakeStart,jdk,compare-image)
	( $(CD) $(JDK_TOPDIR)/make && \
	  $(MAKE) ALT_OUTPUTDIR=$(ABS_OUTPUTDIR) compare-image )
	@$(call MakeFinish,jdk,compare-image)

compare-images-clobber: compare-image-clobber
compare-image-clobber:
	@$(call MakeStart,jdk,compare-image-clobber)
	( $(CD) $(JDK_TOPDIR)/make && \
	  $(MAKE) ALT_OUTPUTDIR=$(ABS_OUTPUTDIR) compare-image-clobber )
	@$(call MakeFinish,jdk,compare-image-clobber)

.PHONY: jdk jdk-build jdk-clobber jdk-sanity 

