[BACK]Return to Makefile CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / pkgsrc / lang / openjdk8

Annotation of pkgsrc/lang/openjdk8/Makefile, Revision 1.59

1.59    ! ryoon       1: # $NetBSD: Makefile,v 1.58 2018/01/28 20:10:54 wiz Exp $
1.1       tnn         2:
1.59    ! ryoon       3: DISTNAME=      openjdk-1.8.162-20180212
        !             4: PKGNAME=       openjdk8-1.8.162
1.1       tnn         5: CATEGORIES=    lang
                      6: MASTER_SITES=  ${MASTER_SITE_LOCAL:=openjdk7/}
                      7: EXTRACT_SUFX=  .tar.xz
                      8:
                      9: MAINTAINER=    pkgsrc-users@NetBSD.org
                     10: HOMEPAGE=      http://openjdk.java.net/
                     11: COMMENT=       Open-source implementation of the Java Platform, Standard Edition
                     12: LICENSE=       gnu-gpl-v2
                     13:
                     14: DISTFILES=     ${DEFAULT_DISTFILES}
                     15: EXTRACT_ONLY=  ${DISTNAME}${EXTRACT_SUFX}
                     16:
                     17: # Use same DIST_SUBDIR as openjdk7 to avoid duplication of common distfiles
                     18: DIST_SUBDIR=   openjdk7
                     19:
                     20: JAVA_NAME=     openjdk8
                     21: JAVA_HOME=     ${PREFIX}/java/${JAVA_NAME}
1.47      jperkin    22: JAVA_WRAPPERS= jar java javac javadoc javah javap jcmd jps jstack keytool \
                     23:                orbd policytool rmid rmiregistry servertool tnameserv
1.1       tnn        24:
1.26      asau       25: BUILD_DEPENDS+=                mozilla-rootcerts>=1.0.20140820nb2:../../security/mozilla-rootcerts
                     26:
1.22      tnn        27: GNU_CONFIGURE=         yes
1.1       tnn        28: CONFIGURE_SCRIPT=      common/autoconf/configure
                     29: CONFIG_SHELL=          bash
1.6       tnn        30: CONFIG_SUB_OVERRIDE+=  common/autoconf/build-aux/config.sub
1.7       tnn        31: CONFIG_GUESS_OVERRIDE+=        common/autoconf/build-aux/config.guess
1.22      tnn        32: CONFIG_SUB_OVERRIDE+=  common/autoconf/build-aux/autoconf-config.sub
1.7       tnn        33: CONFIG_GUESS_OVERRIDE+=        common/autoconf/build-aux/autoconf-config.guess
1.1       tnn        34: USE_LANGUAGES=         c c++
                     35: USE_TOOLS+=            bash gmake pax pkg-config unzip:run zip:run
                     36: UNLIMIT_RESOURCES=     datasize stacksize
                     37: WRKSRC=                        ${WRKDIR}/openjdk
                     38: PLIST_SRC+=            ${PLIST_SRC_DFLT}
1.37      jperkin    39: CHECK_SHLIBS_SKIP+=    java/openjdk8/jre/lib/${LIBDIR_ARCH}/libinstrument.so
1.1       tnn        40:
                     41: BUILDLINK_PASSTHRU_DIRS+=      ${ALT_BOOTDIR}
                     42: PREPEND_PATH+=                 ${ALT_BOOTDIR}/bin
                     43:
1.22      tnn        44: CONFIGURE_ARGS+=       --disable-option-checking # for --with-libiconv-prefix
1.18      fhajny     45: CONFIGURE_ARGS+=       --prefix=${PREFIX:Q}
                     46: CONFIGURE_ARGS+=       --build=${MACHINE_GNU_PLATFORM:Q}
                     47: CONFIGURE_ARGS+=       --host=${MACHINE_GNU_PLATFORM:Q}
