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>