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

Annotation of pkgsrc/lang/openjdk7/Makefile, Revision 1.123

1.123   ! wiz         1: # $NetBSD: Makefile,v 1.122 2018/03/12 11:16:58 wiz Exp $
1.1       tnn         2:
1.116     ryoon       3: JDK_MICRO=     141
                      4: DISTNAME=      openjdk-1.7.${JDK_MICRO}-20170813
1.103     jperkin     5: PKGNAME=       openjdk7-1.7.${JDK_MICRO}
1.123   ! wiz         6: PKGREVISION=   5
1.1       tnn         7: CATEGORIES=    lang
                      8: MASTER_SITES=  ${MASTER_SITE_LOCAL:=openjdk7/}
1.100     tnn         9: EXTRACT_SUFX=  .tar.xz
1.1       tnn        10:
1.41      wiz        11: MAINTAINER=    pkgsrc-users@NetBSD.org
1.1       tnn        12: HOMEPAGE=      http://openjdk.java.net/
                     13: COMMENT=       Open-source implementation of the Java Platform, Standard Edition
1.34      marino     14: LICENSE=       gnu-gpl-v2
1.1       tnn        15:
                     16: DISTFILES=     ${DEFAULT_DISTFILES}
                     17: EXTRACT_ONLY=  ${DISTNAME}${EXTRACT_SUFX}
                     18:
1.95      tnn        19: DIST_SUBDIR=   openjdk7
                     20:
1.1       tnn        21: JAVA_NAME=     openjdk7
                     22: JAVA_HOME=     ${PREFIX}/java/${JAVA_NAME}
1.114     jperkin    23: JAVA_WRAPPERS= jar java javac javadoc javah javap jcmd jps jstack keytool \
                     24:                orbd policytool rmid rmiregistry servertool tnameserv
1.1       tnn        25:
1.116     ryoon      26: NOT_PAX_MPROTECT_SAFE+=        java/openjdk7/bin/[a-ik-z]*
                     27: NOT_PAX_MPROTECT_SAFE+=        java/openjdk7/bin/j[b-z]*
                     28: NOT_PAX_MPROTECT_SAFE+=        java/openjdk7/bin/jar*
                     29: NOT_PAX_MPROTECT_SAFE+=        java/openjdk7/bin/java
                     30: NOT_PAX_MPROTECT_SAFE+=        java/openjdk7/bin/java[a-z]*
                     31:
                     32: .include "../../mk/bsd.prefs.mk"
                     33:
                     34: .if ${OPSYS} == "NetBSD" && defined(TOOLS_PLATFORM.paxctl)
                     35: SUBST_CLASSES+=                        set-paxctl
                     36: SUBST_STAGE.set-paxctl=                pre-build
                     37: SUBST_MESSAGE.set-paxctl=      Setting NetBSD paxctl
                     38: SUBST_FILES.set-paxctl=                make/Defs-internal.gmk
                     39: SUBST_FILES.set-paxctl+=       jdk/make/com/sun/jmx/Makefile
                     40: SUBST_SED.set-paxctl+=         -e 's,/usr/sbin/paxmark.sh,${PAXCTL},'
                     41: SUBST_SED.set-paxctl+=         -e 's,-vmsp,+m,'
                     42: SUBST_SED.set-paxctl+=         -e 's,-vm,+m,'
                     43: SUBST_SED.set-paxctl+=         -e 's,\^PaX,.,'
                     44: .endif
                     45:
1.27      hans       46: MAKE_ENV+=             PKGSRC_ZIPEXE=${TOOLS_PATH.zip}
1.29      hans       47: MAKE_ENV+=             PKGSRC_UNZIP=${TOOLS_PATH.unzip}
                     48: MAKE_ENV+=             PKGSRC_UNZIPSFX=${TOOLS_PATH.unzip}sfx
1.1       tnn        49:
1.105     asau       50: BUILD_DEPENDS+=                mozilla-rootcerts>=1.0.20140820nb2:../../security/mozilla-rootcerts
                     51:
1.1       tnn        52: NO_CONFIGURE=          yes
                     53: USE_LANGUAGES=         c c++
1.67      ryoon      54: USE_TOOLS+=            gmake pax unzip:run zip:run # patch
1.1       tnn        55: UNLIMIT_RESOURCES=     datasize stacksize
                     56: WRKSRC=                        ${WRKDIR}/openjdk
