#
# Copyright (c) 2011, 2012, 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 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: \
	$(JDK_TOPDIR)/src/share/classes/sun/misc/Version.java.template
	$(MKDIR) -p $(@D)
	$(RM) $@ $@.tmp
	$(ECHO) $(LOG_INFO) Generating sun/misc/Version.java
	$(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' \
            $< > $@.tmp
	$(MV) $@.tmp $@

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

##########################################################################################
# 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

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

ifeq ($(OPENJDK_TARGET_OS_API),posix)
    UPSUFFIX:=$(OPENJDK_TARGET_OS)
    ifeq ($(OPENJDK_TARGET_OS),macosx)
        UPSUFFIX:=bsd
    endif
    # UNIXProcess.java is different for solaris and linux. We need to copy
    # the correct UNIXProcess.java over to $(JDK_OUTPUTDIR)/gensrc/java/lang/.

    $(JDK_OUTPUTDIR)/gensrc/java/lang/UNIXProcess.java : \
              $(JDK_TOPDIR)/src/solaris/classes/java/lang/UNIXProcess.java.$(UPSUFFIX)
	$(MKDIR) -p $(@D)
	$(ECHO) $(LOG_INFO) Copying UNIXProcess.java.$(OPENJDK_TARGET_OS) to java/lang/UNIXProcess.java
	$(CP) $< $@
	$(CHMOD) u+rw $@

    GENSRC_MISC += $(JDK_OUTPUTDIR)/gensrc/java/lang/UNIXProcess.java
endif

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

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

GENSRC_SOR_SRC := $(JDK_TOPDIR)/src/share/native/sun/nio/ch
GENSRC_SOR_SRC_FILE := genSocketOptionRegistry.c
GENSRC_SOR_BIN := $(JDK_OUTPUTDIR)/gensrc/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))

ifneq ($(wildcard $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/ch/SocketOptionRegistry-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java),)
  HAS_SOCKET_OPTION_REGISTRY:=true
endif

ifneq ($(HAS_SOCKET_OPTION_REGISTRY),true)
$(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)/makefiles/scripts/addNotices.sh "$(SOR_COPYRIGHT_YEARS)" > $@.tmp
	$(BUILD_GENSRC_SOR_EXE) >> $@.tmp
	$(MV) $@.tmp $@
else
$(JDK_OUTPUTDIR)/gensrc/sun/nio/ch/SocketOptionRegistry.java : $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/ch/SocketOptionRegistry-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java
	$(MKDIR) -p $(@D)
	$(RM) $@
	$(CP) $< $@
endif

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

ifneq ($(OPENJDK_TARGET_OS),windows)

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

GENSRC_UC_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/fs
GENSRC_UC_SRC_FILE := genUnixConstants.c
GENSRC_UC_BIN := $(JDK_OUTPUTDIR)/gensrc/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))

ifneq ($(wildcard $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/fs/UnixConstants-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java),)
  HAS_UNIX_CONSTANTS:=true
endif

ifneq ($(HAS_UNIX_CONSTANTS),true)
$(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)/makefiles/scripts/addNotices.sh "$(UC_COPYRIGHT_YEARS)" > $@.tmp
	$(BUILD_GENSRC_UC_EXE) >> $@.tmp
	$(MV) $@.tmp $@
else
$(JDK_OUTPUTDIR)/gensrc/sun/nio/fs/UnixConstants.java : $(JDK_TOPDIR)/src/closed/solaris/classes/sun/nio/fs/UnixConstants-$(OPENJDK_TARGET_OS)-$(OPENJDK_TARGET_CPU_ARCH).java
	$(MKDIR) -p $(@D)
	$(RM) $@
	$(CP) $< $@
endif

endif

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

ifeq ($(OPENJDK_TARGET_OS),solaris)

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

GENSRC_SOL_SRC := $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/native/sun/nio/fs
GENSRC_SOL_SRC_FILE := genSolarisConstants.c
GENSRC_SOL_BIN := $(JDK_OUTPUTDIR)/gensrc/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)/makefiles/scripts/addNotices.sh "$(SOL_COPYRIGHT_YEARS)" > $@.tmp
	$(BUILD_GENSRC_SOL_EXE) >> $@.tmp
	$(MV) $@.tmp $@


endif

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

ifndef OPENJDK
ifeq ($(OPENJDK_TARGET_OS), windows)

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

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

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

        GENSRC_MISC += $(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/AccessBridge.java: \
			$(AB_SRC_DIR)/64bit/AccessBridge.java
		$(install-file)

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

    endif
endif
endif

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