Andreas Wacknitz
2024-03-31 783118944874d559e30eea1600352e3feb5263a7
commit | author | age
8cacca 1 #
NP 2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL"), version 1.0.
4 # You may only use this file in accordance with the terms of version
5 # 1.0 of the CDDL.
6 #
7 # A full copy of the text of the CDDL should have accompanied this
8 # source.  A copy of the CDDL is also available via the Internet at
9 # http://www.illumos.org/license/CDDL.
10 #
11
12 #
13 # Copyright 2016 Alexander Pyhalov
14 # Copyright 2019 Michal Nowak
15 # Copyright 2021 Andreas Grueninger, Grueninger GmbH, (grueni). All rights reserved.
168e64 16 # Copyright 2022-2023 Niklas Poslovski
8cacca 17 #
NP 18
19 include ../../../make-rules/shared-macros.mk
20
21 OPENJDK_VERSION=    19
04a214 22 OPENJDK_UPDATE=    0
168e64 23 OPENJDK_BUILD=    2
8cacca 24 COMPONENT_NAME=        openjdk
04a214 25 COMPONENT_VERSION=    $(OPENJDK_VERSION).$(OPENJDK_UPDATE).$(OPENJDK_BUILD)
b80775 26 COMPONENT_REVISION=    2
04a214 27 COMPONENT_FMRI=    runtime/java/$(COMPONENT_NAME)$(OPENJDK_VERSION)
8cacca 28 COMPONENT_SUMMARY=    Open-source implementation of the Java Platform, Standard Edition
e1555a 29 COMPONENT_SRC=    jdk$(OPENJDK_VERSION)u-jdk-$(OPENJDK_VERSION).$(OPENJDK_UPDATE).$(OPENJDK_BUILD)-ga
NP 30 COMPONENT_ARCHIVE=    jdk-$(OPENJDK_VERSION).$(OPENJDK_UPDATE).$(OPENJDK_BUILD)-ga.tar.gz
8cacca 31 COMPONENT_ARCHIVE_HASH= \
168e64 32     sha256:c297c9d0a09721e84c420e7893ff9ba2e0c4e27370507dec4b356b59e6c8e7a2
8cacca 33 COMPONENT_ARCHIVE_URL= \
NP 34     https://github.com/openjdk/jdk$(OPENJDK_VERSION)u/archive/$(COMPONENT_ARCHIVE)
35 COMPONENT_PROJECT_URL=    https://openjdk.java.net/
36 COMPONENT_CLASSIFICATION=    Development/Java
37 COMPONENT_LICENSE=    GPLv2 with Classpath Exception
38
04a214 39 OPENJDK_INSTANCE=    openjdk$(COMPONENT_VERSION)
8cacca 40 CACERTS_STORE=    cacerts.out
NP 41
42 include $(WS_MAKE_RULES)/common.mk
43
44 PKG_MACROS  += OPENJDK_INSTANCE=$(OPENJDK_INSTANCE)
04a214 45 PKG_MACROS  += OPENJDK_VERSION=$(OPENJDK_VERSION)
8cacca 46
NP 47 CLEAN_PATHS += $(BUILD_DIR)
48 CLEAN_PATHS += $(CACERTS_STORE)
49 CLEAN_PATHS += $(COMPONENT_SRC_1)
50
51 # read the number of jobs from the arguments for make
52 JOBS=$(patsubst -j%,%,$(filter -j%,$(MAKEFLAGS)))
53
54 CFLAGS += -c99
55
56 CONFIGURE_OPTIONS+=        --with-jobs=$(JOBS)
57 CONFIGURE_OPTIONS+=        --x-includes=$(USRDIR)
58 CONFIGURE_OPTIONS+=        --x-libraries=$(USRLIBDIR64)
59 CONFIGURE_OPTIONS+=        --with-version-pre=
60 CONFIGURE_OPTIONS+=        --with-conf-name=oi
62f3ce 61 CONFIGURE_OPTIONS+=        --with-boot-jdk=/usr/jdk/openjdk18/
8cacca 62 CONFIGURE_OPTIONS+=        --with-freetype=system
NP 63 CONFIGURE_OPTIONS+=        --with-giflib=system
64 CONFIGURE_OPTIONS+=        --with-harfbuzz=system
65 CONFIGURE_OPTIONS+=        --with-lcms=bundled
66 CONFIGURE_OPTIONS+=        --with-libjpeg=system
67 CONFIGURE_OPTIONS+=        --with-libpng=system
68 CONFIGURE_OPTIONS+=        --with-zlib=system
69 CONFIGURE_OPTIONS+=        --with-x=yes
70 CONFIGURE_OPTIONS+=        --with-native-debug-symbols=none
71 CONFIGURE_OPTIONS+=        --with-jvm-variants=server
72 CONFIGURE_OPTIONS+=        --with-debug-level=release
73 CONFIGURE_OPTIONS+=        --with-toolchain-type=gcc
74 CONFIGURE_OPTIONS+=        --with-extra-cxxflags="$(CXXFLAGS)"
75 CONFIGURE_OPTIONS+=        --with-extra-ldflags="-m64"
76 CONFIGURE_OPTIONS+=        --with-cups=$(USRDIR)
77 CONFIGURE_OPTIONS+=        --with-fontconfig=$(USRDIR)
78 CONFIGURE_OPTIONS+=        --enable-unlimited-crypto
79 CONFIGURE_OPTIONS+=        --disable-dtrace
80 CONFIGURE_OPTIONS+=        --disable-hotspot-gtest
81 CONFIGURE_OPTIONS+=        --disable-warnings-as-errors
82 CONFIGURE_OPTIONS+=        --disable-precompiled-headers
83 CONFIGURE_OPTIONS+=        --disable-ccache
84 CONFIGURE_OPTIONS+=        --disable-option-checking
85 CONFIGURE_OPTIONS+=        --enable-deprecated-ports=yes
86
87 CONFIGURE_ENV+= LD=/usr/bin/gld
88 COMPONENT_BUILD_ENV+= LD=/usr/bin/gld
89
90 COMPONENT_POST_BUILD_ACTION=    ($(LN) -s server/libjvm.so $(@D)/images/jdk/lib/libjvm.so)
91
92 COMPONENT_BUILD_TARGETS = images
93
94 # reset arguments from Jenkins
95 COMPONENT_BUILD_ARGS=
96
97 CACERTS_DIR=$(WS_TOP)/components/openindiana/ca-certificates
98 CACERTS_INSTALLED=$(CACERTS_DIR)/build/$(MACH32)/.installed
99 CACERTS_PROTO_DIR=$(CACERTS_DIR)/build/prototype/$(MACH)
100
101 $(CACERTS_INSTALLED):
102     gmake -C $(CACERTS_DIR) install
103
104 $(CACERTS_STORE): $(BUILD_DIR_64)/.built $(CACERTS_INSTALLED)
105     $(RM) $@
106     for cert in $(CACERTS_PROTO_DIR)/etc/certs/CA/*.pem; do              \
107                 LC_ALL=en_US.UTF-8  $(BUILD_DIR_64)/images/jdk/bin/keytool \
108                   -noprompt                                                       \
109                   -importcert                                          \
110                   -keystore $@                                         \
111                   -alias `echo $$cert | $(GSED) -e 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
112                   -file $$cert                                         \
113                   -storetype jks                                       \
114                   -storepass changeit;                                 \
115         done
116
117 build:        $(BUILD_64)
118
119 install: $(BUILD_DIR_64)/.built    $(CACERTS_STORE)
120     $(RM) -r $(PROTO_DIR)/usr/jdk/instances/$(OPENJDK_INSTANCE)
121     $(MKDIR) $(PROTO_DIR)/usr/jdk/instances/$(OPENJDK_INSTANCE)
122     $(CP) -a $(BUILD_DIR_64)/images/jdk/* $(PROTO_DIR)/usr/jdk/instances/$(OPENJDK_INSTANCE)
123     $(CHMOD) +x $(PROTO_DIR)/usr/jdk/instances/$(OPENJDK_INSTANCE)/lib/jspawnhelper
124     $(CP) $(CACERTS_STORE) $(PROTO_DIR)/usr/jdk/instances/$(OPENJDK_INSTANCE)/lib/security/cacerts
125     $(TOUCH) $@
126
127 test:        $(NO_TESTS)
128
129 # manually added to support audio
130 REQUIRED_PACKAGES += system/header/header-audio
131 REQUIRED_PACKAGES += system/library/c++/sunpro
132
133 # Manually added boot JDK
134 REQUIRED_PACKAGES += runtime/java/openjdk18
135
136 # Auto-generated dependencies
137 REQUIRED_PACKAGES += $(GCC_RUNTIME_PKG)
138 REQUIRED_PACKAGES += $(GXX_RUNTIME_PKG)
b80775 139 REQUIRED_PACKAGES += $(JPEG_IMPLEM_PKG)
TW 140 REQUIRED_PACKAGES += image/library/libjpeg-turbo
8cacca 141 REQUIRED_PACKAGES += image/library/libpng16
NP 142 REQUIRED_PACKAGES += library/c++/harfbuzz
143 REQUIRED_PACKAGES += library/giflib
144 REQUIRED_PACKAGES += library/zlib
145 REQUIRED_PACKAGES += system/library
146 REQUIRED_PACKAGES += system/library/freetype-2
147 REQUIRED_PACKAGES += system/library/math
148 REQUIRED_PACKAGES += x11/library/libx11
149 REQUIRED_PACKAGES += x11/library/libxext
150 REQUIRED_PACKAGES += x11/library/libxi
151 REQUIRED_PACKAGES += x11/library/libxrender
152 REQUIRED_PACKAGES += x11/library/libxtst