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     #
57 
58 java.base-VALUE-CLASS-FILES := \
59     $(foreach f, $(java.base-VALUE_CLASS-REPLACEMENTS), $(addprefix $(TOPDIR)/src/java.base/share/classes/, $(f)))
60 
61 $(eval $(call SetupTextFileProcessing, JAVA_BASE_VALUECLASS_REPLACEMENTS, \
62     SOURCE_FILES := $(java.base-VALUE-CLASS-FILES), \
63     SOURCE_BASE_DIR := $(TOPDIR)/src/java.base/share/classes, \
64     OUTPUT_DIR := $(SUPPORT_OUTPUTDIR)/gensrc-valueclasses/java.base/, \
65     REPLACEMENTS := \
66         public final class => public final value class ; \
67         public abstract class => public abstract value class, \
68 ))
69 
70 TARGETS += $(JAVA_BASE_VALUECLASS_REPLACEMENTS)