|
| 1 | +# $NetBSD$ |
| 2 | + |
| 3 | +DISTNAME= jdk-11.0.16.1-ga |
| 4 | +PKGNAME= ${DISTNAME:C/jdk/openjdk11/:C/-ga//} |
| 5 | +CATEGORIES= lang |
| 6 | +MASTER_SITES= ${MASTER_SITE_GITHUB:=openjdk/} |
| 7 | +GITHUB_PROJECT= jdk11u |
| 8 | +GITHUB_TAG= ${DISTNAME} |
| 9 | + |
| 10 | +MAINTAINER= pkgsrc-users@NetBSD.org |
| 11 | +HOMEPAGE= http://openjdk.java.net/ |
| 12 | +COMMENT= Open-source implementation of the Java Platform, Standard Edition |
| 13 | +LICENSE= gnu-gpl-v2 |
| 14 | + |
| 15 | +DIST_SUBDIR= openjdk11 |
| 16 | +WRKSRC= ${WRKDIR}/jdk11u-${DISTNAME} |
| 17 | + |
| 18 | +JAVA_NAME= openjdk11 |
| 19 | +JAVA_HOME= ${PREFIX}/java/${JAVA_NAME} |
| 20 | +JAVA_WRAPPERS= jar java javac javadoc javah javap jcmd jhat jps jstack \ |
| 21 | + keytool orbd policytool rmid rmiregistry servertool tnameserv |
| 22 | + |
| 23 | +BUILD_DEPENDS+= mozilla-rootcerts-[0-9]*:../../security/mozilla-rootcerts |
| 24 | + |
| 25 | +DEPENDS+= dejavu-ttf-[0-9]*:../../fonts/dejavu-ttf |
| 26 | + |
| 27 | +BUILD_TARGET= images |
| 28 | + |
| 29 | +GNU_CONFIGURE= yes |
| 30 | +CONFIG_SHELL= bash |
| 31 | +USE_LANGUAGES= c c++ |
| 32 | +USE_TOOLS+= autoconf bash gmake pax pkg-config tar unzip:run zip:run |
| 33 | + |
| 34 | +UNLIMIT_RESOURCES= datasize stacksize |
| 35 | + |
| 36 | +BUILDLINK_TRANSFORM+= rm:-Werror |
| 37 | +BUILDLINK_TRANSFORM.SunOS+= rm:-Wl,-O1 |
| 38 | + |
| 39 | +CONFIGURE_ARGS+= --disable-option-checking # for --with-libiconv-prefix |
| 40 | +CONFIGURE_ARGS+= --prefix=${PREFIX:Q} |
| 41 | +CONFIGURE_ARGS+= --build=${MACHINE_GNU_PLATFORM:Q} |
| 42 | +CONFIGURE_ARGS+= --host=${MACHINE_GNU_PLATFORM:Q} |
| 43 | +CONFIGURE_ARGS+= --target=${MACHINE_GNU_PLATFORM:Q} |
| 44 | +CONFIGURE_ARGS+= --with-freetype=system |
| 45 | +CONFIGURE_ARGS+= --with-giflib=system |
| 46 | +CONFIGURE_ARGS+= --with-harfbuzz=system |
| 47 | +CONFIGURE_ARGS+= --with-lcms=system |
| 48 | +CONFIGURE_ARGS+= --with-libjpeg=system |
| 49 | +CONFIGURE_ARGS+= --with-libpng=system |
| 50 | +CONFIGURE_ARGS+= --with-zlib=system |
| 51 | +CONFIGURE_ARGS+= --with-x=yes |
| 52 | +CONFIGURE_ARGS+= --with-cups-include=${BUILDLINK_PREFIX.cups-base}/include |
| 53 | +CONFIGURE_ARGS+= --with-fontconfig=${BUILDLINK_PREFIX.fontconfig} |
| 54 | +CONFIGURE_ARGS+= --with-freetype-include=${BUILDLINK_PREFIX.freetype2}/include |
| 55 | +CONFIGURE_ARGS+= --with-freetype-lib=${BUILDLINK_PREFIX.freetype2}/lib |
| 56 | +CONFIGURE_ARGS+= --x-includes=${X11BASE}/include |
| 57 | +CONFIGURE_ARGS+= --x-libraries=${X11BASE}/lib |
| 58 | +CONFIGURE_ARGS+= --with-num-cores=${MAKE_JOBS:U1} |
| 59 | +CONFIGURE_ARGS+= --with-cacerts-file=${CACERTS_STORE} |
| 60 | +CONFIGURE_ARGS+= --enable-unlimited-crypto |
| 61 | +CONFIGURE_ARGS+= --disable-precompiled-headers |
| 62 | +CONFIGURE_ARGS+= --disable-ccache |
| 63 | +CONFIGURE_ARGS+= --with-extra-cflags=${CFLAGS:Q} |
| 64 | +CONFIGURE_ARGS+= --with-extra-cxxflags=${CXXFLAGS:Q} |
| 65 | +CONFIGURE_ARGS+= --with-extra-ldflags=${LDFLAGS:Q} |
| 66 | +CONFIGURE_ARGS+= --with-native-debug-symbols=none |
| 67 | +CONFIGURE_ARGS+= --with-jvm-variants=server |
| 68 | +CONFIGURE_ARGS+= --with-debug-level=release |
| 69 | +CONFIGURE_ARGS+= --disable-warnings-as-errors |
| 70 | + |
| 71 | +CONFIGURE_ARGS+= --with-toolchain-type=gcc |
| 72 | +CONFIGURE_ARGS+= --disable-hotspot-gtest |
| 73 | + |
| 74 | +# Causes unresolved symbols (GCId::print_prefix, LogTagSet::LogTagSet) that are |
| 75 | +# proving difficult to track down. |
| 76 | +CONFIGURE_ARGS.SunOS+= --disable-dtrace |
| 77 | + |
| 78 | +# The build process rejects make -j, we pass --with-num-cores above instead. |
| 79 | +MAKE_JOBS_SAFE= no |
| 80 | + |
| 81 | +BUILDLINK_PASSTHRU_RPATHDIRS+= ${JAVA_HOME}/lib |
| 82 | + |
| 83 | +CHECK_SSP_SKIP+= java/${JAVA_NAME}/lib/libjsig.so |
| 84 | +CHECK_SSP_SKIP+= java/${JAVA_NAME}/lib/server/libjsig.so |
| 85 | + |
| 86 | +SUBST_CLASSES+= libpaths |
| 87 | +SUBST_STAGE.libpaths= pre-configure |
| 88 | +SUBST_FILES.libpaths= make/autoconf/lib-bundled.m4 |
| 89 | +SUBST_FILES.libpaths+= make/launcher/LauncherCommon.gmk |
| 90 | +SUBST_FILES.libpaths+= make/launcher/Launcher-jdk.pack.gmk |
| 91 | +SUBST_VARS.libpaths= BUILDLINK_PREFIX.zlib COMPILER_RPATH_FLAG |
| 92 | + |
| 93 | +.include "../../mk/bsd.prefs.mk" |
| 94 | + |
| 95 | +# Bootstrap support, using pre-built OpenJDK10 binaries. |
| 96 | +.if !empty(MACHINE_PLATFORM:MSunOS-*-x86_64) || make(distinfo) || make (makesum) || make(mdi) |
| 97 | +BOOTSTRAP_JDK:= openjdk10-10.0.46-x86_64-sun-solaris.tar.gz |
| 98 | +SITES.${BOOTSTRAP_JDK}= https://us-east.manta.joyent.com/pkgsrc/public/pkg-bootstraps/ |
| 99 | +DISTFILES:= ${DEFAULT_DISTFILES} ${BOOTSTRAP_JDK} |
| 100 | +.endif |
| 101 | + |
| 102 | +BOOTJDK_DIR= ${WRKDIR}/openjdk10 |
| 103 | +CACERTS_STORE= ${WRKDIR}/cacerts.keystore |
| 104 | + |
| 105 | +CONFIGURE_ARGS+= --with-boot-jdk=${BOOTJDK_DIR} |
| 106 | + |
| 107 | +BUILD_OPSYS= ${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/:S/Linux/linux/} |
| 108 | +BUILD_ARCH= ${MACHINE_ARCH:S/i386/x86/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/} |
| 109 | +SERVER_DIR= ${BUILD_OPSYS}-${BUILD_ARCH}-normal-server-release |
| 110 | +IMAGEJDKDIR= ${WRKSRC}/build/${SERVER_DIR}/images/jdk |
| 111 | + |
| 112 | +PLIST_SUBST+= JAVA_NAME=${JAVA_NAME} |
| 113 | +PRINT_PLIST_AWK+= { gsub(/${JAVA_NAME}/, "$${JAVA_NAME}") } |
| 114 | +PRINT_PLIST_AWK+= /man\/.*gz/ { gsub(/\.gz$$/, "") } |
| 115 | + |
| 116 | +pre-configure: ${CACERTS_STORE} |
| 117 | +${CACERTS_STORE}: |
| 118 | + ${MKDIR} ${WRKDIR}/cacerts |
| 119 | + cd ${WRKDIR}/cacerts && ${PREFIX}/sbin/mozilla-rootcerts extract |
| 120 | + for cert in ${WRKDIR}/cacerts/*.pem; do \ |
| 121 | + ${SETENV} ${CONFIGURE_ENV} LC_ALL=C \ |
| 122 | + ${BOOTJDK_DIR}/bin/keytool \ |
| 123 | + -noprompt \ |
| 124 | + -importcert \ |
| 125 | + -keystore ${.TARGET}.tmp \ |
| 126 | + -alias `basename "$$cert" .pem` \ |
| 127 | + -file $${cert} \ |
| 128 | + -storetype jks \ |
| 129 | + -storepass changeit; \ |
| 130 | + done |
| 131 | + ${MV} ${.TARGET}.tmp ${.TARGET} |
| 132 | + |
| 133 | +do-configure: |
| 134 | + cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${BASH} configure autogen ${CONFIGURE_ARGS} |
| 135 | + |
| 136 | +do-install: |
| 137 | + ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME} |
| 138 | + cd ${IMAGEJDKDIR} && ${PAX} -rwpp . ${DESTDIR}${JAVA_HOME}/. |
| 139 | + |
| 140 | +ELFEDIT?= /usr/bin/elfedit |
| 141 | + |
| 142 | +.PHONY: bootstrap |
| 143 | +bootstrap: install |
| 144 | + ${RM} -rf ${WRKDIR}/bootstrap/${JAVA_NAME} |
| 145 | + ${MKDIR} ${WRKDIR}/bootstrap/${JAVA_NAME} |
| 146 | + cd ${DESTDIR}${JAVA_HOME} && ${PAX} -rwpp . ${WRKDIR}/bootstrap/${JAVA_NAME}/ |
| 147 | +.if ${OPSYS} == "SunOS" |
| 148 | + ${MKDIR} ${WRKDIR}/bootstrap/${JAVA_NAME}/lib/pkgsrc |
| 149 | + for lib in libgcc_s.so.1 libssp.so.0 libstdc++.so.6; do \ |
| 150 | + ${CP} `${PKG_CC} -print-file-name=$${lib}` \ |
| 151 | + ${WRKDIR}/bootstrap/${JAVA_NAME}/lib/pkgsrc/; \ |
| 152 | + done |
| 153 | + for lib in libX11.so.6 libXau.so.6 libXdmcp.so.6 libXext.so.0 \ |
| 154 | + libXi.so.6 libXrender.so.1 libXtst.so.6 libbz2.so.0 \ |
| 155 | + libfreetype.so.6 libgif.so.7 libglib-2.0.so.0 \ |
| 156 | + libgraphite2.so.3 libharfbuzz.so.0 libiconv.so.2 \ |
| 157 | + libintl.so.8 libjpeg.so.8 liblcms2.so.2 libpcre.so.1 \ |
| 158 | + libpng16.so.16 libxcb.so.1 libz.so.1; do \ |
| 159 | + ${CP} ${PREFIX}/lib/$${lib} \ |
| 160 | + ${WRKDIR}/bootstrap/${JAVA_NAME}/lib/pkgsrc/; \ |
| 161 | + done |
| 162 | + for f in ${WRKDIR}/bootstrap/${JAVA_NAME}/bin/*; do \ |
| 163 | + ${ELFEDIT} -e 'dyn:runpath $$ORIGIN/../lib/jli:$$ORIGIN/../lib/pkgsrc' $$f; \ |
| 164 | + done |
| 165 | + for f in ${WRKDIR}/bootstrap/${JAVA_NAME}/lib/{jspawnhelper,*.so}; do \ |
| 166 | + ${ELFEDIT} -e 'dyn:runpath $$ORIGIN:$$ORIGIN/jli:$$ORIGIN/server:$$ORIGIN/pkgsrc' $$f; \ |
| 167 | + done |
| 168 | + for f in ${WRKDIR}/bootstrap/${JAVA_NAME}/lib/jli/*.so; do \ |
| 169 | + ${ELFEDIT} -e 'dyn:runpath $$ORIGIN/../pkgsrc' $$f; \ |
| 170 | + done |
| 171 | + for f in ${WRKDIR}/bootstrap/${JAVA_NAME}/lib/pkgsrc/*.so*; do \ |
| 172 | + ${ELFEDIT} -e 'dyn:runpath $$ORIGIN' $$f; \ |
| 173 | + done |
| 174 | + for f in ${WRKDIR}/bootstrap/${JAVA_NAME}/lib/server/*.so; do \ |
| 175 | + ${ELFEDIT} -e 'dyn:runpath $$ORIGIN/../pkgsrc' $$f; \ |
| 176 | + done |
| 177 | + (cd ${WRKDIR}/bootstrap; \ |
| 178 | + ${TAR} -zcf ${PKGNAME}-x86_64-sun-solaris.tar.gz ${JAVA_NAME}) |
| 179 | +.endif |
| 180 | + |
| 181 | +.include "../../converters/libiconv/buildlink3.mk" |
| 182 | +.include "../../devel/zlib/buildlink3.mk" |
| 183 | +.include "../../fonts/fontconfig/buildlink3.mk" |
| 184 | +.include "../../fonts/harfbuzz/buildlink3.mk" |
| 185 | +.include "../../graphics/freetype2/buildlink3.mk" |
| 186 | +.include "../../graphics/giflib/buildlink3.mk" |
| 187 | +.include "../../graphics/lcms2/buildlink3.mk" |
| 188 | +# Headers from CUPS are required to build the native implementation of |
| 189 | +# sun.print.* which is used by java.awt.print. |
| 190 | +BUILDLINK_DEPMETHOD.cups-base?= build |
| 191 | +.include "../../print/cups-base/buildlink3.mk" |
| 192 | +.include "../../x11/libXext/buildlink3.mk" |
| 193 | +.include "../../x11/libXi/buildlink3.mk" |
| 194 | +.include "../../x11/libXrender/buildlink3.mk" |
| 195 | +BUILDLINK_DEPMETHOD.libXt?= build |
| 196 | +.include "../../x11/libXt/buildlink3.mk" |
| 197 | +.include "../../x11/libXtst/buildlink3.mk" |
| 198 | +BUILDLINK_DEPMETHOD.libXrandr?= build |
| 199 | +.include "../../x11/libXrandr/buildlink3.mk" |
| 200 | +.include "../../mk/java-env.mk" |
| 201 | +.include "../../mk/bsd.pkg.mk" |
0 commit comments