1.1       tnn        48: CONFIGURE_ARGS+=       --with-boot-jdk=${ALT_BOOTDIR}
                     49: CONFIGURE_ARGS+=       --with-zlib=system
                     50: CONFIGURE_ARGS+=       --with-giflib=bundled
1.57      jperkin    51: CONFIGURE_ARGS+=       --with-cups-include=${BUILDLINK_PREFIX.cups-base}/include
1.1       tnn        52: CONFIGURE_ARGS+=       --with-freetype-lib=${BUILDLINK_PREFIX.freetype2}/lib
                     53: CONFIGURE_ARGS+=       --with-freetype-include=${BUILDLINK_PREFIX.freetype2}/include
                     54: CONFIGURE_ARGS+=       --disable-freetype-bundling
                     55: CONFIGURE_ARGS+=       --with-jobs=${MAKE_JOBS:U1}
                     56: CONFIGURE_ARGS+=       --with-num-cores=${MAKE_JOBS:U1}
                     57: CONFIGURE_ARGS+=       --with-memory-size=768
1.16      tnn        58: CONFIGURE_ARGS+=       --disable-precompiled-headers
1.1       tnn        59: CONFIGURE_ARGS+=       --disable-ccache
                     60: CONFIGURE_ARGS+=       --with-user-release-suffix=pkgsrc_${PKGVERSION}
