Fixup fromcvs/togit conversion
[pkgsrcv2.git] / lang / openjdk7 / Makefile
1 # $NetBSD: Makefile,v 1.35 2012/05/22 05:57:50 joerg Exp $
2
3 DISTNAME=       openjdk-7-fcs-src-b147-27_jun_2011
4 PKGNAME=        openjdk7-1.7.0.147.20110811
5 PKGREVISION=    5
6 CATEGORIES=     lang
7 MASTER_SITES=   ${MASTER_SITE_LOCAL:=openjdk7/}
8 EXTRACT_SUFX=   .tar.bz2
9
10 OWNER=          tnn@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 PKG_DESTDIR_SUPPORT=    user-destdir
16
17 DISTFILES=      ${DEFAULT_DISTFILES}
18 EXTRACT_ONLY=   ${DISTNAME}${EXTRACT_SUFX}
19
20 # diff between distfile and bsd-port branch. To check out, use:
21 # "hg fclone http://hg.openjdk.java.net/bsd-port/bsd-port/"
22 PATCHFILES+=    jdk-7-bsd-port-147.20110811.diff.bz2
23 PATCH_SITES+=   ${MASTER_SITE_LOCAL:=openjdk7/}
24
25 CACERTS=        cacerts-20091013.tar.bz2
26 DISTFILES+=     ${CACERTS}
27 EXTRACT_ONLY+=  ${CACERTS}
28
29 JAVA_NAME=      openjdk7
30 JAVA_HOME=      ${PREFIX}/java/${JAVA_NAME}
31 JAVA_WRAPPERS=  jar java javac javadoc javah javap keytool orbd \
32                 policytool rmid rmiregistry servertool tnameserv
33
34 MAKE_ENV+=              PKGSRC_ZIPEXE=${TOOLS_PATH.zip}
35 MAKE_ENV+=              PKGSRC_UNZIP=${TOOLS_PATH.unzip}
36 MAKE_ENV+=              PKGSRC_UNZIPSFX=${TOOLS_PATH.unzip}sfx
37
38 DEPENDS+=               dejavu-ttf-[0-9]*:../../fonts/dejavu-ttf
39 #DEPENDS+=              ja-sazanami-ttf-[0-9]*:../../fonts/ja-sazanami-ttf
40 #DEPENDS+=              baekmuk-ttf-[0-9]*:../../fonts/baekmuk-ttf
41
42 NO_CONFIGURE=           yes
43 USE_LANGUAGES=          c c++
44 USE_TOOLS+=             gmake pax unzip:run zip:run patch
45 UNLIMIT_RESOURCES=      datasize stacksize
46 WRKSRC=                 ${WRKDIR}/openjdk
47
48 BUILDLINK_PASSTHRU_DIRS+=       ${ALT_BOOTDIR}
49 PREPEND_PATH+=                  ${ALT_BOOTDIR}/bin
50
51 MAKE_ENV+=      ALT_BOOTDIR=${ALT_BOOTDIR}
52 MAKE_ENV+=      ALT_DROPS_DIR=${DISTDIR}/${DIST_SUBDIR}
53 MAKE_ENV+=      ALT_FREETYPE_LIB_PATH=${BUILDLINK_PREFIX.freetype2}/lib
54 MAKE_ENV+=      ALT_FREETYPE_HEADERS_PATH=${BUILDLINK_PREFIX.freetype2}/include
55 MAKE_ENV+=      ALT_CUPS_HEADERS_PATH=${BUILDLINK_PREFIX.cups}/include
56 MAKE_ENV+=      ALT_COMPILER_PATH=${WRAPPER_DIR}/bin
57 MAKE_ENV+=      ALT_PACKAGE_PATH=${PREFIX}
58 MAKE_ENV+=      ALT_X11_PATH=${X11BASE}
59 MAKE_ENV+=      RHINO_JAR=${WRKDIR}/${RHINO}/js.jar
60
61 MAKE_ENV+=      ALT_PARALLEL_COMPILE_JOBS=${MAKE_JOBS:U1}
62 MAKE_ENV+=      HOTSPOT_BUILD_JOBS=${MAKE_JOBS}
63
64 MAKE_ENV+=      HOTSPOT_BUILD_USER=pkgsrc
65 MAKE_ENV+=      NO_DOCS=true
66 MAKE_ENV+=      SKIP_COMPARE_IMAGES=true
67 MAKE_ENV+=      SKIP_FASTDEBUG_BUILD=yes
68 MAKE_ENV+=      SKIP_DEBUG_BUILD=yes
69
70 # Avoid build errors when JAVA_HOME and CLASSPATH are defined by user.
71 MAKE_ENV+=      JAVA_HOME=
72 MAKE_ENV+=      CLASSPATH=
73
74 MAKE_ENV+=      EXTRA_CFLAGS="-DDEFAULT_LIBPATH=\\\"${PREFIX}/lib/jni:${PREFIX}/lib:/lib:/usr/lib\\\""
75 BUILDDIR=       ${WRKSRC}/build/${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/}-${MACHINE_ARCH:S/i386/i586/:S/x86_64/amd64/}
76 MAKE_ENV+=      LD_LIBRARY_PATH=${BUILDDIR}/lib/${MACHINE_ARCH:S/i386/i586/:S/x86_64/amd64/}
77 BUILDLINK_PASSTHRU_RPATHDIRS+=  ${PREFIX}/java/openjdk7/jre/lib/${MACHINE_ARCH:S/x86_64/amd64/}
78
79 PLIST_SUBST+=   ARCH=${MACHINE_ARCH:S/x86_64/amd64/}
80 PLIST_SUBST+=   LOWER_OPSYS=${LOWER_OPSYS}
81
82 .include "../../mk/compiler.mk"
83
84 .if !empty(PKGSRC_COMPILER:Mclang)
85 _WRAP_EXTRA_ARGS.CXX+=  -Wno-parentheses -Wno-sign-conversion \
86                         -Wno-shorten-64-to-32 -Wno-conversion \
87                         -Wno-unused-value -Wno-switch-enum -Wno-switch \
88                         -Wno-tautological-compare \
89                         -Wno-delete-non-virtual-dtor \
90                         -Wno-return-type -Wno-unused-parameter \
91                         -Wno-parentheses-equality -Wno-empty-body
92 .endif
93 .include "bootstrap.mk"
94 .include "icedtea-extras.mk"
95
96 .include "options.mk"
97
98 SUBST_CLASSES+=                 add-rpaths
99 SUBST_STAGE.add-rpaths=         pre-build
100 SUBST_MESSAGE.add-rpaths=       adding X11 run path flags to Makefiles
101 SUBST_FILES.add-rpaths=         jdk/make/sun/awt/Makefile               \
102                                 jdk/make/sun/awt/mawt.gmk               \
103                                 jdk/make/sun/jawt/Makefile              \
104                                 jdk/make/sun/jdga/Makefile              \
105                                 jdk/make/sun/splashscreen/Makefile      \
106                                 jdk/make/sun/xawt/Makefile
107 SUBST_SED.add-rpaths=           -e 's|-L$$(OPENWIN_LIB)|-L$$(OPENWIN_LIB) -Wl,-R$$(OPENWIN_LIB)|g'
108
109 SUBST_CLASSES+=                 fontpaths
110 SUBST_STAGE.fontpaths=          pre-build
111 SUBST_MESSAGE.fontpaths=        fixing font paths
112 SUBST_FILES.fontpaths=          jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties
113 SUBST_FILES.fontpaths+=         jdk/src/solaris/native/sun/awt/fontpath.c
114 SUBST_SED.fontpaths=            -e 's|@PREFIX@|${PREFIX}|g'
115 SUBST_SED.fontpaths+=           -e 's|@BUILDLINK_PREFIX.fontconfig@|${BUILDLINK_PREFIX.fontconfig}|g'
116
117 PLIST_VARS+=    i386 jce
118 .if ${MACHINE_ARCH} == "i386"
119 PLIST.i386=     yes
120 .endif
121
122 post-extract:
123         chmod +x ${ANT_BIN}/ant
124         cd ${WRKDIR}/${ICEDTEA_WEB}/plugin/icedteanp/java && pax -rw . \
125           ${WRKSRC}/jdk/src/share/classes
126         cd ${WRKDIR}/${ICEDTEA_WEB}/netx && pax -rw . \
127           ${WRKSRC}/jdk/src/share/classes
128         cd ${WRKSRC} && patch -s -p1 < ${WRKDIR}/${ICEDTEA}/patches/rhino.patch
129
130 do-build: ${WRKDIR}/stage3-done
131
132 # stage 1 builds a native JDK using the bootstrap binaries
133 ${WRKDIR}/stage1-done:
134         ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM}
135         rm -rf ${WRKDIR}/bootstrap
136         cd ${BUILDDIR} && mv j2sdk-image ${WRKDIR}/bootstrap
137         rm -rf ${BUILDDIR}
138         touch ${WRKDIR}/stage1-done
139
140 # stage 2 rebuilds the JDK using native tools
141 ${WRKDIR}/stage2-done: ${WRKDIR}/stage1-done
142         ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM}
143         touch ${BUILDDIR}/j2sdk-image/jre/lib/applet/.keep
144         touch ${WRKDIR}/stage2-done
145
146 # stage 3 builds third party add-ons
147 ${WRKDIR}/stage3-done: ${WRKDIR}/stage2-done ${WRKDIR}/cacerts.out
148         touch ${WRKDIR}/stage3-done
149
150 ${WRKDIR}/cacerts.out:
151         for cert in ${WRKDIR}/cacerts/*.crt; do                 \
152                 ${ECHO} yes | LC_ALL=C ${BUILDDIR}/bin/keytool          \
153                   -importcert                                           \
154                   -keystore ${.TARGET}                                  \
155                   -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.crt,\\1,'` \
156                   -file $$cert                                          \
157                   -storepass pkgsrc;                                    \
158         done
159
160 do-install:
161         ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
162         cd ${BUILDDIR}/j2sdk-image && pax -rwpp .                       \
163           ${DESTDIR}${JAVA_HOME}/.
164         ${INSTALL_DATA} ${WRKDIR}/cacerts.out                           \
165           ${DESTDIR}${JAVA_HOME}/jre/lib/security/cacerts
166         rm -f ${DESTDIR}${JAVA_HOME}/include/jni_md.h
167         ln -s ${LOWER_OPSYS}/jni_md.h                                   \
168           ${DESTDIR}${JAVA_HOME}/include/jni_md.h
169
170 .if !empty(MACHINE_PLATFORM:MNetBSD-4.*-*)
171 MAKE_ENV+=      PTHREAD_STACKSIZE=1024
172 .endif
173
174 .if ${OPSYS} == "NetBSD"
175 TOOLS_PLATFORM.unzip=
176 .endif
177
178 .include "../../fonts/fontconfig/buildlink3.mk"
179 .include "../../graphics/freetype2/buildlink3.mk"
180 BUILDLINK_DEPMETHOD.cups?=      build
181 .include "../../print/cups/buildlink3.mk"
182 .include "../../x11/libXext/buildlink3.mk"
183 .include "../../x11/libXi/buildlink3.mk"
184 BUILDLINK_DEPMETHOD.libXp?=     build
185 .include "../../x11/libXp/buildlink3.mk"
186 BUILDLINK_DEPMETHOD.libXt?=     build
187 .include "../../x11/libXt/buildlink3.mk"
188 .include "../../x11/libXtst/buildlink3.mk"
189 .include "../../x11/libXrender/buildlink3.mk"
190 .include "../../x11/xextproto/buildlink3.mk"
191 .include "../../mk/java-env.mk"
192 .include "../../mk/bsd.pkg.mk"