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

include ProfileNames.gmk

##########################################################################################
# Install the launcher name, release version string, full version
# string and the runtime name into the Version.java file.
# To be printed by java -version

$(JDK_OUTPUTDIR)/gensrc/sun/misc/Version.java \
$(PROFILE_VERSION_JAVA_TARGETS): \
    $(JDK_TOPDIR)/src/share/classes/sun/misc/Version.java.template
	$(MKDIR) -p $(@D)
	$(RM) $@ $@.tmp
	$(ECHO) Generating sun/misc/Version.java $(call profile_version_name, $@)
	$(SED) -e 's/@@launcher_name@@/$(LAUNCHER_NAME)/g' \
	    -e 's/@@java_version@@/$(RELEASE)/g' \
	    -e 's/@@java_runtime_version@@/$(FULL_VERSION)/g' \
	    -e 's/@@java_runtime_name@@/$(RUNTIME_NAME)/g' \
	    -e 's/@@java_profile_name@@/$(call profile_version_name, $@)/g' \
	    $< > $@.tmp
	$(MV) $@.tmp $@

GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/misc/Version.java \
    $(PROFILE_VERSION_JAVA_TARGETS)

##########################################################################################
# Version file for jconsole

$(JDK_OUTPUTDIR)/gensrc/sun/tools/jconsole/Version.java: \
    $(JDK_TOPDIR)/src/share/classes/sun/tools/jconsole/Version.java.template
	$(MKDIR) -p $(@D)
	$(RM) $@ $@.tmp
	$(ECHO) $(LOG_INFO) Generating sun/tools/jconsole/Version.java
	$(SED) -e 's/@@jconsole_version@@/$(FULL_VERSION)/g' $< > $@.tmp
	$(MV) $@.tmp $@

GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/tools/jconsole/Version.java

##########################################################################################

GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/nio/ch/SocketOptionRegistry.java

GENSRC_SOR_SRC := $(JDK_TOPDIR)/make/src/native/genconstants/ch
GENSRC_SOR_SRC_FILE := genSocketOptionRegistry.c
GENSRC_SOR_BIN := $(JDK_OUTPUTDIR)/btnative/genSocketOptionRegistry