1.24      tnn        61: CONFIGURE_ARGS+=       --with-update-version=${PKGVERSION_NOREV:S/1.8.//}
1.50      wiz        62: CONFIGURE_ARGS+=       --with-extra-ldflags=${LDFLAGS:Q}
1.1       tnn        63:
                     64: CHECK_PORTABILITY_SKIP+=       hotspot/test/runtime/*/*.sh
                     65:
1.34      wiz        66: NOT_PAX_MPROTECT_SAFE+= java/openjdk8/bin/[a-ik-z]*
                     67: NOT_PAX_MPROTECT_SAFE+= java/openjdk8/bin/j[b-z]*
                     68: NOT_PAX_MPROTECT_SAFE+= java/openjdk8/bin/jar*
                     69: NOT_PAX_MPROTECT_SAFE+= java/openjdk8/bin/java
                     70: NOT_PAX_MPROTECT_SAFE+= java/openjdk8/bin/java[a-z]*
1.35      pgoyette   71: NOT_PAX_MPROTECT_SAFE+= java/openjdk8/jre/bin/*
1.34      wiz        72:
1.1       tnn        73: # Avoid build errors when JAVA_HOME and CLASSPATH are defined by user.
                     74: MAKE_ENV+=     JAVA_HOME=
                     75: MAKE_ENV+=     CLASSPATH=
                     76:
1.5       tnn        77: BUILD_OPSYS=   ${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/}
1.6       tnn        78: BUILD_ARCH=    ${MACHINE_ARCH:S/i386/x86/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
                     79: LIBDIR_ARCH=   ${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
1.5       tnn        80: BUILDDIR=      ${WRKSRC}/build/${BUILD_OPSYS}-${BUILD_ARCH}-normal-${BUILD_VARIANT}-${BUILD_DEBUG_LEVEL}
                     81: LD_LIBRARY_PATH=       ${WRKDIR}/bootstrap/jre/lib/${LIBDIR_ARCH}:${WRKDIR}/bootstrap/jre/lib/${LIBDIR_ARCH}/jli:${WRKDIR}/bootstrap/jre/lib/${LIBDIR_ARCH}/server
1.1       tnn        82: CONFIGURE_ENV+=        LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
                     83: MAKE_ENV+=     LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
1.50      wiz        84: CONFIGURE_ENV+=        LFLAGS=${LDFLAGS:Q}
                     85: MAKE_ENV+=     LFLAGS=${LDFLAGS:Q}
1.5       tnn        86: BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/openjdk8/jre/lib/${LIBDIR_ARCH}
1.1       tnn        87:
1.5       tnn        88: PLIST_SUBST+=  ARCH=${LIBDIR_ARCH}
1.17      fhajny     89: PLIST_SUBST+=  LOWER_OPSYS=${LOWER_OPSYS:S/sunos/solaris/}
1.1       tnn        90:
                     91: .include "../../mk/compiler.mk"
                     92:
                     93: SUBST_CLASSES+=                libpath
                     94: SUBST_STAGE.libpath=   pre-build
                     95: SUBST_FILES.libpath+=  hotspot/src/os/bsd/vm/os_bsd.cpp
                     96: SUBST_VARS.libpath=    PREFIX
                     97:
1.9       tnn        98: CFLAGS+=       -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
                     99: CXXFLAGS+=     -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
                    100:
1.56      jperkin   101: CONFIGURE_ENV+=        CFLAGS_JDK=${CFLAGS:Q}
                    102: CONFIGURE_ENV+=        CXXFLAGS_JDK=${CXXFLAGS:Q}
                    103:
1.59    ! ryoon     104: # Fix segfault under NetBSD/amd64 8.99 with GCC 6.4.0
        !           105: .if !empty(CC_VERSION:Mgcc-6.*)
        !           106: CFLAGS+=       -fno-lifetime-dse
        !           107: .endif
        !           108:
1.17      fhajny    109: .if ${OPSYS} == "SunOS" && !empty(PKGSRC_COMPILER:Mgcc)
                    110: MAKE_ENV+=     USE_GCC=1
                    111: MAKE_ENV+=     ARCH_DATA_MODEL=${ABI:Q}
                    112: .endif
                    113:
1.59    ! ryoon     114: BUILDLINK_TRANSFORM+=  rm:-O2
        !           115:
1.1       tnn       116: .if !empty(PKGSRC_COMPILER:Mclang)
1.2       tnn       117: _WRAP_EXTRA_ARGS.CC+=  -Wno-return-type
1.3       tnn       118: CWRAPPERS_APPEND.cc+=  -Wno-return-type
1.1       tnn       119: _WRAP_EXTRA_ARGS.CXX+= -Wno-parentheses -Wno-sign-conversion \
                    120:                        -Wno-shorten-64-to-32 -Wno-conversion \
                    121:                        -Wno-unused-value -Wno-switch-enum -Wno-switch \
                    122:                        -Wno-tautological-compare \
                    123:                        -Wno-delete-non-virtual-dtor \
                    124:                        -Wno-return-type -Wno-unused-parameter \
                    125:                        -Wno-parentheses-equality -Wno-empty-body \
                    126:                        -Wno-format -Wno-dynamic-class-memaccess
                    127: CWRAPPERS_APPEND.cxx+= -Wno-parentheses -Wno-sign-conversion \
                    128:                        -Wno-shorten-64-to-32 -Wno-conversion \
                    129:                        -Wno-unused-value -Wno-switch-enum -Wno-switch \
                    130:                        -Wno-tautological-compare \
                    131:                        -Wno-delete-non-virtual-dtor \
                    132:                        -Wno-return-type -Wno-unused-parameter \
                    133:                        -Wno-parentheses-equality -Wno-empty-body \
                    134:                        -Wno-format -Wno-dynamic-class-memaccess
                    135: .  if ${OPSYS} != "FreeBSD"
                    136: _WRAP_EXTRA_ARGS.CXX+= -Wno-new-returns-null
                    137: CWRAPPERS_APPEND.cxx+= -Wno-new-returns-null
                    138: .  endif
                    139: BUILDLINK_TRANSFORM+=  rm:-fcheck-new
                    140: BUILDLINK_TRANSFORM+=  rm:-fpch-deps
                    141: .  if ${MACHINE_ARCH} == "x86_64"
                    142: _WRAP_EXTRA_ARGS.CXX+= -mstackrealign
                    143: CWRAPPERS_APPEND.cxx+= -mstackrealign
                    144: .  endif
                    145: .endif
                    146: .include "bootstrap.mk"
                    147:
                    148: .include "options.mk"
                    149:
                    150: SUBST_CLASSES+=                        fontpaths
                    151: SUBST_STAGE.fontpaths=         pre-build
                    152: SUBST_MESSAGE.fontpaths=       fixing font paths
                    153: SUBST_FILES.fontpaths=         jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties
                    154: SUBST_FILES.fontpaths+=                jdk/src/solaris/native/sun/awt/fontpath.c
                    155: SUBST_SED.fontpaths=           -e 's|@PREFIX@|${PREFIX}|g'
                    156: SUBST_SED.fontpaths+=          -e 's|@BUILDLINK_PREFIX.fontconfig@|${BUILDLINK_PREFIX.fontconfig}|g'
                    157:
1.38      jperkin   158: SUBST_CLASSES+=                        zlibpath
                    159: SUBST_STAGE.zlibpath=          pre-build
                    160: SUBST_FILES.zlibpath=          jdk/make/CompileLaunchers.gmk jdk/make/lib/CoreLibraries.gmk
1.49      ryoon     161: SUBST_FILES.zlibpath+=         jdk/make/lib/Awt2dLibraries.gmk jdk/make/lib/ServiceabilityLibraries.gmk
1.38      jperkin   162: SUBST_VARS.zlibpath=           COMPILER_RPATH_FLAG BUILDLINK_PREFIX.zlib
1.49      ryoon     163: SUBST_VARS.zlibpath+=          BUILDLINK_PREFIX.iconv
1.38      jperkin   164:
1.17      fhajny    165: PLIST_VARS+=   i386
                    166: .if ${MACHINE_ARCH} == "i386"
                    167: PLIST.i386=    yes
                    168: .endif
                    169:
1.11      tnn       170: PLIST_VARS+=   sctp
1.17      fhajny    171: .if ${OPSYS} == "FreeBSD" || ${OPSYS} == "SunOS"
1.11      tnn       172: PLIST.sctp=    yes
                    173: .endif
                    174:
1.1       tnn       175: post-extract:
1.9       tnn       176: # These libs are bundled w/ the netbsd-7 bootstrap to facilitate building with
                    177: # MKLLVM=yes / MKGCC=no. Nuke them from bootstrap if they are present in base.
                    178: .if exists(/lib/libgcc_s.so.1)
                    179:        ${RM} -f ${ALT_BOOTDIR}/jre/lib/${LIBDIR_ARCH}/libgcc_s.so*
                    180: .endif
                    181: .if exists(/usr/lib/libstdc++.so.7)
                    182:        ${RM} -f ${ALT_BOOTDIR}/jre/lib/${LIBDIR_ARCH}/libstdc++.so*
1.1       tnn       183: .endif
1.34      wiz       184: .if defined(TOOLS_PLATFORM.paxctl)
                    185:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/[a-ik-z]*
                    186:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/j[b-z]*
                    187:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/jar*
                    188:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java
                    189:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java[a-z]*
                    190: .endif
1.1       tnn       191:
                    192: do-build: ${WRKDIR}/stage3-done
                    193:
                    194: # stage 1 builds a native JDK using the bootstrap binaries
                    195: ${WRKDIR}/stage1-done:
                    196:        ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images
                    197:        rm -rf ${ALT_BOOTDIR}
                    198:        cd ${BUILDDIR}/images && mv j2sdk-image ${ALT_BOOTDIR}
                    199: .for d in corba hotspot jaxp jaxws langtools tmp
                    200:        mv ${BUILDDIR}/${d} ${BUILDDIR}/${d}-stage1
                    201: .endfor
1.5       tnn       202:        touch ${.TARGET}
                    203:
                    204: # stage 1.5 reconfigures, since the bootstrap JDK major version might have changed now
                    205: ${WRKDIR}/stage1_5-done: ${WRKDIR}/stage1-done
1.34      wiz       206: .if defined(TOOLS_PLATFORM.paxctl)
                    207:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/[a-ik-z]*
                    208:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/j[b-z]*
                    209:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/jar*
                    210:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java
                    211:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java[a-z]*
                    212: .endif
1.36      tnn       213: .if defined(BATCH)
                    214:        @${RECURSIVE_MAKE} ${MAKEFLAGS} apply-va-hack
                    215: .endif
1.12      tnn       216:        @${STEP_MSG} "Reconfiguring with newly built JDK"
                    217:        @${RECURSIVE_MAKE} ${MAKEFLAGS} do-configure
1.5       tnn       218:        touch ${.TARGET}
1.1       tnn       219:
                    220: # stage 2 rebuilds the JDK using native tools
1.5       tnn       221: ${WRKDIR}/stage2-done: ${WRKDIR}/stage1_5-done
1.6       tnn       222:        ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images
1.5       tnn       223:        touch ${.TARGET}
1.1       tnn       224:
                    225: # stage 3 builds third party add-ons
                    226: ${WRKDIR}/stage3-done: ${WRKDIR}/stage2-done ${WRKDIR}/cacerts.out
1.5       tnn       227:        touch ${.TARGET}
1.1       tnn       228:
                    229: ${WRKDIR}/cacerts.out:
                    230:        mkdir ${WRKDIR}/cacerts && cd ${WRKDIR}/cacerts &&              \
                    231:                ${PREFIX}/sbin/mozilla-rootcerts extract
                    232:        for cert in ${WRKDIR}/cacerts/*.pem; do                         \
                    233:                ${INFO_MSG} "Importing $$cert" &&                       \
                    234:                 ${SETENV} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} LC_ALL=C  \
1.12      tnn       235:                  ${ALT_BOOTDIR}/bin/keytool                            \
1.1       tnn       236:                  -noprompt                                             \
                    237:                  -importcert                                           \
                    238:                  -keystore ${.TARGET}                                  \
                    239:                  -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
                    240:                  -file $$cert                                          \
                    241:                  -storepass changeit;                                  \
                    242:        done
                    243:
                    244: do-install:
                    245:        ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
                    246:        cd ${BUILDDIR}/images/j2sdk-image && pax -rwpp .                \
                    247:          ${DESTDIR}${JAVA_HOME}/.
                    248:        ${INSTALL_DATA} ${WRKDIR}/cacerts.out                           \
                    249:          ${DESTDIR}${JAVA_HOME}/jre/lib/security/cacerts
                    250:        rm -f ${DESTDIR}${JAVA_HOME}/include/jni_md.h
1.17      fhajny    251:        ln -s ${LOWER_OPSYS:S/sunos/solaris/}/jni_md.h                                  \
1.1       tnn       252:          ${DESTDIR}${JAVA_HOME}/include/jni_md.h
                    253:
                    254: .if ${OPSYS} == "NetBSD"
                    255: TOOLS_PLATFORM.unzip=
                    256: .endif
                    257:
1.17      fhajny    258: # Include binutils for objcopy and GNU strip on SmartOS
                    259: .if ${OS_VARIANT} == "SmartOS"
                    260: .include "../../devel/binutils/buildlink3.mk"
                    261: BUILDLINK_DEPMETHOD.binutils?= build
                    262: MAKE_ENV+=     STRIP=${PREFIX}/bin/gstrip
                    263: .endif
                    264:
1.1       tnn       265: # disabled the ALSA support for now on BSDs via patch
                    266: #.include "../../audio/alsa-lib/buildlink3.mk"
                    267: .include "../../converters/libiconv/buildlink3.mk"
                    268: .include "../../devel/zlib/buildlink3.mk"
                    269: .include "../../fonts/fontconfig/buildlink3.mk"
                    270: .include "../../graphics/freetype2/buildlink3.mk"
1.57      jperkin   271: BUILDLINK_DEPMETHOD.cups-base?=        build
1.52      khorben   272: .include "../../print/cups-base/buildlink3.mk"
1.1       tnn       273: .include "../../mk/java-env.mk"
                    274: .include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>