blob: b01dd174498c2a2b029cc73ced5c1ef22d082960 [file] [log] [blame]
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +01001#
Christoph Langer337aabc2020-09-22 10:20:06 +02002# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +01003# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# This code is free software; you can redistribute it and/or modify it
6# under the terms of the GNU General Public License version 2 only, as
7# published by the Free Software Foundation. Oracle designates this
8# particular file as subject to the "Classpath" exception as provided
9# by Oracle in the LICENSE file that accompanied this code.
10#
11# This code is distributed in the hope that it will be useful, but WITHOUT
12# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14# version 2 for more details (a copy is included in the LICENSE file that
15# accompanied this code).
16#
17# You should have received a copy of the GNU General Public License version
18# 2 along with this work; if not, write to the Free Software Foundation,
19# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20#
21# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22# or visit www.oracle.com if you need additional information or have any
23# questions.
24#
25
Erik Joelsson26cd4672016-03-24 14:23:37 +010026################################################################################
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +010027# Install the launcher name, release version string, full version
Chris Hegartyd6208a22016-03-03 12:07:13 +000028# string and the runtime name into the VersionProps.java file.
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +010029
Christoph Langer337aabc2020-09-22 10:20:06 +020030ifeq ($(COMPANY_NAME), N/A)
31 VENDOR=Oracle Corporation
32else
33 VENDOR=$(COMPANY_NAME)
34endif
35
Magnus Ihse Bursiee9cf2472015-06-11 00:23:01 +020036$(eval $(call SetupTextFileProcessing, BUILD_VERSION_JAVA, \
Erik Joelsson72c4ec52017-09-12 19:03:56 +020037 SOURCE_FILES := $(TOPDIR)/src/java.base/share/classes/java/lang/VersionProps.java.template, \
Chris Hegartyd6208a22016-03-03 12:07:13 +000038 OUTPUT_FILE := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/java/lang/VersionProps.java, \
Magnus Ihse Bursiee9cf2472015-06-11 00:23:01 +020039 REPLACEMENTS := \
40 @@LAUNCHER_NAME@@ => $(LAUNCHER_NAME) ; \
41 @@RUNTIME_NAME@@ => $(RUNTIME_NAME) ; \
42 @@VERSION_SHORT@@ => $(VERSION_SHORT) ; \
Claes Redestada2ed8892016-06-28 00:39:26 +020043 @@VERSION_STRING@@ => $(VERSION_STRING) ; \
44 @@VERSION_NUMBER@@ => $(VERSION_NUMBER) ; \
45 @@VERSION_PRE@@ => $(VERSION_PRE) ; \
46 @@VERSION_BUILD@@ => $(VERSION_BUILD) ; \
Mark Reinhold02141352017-12-13 17:28:24 -080047 @@VERSION_OPT@@ => $(VERSION_OPT) ; \
48 @@VERSION_DATE@@ => $(VERSION_DATE) ; \
Christoph Langercd0ddcf2018-11-28 15:53:49 -050049 @@VENDOR_VERSION_STRING@@ => $(VENDOR_VERSION_STRING) ; \
Christoph Langer337aabc2020-09-22 10:20:06 +020050 @@VENDOR@@ => $(VENDOR) ; \
Christoph Langercd0ddcf2018-11-28 15:53:49 -050051 @@VENDOR_URL@@ => $(VENDOR_URL) ; \
Mark Reinhold391df2e2019-10-29 08:26:55 -070052 @@VENDOR_URL_BUG@@ => $(VENDOR_URL_BUG) ; \
53 @@VENDOR_URL_VM_BUG@@ => $(VENDOR_URL_VM_BUG), \
Magnus Ihse Bursiee9cf2472015-06-11 00:23:01 +020054))
Erik Joelsson5a030d72015-01-26 10:29:11 +010055
Magnus Ihse Bursiee9cf2472015-06-11 00:23:01 +020056GENSRC_JAVA_BASE += $(BUILD_VERSION_JAVA)
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +010057
Erik Joelsson26cd4672016-03-24 14:23:37 +010058################################################################################
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +010059
Erik Joelsson26cd4672016-03-24 14:23:37 +010060ifneq ($(filter $(TOOLCHAIN_TYPE), gcc clang), )
61 # Need to specify language since the template file has a non standard
62 # extension.
63 CPP_FLAGS += -x c
64else ifeq ($(TOOLCHAIN_TYPE), microsoft)
65 CPP_FLAGS += -nologo
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +010066endif
67
Erik Joelsson26cd4672016-03-24 14:23:37 +010068# Generate a java source file from a template through the C preprocessor for the
69# target system. First extract the copyright notice at the start of the file.
70# Run the preprocessor. Filter out the default compiler stderr output on
71# Windows. Filter out all the header files output. Remove all "PREFIX_" strings
72# that were added to variable references in the template files to avoid being
73# matched by the preprocessor. Remove any #line directives left by the
74# preprocessor.
75define generate-preproc-src
76 $(call MakeDir, $(@D))
77 ( $(NAWK) '/@@END_COPYRIGHT@@/{exit}1' $< && \
Lucy Luec1c3bc2017-10-17 16:51:11 -070078 $(CPP) $(CPP_FLAGS) $(SYSROOT_CFLAGS) $(CFLAGS_JDKLIB) $< \
Erik Joelsson26cd4672016-03-24 14:23:37 +010079 2> >($(GREP) -v '^$(<F)$$' >&2) \
80 | $(NAWK) '/@@START_HERE@@/,0' \
81 | $(SED) -e 's/@@START_HERE@@/\/\/ AUTOMATICALLY GENERATED FILE - DO NOT EDIT/' \
82 -e 's/PREFIX_//' -e 's/^#.*//' \
83 ) > $@
84endef
85
86GENSRC_SOR_FILE += $(SUPPORT_OUTPUTDIR)/gensrc/java.base/sun/nio/ch/SocketOptionRegistry.java
87
88$(GENSRC_SOR_FILE): \
Erik Joelsson72c4ec52017-09-12 19:03:56 +020089 $(TOPDIR)/src/java.base/share/classes/sun/nio/ch/SocketOptionRegistry.java.template
Erik Joelsson26cd4672016-03-24 14:23:37 +010090 $(generate-preproc-src)
91
92GENSRC_JAVA_BASE += $(GENSRC_SOR_FILE)
93
94################################################################################
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +010095
96ifneq ($(OPENJDK_TARGET_OS), windows)
97
Erik Joelsson26cd4672016-03-24 14:23:37 +010098 GENSRC_UC_FILE := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/sun/nio/fs/UnixConstants.java
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +010099
Erik Joelsson26cd4672016-03-24 14:23:37 +0100100 $(GENSRC_UC_FILE): \
Erik Joelsson72c4ec52017-09-12 19:03:56 +0200101 $(TOPDIR)/src/java.base/unix/classes/sun/nio/fs/UnixConstants.java.template
Erik Joelsson26cd4672016-03-24 14:23:37 +0100102 $(generate-preproc-src)
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +0100103
Erik Joelsson26cd4672016-03-24 14:23:37 +0100104 GENSRC_JAVA_BASE += $(GENSRC_UC_FILE)
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +0100105
106endif
107
Erik Joelsson26cd4672016-03-24 14:23:37 +0100108################################################################################
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +0100109
110ifeq ($(OPENJDK_TARGET_OS), solaris)
111
Erik Joelsson26cd4672016-03-24 14:23:37 +0100112 GENSRC_SC_FILE := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/sun/nio/fs/SolarisConstants.java
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +0100113
Erik Joelsson26cd4672016-03-24 14:23:37 +0100114 $(GENSRC_SC_FILE): \
Erik Joelsson72c4ec52017-09-12 19:03:56 +0200115 $(TOPDIR)/src/java.base/solaris/classes/sun/nio/fs/SolarisConstants.java.template
Erik Joelsson26cd4672016-03-24 14:23:37 +0100116 $(generate-preproc-src)
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +0100117
Erik Joelsson26cd4672016-03-24 14:23:37 +0100118 GENSRC_JAVA_BASE += $(GENSRC_SC_FILE)
Magnus Ihse Bursie453a40a2013-11-14 11:19:32 +0100119
120endif
121
Erik Joelsson26cd4672016-03-24 14:23:37 +0100122################################################################################
Bradford Wetmorefdb9c952016-12-05 17:04:02 -0800123# Create the javax/crypto/JceSecurity.class, using the build default.
124#
125ifeq ($(UNLIMITED_CRYPTO), true)
126 JCE_DEFAULT_POLICY = unlimited
127else
128 JCE_DEFAULT_POLICY = limited
129endif
130
Erik Joelsson72c4ec52017-09-12 19:03:56 +0200131ifneq ($(wildcard $(TOPDIR)/src/java.base/share/classes/javax/crypto/JceSecurity.java.template), )
Magnus Ihse Bursie0d93c1d2017-02-17 14:55:35 +0100132 $(eval $(call SetupTextFileProcessing, BUILD_JCESECURITY_JAVA, \
Erik Joelsson72c4ec52017-09-12 19:03:56 +0200133 SOURCE_FILES := $(TOPDIR)/src/java.base/share/classes/javax/crypto/JceSecurity.java.template, \
Magnus Ihse Bursie0d93c1d2017-02-17 14:55:35 +0100134 OUTPUT_FILE := $(SUPPORT_OUTPUTDIR)/gensrc/java.base/javax/crypto/JceSecurity.java, \
135 REPLACEMENTS := \
Bradford Wetmorefdb9c952016-12-05 17:04:02 -0800136 @@JCE_DEFAULT_POLICY@@ => $(JCE_DEFAULT_POLICY), \
Magnus Ihse Bursie0d93c1d2017-02-17 14:55:35 +0100137 ))
Bradford Wetmorefdb9c952016-12-05 17:04:02 -0800138
Magnus Ihse Bursie0d93c1d2017-02-17 14:55:35 +0100139 GENSRC_JAVA_BASE += $(BUILD_JCESECURITY_JAVA)
140endif