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

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

1.29    ! jperkin     1: # $NetBSD: Makefile,v 1.28 2016/02/19 22:59:27 ryoon Exp $
1.1       tnn         2:
1.28      ryoon       3: DISTNAME=      openjdk-1.8.74-20160219
                      4: PKGNAME=       openjdk8-1.8.74
1.29    ! jperkin     5: PKGREVISION=   1
1.1       tnn         6: CATEGORIES=    lang
                      7: MASTER_SITES=  ${MASTER_SITE_LOCAL:=openjdk7/}
                      8: EXTRACT_SUFX=  .tar.xz
                      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: DISTFILES=     ${DEFAULT_DISTFILES}
                     16: EXTRACT_ONLY=  ${DISTNAME}${EXTRACT_SUFX}
                     17:
                     18: # Use same DIST_SUBDIR as openjdk7 to avoid duplication of common distfiles
                     19: DIST_SUBDIR=   openjdk7
                     20:
                     21: JAVA_NAME=     openjdk8
                     22: JAVA_HOME=     ${PREFIX}/java/${JAVA_NAME}
1.13      abs        23: JAVA_WRAPPERS= jar java javac javadoc javah javap jps keytool orbd \
1.1       tnn        24:                policytool rmid rmiregistry servertool tnameserv
                     25:
1.26      asau       26: BUILD_DEPENDS+=                mozilla-rootcerts>=1.0.20140820nb2:../../security/mozilla-rootcerts
                     27:
1.22      tnn        28: GNU_CONFIGURE=         yes
1.1       tnn        29: CONFIGURE_SCRIPT=      common/autoconf/configure
                     30: CONFIG_SHELL=          bash
