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>