diff options
Diffstat (limited to 'lang/openjdk8/Makefile')
-rw-r--r-- | lang/openjdk8/Makefile | 194 |
1 files changed, 194 insertions, 0 deletions
diff --git a/lang/openjdk8/Makefile b/lang/openjdk8/Makefile new file mode 100644 index 00000000000..9f7c4b56874 --- /dev/null +++ b/lang/openjdk8/Makefile @@ -0,0 +1,194 @@ +# $NetBSD: Makefile,v 1.1 2015/02/08 08:41:25 tnn Exp $ + +DISTNAME= openjdk-1.8.31-20150207 +PKGNAME= openjdk8-1.8.31 +CATEGORIES= lang +MASTER_SITES= ${MASTER_SITE_LOCAL:=openjdk7/} +EXTRACT_SUFX= .tar.xz + +MAINTAINER= pkgsrc-users@NetBSD.org +HOMEPAGE= http://openjdk.java.net/ +COMMENT= Open-source implementation of the Java Platform, Standard Edition +LICENSE= gnu-gpl-v2 + +DISTFILES= ${DEFAULT_DISTFILES} +EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX} + +# Use same DIST_SUBDIR as openjdk7 to avoid duplication of common distfiles +DIST_SUBDIR= openjdk7 + +JAVA_NAME= openjdk8 +JAVA_HOME= ${PREFIX}/java/${JAVA_NAME} +JAVA_WRAPPERS= jar java javac javadoc javah javap keytool orbd \ + policytool rmid rmiregistry servertool tnameserv + +BUILD_DEPENDS+= mozilla-rootcerts>=1.0.20140820nb2:../../security/mozilla-rootcerts + +GNU_CONFIGURE= yes +CONFIGURE_SCRIPT= common/autoconf/configure +CONFIG_SHELL= bash +USE_LANGUAGES= c c++ +USE_TOOLS+= bash gmake pax pkg-config unzip:run zip:run +UNLIMIT_RESOURCES= datasize stacksize +WRKSRC= ${WRKDIR}/openjdk +PLIST_SRC+= ${PLIST_SRC_DFLT} + +BUILDLINK_PASSTHRU_DIRS+= ${ALT_BOOTDIR} +PREPEND_PATH+= ${ALT_BOOTDIR}/bin + +CONFIGURE_ARGS+= --with-boot-jdk=${ALT_BOOTDIR} +CONFIGURE_ARGS+= --with-zlib=system +CONFIGURE_ARGS+= --with-giflib=bundled +CONFIGURE_ARGS+= --with-cups=${BUILDLINK_PREFIX.cups} +CONFIGURE_ARGS+= --with-freetype-lib=${BUILDLINK_PREFIX.freetype2}/lib +CONFIGURE_ARGS+= --with-freetype-include=${BUILDLINK_PREFIX.freetype2}/include +CONFIGURE_ARGS+= --disable-freetype-bundling +CONFIGURE_ARGS+= --with-jobs=${MAKE_JOBS:U1} +CONFIGURE_ARGS+= --with-num-cores=${MAKE_JOBS:U1} +CONFIGURE_ARGS+= --with-memory-size=768 +CONFIGURE_ARGS+= --disable-ccache +CONFIGURE_ARGS+= --with-user-release-suffix=pkgsrc_${PKGVERSION} +CONFIGURE_ARGS+= --with-update-version=u${PKGVERSION_NOREV:S/1.8.//} + +ALL_ENV+= PKGSRC_BOOT_JDK_JVMARGS="-XX:+UseSerialGC -Xmx768M" +ALL_ENV+= PKGSRC_BOOT_JDK_TOOLARGS="-J-XX:+UseSerialGC -J-Xmx768M" + +CHECK_PORTABILITY_SKIP+= hotspot/test/runtime/*/*.sh + +# Avoid build errors when JAVA_HOME and CLASSPATH are defined by user. +MAKE_ENV+= JAVA_HOME= +MAKE_ENV+= CLASSPATH= + +BUILDDIR= ${WRKSRC}/build/${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/}-${MACHINE_ARCH:S/i386/x86/}-normal-${BUILD_VARIANT}-${BUILD_DEBUG_LEVEL} +LD_LIBRARY_PATH= ${WRKDIR}/bootstrap/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}:${WRKDIR}/bootstrap/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}/jli:${WRKDIR}/bootstrap/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}/server +CONFIGURE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH} +MAKE_ENV+= LD_LIBRARY_PATH=${LD_LIBRARY_PATH} +BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/openjdk8/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/} + +PLIST_SUBST+= ARCH=${MACHINE_ARCH:S/x86_64/amd64/} +PLIST_SUBST+= LOWER_OPSYS=${LOWER_OPSYS} + +.include "../../mk/compiler.mk" + +SUBST_CLASSES+= libpath +SUBST_STAGE.libpath= pre-build +SUBST_FILES.libpath+= hotspot/src/os/bsd/vm/os_bsd.cpp +SUBST_VARS.libpath= PREFIX + +.if !empty(PKGSRC_COMPILER:Mclang) +_WRAP_EXTRA_ARGS.CXX+= -Wno-parentheses -Wno-sign-conversion \ + -Wno-shorten-64-to-32 -Wno-conversion \ + -Wno-unused-value -Wno-switch-enum -Wno-switch \ + -Wno-tautological-compare \ + -Wno-delete-non-virtual-dtor \ + -Wno-return-type -Wno-unused-parameter \ + -Wno-parentheses-equality -Wno-empty-body \ + -Wno-format -Wno-dynamic-class-memaccess +CWRAPPERS_APPEND.cxx+= -Wno-parentheses -Wno-sign-conversion \ + -Wno-shorten-64-to-32 -Wno-conversion \ + -Wno-unused-value -Wno-switch-enum -Wno-switch \ + -Wno-tautological-compare \ + -Wno-delete-non-virtual-dtor \ + -Wno-return-type -Wno-unused-parameter \ + -Wno-parentheses-equality -Wno-empty-body \ + -Wno-format -Wno-dynamic-class-memaccess +. if ${OPSYS} != "FreeBSD" +_WRAP_EXTRA_ARGS.CXX+= -Wno-new-returns-null +CWRAPPERS_APPEND.cxx+= -Wno-new-returns-null +. endif +BUILDLINK_TRANSFORM+= rm:-fcheck-new +BUILDLINK_TRANSFORM+= rm:-fpch-deps +. if ${MACHINE_ARCH} == "x86_64" +_WRAP_EXTRA_ARGS.CXX+= -mstackrealign +CWRAPPERS_APPEND.cxx+= -mstackrealign +. endif +.endif +.include "bootstrap.mk" + +.include "options.mk" + +SUBST_CLASSES+= fontpaths +SUBST_STAGE.fontpaths= pre-build +SUBST_MESSAGE.fontpaths= fixing font paths +SUBST_FILES.fontpaths= jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties +SUBST_FILES.fontpaths+= jdk/src/solaris/native/sun/awt/fontpath.c +SUBST_SED.fontpaths= -e 's|@PREFIX@|${PREFIX}|g' +SUBST_SED.fontpaths+= -e 's|@BUILDLINK_PREFIX.fontconfig@|${BUILDLINK_PREFIX.fontconfig}|g' + +post-extract: +.if ${OPSYS} == "SunOS" + ${MKDIR} ${ALT_BOOTDIR}/bin + ${LN} -s ${JDK_BOOTDIR}/include ${ALT_BOOTDIR}/include + ${LN} -s ${JDK_BOOTDIR}/lib ${ALT_BOOTDIR}/lib + ${LN} -s ${JDK_BOOTDIR}/bin/java ${ALT_BOOTDIR}/bin + ${LN} -s ${JDK_BOOTDIR}/bin/javac ${ALT_BOOTDIR}/bin + ${LN} -s ${JDK_BOOTDIR}/bin/javah ${ALT_BOOTDIR}/bin + ${LN} -s ${JDK_BOOTDIR}/bin/javap ${ALT_BOOTDIR}/bin + ${LN} -s ${JDK_BOOTDIR}/bin/idlj ${ALT_BOOTDIR}/bin + ${LN} -s ${JDK_BOOTDIR}/bin/jar ${ALT_BOOTDIR}/bin + ${LN} -s ${JDK_BOOTDIR}/bin/native2ascii ${ALT_BOOTDIR}/bin + ${LN} -s ${JDK_BOOTDIR}/bin/rmic ${ALT_BOOTDIR}/bin +.elif ${OPSYS} == "NetBSD" && exists(${.CURDIR}/libs) + cp ${.CURDIR}/libs/lib* ${ALT_BOOTDIR}/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/} +.endif + +do-build: ${WRKDIR}/stage3-done + +# stage 1 builds a native JDK using the bootstrap binaries +${WRKDIR}/stage1-done: + ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images + rm -rf ${ALT_BOOTDIR} + cd ${BUILDDIR}/images && mv j2sdk-image ${ALT_BOOTDIR} +.for d in corba hotspot jaxp jaxws langtools tmp + mv ${BUILDDIR}/${d} ${BUILDDIR}/${d}-stage1 +.endfor + touch ${WRKDIR}/stage1-done + +# stage 2 rebuilds the JDK using native tools +${WRKDIR}/stage2-done: ${WRKDIR}/stage1-done + ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images + touch ${WRKDIR}/stage2-done + +# stage 3 builds third party add-ons +${WRKDIR}/stage3-done: ${WRKDIR}/stage2-done ${WRKDIR}/cacerts.out + touch ${WRKDIR}/stage3-done + +${WRKDIR}/cacerts.out: + mkdir ${WRKDIR}/cacerts && cd ${WRKDIR}/cacerts && \ + ${PREFIX}/sbin/mozilla-rootcerts extract + for cert in ${WRKDIR}/cacerts/*.pem; do \ + ${INFO_MSG} "Importing $$cert" && \ + ${SETENV} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} LC_ALL=C \ + ${BUILDDIR}/images/j2sdk-image/bin/keytool \ + -noprompt \ + -importcert \ + -keystore ${.TARGET} \ + -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.pem,\\1,'` \ + -file $$cert \ + -storepass changeit; \ + done + +do-install: + ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME} + cd ${BUILDDIR}/images/j2sdk-image && pax -rwpp . \ + ${DESTDIR}${JAVA_HOME}/. + ${INSTALL_DATA} ${WRKDIR}/cacerts.out \ + ${DESTDIR}${JAVA_HOME}/jre/lib/security/cacerts + rm -f ${DESTDIR}${JAVA_HOME}/include/jni_md.h + ln -s ${LOWER_OPSYS}/jni_md.h \ + ${DESTDIR}${JAVA_HOME}/include/jni_md.h + +.if ${OPSYS} == "NetBSD" +TOOLS_PLATFORM.unzip= +.endif + +# disabled the ALSA support for now on BSDs via patch +#.include "../../audio/alsa-lib/buildlink3.mk" +.include "../../converters/libiconv/buildlink3.mk" +.include "../../devel/zlib/buildlink3.mk" +.include "../../fonts/fontconfig/buildlink3.mk" +.include "../../graphics/freetype2/buildlink3.mk" +BUILDLINK_DEPMETHOD.cups?= build +.include "../../print/cups15/buildlink3.mk" +.include "../../mk/java-env.mk" +.include "../../mk/bsd.pkg.mk" |