SOR_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSRC_SOR_SRC)/$(GENSRC_SOR_SRC_FILE) | \
    $(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')

$(eval $(call SetupNativeCompilation,BUILD_GENSRC_SOR_EXE, \
    SRC := $(GENSRC_SOR_SRC), \
    INCLUDE_FILES := $(GENSRC_SOR_SRC_FILE), \
    LANG := C, \
    CC := $(BUILD_CC), \
    LDEXE := $(BUILD_LD), \
    OBJECT_DIR := $(GENSRC_SOR_BIN), \
    OUTPUT_DIR := $(GENSRC_SOR_BIN), \
    PROGRAM := genSocketOptionRegistry))

SOR_PREGEN_FILE := $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/ch/SocketOptionRegistry-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java.template

ifeq ($(wildcard $(SOR_PREGEN_FILE)), )
  $(JDK_OUTPUTDIR)/gensrc/sun/nio/ch/SocketOptionRegistry.java: $(BUILD_GENSRC_SOR_EXE)
	$(MKDIR) -p $(@D)
	$(RM) $@ $@.tmp
	NAWK="$(NAWK)" SH="$(SH)" $(SH) -e $(JDK_TOPDIR)/make/scripts/addNotices.sh "$(SOR_COPYRIGHT_YEARS)" > $@.tmp
	$(BUILD_GENSRC_SOR_EXE) >> $@.tmp
	$(MV) $@.tmp $@
else
  $(JDK_OUTPUTDIR)/gensrc/sun/nio/ch/SocketOptionRegistry.java: $(SOR_PREGEN_FILE)
	$(call install-file)
endif

##########################################################################################

ifneq ($(OPENJDK_TARGET_OS), windows)

  GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/UnixConstants.java

  GENSRC_UC_SRC := $(JDK_TOPDIR)/make/src/native/genconstants/fs
  GENSRC_UC_SRC_FILE := genUnixConstants.c
  GENSRC_UC_BIN := $(JDK_OUTPUTDIR)/btnative/genUnixConstants

  UC_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSRC_UC_SRC)/$(GENSRC_UC_SRC_FILE) | \
      $(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')

  $(eval $(call SetupNativeCompilation,BUILD_GENSRC_UC_EXE, \
      SRC := $(GENSRC_UC_SRC), \
      INCLUDE_FILES := $(GENSRC_UC_SRC_FILE), \
      LANG := C, \
      CC := $(BUILD_CC), \
      LDEXE := $(BUILD_CC), \
      CFLAGS := $(filter -D%, $(CFLAGS_JDKEXE)), \
      OBJECT_DIR := $(GENSRC_UC_BIN), \
      OUTPUT_DIR := $(GENSRC_UC_BIN), \
      PROGRAM := genUnixConstants))

  UC_PREGEN_FILE := $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/fs/UnixConstants-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java.template

  ifeq ($(wildcard $(UC_PREGEN_FILE)), )
    $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/UnixConstants.java: $(BUILD_GENSRC_UC_EXE)
	$(MKDIR) -p $(@D)
	$(RM) $@ $@.tmp
	NAWK="$(NAWK)" SH="$(SH)" $(SH) -e $(JDK_TOPDIR)/make/scripts/addNotices.sh "$(UC_COPYRIGHT_YEARS)" > $@.tmp
	$(BUILD_GENSRC_UC_EXE) >> $@.tmp
	$(MV) $@.tmp $@
  else
    $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/UnixConstants.java: $(UC_PREGEN_FILE)
	$(call install-file)
  endif

endif

##########################################################################################

ifeq ($(OPENJDK_TARGET_OS), solaris)

  GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/SolarisConstants.java

  GENSRC_SOL_SRC := $(JDK_TOPDIR)/make/src/native/genconstants/fs
  GENSRC_SOL_SRC_FILE := genSolarisConstants.c
  GENSRC_SOL_BIN := $(JDK_OUTPUTDIR)/btnative/genSolarisConstants

  SOL_COPYRIGHT_YEARS = $(shell $(CAT) $(GENSRC_SOL_SRC)/$(GENSRC_SOL_SRC_FILE) | \
      $(NAWK) '/^.*Copyright.*Oracle/ { printf "%s %s",$$4,$$5 }')

  $(eval $(call SetupNativeCompilation,BUILD_GENSRC_SOL_EXE, \
      SRC := $(GENSRC_SOL_SRC), \
      INCLUDE_FILES := $(GENSRC_SOL_SRC_FILE), \
      LANG := C, \
      CC := $(BUILD_CC), \
      LDEXE := $(BUILD_CC), \
      OBJECT_DIR := $(GENSRC_SOL_BIN), \
      OUTPUT_DIR := $(GENSRC_SOL_BIN), \
      PROGRAM := genSolarisConstants))

  $(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/SolarisConstants.java: $(BUILD_GENSRC_SOL_EXE)
	$(MKDIR) -p $(@D)
	$(RM) $@ $@.tmp
	NAWK="$(NAWK)" SH="$(SH)" $(SH) -e $(JDK_TOPDIR)/make/scripts/addNotices.sh "$(SOL_COPYRIGHT_YEARS)" > $@.tmp
	$(BUILD_GENSRC_SOL_EXE) >> $@.tmp
	$(MV) $@.tmp $@


endif

##########################################################################################

  ifeq ($(OPENJDK_TARGET_OS), windows)

    AB_GENSRC_DIR := $(JDK_OUTPUTDIR)/gensrc_ab
  AB_SRC_DIR := $(JDK_TOPDIR)/src/windows/classes/com/sun/java/accessibility

    ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)
      $(AB_GENSRC_DIR)/32bit/com/sun/java/accessibility/AccessBridgeLoader.java: \
          $(AB_SRC_DIR)/32bit/AccessBridgeLoader.java
		$(install-file)

      $(AB_GENSRC_DIR)/32bit/com/sun/java/accessibility/AccessBridge.java: \
          $(AB_SRC_DIR)/AccessBridge.java
		$(install-file)

      $(AB_GENSRC_DIR)/legacy/com/sun/java/accessibility/AccessBridgeLoader.java: \
          $(AB_SRC_DIR)/legacy/AccessBridgeLoader.java
		$(install-file)

      $(AB_GENSRC_DIR)/legacy/com/sun/java/accessibility/AccessBridge.java: \
          $(AB_SRC_DIR)/AccessBridge.java
		$(install-file)

      GENSRC_MISC += $(AB_GENSRC_DIR)/32bit/com/sun/java/accessibility/AccessBridgeLoader.java \
          $(AB_GENSRC_DIR)/legacy/com/sun/java/accessibility/AccessBridgeLoader.java \
          $(AB_GENSRC_DIR)/32bit/com/sun/java/accessibility/AccessBridge.java \
          $(AB_GENSRC_DIR)/legacy/com/sun/java/accessibility/AccessBridge.java

    else
      $(AB_GENSRC_DIR)/64bit/com/sun/java/accessibility/AccessBridgeLoader.java: \
          $(AB_SRC_DIR)/64bit/AccessBridgeLoader.java
		$(install-file)

      $(AB_GENSRC_DIR)/64bit/com/sun/java/accessibility/AccessBridge.java: \
          $(AB_SRC_DIR)/AccessBridge.java
		$(install-file)

      GENSRC_MISC += $(AB_GENSRC_DIR)/64bit/com/sun/java/accessibility/AccessBridgeLoader.java \
          $(AB_GENSRC_DIR)/64bit/com/sun/java/accessibility/AccessBridge.java

    endif
  endif

##########################################################################################