1.6       tnn        31: CONFIG_SUB_OVERRIDE+=  common/autoconf/build-aux/config.sub
1.7       tnn        32: CONFIG_GUESS_OVERRIDE+=        common/autoconf/build-aux/config.guess
1.22      tnn        33: CONFIG_SUB_OVERRIDE+=  common/autoconf/build-aux/autoconf-config.sub
1.7       tnn        34: CONFIG_GUESS_OVERRIDE+=        common/autoconf/build-aux/autoconf-config.guess
1.1       tnn        35: USE_LANGUAGES=         c c++
                     36: USE_TOOLS+=            bash gmake pax pkg-config unzip:run zip:run
                     37: UNLIMIT_RESOURCES=     datasize stacksize
                     38: WRKSRC=                        ${WRKDIR}/openjdk
                     39: PLIST_SRC+=            ${PLIST_SRC_DFLT}
                     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
                     51: CONFIGURE_ARGS+=       --with-cups=${BUILDLINK_PREFIX.cups}
                     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.1       tnn        62:
                     63: CHECK_PORTABILITY_SKIP+=       hotspot/test/runtime/*/*.sh
                     64:
                     65: # Avoid build errors when JAVA_HOME and CLASSPATH are defined by user.
                     66: MAKE_ENV+=     JAVA_HOME=
                     67: MAKE_ENV+=     CLASSPATH=
                     68:
1.5       tnn        69: BUILD_OPSYS=   ${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/}
1.6       tnn        70: BUILD_ARCH=    ${MACHINE_ARCH:S/i386/x86/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
                     71: LIBDIR_ARCH=   ${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
1.5       tnn        72: BUILDDIR=      ${WRKSRC}/build/${BUILD_OPSYS}-${BUILD_ARCH}-normal-${BUILD_VARIANT}-${BUILD_DEBUG_LEVEL}
                     73: 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        74: CONFIGURE_ENV+=        LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
                     75: MAKE_ENV+=     LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
1.5       tnn        76: BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/openjdk8/jre/lib/${LIBDIR_ARCH}
1.1       tnn        77:
1.5       tnn        78: PLIST_SUBST+=  ARCH=${LIBDIR_ARCH}
1.17      fhajny     79: PLIST_SUBST+=  LOWER_OPSYS=${LOWER_OPSYS:S/sunos/solaris/}
1.1       tnn        80:
                     81: .include "../../mk/compiler.mk"
                     82:
                     83: SUBST_CLASSES+=                libpath
                     84: SUBST_STAGE.libpath=   pre-build
                     85: SUBST_FILES.libpath+=  hotspot/src/os/bsd/vm/os_bsd.cpp
                     86: SUBST_VARS.libpath=    PREFIX
                     87:
1.9       tnn        88: CFLAGS+=       -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
                     89: CXXFLAGS+=     -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
                     90:
1.17      fhajny     91: .if ${OPSYS} == "SunOS" && !empty(PKGSRC_COMPILER:Mgcc)
                     92: MAKE_ENV+=     USE_GCC=1
                     93: MAKE_ENV+=     ARCH_DATA_MODEL=${ABI:Q}
                     94: .endif
                     95:
1.1       tnn        96: .if !empty(PKGSRC_COMPILER:Mclang)
1.2       tnn        97: _WRAP_EXTRA_ARGS.CC+=  -Wno-return-type
1.3       tnn        98: CWRAPPERS_APPEND.cc+=  -Wno-return-type
1.1       tnn        99: _WRAP_EXTRA_ARGS.CXX+= -Wno-parentheses -Wno-sign-conversion \
                    100:                        -Wno-shorten-64-to-32 -Wno-conversion \
                    101:                        -Wno-unused-value -Wno-switch-enum -Wno-switch \
                    102:                        -Wno-tautological-compare \
                    103:                        -Wno-delete-non-virtual-dtor \
                    104:                        -Wno-return-type -Wno-unused-parameter \
                    105:                        -Wno-parentheses-equality -Wno-empty-body \
                    106:                        -Wno-format -Wno-dynamic-class-memaccess
                    107: CWRAPPERS_APPEND.cxx+= -Wno-parentheses -Wno-sign-conversion \
                    108:                        -Wno-shorten-64-to-32 -Wno-conversion \
                    109:                        -Wno-unused-value -Wno-switch-enum -Wno-switch \
                    110:                        -Wno-tautological-compare \
                    111:                        -Wno-delete-non-virtual-dtor \
                    112:                        -Wno-return-type -Wno-unused-parameter \
                    113:                        -Wno-parentheses-equality -Wno-empty-body \
                    114:                        -Wno-format -Wno-dynamic-class-memaccess
                    115: .  if ${OPSYS} != "FreeBSD"
                    116: _WRAP_EXTRA_ARGS.CXX+= -Wno-new-returns-null
                    117: CWRAPPERS_APPEND.cxx+= -Wno-new-returns-null
                    118: .  endif
                    119: BUILDLINK_TRANSFORM+=  rm:-fcheck-new
                    120: BUILDLINK_TRANSFORM+=  rm:-fpch-deps
                    121: .  if ${MACHINE_ARCH} == "x86_64"
                    122: _WRAP_EXTRA_ARGS.CXX+= -mstackrealign
                    123: CWRAPPERS_APPEND.cxx+= -mstackrealign
                    124: .  endif
                    125: .endif
                    126: .include "bootstrap.mk"
                    127:
                    128: .include "options.mk"
                    129:
                    130: SUBST_CLASSES+=                        fontpaths
                    131: SUBST_STAGE.fontpaths=         pre-build
                    132: SUBST_MESSAGE.fontpaths=       fixing font paths
                    133: SUBST_FILES.fontpaths=         jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties
                    134: SUBST_FILES.fontpaths+=                jdk/src/solaris/native/sun/awt/fontpath.c
                    135: SUBST_SED.fontpaths=           -e 's|@PREFIX@|${PREFIX}|g'
                    136: SUBST_SED.fontpaths+=          -e 's|@BUILDLINK_PREFIX.fontconfig@|${BUILDLINK_PREFIX.fontconfig}|g'
                    137:
1.17      fhajny    138: PLIST_VARS+=   i386
                    139: .if ${MACHINE_ARCH} == "i386"
                    140: PLIST.i386=    yes
                    141: .endif
                    142:
1.11      tnn       143: PLIST_VARS+=   sctp
1.17      fhajny    144: .if ${OPSYS} == "FreeBSD" || ${OPSYS} == "SunOS"
1.11      tnn       145: PLIST.sctp=    yes
                    146: .endif
                    147:
1.1       tnn       148: post-extract:
1.9       tnn       149: # These libs are bundled w/ the netbsd-7 bootstrap to facilitate building with
                    150: # MKLLVM=yes / MKGCC=no. Nuke them from bootstrap if they are present in base.
                    151: .if exists(/lib/libgcc_s.so.1)
                    152:        ${RM} -f ${ALT_BOOTDIR}/jre/lib/${LIBDIR_ARCH}/libgcc_s.so*
                    153: .endif
                    154: .if exists(/usr/lib/libstdc++.so.7)
                    155:        ${RM} -f ${ALT_BOOTDIR}/jre/lib/${LIBDIR_ARCH}/libstdc++.so*
1.1       tnn       156: .endif
                    157:
                    158: do-build: ${WRKDIR}/stage3-done
                    159:
                    160: # stage 1 builds a native JDK using the bootstrap binaries
                    161: ${WRKDIR}/stage1-done:
                    162:        ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images
                    163:        rm -rf ${ALT_BOOTDIR}
                    164:        cd ${BUILDDIR}/images && mv j2sdk-image ${ALT_BOOTDIR}
                    165: .for d in corba hotspot jaxp jaxws langtools tmp
                    166:        mv ${BUILDDIR}/${d} ${BUILDDIR}/${d}-stage1
                    167: .endfor
1.5       tnn       168:        touch ${.TARGET}
                    169:
                    170: # stage 1.5 reconfigures, since the bootstrap JDK major version might have changed now
                    171: ${WRKDIR}/stage1_5-done: ${WRKDIR}/stage1-done
1.12      tnn       172: .if defined(BATCH)
                    173:        @${RECURSIVE_MAKE} ${MAKEFLAGS} apply-va-hack
                    174: .endif
                    175:        @${STEP_MSG} "Reconfiguring with newly built JDK"
                    176:        @${RECURSIVE_MAKE} ${MAKEFLAGS} do-configure
1.5       tnn       177:        touch ${.TARGET}
1.1       tnn       178:
                    179: # stage 2 rebuilds the JDK using native tools
1.5       tnn       180: ${WRKDIR}/stage2-done: ${WRKDIR}/stage1_5-done
1.6       tnn       181:        ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images
1.5       tnn       182:        touch ${.TARGET}
1.1       tnn       183:
                    184: # stage 3 builds third party add-ons
                    185: ${WRKDIR}/stage3-done: ${WRKDIR}/stage2-done ${WRKDIR}/cacerts.out
1.5       tnn       186:        touch ${.TARGET}
1.1       tnn       187:
                    188: ${WRKDIR}/cacerts.out:
                    189:        mkdir ${WRKDIR}/cacerts && cd ${WRKDIR}/cacerts &&              \
                    190:                ${PREFIX}/sbin/mozilla-rootcerts extract
                    191:        for cert in ${WRKDIR}/cacerts/*.pem; do                         \
                    192:                ${INFO_MSG} "Importing $$cert" &&                       \
                    193:                 ${SETENV} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} LC_ALL=C  \
1.12      tnn       194:                  ${ALT_BOOTDIR}/bin/keytool                            \
1.1       tnn       195:                  -noprompt                                             \
                    196:                  -importcert                                           \
                    197:                  -keystore ${.TARGET}                                  \
                    198:                  -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
                    199:                  -file $$cert                                          \
                    200:                  -storepass changeit;                                  \
                    201:        done
                    202:
                    203: do-install:
                    204:        ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
                    205:        cd ${BUILDDIR}/images/j2sdk-image && pax -rwpp .                \
                    206:          ${DESTDIR}${JAVA_HOME}/.
                    207:        ${INSTALL_DATA} ${WRKDIR}/cacerts.out                           \
                    208:          ${DESTDIR}${JAVA_HOME}/jre/lib/security/cacerts
                    209:        rm -f ${DESTDIR}${JAVA_HOME}/include/jni_md.h
1.17      fhajny    210:        ln -s ${LOWER_OPSYS:S/sunos/solaris/}/jni_md.h                                  \
1.1       tnn       211:          ${DESTDIR}${JAVA_HOME}/include/jni_md.h
                    212:
                    213: .if ${OPSYS} == "NetBSD"
                    214: TOOLS_PLATFORM.unzip=
                    215: .endif
                    216:
1.17      fhajny    217: # Include binutils for objcopy and GNU strip on SmartOS
                    218: .if ${OS_VARIANT} == "SmartOS"
                    219: .include "../../devel/binutils/buildlink3.mk"
                    220: BUILDLINK_DEPMETHOD.binutils?= build
                    221: MAKE_ENV+=     STRIP=${PREFIX}/bin/gstrip
                    222: .endif
                    223:
1.1       tnn       224: # disabled the ALSA support for now on BSDs via patch
                    225: #.include "../../audio/alsa-lib/buildlink3.mk"
                    226: .include "../../converters/libiconv/buildlink3.mk"
                    227: .include "../../devel/zlib/buildlink3.mk"
                    228: .include "../../fonts/fontconfig/buildlink3.mk"
                    229: .include "../../graphics/freetype2/buildlink3.mk"
                    230: BUILDLINK_DEPMETHOD.cups?=     build
1.5       tnn       231: .include "../../print/cups/buildlink3.mk"
1.1       tnn       232: .include "../../mk/java-env.mk"
                    233: .include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>