You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
275 lines
11 KiB
Tcl
275 lines
11 KiB
Tcl
# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
|
|
|
|
PortSystem 1.0
|
|
PortGroup deprecated 1.0
|
|
|
|
deprecated.macports_support no
|
|
|
|
name openjdk8
|
|
# use format based on macports:
|
|
# https://guide.macports.org/chunked/reference.portgroup.html#reference.portgroup.java
|
|
# https://github.com/openjdk/jdk8u/tags
|
|
# Tags: https://github.com/openjdk/jdk8u/tags
|
|
set major 8
|
|
set update 372
|
|
# Set to the build of the 'jdk8u${update}-b${build}' tag that corresponds to the latest tag with '-ga'
|
|
set build 07
|
|
version ${major}u${update}
|
|
revision 2
|
|
categories java devel
|
|
supported_archs ppc x86_64 arm64
|
|
license GPL-2+
|
|
maintainers nomaintainer
|
|
description OpenJDK 8
|
|
long_description JDK 8 and JRE 8 builds of OpenJDK, the Open-Source implementation \
|
|
of the Java Platform, Standard Edition, and related projects.
|
|
homepage https://openjdk.org/
|
|
master_sites https://git.openjdk.org/jdk8u/archive/refs/tags/
|
|
distname jdk${major}u${update}-ga
|
|
worksrcdir jdk8u-${distname}
|
|
|
|
if {${configure.build_arch} eq "ppc"} {
|
|
# On PowerPC this is a stub, the real JDK
|
|
# is installed by openjdk8-powerpc port.
|
|
# Independent versioning, pegged here.
|
|
version 8u
|
|
revision 0
|
|
epoch 1
|
|
|
|
depends_lib port:${name}-powerpc
|
|
|
|
distfiles
|
|
patchfiles
|
|
use_configure no
|
|
build {}
|
|
destroot {
|
|
xinstall -d ${destroot}${prefix}/share/doc/${name}
|
|
system "echo $name is a stub port > ${destroot}${prefix}/share/doc/${name}/README"
|
|
}
|
|
} else {
|
|
# x86* and arm64
|
|
|
|
checksums rmd160 7ffec6da71e24d2913b717b5f31d6be9c2fa7b7e \
|
|
sha256 3235a744b51896beb1e8b738412982ebc06e2affb9d50ae3371203d9a46504da \
|
|
size 88002433
|
|
|
|
patchfiles 0001-8181503-Can-t-compile-hotspot-with-c-11.patch \
|
|
0002-Support-XCode-3-14.patch \
|
|
0003-Ignore-__NSAutoreleaseNoPool-errors.patch \
|
|
0004-8030812-Change-the-solaris-DTrace-implementation-to-.patch \
|
|
0005-os_perf_bsd-allow-to-compile-with-ZERO-CPU.patch \
|
|
0006-Disable-C-11-warnings.patch \
|
|
0007-Added-macosx-bin-zero-jvm.cfg.patch \
|
|
0008-ExtendedOptionsImpl.c-define-TCP_KEEPINTVL-and-TCP_K.patch \
|
|
Support-arm64-and-fix-zero-assembler.diff \
|
|
finite.patch
|
|
|
|
# NSFullSizeContentViewWindowMask is available since 10.10
|
|
if {${os.platform} eq "darwin" && ${os.major} < 14} {
|
|
patchfiles-append \
|
|
0009-Revert-8211301-macos-support-full-window-content-opt.patch
|
|
}
|
|
|
|
depends_lib port:freetype \
|
|
port:libiconv
|
|
depends_build port:autoconf \
|
|
port:gmake \
|
|
port:pkgconfig \
|
|
port:bash
|
|
|
|
set tpath /Library/Java
|
|
use_xcode yes
|
|
use_configure yes
|
|
if {${configure.build_arch} in [list i386 ppc]} {
|
|
set datamodel 32
|
|
} else {
|
|
set datamodel 64
|
|
}
|
|
|
|
# Update config.{guess,sub} to recognise arm64
|
|
depends_build-append port:automake
|
|
post-patch {
|
|
set automake_dirs [glob -directory ${prefix}/share automake-*]
|
|
set automake_dir [lindex [lsort -command vercmp $automake_dirs] end]
|
|
copy -force ${automake_dir}/config.guess \
|
|
${worksrcpath}/common/autoconf/build-aux/autoconf-config.guess
|
|
copy -force ${automake_dir}/config.sub \
|
|
${worksrcpath}/common/autoconf/build-aux/autoconf-config.sub
|
|
}
|
|
|
|
configure.cmd ${prefix}/bin/bash ./configure
|
|
configure.pre_args --prefix=${tpath}
|
|
set bug_url "https://trac.macports.org/newticket?port=${name}"
|
|
# default configure args
|
|
configure.args --with-debug-level=release \
|
|
--with-freetype-include=${prefix}/include/freetype2 \
|
|
--with-freetype-lib=${prefix}/lib \
|
|
--with-target-bits=${datamodel} \
|
|
--with-extra-cflags="${configure.cflags}" \
|
|
--with-extra-cxxflags="${configure.cxxflags}" \
|
|
--with-extra-ldflags="${configure.ldflags}" \
|
|
--with-milestone=fcs \
|
|
--with-vendor-name="MacPorts" \
|
|
--with-vendor-url="https://www.macports.org" \
|
|
--with-vendor-bug-url="${bug_url}" \
|
|
--with-vendor-vm-bug-url="${bug_url}" \
|
|
--with-update-version=${update} \
|
|
--with-conf-name=openjdk8 \
|
|
--with-native-debug-symbols=none
|
|
|
|
if {[option configure.ccache]} {
|
|
# replace MacPorts ccache integration into JDK
|
|
configure.ccache no
|
|
depends_build-append path:bin/ccache:ccache
|
|
configure.args-append --enable-ccache \
|
|
--with-ccache-dir=${ccache_dir}
|
|
}
|
|
|
|
if { [string match *clang* ${configure.compiler}] } {
|
|
configure.args-append \
|
|
--with-toolchain-type=clang
|
|
} elseif { [string match *gcc* ${configure.compiler}] } {
|
|
configure.args-append \
|
|
--with-toolchain-type=gcc
|
|
}
|
|
|
|
build.pre_args-prepend \
|
|
COMPILER_WARNINGS_FATAL=false
|
|
|
|
post-patch {
|
|
# NOTE: JDK had hardcoded MACOSX_VERSION_MIN as 10.9.0 when uses clang toolchain
|
|
# and 10.7.0 for gcc toolchain.
|
|
if {${os.platform} eq "darwin" && ${os.major} < 13} {
|
|
reinplace "s|MACOSX_VERSION_MIN=10.9.0|MACOSX_VERSION_MIN=10.7.0|g" \
|
|
${worksrcpath}/common/autoconf/flags.m4 \
|
|
${worksrcpath}/common/autoconf/generated-configure.sh
|
|
}
|
|
}
|
|
|
|
if {${configure.build_arch} in "arm64 x86_64"} {
|
|
if {${os.platform} eq "darwin" && ${os.major} < 11} {
|
|
# NOTE: openjdk8-bootstrap's doesn't work enough to bootstrap openjdk on 10.6
|
|
# It is fails with errors like:
|
|
# 2022-10-01 01:35:43.344 java[12281:1d03] *** NSInvocation: warning: object 0x11478b468 of class 'ThreadUtilities' does not implement methodSignatureForSelector: -- trouble ahead
|
|
# 2022-10-01 01:35:43.345 java[12281:1d03] *** NSInvocation: warning: object 0x11478b468 of class 'ThreadUtilities' does not implement doesNotRecognizeSelector: -- abort
|
|
depends_lib
|
|
depends_build
|
|
known_fail yes
|
|
pre-fetch {
|
|
ui_error "${name} @${version} requires OS X 10.7 or greater."
|
|
return -code error "incompatible Mac OS X version"
|
|
}
|
|
}
|
|
|
|
depends_build-append port:openjdk8-bootstrap
|
|
configure.args-append --with-boot-jdk=/Library/Java/JavaVirtualMachines/openjdk8-bootstrap/Contents/Home
|
|
}
|
|
|
|
variant server \
|
|
conflicts core zero zeroshark \
|
|
description {JVM with normal interpreter and a tiered C1/C2 compiler} {
|
|
configure.args-append --with-jvm-variants=server
|
|
}
|
|
|
|
variant release \
|
|
conflicts debug \
|
|
description {OpenJDK with no debug information, all optimizations and no asserts} {
|
|
configure.args-append --with-debug-level=release
|
|
}
|
|
|
|
variant debug \
|
|
conflicts release \
|
|
description {OpenJDK with debug information, all optimizations and all asserts} {
|
|
configure.args-append --with-debug-level=fastdebug
|
|
configure.args-delete --with-native-debug-symbols=none
|
|
}
|
|
|
|
variant core \
|
|
conflicts server \
|
|
description {JVM with interpreter only and no compiler} {
|
|
configure.args-append --with-jvm-variants=core
|
|
}
|
|
|
|
variant zero \
|
|
conflicts core zeroshark server \
|
|
description {JVM with no assembler, no machine code interpreter and no compiler} {
|
|
set archuc [string toupper ${configure.build_arch}]
|
|
depends_lib-append port:libffi
|
|
configure.args-append --with-jvm-variants=zero \
|
|
--with-extra-cflags="${configure.cflags} -I${prefix}/include -arch ${configure.build_arch}" \
|
|
--with-extra-cxxflags="${configure.cxxflags} -arch ${configure.build_arch}" \
|
|
--with-extra-ldflags="${configure.ldflags} -I${prefix}/lib -arch ${configure.build_arch}"
|
|
configure.args-delete --with-extra-cflags="${configure.cflags}" \
|
|
--with-extra-cxxflags="${configure.cxxflags}" \
|
|
--with-extra-ldflags="${configure.ldflags}"
|
|
}
|
|
|
|
variant zeroshark \
|
|
conflicts core zero server \
|
|
description {JVM with no assembler, zero interpreter and shark/llvm compiler backend} {
|
|
set archuc [string toupper ${configure.build_arch}]
|
|
depends_lib-append port:libffi
|
|
configure.args-append --with-jvm-variants=zeroshark \
|
|
--with-extra-cflags="${configure.cflags} -I${prefix}/include -arch ${configure.build_arch}" \
|
|
--with-extra-cxxflags="${configure.cxxflags} -arch ${configure.build_arch}" \
|
|
--with-extra-ldflags="${configure.ldflags} -I${prefix}/lib -arch ${configure.build_arch}"
|
|
configure.args-delete --with-extra-cflags="${configure.cflags}" \
|
|
--with-extra-cxxflags="${configure.cxxflags}" \
|
|
--with-extra-ldflags="${configure.ldflags}"
|
|
}
|
|
|
|
if {![variant_isset debug] && ![variant_isset release]} {
|
|
default_variants-append +release
|
|
}
|
|
|
|
if {![variant_isset core] && ![variant_isset zeroshark] && ![variant_isset zero] && ![variant_isset server]} {
|
|
if {${os.major} < 14} {
|
|
default_variants-append +zero
|
|
} else {
|
|
if {${configure.build_arch} eq "x86_64"} {
|
|
default_variants-append +server
|
|
} elseif {${configure.build_arch} eq "arm64"} {
|
|
default_variants-append +zero
|
|
}
|
|
}
|
|
}
|
|
|
|
build.type gnu
|
|
build.target images
|
|
use_parallel_build no
|
|
set jdkn jdk1.${major}.0_${update}.jdk
|
|
set jren jre1.${major}.0_${update}.jre
|
|
set jdk_bundle_dir build/openjdk8/images/j2sdk-bundle/${jdkn}/Contents
|
|
set jre_bundle_dir build/openjdk8/images/j2re-bundle/${jren}/Contents
|
|
set jdk_path ${tpath}/JavaVirtualMachines/${name}
|
|
set jre_path ${tpath}/JavaVirtualMachines/${name}-jre
|
|
|
|
test.run yes
|
|
test.cmd ${jdk_bundle_dir}/Home/bin/java
|
|
test.target --version
|
|
|
|
destroot {
|
|
xinstall -m 755 -d ${destroot}${jdk_path}
|
|
xinstall -m 755 -d ${destroot}${jre_path}
|
|
copy ${worksrcpath}/${jdk_bundle_dir} ${destroot}${jdk_path}
|
|
copy ${worksrcpath}/${jre_bundle_dir} ${destroot}${jre_path}
|
|
}
|
|
destroot.violate_mtree yes
|
|
|
|
post-destroot {
|
|
delete ${worksrcpath}
|
|
}
|
|
|
|
notes "
|
|
If you want to make ${name} the default JDK, add this to shell profile:
|
|
export JAVA_HOME=${jdk_path}/Contents/Home
|
|
If you want to make the JRE installed by the ${name} the default JRE, add this to shell profile:
|
|
export JAVA_HOME=${jre_path}/Contents/Home
|
|
"
|
|
|
|
}
|
|
|
|
livecheck.type regex
|
|
livecheck.url https://github.com/openjdk/jdk8u/tags
|
|
livecheck.regex jdk(8u\[0-9\]+)-ga
|