Annotation of pkgsrc/lang/openjdk11/Makefile, Revision 1.38
1.38 ! ryoon 1: # $NetBSD: Makefile,v 1.37 2021/11/09 03:48:52 ryoon Exp $
1.1 tnn 2:
1.38 ! ryoon 3: DISTNAME= jdk11u-${GITHUB_TAG:C/\+/-/}
1.1 tnn 4: PKGNAME= openjdk11-1.${GITHUB_TAG:C/\+/./:C/jdk-([.0-9]+).*/\1/}
5: CATEGORIES= lang
6: MASTER_SITES= ${MASTER_SITE_GITHUB:=battleblow/}
1.38 ! ryoon 7: GITHUB_PROJECT= jdk11u
! 8: GITHUB_TAG= jdk-11.0.13+8-1
1.1 tnn 9:
10: MAINTAINER= pkgsrc-users@NetBSD.org
1.11 rillig 11: HOMEPAGE= https://openjdk.java.net/
1.1 tnn 12: COMMENT= Open-source implementation of the Java Platform, Standard Edition
13: LICENSE= gnu-gpl-v2
14:
15: DISTFILES= ${DEFAULT_DISTFILES}
16: EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
17:
18: JAVA_NAME= openjdk11
19: JAVA_HOME= ${PREFIX}/java/${JAVA_NAME}
1.32 ryoon 20: JAVA_WRAPPERS= jar jarsigner java javac javadoc javap jcmd jconsole jdb \
21: jdeprscan jdeps jfr jimage jinfo jlink jmap jmod jps \
22: jrunscript jshell jstack jstat jstatd keytool rmid \
23: rmiregistry serialver
1.1 tnn 24:
25: BUILD_DEPENDS+= mozilla-rootcerts>=1.0.20140820nb2:../../security/mozilla-rootcerts
26:
27: GNU_CONFIGURE= yes
1.23 rillig 28: GNU_CONFIGURE_STRICT= no # generates the configure script during the build
1.1 tnn 29: USE_GNU_CONFIGURE_HOST= no
30: CONFIGURE_SCRIPT= configure
31: CONFIG_SHELL= bash
32: CONFIG_SUB_OVERRIDE+= make/autoconf/build-aux/config.sub
33: CONFIG_GUESS_OVERRIDE+= make/autoconf/build-aux/config.guess
34: CONFIG_SUB_OVERRIDE+= make/autoconf/build-aux/autoconf-config.sub
35: CONFIG_GUESS_OVERRIDE+= make/autoconf/build-aux/autoconf-config.guess
36: USE_LANGUAGES= c c++
37: USE_TOOLS+= bash gmake pax pkg-config unzip:run zip:run autoconf automake
1.16 joerg 38: UNLIMIT_RESOURCES= datasize stacksize virtualsize cputime
1.1 tnn 39:
40: BUILDLINK_PASSTHRU_DIRS+= ${ALT_BOOTDIR}
41:
42: # Try to use less POSIX semaphores (large MAKE_JOBS can consume them all)
43: BOOT_JVMARGS= -XX:+UnlockDiagnosticVMOptions \
44: -XX:-UseSemaphoreGCThreadsSynchronization
45:
46: CONFIGURE_ARGS+= --prefix=${PREFIX:Q}
47: CONFIGURE_ARGS+= --openjdk-target=${MACHINE_GNU_PLATFORM:Q}
48: CONFIGURE_ARGS+= --with-boot-jdk=${ALT_BOOTDIR}
49: CONFIGURE_ARGS+= --with-boot-jdk-jvmargs=${BOOT_JVMARGS:Q}
50: CONFIGURE_ARGS+= --with-zlib=system
51: CONFIGURE_ARGS+= --with-giflib=bundled
52: CONFIGURE_ARGS+= --with-lcms=bundled
1.21 tnn 53: CONFIGURE_ARGS+= --with-cups-include=${BUILDLINK_PREFIX.libcups}/include
1.1 tnn 54: CONFIGURE_ARGS+= --with-freetype=system
55: CONFIGURE_ARGS+= --with-freetype-lib=${BUILDLINK_PREFIX.freetype2}/lib
56: CONFIGURE_ARGS+= --with-freetype-include=${BUILDLINK_PREFIX.freetype2}/include
57: CONFIGURE_ARGS+= --with-jobs=${MAKE_JOBS:U1}
58: CONFIGURE_ARGS+= --with-num-cores=${MAKE_JOBS:U1}
59: CONFIGURE_ARGS+= --disable-precompiled-headers
60: CONFIGURE_ARGS+= --disable-ccache
61: CONFIGURE_ARGS+= --disable-javac-server
1.35 ryoon 62: # Do not include ${PREFIX} (/usr/pkg) for internal libraries.
63: #CONFIGURE_ARGS+= --with-extra-ldflags=${LDFLAGS:Q}
1.1 tnn 64: CONFIGURE_ARGS+= --with-extra-cflags=${CFLAGS:Q}
65: CONFIGURE_ARGS+= --with-extra-cxxflags=${CXXFLAGS:Q}
66: CONFIGURE_ARGS+= --disable-warnings-as-errors
67: CONFIGURE_ARGS+= --with-cacerts-file=${WRKDIR}/cacerts.out
68: CONFIGURE_ARGS+= --with-default-make-target=product-images
69: # It is intentional to use CONFIGURE_ARGS instead of CONFIGURE_ENV here.
70: CONFIGURE_ARGS+= USER=pkgsrc
71:
1.31 ryoon 72: .include "../../mk/bsd.prefs.mk"
73:
1.1 tnn 74: # Avoid build errors when JAVA_HOME and CLASSPATH are defined by user.
75: MAKE_ENV+= JAVA_HOME=
76: MAKE_ENV+= CLASSPATH=
1.37 ryoon 77: .if !empty(MACHINE_PLATFORM:MNetBSD-9.99.8[1-9]-*) || \
78: !empty(MACHINE_PLATFORM:MNetBSD-9.99.9[0-9]-*)
1.31 ryoon 79: ALL_ENV+= SED="sed -g"
80: .endif
1.1 tnn 81:
1.5 rillig 82: BUILD_OPSYS= ${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/:S/Linux/linux/}
83: BUILD_ARCH= ${MACHINE_ARCH:S/i386/x86/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
84: BUILDDIR= ${WRKSRC}/build/${BUILD_OPSYS}-${BUILD_ARCH}-normal-${BUILD_VARIANT}-${BUILD_DEBUG_LEVEL}
1.1 tnn 85: BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/${JAVA_NAME}/lib
86: BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/${JAVA_NAME}/lib/server
1.5 rillig 87: WRKSRC= ${WRKDIR}/${DISTNAME}
1.1 tnn 88:
89: .include "../../mk/compiler.mk"
90:
91: .if !empty(PKGSRC_COMPILER:Mclang)
92: CONFIGURE_ARGS+= --with-toolchain-type=clang
93: _WRAP_EXTRA_ARGS.CC+= -Wno-format-nonliteral -Wno-sign-compare -Wno-char-subscripts
94: CWRAPPERS_APPEND.cc+= -Wno-format-nonliteral -Wno-sign-compare -Wno-char-subscripts
95: _WRAP_EXTRA_ARGS.CXX+= -Wno-tautological-undefined-compare
96: CWRAPPERS_APPEND.cxx+= -Wno-tautological-undefined-compare
97:
98: BUILDLINK_TRANSFORM+= rm:-fcheck-new
99: BUILDLINK_TRANSFORM+= rm:-fpch-deps
100: . if ${MACHINE_ARCH} == "x86_64"
101: _WRAP_EXTRA_ARGS.CXX+= -mstackrealign
102: CWRAPPERS_APPEND.cxx+= -mstackrealign
103: . endif
104: .else
105: # GCC
106: CONFIGURE_ARGS+= --with-toolchain-type=gcc
107: .endif
108:
109: .include "bootstrap.mk"
110: .include "options.mk"
111:
112: SUBST_CLASSES+= libpath
113: SUBST_STAGE.libpath= pre-configure
114: SUBST_FILES.libpath+= src/hotspot/os/bsd/os_bsd.cpp
115: SUBST_FILES.libpath+= make/autoconf/flags-cflags.m4
116: SUBST_FILES.libpath+= make/autoconf/lib-bundled.m4
117: SUBST_FILES.libpath+= make/autoconf/lib-freetype.m4
118: SUBST_FILES.libpath+= make/autoconf/lib-x11.m4
119: SUBST_VARS.libpath= PREFIX COMPILER_RPATH_FLAG JAVA_NAME BUILDLINK_PREFIX.zlib X11BASE
120:
121: SUBST_CLASSES+= fontpaths
122: SUBST_STAGE.fontpaths= pre-configure
123: SUBST_MESSAGE.fontpaths= fixing font paths
124: SUBST_FILES.fontpaths= make/data/fontconfig/bsd.fontconfig.properties
125: SUBST_FILES.fontpaths+= src/java.desktop/unix/native/common/awt/fontpath.c
126: SUBST_VARS.fontpaths= PREFIX BUILDLINK_PREFIX.fontconfig
127:
1.31 ryoon 128: .if ${OPSYS} == "NetBSD"
129: # NetBSD's EVFILT_* are different from FreeBSD/OpenBSD's values.
130: SUBST_CLASSES+= kqueue
131: SUBST_STAGE.kqueue= pre-configure
132: SUBST_MESSAGE.kqueue= fixing kqueue filter values
133: SUBST_FILES.kqueue= src/java.base/bsd/classes/sun/nio/ch/KQueue.java
134: SUBST_SED.kqueue= -e 's/static final int EVFILT_READ = -1;/static final int EVFILT_READ = 0;/'
135: SUBST_SED.kqueue+= -e 's/static final int EVFILT_WRITE = -2;/static final int EVFILT_WRITE = 1;/'
136: .endif
137:
1.19 tnn 138: PLIST_VARS+= aot internal_vm_compiler jvmci
1.1 tnn 139: .if ${MACHINE_ARCH} == "x86_64"
140: PLIST.aot= yes
141: PLIST.internal_vm_compiler= yes
1.19 tnn 142: PLIST.jvmci= yes
1.1 tnn 143: .endif
1.18 tnn 144: .if ${MACHINE_ARCH} == "aarch64"
1.19 tnn 145: PLIST.jvmci= yes
1.18 tnn 146: .endif
1.1 tnn 147:
148: .if ${OPSYS} == "NetBSD"
149: TOOLS_PLATFORM.unzip=
1.9 ryoon 150: .endif
1.7 wiz 151:
1.1 tnn 152: post-extract:
153: # These libs are bundled w/ the netbsd-7 bootstrap to facilitate building with
154: # MKLLVM=yes / MKGCC=no. Nuke them from bootstrap if they are present in base.
155: .if exists(/lib/libgcc_s.so.1)
156: ${RM} -f ${ALT_BOOTDIR}/lib/libgcc_s.so*
157: .endif
158:
159: pre-configure: ${WRKDIR}/cacerts.out
160:
161: ${WRKDIR}/cacerts.out:
162: mkdir ${WRKDIR}/cacerts && cd ${WRKDIR}/cacerts && \
163: ${PREFIX}/sbin/mozilla-rootcerts extract
1.15 joerg 164: ${_ULIMIT_CMD} for cert in ${WRKDIR}/cacerts/*.pem; do \
1.1 tnn 165: ${INFO_MSG} "Importing $$cert" && \
1.4 tnn 166: ${SETENV} ${CONFIGURE_ENV} LC_ALL=C \
1.1 tnn 167: ${ALT_BOOTDIR}/bin/keytool \
168: -noprompt \
169: -importcert \
170: -keystore ${.TARGET}.tmp \
171: -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
172: -file $$cert \
1.29 ryoon 173: -storetype jks \
1.1 tnn 174: -storepass changeit; \
175: done
176: mv ${.TARGET}.tmp ${.TARGET}
177:
178: do-build:
179: rm -f ${WRKSRC}/make/data/fontconfig/*.orig
1.3 tnn 180: ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} LD_LIBRARY_PATH=${ALT_BOOTDIR}/lib ${MAKE_PROGRAM}
1.1 tnn 181:
182: do-install:
183: ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
184: cd ${BUILDDIR}/images/jdk && pax -rwpp . \
185: ${DESTDIR}${JAVA_HOME}/.
186:
1.25 ryoon 187: .if ${OPSYS} == "Linux" || ${OPSYS} == "NetBSD"
1.1 tnn 188: .include "../../audio/alsa-lib/buildlink3.mk"
1.25 ryoon 189: CONFIGURE_ARGS+= --with-alsa=${BUILDLINK_PREFIX.alsa-lib}
1.1 tnn 190: .endif
191: .include "../../converters/libiconv/buildlink3.mk"
192: .include "../../devel/zlib/buildlink3.mk"
193: .include "../../fonts/fontconfig/buildlink3.mk"
194: .include "../../graphics/freetype2/buildlink3.mk"
195: # Headers from CUPS are required to build the native implementation of
196: # sun.print.* which is used by java.awt.print.
1.20 tnn 197: BUILDLINK_DEPMETHOD.libcups?= build
198: .include "../../print/libcups/buildlink3.mk"
1.1 tnn 199: .include "../../mk/java-env.mk"
200: .include "../../mk/bsd.pkg.mk"
CVSweb <webmaster@jp.NetBSD.org>