Annotation of pkgsrc/lang/openjdk8/Makefile, Revision 1.41
1.41 ! wiz 1: # $NetBSD: Makefile,v 1.40 2016/08/15 19:09:38 ryoon Exp $
1.1 tnn 2:
1.40 ryoon 3: DISTNAME= openjdk-1.8.102-20160811
4: PKGNAME= openjdk8-1.8.102
1.41 ! wiz 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.39 abs 23: JAVA_WRAPPERS= jar java javac javadoc javah javap jcmd 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}
1.37 jperkin 40: CHECK_SHLIBS_SKIP+= java/openjdk8/jre/lib/${LIBDIR_ARCH}/libinstrument.so
1.1 tnn 41:
42: BUILDLINK_PASSTHRU_DIRS+= ${ALT_BOOTDIR}
43: PREPEND_PATH+= ${ALT_BOOTDIR}/bin
44:
1.22 tnn 45: CONFIGURE_ARGS+= --disable-option-checking # for --with-libiconv-prefix
1.18 fhajny 46: CONFIGURE_ARGS+= --prefix=${PREFIX:Q}
47: CONFIGURE_ARGS+= --build=${MACHINE_GNU_PLATFORM:Q}
48: CONFIGURE_ARGS+= --host=${MACHINE_GNU_PLATFORM:Q}
1.1 tnn 49: CONFIGURE_ARGS+= --with-boot-jdk=${ALT_BOOTDIR}
50: CONFIGURE_ARGS+= --with-zlib=system
51: CONFIGURE_ARGS+= --with-giflib=bundled
52: CONFIGURE_ARGS+= --with-cups=${BUILDLINK_PREFIX.cups}
53: CONFIGURE_ARGS+= --with-freetype-lib=${BUILDLINK_PREFIX.freetype2}/lib
54: CONFIGURE_ARGS+= --with-freetype-include=${BUILDLINK_PREFIX.freetype2}/include
55: CONFIGURE_ARGS+= --disable-freetype-bundling
56: CONFIGURE_ARGS+= --with-jobs=${MAKE_JOBS:U1}
57: CONFIGURE_ARGS+= --with-num-cores=${MAKE_JOBS:U1}
58: CONFIGURE_ARGS+= --with-memory-size=768
1.16 tnn 59: CONFIGURE_ARGS+= --disable-precompiled-headers
1.1 tnn 60: CONFIGURE_ARGS+= --disable-ccache
61: CONFIGURE_ARGS+= --with-user-release-suffix=pkgsrc_${PKGVERSION}
1.24 tnn 62: CONFIGURE_ARGS+= --with-update-version=${PKGVERSION_NOREV:S/1.8.//}
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.5 tnn 84: BUILDLINK_PASSTHRU_RPATHDIRS+= ${PREFIX}/java/openjdk8/jre/lib/${LIBDIR_ARCH}
1.1 tnn 85:
1.5 tnn 86: PLIST_SUBST+= ARCH=${LIBDIR_ARCH}
1.17 fhajny 87: PLIST_SUBST+= LOWER_OPSYS=${LOWER_OPSYS:S/sunos/solaris/}
1.1 tnn 88:
89: .include "../../mk/compiler.mk"
90:
91: SUBST_CLASSES+= libpath
92: SUBST_STAGE.libpath= pre-build
93: SUBST_FILES.libpath+= hotspot/src/os/bsd/vm/os_bsd.cpp
94: SUBST_VARS.libpath= PREFIX
95:
1.9 tnn 96: CFLAGS+= -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
97: CXXFLAGS+= -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
98:
1.17 fhajny 99: .if ${OPSYS} == "SunOS" && !empty(PKGSRC_COMPILER:Mgcc)
100: MAKE_ENV+= USE_GCC=1
101: MAKE_ENV+= ARCH_DATA_MODEL=${ABI:Q}
102: .endif
103:
1.1 tnn 104: .if !empty(PKGSRC_COMPILER:Mclang)
1.2 tnn 105: _WRAP_EXTRA_ARGS.CC+= -Wno-return-type
1.3 tnn 106: CWRAPPERS_APPEND.cc+= -Wno-return-type
1.1 tnn 107: _WRAP_EXTRA_ARGS.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: CWRAPPERS_APPEND.cxx+= -Wno-parentheses -Wno-sign-conversion \
116: -Wno-shorten-64-to-32 -Wno-conversion \
117: -Wno-unused-value -Wno-switch-enum -Wno-switch \
118: -Wno-tautological-compare \
119: -Wno-delete-non-virtual-dtor \
120: -Wno-return-type -Wno-unused-parameter \
121: -Wno-parentheses-equality -Wno-empty-body \
122: -Wno-format -Wno-dynamic-class-memaccess
123: . if ${OPSYS} != "FreeBSD"
124: _WRAP_EXTRA_ARGS.CXX+= -Wno-new-returns-null
125: CWRAPPERS_APPEND.cxx+= -Wno-new-returns-null
126: . endif
127: BUILDLINK_TRANSFORM+= rm:-fcheck-new
128: BUILDLINK_TRANSFORM+= rm:-fpch-deps
129: . if ${MACHINE_ARCH} == "x86_64"
130: _WRAP_EXTRA_ARGS.CXX+= -mstackrealign
131: CWRAPPERS_APPEND.cxx+= -mstackrealign
132: . endif
133: .endif
134: .include "bootstrap.mk"
135:
136: .include "options.mk"
137:
138: SUBST_CLASSES+= fontpaths
139: SUBST_STAGE.fontpaths= pre-build
140: SUBST_MESSAGE.fontpaths= fixing font paths
141: SUBST_FILES.fontpaths= jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties
142: SUBST_FILES.fontpaths+= jdk/src/solaris/native/sun/awt/fontpath.c
143: SUBST_SED.fontpaths= -e 's|@PREFIX@|${PREFIX}|g'
144: SUBST_SED.fontpaths+= -e 's|@BUILDLINK_PREFIX.fontconfig@|${BUILDLINK_PREFIX.fontconfig}|g'
145:
1.38 jperkin 146: SUBST_CLASSES+= zlibpath
147: SUBST_STAGE.zlibpath= pre-build
148: SUBST_FILES.zlibpath= jdk/make/CompileLaunchers.gmk jdk/make/lib/CoreLibraries.gmk
149: SUBST_VARS.zlibpath= COMPILER_RPATH_FLAG BUILDLINK_PREFIX.zlib
150:
1.17 fhajny 151: PLIST_VARS+= i386
152: .if ${MACHINE_ARCH} == "i386"
153: PLIST.i386= yes
154: .endif
155:
1.11 tnn 156: PLIST_VARS+= sctp
1.17 fhajny 157: .if ${OPSYS} == "FreeBSD" || ${OPSYS} == "SunOS"
1.11 tnn 158: PLIST.sctp= yes
159: .endif
160:
1.1 tnn 161: post-extract:
1.9 tnn 162: # These libs are bundled w/ the netbsd-7 bootstrap to facilitate building with
163: # MKLLVM=yes / MKGCC=no. Nuke them from bootstrap if they are present in base.
164: .if exists(/lib/libgcc_s.so.1)
165: ${RM} -f ${ALT_BOOTDIR}/jre/lib/${LIBDIR_ARCH}/libgcc_s.so*
166: .endif
167: .if exists(/usr/lib/libstdc++.so.7)
168: ${RM} -f ${ALT_BOOTDIR}/jre/lib/${LIBDIR_ARCH}/libstdc++.so*
1.1 tnn 169: .endif
1.34 wiz 170: .if defined(TOOLS_PLATFORM.paxctl)
171: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/[a-ik-z]*
172: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/j[b-z]*
173: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/jar*
174: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java
175: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java[a-z]*
176: .endif
1.1 tnn 177:
178: do-build: ${WRKDIR}/stage3-done
179:
180: # stage 1 builds a native JDK using the bootstrap binaries
181: ${WRKDIR}/stage1-done:
182: ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images
183: rm -rf ${ALT_BOOTDIR}
184: cd ${BUILDDIR}/images && mv j2sdk-image ${ALT_BOOTDIR}
185: .for d in corba hotspot jaxp jaxws langtools tmp
186: mv ${BUILDDIR}/${d} ${BUILDDIR}/${d}-stage1
187: .endfor
1.5 tnn 188: touch ${.TARGET}
189:
190: # stage 1.5 reconfigures, since the bootstrap JDK major version might have changed now
191: ${WRKDIR}/stage1_5-done: ${WRKDIR}/stage1-done
1.34 wiz 192: .if defined(TOOLS_PLATFORM.paxctl)
193: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/[a-ik-z]*
194: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/j[b-z]*
195: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/jar*
196: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java
197: ${PAXCTL} +m ${WRKDIR}/bootstrap/bin/java[a-z]*
198: .endif
1.36 tnn 199: .if defined(BATCH)
200: @${RECURSIVE_MAKE} ${MAKEFLAGS} apply-va-hack
201: .endif
1.12 tnn 202: @${STEP_MSG} "Reconfiguring with newly built JDK"
203: @${RECURSIVE_MAKE} ${MAKEFLAGS} do-configure
1.5 tnn 204: touch ${.TARGET}
1.1 tnn 205:
206: # stage 2 rebuilds the JDK using native tools
1.5 tnn 207: ${WRKDIR}/stage2-done: ${WRKDIR}/stage1_5-done
1.6 tnn 208: ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM} images
1.5 tnn 209: touch ${.TARGET}
1.1 tnn 210:
211: # stage 3 builds third party add-ons
212: ${WRKDIR}/stage3-done: ${WRKDIR}/stage2-done ${WRKDIR}/cacerts.out
1.5 tnn 213: touch ${.TARGET}
1.1 tnn 214:
215: ${WRKDIR}/cacerts.out:
216: mkdir ${WRKDIR}/cacerts && cd ${WRKDIR}/cacerts && \
217: ${PREFIX}/sbin/mozilla-rootcerts extract
218: for cert in ${WRKDIR}/cacerts/*.pem; do \
219: ${INFO_MSG} "Importing $$cert" && \
220: ${SETENV} LD_LIBRARY_PATH=${LD_LIBRARY_PATH} LC_ALL=C \
1.12 tnn 221: ${ALT_BOOTDIR}/bin/keytool \
1.1 tnn 222: -noprompt \
223: -importcert \
224: -keystore ${.TARGET} \
225: -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.pem,\\1,'` \
226: -file $$cert \
227: -storepass changeit; \
228: done
229:
230: do-install:
231: ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
232: cd ${BUILDDIR}/images/j2sdk-image && pax -rwpp . \
233: ${DESTDIR}${JAVA_HOME}/.
234: ${INSTALL_DATA} ${WRKDIR}/cacerts.out \
235: ${DESTDIR}${JAVA_HOME}/jre/lib/security/cacerts
236: rm -f ${DESTDIR}${JAVA_HOME}/include/jni_md.h
1.17 fhajny 237: ln -s ${LOWER_OPSYS:S/sunos/solaris/}/jni_md.h \
1.1 tnn 238: ${DESTDIR}${JAVA_HOME}/include/jni_md.h
239:
240: .if ${OPSYS} == "NetBSD"
241: TOOLS_PLATFORM.unzip=
242: .endif
243:
1.17 fhajny 244: # Include binutils for objcopy and GNU strip on SmartOS
245: .if ${OS_VARIANT} == "SmartOS"
246: .include "../../devel/binutils/buildlink3.mk"
247: BUILDLINK_DEPMETHOD.binutils?= build
248: MAKE_ENV+= STRIP=${PREFIX}/bin/gstrip
249: .endif
250:
1.1 tnn 251: # disabled the ALSA support for now on BSDs via patch
252: #.include "../../audio/alsa-lib/buildlink3.mk"
253: .include "../../converters/libiconv/buildlink3.mk"
254: .include "../../devel/zlib/buildlink3.mk"
255: .include "../../fonts/fontconfig/buildlink3.mk"
256: .include "../../graphics/freetype2/buildlink3.mk"
257: BUILDLINK_DEPMETHOD.cups?= build
1.5 tnn 258: .include "../../print/cups/buildlink3.mk"
1.1 tnn 259: .include "../../mk/java-env.mk"
260: .include "../../mk/bsd.pkg.mk"
CVSweb <webmaster@jp.NetBSD.org>