1 #
2 # Copyright (c) 2023, 2024, Oracle and/or its affiliates. All rights reserved.
3 # 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
26 ################################################################################
27 # Generate the value class replacements for selected java.base source files
28
29 java.base-VALUE_CLASS-REPLACEMENTS := \
30 java/lang/Byte.java \
31 java/lang/Short.java \
32 java/lang/Integer.java \
33 java/lang/Long.java \
34 java/lang/Float.java \
35 java/lang/Double.java \
36 java/lang/Boolean.java \
37 java/lang/Character.java \
38 java/lang/Number.java \
39 java/lang/Record.java \
40 java/util/Optional.java \
41 java/util/OptionalInt.java \
42 java/util/OptionalLong.java \
43 java/util/OptionalDouble.java \
44 java/time/LocalDate.java \
45 java/time/LocalDateTime.java \
46 java/time/LocalTime.java \
47 java/time/Duration.java \
48 java/time/Instant.java \
49 java/time/MonthDay.java \
50 java/time/ZonedDateTime.java \
51 java/time/OffsetDateTime.java \
52 java/time/OffsetTime.java \
53 java/time/YearMonth.java \
54 java/time/Year.java \
55 java/time/Period.java \
56 java/time/chrono/ChronoLocalDateImpl.java \
57 java/time/chrono/MinguoDate.java \
58 java/time/chrono/HijrahDate.java \
59 java/time/chrono/JapaneseDate.java \
60 java/time/chrono/ThaiBuddhistDate.java \
61 #
62
63 java.base-VALUE-CLASS-FILES := \
64 $(foreach f, $(java.base-VALUE_CLASS-REPLACEMENTS), $(addprefix $(TOPDIR)/src/java.base/share/classes/, $(f)))
65
66 $(eval $(call SetupTextFileProcessing, JAVA_BASE_VALUECLASS_REPLACEMENTS, \
67 SOURCE_FILES := $(java.base-VALUE-CLASS-FILES), \
68 SOURCE_BASE_DIR := $(TOPDIR)/src/java.base/share/classes, \
69 OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/gensrc-valueclasses/java.base/, \
70 REPLACEMENTS := \
71 public final class => public final value class ; \
72 public abstract class => public abstract value class ; \
73 abstract class ChronoLocalDateImpl => abstract value class ChronoLocalDateImpl, \
74 ))
75
76 TARGETS += $(JAVA_BASE_VALUECLASS_REPLACEMENTS)