1.89      tnn        57: PLIST_SRC+=            ${PLIST_SRC_DFLT}
1.109     jperkin    58: CHECK_SHLIBS_SKIP=     java/openjdk7/jre/lib/${LIBDIR_ARCH}/libfontmanager.so
                     59: CHECK_SHLIBS_SKIP+=    java/openjdk7/jre/lib/${LIBDIR_ARCH}/libjawt.so
                     60: CHECK_SHLIBS_SKIP+=    java/openjdk7/jre/lib/${LIBDIR_ARCH}/libsunec.so
1.1       tnn        61:
                     62: BUILDLINK_PASSTHRU_DIRS+=      ${ALT_BOOTDIR}
                     63: PREPEND_PATH+=                 ${ALT_BOOTDIR}/bin
                     64:
                     65: MAKE_ENV+=     ALT_BOOTDIR=${ALT_BOOTDIR}
1.22      tnn        66: MAKE_ENV+=     ALT_DROPS_DIR=${DISTDIR}/${DIST_SUBDIR}
1.1       tnn        67: MAKE_ENV+=     ALT_FREETYPE_LIB_PATH=${BUILDLINK_PREFIX.freetype2}/lib
                     68: MAKE_ENV+=     ALT_FREETYPE_HEADERS_PATH=${BUILDLINK_PREFIX.freetype2}/include
1.120     jperkin    69: MAKE_ENV+=     ALT_CUPS_HEADERS_PATH=${BUILDLINK_PREFIX.cups-base}/include
1.1       tnn        70: MAKE_ENV+=     ALT_COMPILER_PATH=${WRAPPER_DIR}/bin
1.7       tnn        71: MAKE_ENV+=     ALT_PACKAGE_PATH=${PREFIX}
1.22      tnn        72: MAKE_ENV+=     RHINO_JAR=${WRKDIR}/${RHINO}/js.jar
1.1       tnn        73:
1.98      jperkin    74: MAKE_ENV+=     BUILDLINK_PREFIX.iconv=${BUILDLINK_PREFIX.iconv:Q}
1.115     jperkin    75: MAKE_ENV+=     ZLIB_LIBS="-L${BUILDLINK_PREFIX.zlib}/lib ${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.zlib}/lib -lz"
1.98      jperkin    76:
1.1       tnn        77: MAKE_ENV+=     ALT_PARALLEL_COMPILE_JOBS=${MAKE_JOBS:U1}
1.33      marino     78: MAKE_ENV+=     HOTSPOT_BUILD_JOBS=${MAKE_JOBS}
1.101     tnn        79: MAKE_ENV+=     USE_PRECOMPILED_HEADER=0
1.1       tnn        80:
                     81: MAKE_ENV+=     HOTSPOT_BUILD_USER=pkgsrc
1.103     jperkin    82: MAKE_ENV+=     JDK_MICRO_VERSION="0_${JDK_MICRO}"
1.1       tnn        83: MAKE_ENV+=     NO_DOCS=true
                     84: MAKE_ENV+=     SKIP_COMPARE_IMAGES=true
                     85:
1.30      ryoon      86: # Avoid build errors when JAVA_HOME and CLASSPATH are defined by user.
                     87: MAKE_ENV+=     JAVA_HOME=
                     88: MAKE_ENV+=     CLASSPATH=
                     89:
