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>