update Sat Nov 7 12:37:00 PST 2009
[pkgsrc.git] / lang / openjdk7 / Makefile
1 # $NetBSD: Makefile,v 1.8 2009/11/07 14:48:49 tnn Exp $
2
3 DISTNAME=       openjdk-7-ea-src-b75-30_oct_2009
4 PKGNAME=        openjdk7-1.7.0.75.20091106
5 CATEGORIES=     lang
6 MASTER_SITES=   ${MASTER_SITE_LOCAL:=openjdk7/}
7 EXTRACT_SUFX=   .tar.bz2
8
9 MAINTAINER=     tnn@NetBSD.org
10 HOMEPAGE=       http://openjdk.java.net/
11 COMMENT=        Open-source implementation of the Java Platform, Standard Edition
12
13 PKG_DESTDIR_SUPPORT=    user-destdir
14
15 DISTFILES=      ${DEFAULT_DISTFILES}
16 EXTRACT_ONLY=   ${DISTNAME}${EXTRACT_SUFX}
17
18 # diff between distfile and bsd-port branch. To check out, use:
19 # "hg fclone http://hg.openjdk.java.net/bsd-port/bsd-port/"
20 PATCHFILES+=    jdk-7-bsd-port-75.20091106.diff.bz2
21 PATCH_SITES+=   ${MASTER_SITE_LOCAL:=openjdk7/}
22
23 CACERTS=        cacerts-20091013.tar.bz2
24 DISTFILES+=     ${CACERTS}
25 EXTRACT_ONLY+=  ${CACERTS}
26
27 JAVA_NAME=      openjdk7
28 JAVA_HOME=      ${PREFIX}/java/${JAVA_NAME}
29 JAVA_WRAPPERS=  jar java javac javadoc javah javap keytool orbd \
30                 policytool rmid rmiregistry servertool tnameserv
31
32 BUILD_DEPENDS+=         zip-[0-9]*:../../archivers/zip
33 BUILD_DEPENDS+=         unzip-[0-9]*:../../archivers/unzip
34 MAKE_ENV+=              PKGSRC_ZIPEXE=${PREFIX}/bin/zip
35 MAKE_ENV+=              PKGSRC_UNZIP=${PREFIX}/bin/unzip
36 MAKE_ENV+=              PKGSRC_UNZIPSFX=${PREFIX}/bin/unzipsfv
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
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_FREETYPE_LIB_PATH=${BUILDLINK_PREFIX.freetype2}/lib
53 MAKE_ENV+=      ALT_FREETYPE_HEADERS_PATH=${BUILDLINK_PREFIX.freetype2}/include
54 MAKE_ENV+=      ALT_CUPS_HEADERS_PATH=${BUILDLINK_PREFIX.cups}/include
55 MAKE_ENV+=      ALT_COMPILER_PATH=${WRAPPER_DIR}/bin
56 MAKE_ENV+=      ALT_PACKAGE_PATH=${PREFIX}
57 MAKE_ENV+=      ALT_X11_PATH=${X11BASE}
58
59 MAKE_ENV+=      ALT_PARALLEL_COMPILE_JOBS=${MAKE_JOBS:U1}
60
61 MAKE_ENV+=      HOTSPOT_BUILD_USER=pkgsrc
62 MAKE_ENV+=      NO_DOCS=true
63 MAKE_ENV+=      SKIP_COMPARE_IMAGES=true
64 MAKE_ENV+=      SKIP_FASTDEBUG_BUILD=yes
65 MAKE_ENV+=      SKIP_DEBUG_BUILD=yes
66
67 BUILDDIR=       ${WRKSRC}/build/${OPSYS:C/.*BSD/bsd/:S/DragonFly/bsd/}-${MACHINE_ARCH:S/i386/i586/:S/x86_64/amd64/}
68 PLIST_SUBST+=   ARCH=${MACHINE_ARCH:S/x86_64/amd64/}
69 PLIST_SUBST+=   LOWER_OPSYS=${LOWER_OPSYS}
70
71 .include "../../mk/bsd.prefs.mk"
72 .include "bootstrap.mk"
73 .include "icedtea-extras.mk"
74
75 SUBST_CLASSES+=                 add-rpaths
76 SUBST_STAGE.add-rpaths=         pre-build
77 SUBST_MESSAGE.add-rpaths=       adding X11 run path flags to Makefiles
78 SUBST_FILES.add-rpaths=         jdk/make/sun/awt/Makefile               \
79                                 jdk/make/sun/awt/mawt.gmk               \
80                                 jdk/make/sun/jawt/Makefile              \
81                                 jdk/make/sun/jdga/Makefile              \
82                                 jdk/make/sun/splashscreen/Makefile      \
83                                 jdk/make/sun/xawt/Makefile
84 SUBST_SED.add-rpaths=           -e 's|-L$$(OPENWIN_LIB)|-L$$(OPENWIN_LIB) -Wl,-R$$(OPENWIN_LIB)|g'
85
86 SUBST_CLASSES+=                 fontpaths
87 SUBST_STAGE.fontpaths=          pre-build
88 SUBST_MESSAGE.fontpaths=        fixing font paths
89 SUBST_FILES.fontpaths=          jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties
90 SUBST_FILES.fontpaths+=         jdk/src/solaris/native/sun/awt/fontpath.c
91 SUBST_SED.fontpaths=            -e 's|%%PREFIX%%|${PREFIX}|'
92
93 PLIST_VARS+=    i386
94 .if ${MACHINE_ARCH} == "i386"
95 PLIST.i386=     yes
96 .endif
97
98 post-extract:
99         chmod +x ${ANT_BIN}/ant
100         cd ${WRKDIR}/${ICEDTEA}/plugin/icedteanp/java && pax -rw . \
101           ${WRKSRC}/jdk/src/share/classes
102         cd ${WRKDIR}/${ICEDTEA}/netx && pax -rw . \
103           ${WRKSRC}/jdk/src/share/classes
104
105 do-build: ${WRKDIR}/stage3-done
106
107 # stage 1 builds a native JDK using the bootstrap binaries
108 ${WRKDIR}/stage1-done:
109         ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM}
110         rm -rf ${WRKDIR}/bootstrap
111         cd ${BUILDDIR} && mv j2sdk-image ${WRKDIR}/bootstrap
112         rm -rf ${BUILDDIR}
113         touch ${WRKDIR}/stage1-done
114
115 # stage 2 rebuilds the JDK using native tools
116 ${WRKDIR}/stage2-done: ${WRKDIR}/stage1-done
117         ${_ULIMIT_CMD} cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ${MAKE_PROGRAM}
118         touch ${BUILDDIR}/j2sdk-image/jre/lib/applet/.keep
119         touch ${WRKDIR}/stage2-done
120
121 # stage 3 builds third party add-ons
122 ${WRKDIR}/stage3-done: ${WRKDIR}/stage2-done ${WRKDIR}/cacerts.out
123         touch ${WRKDIR}/stage3-done
124
125 ${WRKDIR}/cacerts.out:
126         for cert in ${WRKDIR}/cacerts/*.crt; do                 \
127                 ${ECHO} yes | LC_ALL=C ${BUILDDIR}/bin/keytool          \
128                   -importcert                                           \
129                   -keystore ${.TARGET}                                  \
130                   -alias `${ECHO} $$cert | sed 's,.*/\\([^/]*\\)\\.crt,\\1,'` \
131                   -file $$cert                                          \
132                   -storepass pkgsrc;                                    \
133         done
134
135 do-install:
136         ${INSTALL_DATA_DIR} ${DESTDIR}${JAVA_HOME}
137         cd ${BUILDDIR}/j2sdk-image && pax -rwpp .                       \
138           ${DESTDIR}${JAVA_HOME}/.
139         ${INSTALL_DATA} ${WRKDIR}/cacerts.out                           \
140           ${DESTDIR}${JAVA_HOME}/jre/lib/security/cacerts
141
142 .include "../../graphics/freetype2/buildlink3.mk"
143 BUILDLINK_DEPMETHOD.cups?=      build
144 .include "../../print/cups/buildlink3.mk"
145 .include "../../x11/libXext/buildlink3.mk"
146 .include "../../x11/libXi/buildlink3.mk"
147 BUILDLINK_DEPMETHOD.libXp?=     build
148 .include "../../x11/libXp/buildlink3.mk"
149 BUILDLINK_DEPMETHOD.libXt?=     build
150 .include "../../x11/libXt/buildlink3.mk"
151 .include "../../x11/libXtst/buildlink3.mk"
152 .include "../../x11/libXrender/buildlink3.mk"
153 .include "../../x11/xextproto/buildlink3.mk"
154 .include "../../mk/java-env.mk"
155 .include "../../mk/bsd.pkg.mk"