1.92      tnn        90: BUILD_OPSYS=   ${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/:S/SunOS/solaris/}
1.94      tnn        91: BUILD_ARCH=    ${MACHINE_ARCH:S/i386/i586/:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
                     92: LIBDIR_ARCH=   ${MACHINE_ARCH:S/x86_64/amd64/:S/sparc64/sparcv9/:C/^e?arm.*$/arm/}
1.92      tnn        93: BUILDDIR=      ${WRKSRC}/build/${BUILD_OPSYS}-${BUILD_ARCH}
                     94: LD_LIBRARY_PATH=       ${WRKDIR}/bootstrap/jre/lib/${LIBDIR_ARCH}:${WRKDIR}/bootstrap/jre/lib/${LIBDIR_ARCH}/jli:${WRKDIR}/bootstrap/jre/lib/${LIBDIR_ARCH}/server
1.47      ryoon      95: MAKE_ENV+=     LD_LIBRARY_PATH=${LD_LIBRARY_PATH}
1.92      tnn        96: BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/openjdk7/jre/lib/${LIBDIR_ARCH}
1.16      jmcneill   97:
1.92      tnn        98: PLIST_SUBST+=  ARCH=${LIBDIR_ARCH}
1.1       tnn        99: PLIST_SUBST+=  LOWER_OPSYS=${LOWER_OPSYS}
                    100:
1.24      joerg     101: .include "../../mk/compiler.mk"
                    102:
1.50      jperkin   103: .if ${OPSYS} == "SunOS" && !empty(PKGSRC_COMPILER:Mgcc)
                    104: MAKE_ENV+=     USE_GCC=1
                    105: MAKE_ENV+=     ARCH_DATA_MODEL=${ABI:Q}
                    106: .endif
                    107:
1.72      ryoon     108: SUBST_CLASSES+=                libpath
                    109: SUBST_STAGE.libpath=   pre-build
                    110: SUBST_FILES.libpath+=  hotspot/src/os/bsd/vm/os_bsd.cpp
                    111: SUBST_VARS.libpath=    PREFIX
                    112:
1.50      jperkin   113: # SmartOS has ccs tools in /usr/bin
                    114: .if ${OS_VARIANT} == "SmartOS"
                    115: SUBST_CLASSES+=                ccspath
                    116: SUBST_STAGE.ccspath=   pre-build
                    117: SUBST_FILES.ccspath=   jdk/make/common/shared/Defs-utils.gmk
                    118: SUBST_FILES.ccspath+=  hotspot/make/solaris/makefiles/build_vm_def.sh
                    119: SUBST_SED.ccspath=     -e 's/UNIXCCS_PATH/UNIXCOMMAND_PATH/g'
                    120: SUBST_SED.ccspath+=    -e 's,/usr/ccs/bin,/usr/bin,g'
                    121: .endif
                    122:
1.106     jperkin   123: SUBST_CLASSES.SunOS+=  mapfix
1.50      jperkin   124: SUBST_STAGE.mapfix=    pre-build
                    125: SUBST_FILES.mapfix=    jdk/make/com/sun/java/pack/mapfile-vers
                    126: SUBST_FILES.mapfix+=   jdk/make/java/main/java/mapfile-amd64
                    127: SUBST_FILES.mapfix+=   jdk/make/java/main/java/mapfile-i586
                    128: SUBST_SED.mapfix=      -e '/__fsr_init_value/d'
                    129: SUBST_SED.mapfix+=     -e '/__progname/d'
                    130:
                    131: # environ should only be removed from this file (added by patches)
1.106     jperkin   132: SUBST_CLASSES.SunOS+=  mapfix2
1.50      jperkin   133: SUBST_STAGE.mapfix2=   pre-build
                    134: SUBST_FILES.mapfix2=   jdk/make/com/sun/java/pack/mapfile-vers
                    135: SUBST_SED.mapfix2=     -e '/environ/d'
                    136:
1.97      tnn       137: CFLAGS+=       -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
                    138: CXXFLAGS+=     -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
                    139:
1.23      joerg     140: .if !empty(PKGSRC_COMPILER:Mclang)
                    141: _WRAP_EXTRA_ARGS.CXX+= -Wno-parentheses -Wno-sign-conversion \
                    142:                        -Wno-shorten-64-to-32 -Wno-conversion \
1.31      joerg     143:                        -Wno-unused-value -Wno-switch-enum -Wno-switch \
1.82      rumko     144:                        -Wno-tautological-compare \
1.23      joerg     145:                        -Wno-delete-non-virtual-dtor \
1.25      joerg     146:                        -Wno-return-type -Wno-unused-parameter \
1.31      joerg     147:                        -Wno-parentheses-equality -Wno-empty-body
1.80      joerg     148: CWRAPPERS_APPEND.cxx+= -Wno-parentheses -Wno-sign-conversion \
                    149:                        -Wno-shorten-64-to-32 -Wno-conversion \
                    150:                        -Wno-unused-value -Wno-switch-enum -Wno-switch \
1.82      rumko     151:                        -Wno-tautological-compare \
1.80      joerg     152:                        -Wno-delete-non-virtual-dtor \
                    153:                        -Wno-return-type -Wno-unused-parameter \
                    154:                        -Wno-parentheses-equality -Wno-empty-body
1.82      rumko     155: .if ${OPSYS} != "FreeBSD"
                    156: _WRAP_EXTRA_ARGS.CXX+= -Wno-new-returns-null
                    157: CWRAPPERS_APPEND.cxx+= -Wno-new-returns-null
                    158: .endif
1.63      ryoon     159: BUILDLINK_TRANSFORM+=  rm:-fcheck-new
                    160: BUILDLINK_TRANSFORM+=  rm:-fpch-deps
1.46      joerg     161: .  if ${MACHINE_ARCH} == "x86_64"
                    162: _WRAP_EXTRA_ARGS.CXX+= -mstackrealign
1.87      tnn       163: CWRAPPERS_APPEND.cxx+= -mstackrealign
1.46      joerg     164: .  endif
1.23      joerg     165: .endif
1.1       tnn       166: .include "bootstrap.mk"
                    167: .include "icedtea-extras.mk"
                    168:
1.20      abs       169: .include "options.mk"
                    170:
1.1       tnn       171: SUBST_CLASSES+=                        add-rpaths
                    172: SUBST_STAGE.add-rpaths=                pre-build
                    173: SUBST_MESSAGE.add-rpaths=      adding X11 run path flags to Makefiles
                    174: SUBST_FILES.add-rpaths=                jdk/make/sun/awt/Makefile               \
                    175:                                jdk/make/sun/awt/mawt.gmk               \
                    176:                                jdk/make/sun/jawt/Makefile              \
                    177:                                jdk/make/sun/jdga/Makefile              \
                    178:                                jdk/make/sun/splashscreen/Makefile      \
                    179:                                jdk/make/sun/xawt/Makefile
                    180: SUBST_SED.add-rpaths=          -e 's|-L$$(OPENWIN_LIB)|-L$$(OPENWIN_LIB) -Wl,-R$$(OPENWIN_LIB)|g'
                    181:
1.5       ghen      182: SUBST_CLASSES+=                        fontpaths
                    183: SUBST_STAGE.fontpaths=         pre-build
                    184: SUBST_MESSAGE.fontpaths=       fixing font paths
                    185: SUBST_FILES.fontpaths=         jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties
1.6       ghen      186: SUBST_FILES.fontpaths+=                jdk/src/solaris/native/sun/awt/fontpath.c
1.10      tnn       187: SUBST_SED.fontpaths=           -e 's|@PREFIX@|${PREFIX}|g'
                    188: SUBST_SED.fontpaths+=          -e 's|@BUILDLINK_PREFIX.fontconfig@|${BUILDLINK_PREFIX.fontconfig}|g'
1.5       ghen      189:
1.89      tnn       190: PLIST_VARS+=   i386
1.1       tnn       191: .if ${MACHINE_ARCH} == "i386"
                    192: PLIST.i386=    yes
                    193: .endif
                    194:
1.82      rumko     195: PLIST_VARS+=   sctp alsa
                    196: .if ${OPSYS} == "FreeBSD"
                    197: PLIST.sctp=    yes
                    198: PLIST.alsa=    yes
                    199: .include "../../audio/alsa-lib/buildlink3.mk"
                    200: .endif
                    201:
1.1       tnn       202: post-extract:
                    203:        chmod +x ${ANT_BIN}/ant
1.96      tnn       204:        ${LN} -s mapfile-i586 ${WRKSRC}/jdk/make/java/main/java/mapfile-arm
1.97      tnn       205: # These libs are bundled w/ the netbsd-7 bootstrap to facilitate building with
                    206: # MKLLVM=yes / MKGCC=no. Nuke them from bootstrap if they are present in base.
                    207: .if exists(/lib/libgcc_s.so.1)
                    208:        ${RM} -f ${ALT_BOOTDIR}/jre/lib/${LIBDIR_ARCH}/libgcc_s.so*
                    209: .endif
                    210: .if exists(/usr/lib/libstdc++.so.7)
                    211:        ${RM} -f ${ALT_BOOTDIR}/jre/lib/${LIBDIR_ARCH}/libstdc++.so*
1.50      jperkin   212: .endif
1.116     ryoon     213: .if defined(TOOLS_PLATFORM.paxctl)
                    214:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/[a-ik-z]*
                    215:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/j[b-z]*
                    216:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/jar*
                    217:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java
                    218:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java[a-z]*
                    219:        ${PAXCTL} +m ${WRKDIR}/bootstrap/jre/bin/*
                    220: .endif
1.77      joerg     221:
1.1       tnn       222: do-build: ${WRKDIR}/stage3-done
                    223:
                    224: # stage 1 builds a native JDK using the bootstrap binaries
                    225: ${WRKDIR}/stage1-done:
1.89      tnn       226:        ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${JDK_MAKE_TARGET}
1.50      jperkin   227:        rm -rf ${ALT_BOOTDIR}
                    228:        cd ${BUILDDIR} && mv j2sdk-image ${ALT_BOOTDIR}
                    229:        mv ${BUILDDIR} ${BUILDDIR}-stage1
1.93      tnn       230:        touch ${.TARGET}
1.1       tnn       231:
1.116     ryoon     232: # stage 1.5 reconfigures, since the bootstrap JDK major version might have changed now
                    233: ${WRKDIR}/stage1_5-done: ${WRKDIR}/stage1-done
                    234: .if defined(TOOLS_PLATFORM.paxctl)
                    235:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/[a-ik-z]*
                    236:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/j[b-z]*
                    237:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/jar*
                    238:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java
                    239:        ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java[a-z]*
                    240:        ${PAXCTL} +m ${WRKDIR}/bootstrap/jre/bin/*
                    241: .endif
                    242:        touch ${.TARGET}
                    243:
1.1       tnn       244: # stage 2 rebuilds the JDK using native tools
1.116     ryoon     245: ${WRKDIR}/stage2-done: ${WRKDIR}/stage1_5-done
1.89      tnn       246:        ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} ${JDK_MAKE_TARGET}
1.1       tnn       247:        touch ${BUILDDIR}/j2sdk-image/jre/lib/applet/.keep
1.93      tnn       248:        touch ${.TARGET}
1.1       tnn       249:
                    250: # stage 3 builds third party add-ons
                    251: ${WRKDIR}/stage3-done: ${WRKDIR}/stage2-done ${WRKDIR}/cacerts.out
1.93      tnn       252:        touch ${.TARGET}
1.1       tnn       253:
                    254: ${WRKDIR}/cacerts.out:
1.116     ryoon     255: .if defined(TOOLS_PLATFORM.paxctl)
                    256:        ${PAXCTL} +m ${WRKSRC}/build/*/bin/keytool
                    257: .endif
1.84      tnn       258:        mkdir ${WRKDIR}/cacerts && cd ${WRKDIR}/cacerts &&              \
                    259:                ${PREFIX}/sbin/mozilla-rootcerts extract
                    260:        for cert in ${WRKDIR}/cacerts/*.pem; do                         \
                    261:                ${INFO_MSG} "Importing $$cert" &&                       \
                    262:                 ${SETENV} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} LC_ALL=C  \
                    263:                  ${BUILDDIR}/bin/keytool                               \
                    264:                  -noprompt                                             \
1.1       tnn       265:                  -importcert                                           \
                    266:                  -keystore ${.TARGET}                                  \
1.84      tnn       267:                  -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
1.1       tnn       268:                  -file $$cert                                          \
1.84      tnn       269:                  -storepass changeit;                                  \
1.1       tnn       270:        done
                    271:
                    272: do-install:
                    273:        ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
                    274:        cd ${BUILDDIR}/j2sdk-image && pax -rwpp .                       \
                    275:          ${DESTDIR}${JAVA_HOME}/.
                    276:        ${INSTALL_DATA} ${WRKDIR}/cacerts.out                           \
                    277:          ${DESTDIR}${JAVA_HOME}/jre/lib/security/cacerts
1.11      tnn       278:        rm -f ${DESTDIR}${JAVA_HOME}/include/jni_md.h
                    279:        ln -s ${LOWER_OPSYS}/jni_md.h                                   \
                    280:          ${DESTDIR}${JAVA_HOME}/include/jni_md.h
1.1       tnn       281:
1.102     rodent    282: .if ${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD"
1.29      hans      283: TOOLS_PLATFORM.unzip=
                    284: .endif
                    285:
1.50      jperkin   286: # Include binutils for objcopy and GNU strip on SmartOS
                    287: .if ${OS_VARIANT} == "SmartOS"
                    288: .include "../../devel/binutils/buildlink3.mk"
                    289: BUILDLINK_DEPMETHOD.binutils?= build
                    290: MAKE_ENV+=     ALT_OBJCOPY=${PREFIX}/bin/gobjcopy
                    291: MAKE_ENV+=     STRIP=${PREFIX}/bin/gstrip
                    292: .endif
                    293:
1.47      ryoon     294: .include "../../converters/libiconv/buildlink3.mk"
1.98      jperkin   295: .include "../../devel/zlib/buildlink3.mk"
1.10      tnn       296: .include "../../fonts/fontconfig/buildlink3.mk"
1.1       tnn       297: .include "../../graphics/freetype2/buildlink3.mk"
1.120     jperkin   298: BUILDLINK_DEPMETHOD.cups-base?=        build
1.117     khorben   299: .include "../../print/cups-base/buildlink3.mk"
1.1       tnn       300: .include "../../mk/java-env.mk"
                    301: .include "../../mk/bsd.pkg.mk"

CVSweb <webmaster@jp.NetBSD.org>