1 | # $Id: Portfile 53088 2009-06-29 05:16:32Z ryandesign@macports.org $ |
---|
2 | |
---|
3 | PortSystem 1.0 |
---|
4 | |
---|
5 | name openjdk6 |
---|
6 | version b20 |
---|
7 | set builddate 21_jun_2010 |
---|
8 | |
---|
9 | categories java |
---|
10 | maintainers landonf openmaintainer |
---|
11 | platforms darwin |
---|
12 | |
---|
13 | homepage http://openjdk.java.net/ |
---|
14 | description Sun's java 6 virtual machine release under the GPLv2 license |
---|
15 | long_description \ |
---|
16 | OpenJDK is an open-source implementation of the Java Platform, Standard Edition. \ |
---|
17 | The version has all of Sun's bug fixes up to JDK 6 Release 11 and should be \ |
---|
18 | the runtime equivelent to JDK6 Release 11. \ |
---|
19 | \ |
---|
20 | Much of the OpenJDK code is licensed under the GPL version 2 with the \ |
---|
21 | Classpath exception. The Java Hotspot virtual machine source code is \ |
---|
22 | licensed under the GPL version 2 only. |
---|
23 | |
---|
24 | distname openjdk-6-src-${version}-${builddate} |
---|
25 | |
---|
26 | set jaxp_build b20 |
---|
27 | set jaxp_file jdk6-jaxp-${jaxp_build}.zip |
---|
28 | set jaxws_build b20 |
---|
29 | set jaxws_file jdk6-jaxws-${jaxws_build}.zip |
---|
30 | set jaf_build b20 |
---|
31 | set jaf_file jdk6-jaf-${jaf_build}.zip |
---|
32 | |
---|
33 | |
---|
34 | distfiles ${distname}${extract.suffix} \ |
---|
35 | ${jaxp_file}:jaxp \ |
---|
36 | ${jaxws_file}:jaxws \ |
---|
37 | ${jaf_file}:jaxws |
---|
38 | extract.only ${distname}${extract.suffix} |
---|
39 | |
---|
40 | master_sites http://download.java.net/openjdk/jdk6/promoted/${version}/ \ |
---|
41 | https://jaxp.dev.java.net/files/documents/913/150648/:jaxp \ |
---|
42 | https://jax-ws.dev.java.net/files/documents/4202/150724/:jaxws \ |
---|
43 | https://jax-ws.dev.java.net/files/documents/4202/150725/:jaf \ |
---|
44 | http://icedtea.classpath.org/builds/icedtea6/src/ \ |
---|
45 | http://icedtea.classpath.org/builds/icedtea6/src/drops/:jaxp \ |
---|
46 | http://icedtea.classpath.org/builds/icedtea6/src/drops/:jaxws \ |
---|
47 | http://icedtea.classpath.org/builds/icedtea6/src/drops/:jaf |
---|
48 | |
---|
49 | |
---|
50 | checksums ${distname}${extract.suffix} \ |
---|
51 | md5 0b36adbf67e4f261e1b827ed4be4f447 \ |
---|
52 | sha256 fcf8f1d614e5965e90ef1b1a6d5eecc2bcc3078eaffbb62b83dfba52da62e54b \ |
---|
53 | \ |
---|
54 | ${jaxp_file} \ |
---|
55 | md5 22e95fbdb9fb7d8b6b6fc0a1d76d1fbd \ |
---|
56 | sha256 d097627d4059d488c5a09d4e33cec275a193d4d8bc0fea8ef4f1337170904156 \ |
---|
57 | \ |
---|
58 | ${jaxws_file} \ |
---|
59 | md5 91adfd41e6f001add4f92ae31216b1e3 \ |
---|
60 | sha256 0c460583898b968a58bf88eb53f90a0e34369e2562d65fb3a143512dfcaeb3eb \ |
---|
61 | \ |
---|
62 | ${jaf_file} \ |
---|
63 | md5 bc95c133620bd68c161cac9891592901 \ |
---|
64 | sha256 78c7b5c9d6271e88ee46abadd018a61f1e9645f8936cc8df1617e5f4f5074012 |
---|
65 | |
---|
66 | patchfiles patch-freebsd \ |
---|
67 | patch-Wformat \ |
---|
68 | patch-macosx |
---|
69 | # patch-stdint |
---|
70 | |
---|
71 | # patch-null_word_intptr_t \ |
---|
72 | # patch-jdk_src_solaris_javavm_include_typedefs__md.h \ |
---|
73 | # patch-jvm_base_addr \ |
---|
74 | # patch-jdk_src_share_java.c \ |
---|
75 | # patch-jdk_src_solaris_native_common_gdefs__md.h \ |
---|
76 | # patch-10.4-ucontext \ |
---|
77 | # patch-disable_test_gamma |
---|
78 | |
---|
79 | use_configure no |
---|
80 | |
---|
81 | depends_lib port:freetype \ |
---|
82 | port:dejavu-fonts \ |
---|
83 | port:openmotif \ |
---|
84 | port:xorg-libX11 \ |
---|
85 | port:xorg-libXtst |
---|
86 | depends_build port:apache-ant |
---|
87 | |
---|
88 | # Check if the boostrap is required |
---|
89 | if {[file exists ${prefix}/share/java/openjdk6/bin/java]} { |
---|
90 | # A previous OpenJDK6 release is already installed |
---|
91 | set bootstrapvm "${prefix}/share/java/openjdk6" |
---|
92 | } else { |
---|
93 | # A bootstrap binary is required to build |
---|
94 | depends_build-append port:openjdk6_bootstrap |
---|
95 | set bootstrapvm "${prefix}/share/java/openjdk6_bootstrap" |
---|
96 | } |
---|
97 | |
---|
98 | worksrcdir "./" |
---|
99 | |
---|
100 | post-extract { |
---|
101 | set copydirs { \ |
---|
102 | hotspot/src/os/linux/launcher \ |
---|
103 | hotspot/src/os/linux/vm \ |
---|
104 | hotspot/src/os_cpu/linux_x86/vm \ |
---|
105 | hotspot/agent/src/os/linux \ |
---|
106 | hotspot/make/linux \ |
---|
107 | hotspot/make/linux/makefiles \ |
---|
108 | hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux \ |
---|
109 | hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/amd64 \ |
---|
110 | hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/x86 \ |
---|
111 | hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux \ |
---|
112 | hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_amd64 \ |
---|
113 | hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_x86 \ |
---|
114 | jdk/src/linux/doc/man \ |
---|
115 | } |
---|
116 | |
---|
117 | set copyfiles { \ |
---|
118 | corba/make/common/Defs-linux.gmk \ |
---|
119 | corba/make/common/shared/Defs-linux.gmk \ |
---|
120 | hotspot/agent/src/share/classes/sun/jvm/hotspot/LinuxVtblAccess.java \ |
---|
121 | jdk/make/com/sun/tools/attach/mapfile-linux \ |
---|
122 | jdk/make/common/Defs-linux.gmk \ |
---|
123 | jdk/make/common/shared/Defs-linux.gmk \ |
---|
124 | jdk/make/java/nio/mapfile-linux \ |
---|
125 | jdk/make/netbeans/common/architectures/name-Linux.properties \ |
---|
126 | jdk/make/sun/awt/mapfile-vers-linux \ |
---|
127 | jdk/make/tools/sharing/classlist.linux \ |
---|
128 | jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux \ |
---|
129 | jdk/src/solaris/classes/sun/tools/attach/LinuxAttachProvider.java \ |
---|
130 | jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java \ |
---|
131 | jdk/src/solaris/hpi/include/largefile_linux.h \ |
---|
132 | jdk/src/solaris/native/java/net/linux_close.c \ |
---|
133 | jdk/src/solaris/native/sun/tools/attach/LinuxVirtualMachine.c \ |
---|
134 | } |
---|
135 | |
---|
136 | # Copy over original Linux sources |
---|
137 | foreach src ${copydirs} { |
---|
138 | set dest "${worksrcpath}/[strsed ${src} g/linux/bsd/]" |
---|
139 | |
---|
140 | # Create the parent directories |
---|
141 | file mkdir "${dest}" |
---|
142 | |
---|
143 | # Copy the contents, adjust file contents |
---|
144 | foreach srcfile [glob -types f "${worksrcpath}/${src}/*"] { |
---|
145 | set destfile [exec echo "${srcfile}" | sed "s/linux/bsd/g; s/Linux/Bsd/g"] |
---|
146 | |
---|
147 | copy "${srcfile}" "${destfile}" |
---|
148 | reinplace "s/linux/bsd/g; s/Linux/Bsd/g" "${destfile}" |
---|
149 | reinplace "s/linux/bsd/g; s/Linux/Bsd/g" "${destfile}" |
---|
150 | } |
---|
151 | } |
---|
152 | |
---|
153 | foreach src ${copyfiles} { |
---|
154 | set dest "${worksrcpath}/[exec echo ${src} | sed {s/linux/bsd/g; s/Linux/Bsd/g}]" |
---|
155 | copy "${worksrcpath}/${src}" "${dest}" |
---|
156 | reinplace "s/linux/bsd/g; s/Linux/Bsd/g" "${dest}" |
---|
157 | } |
---|
158 | |
---|
159 | # Copy the solaris sources |
---|
160 | copy "${worksrcpath}/jdk/src/solaris/hpi/native_threads/src/threads_solaris.c" \ |
---|
161 | "${worksrcpath}/jdk/src/solaris/hpi/native_threads/src/threads_bsd.c" |
---|
162 | reinplace "s/solaris/bsd/g; s/Solaris/Bsd/g" \ |
---|
163 | "${worksrcpath}/jdk/src/solaris/hpi/native_threads/src/threads_bsd.c" |
---|
164 | |
---|
165 | |
---|
166 | copy "${worksrcpath}/jdk/src/share/lib/security/java.security" \ |
---|
167 | "${worksrcpath}/jdk/src/share/lib/security/java.security-openbsd" |
---|
168 | |
---|
169 | # Configure font paths. |
---|
170 | copy "${filespath}/fontconfig.properties" \ |
---|
171 | "${worksrcpath}/jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties" |
---|
172 | reinplace "s|@PREFIX@|${prefix}|g" \ |
---|
173 | "${worksrcpath}/jdk/src/solaris/classes/sun/awt/fontconfigs/bsd.fontconfig.properties" |
---|
174 | } |
---|
175 | |
---|
176 | post-patch { |
---|
177 | reinplace "s|/lib:/usr/lib|/lib:/usr/lib:${prefix}/lib|" \ |
---|
178 | "${worksrcpath}/hotspot/src/os/bsd/vm/os_bsd.cpp" |
---|
179 | |
---|
180 | # Enable the unlimited strength policy file |
---|
181 | reinplace "s|build-policy install-limited|build-policy install-unlimited|g" \ |
---|
182 | "${worksrcpath}/jdk/make/javax/crypto/Makefile" |
---|
183 | } |
---|
184 | |
---|
185 | post-patch { |
---|
186 | # Work-around small bugs in the b20 patchset: |
---|
187 | |
---|
188 | # The agent is only supported on FreeBSD |
---|
189 | file delete -force "${worksrcpath}/hotspot/agent" |
---|
190 | |
---|
191 | # The unsupported -O1 flag is passed to the Darwin linker |
---|
192 | # reinplace "s/-Xlinker -O1//g" "${worksrcpath}/corba/make/common/Defs-bsd.gmk" |
---|
193 | |
---|
194 | # <uncontext.h> is included directly |
---|
195 | # reinplace "s|\<ucontext\.h\>|\<sys/ucontext.h\>|g" \ |
---|
196 | # "${worksrcpath}/hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp" \ |
---|
197 | # "${worksrcpath}/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp" |
---|
198 | |
---|
199 | # reinplace "s|FORMAT64_MODIFIER \"l\"|FORMAT64_MODIFIER \"ll\"|g" \ |
---|
200 | # "${worksrcpath}/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp" |
---|
201 | } |
---|
202 | |
---|
203 | # Override the overzealous setting of build environmental variables and settings. These |
---|
204 | # assume the use of (a well-behaved) autoconf, and cause an assortment of odd build failures when |
---|
205 | # used with openjdk's build system. |
---|
206 | # |
---|
207 | # Unfortunately there's no simple knob to turn the argument insertion off, so this will |
---|
208 | # probably have to be updated in the future |
---|
209 | build.env {} |
---|
210 | build.pre_args {} |
---|
211 | build.post_args {} |
---|
212 | use_parallel_build no |
---|
213 | |
---|
214 | # Determine the OpenJDK architecture |
---|
215 | # |
---|
216 | # XXX: |
---|
217 | # The openjdk build scripts currently rely on uname -m, which may return i386 or x86_64 |
---|
218 | # regardless of the actual supported architecture. I'll be fixing this upstream (using ARCH_DATA_MODEL to |
---|
219 | # let the user select between amd64/i586 on any x86 target), but in the meantime, we use UNAME_MACHINE |
---|
220 | # to override what uname -m returns. |
---|
221 | supported_archs i386 x86_64 |
---|
222 | if {${build_arch} == "i386"} { |
---|
223 | build.env-append "UNAME_MACHINE=i386" |
---|
224 | set openjdk_datamodel "32" |
---|
225 | set openjdk_build_arch "i586" |
---|
226 | } elseif {${build_arch} == "x86_64"} { |
---|
227 | build.env-append "UNAME_MACHINE=amd64" |
---|
228 | |
---|
229 | set openjdk_datamodel "64" |
---|
230 | set openjdk_build_arch "amd64" |
---|
231 | } elseif {${build_arch} == "ppc"} { |
---|
232 | # Currently unsupported |
---|
233 | } |
---|
234 | |
---|
235 | |
---|
236 | build.args \ |
---|
237 | ARCH_DATA_MODEL="${openjdk_datamodel}" \ |
---|
238 | ALT_BOOTDIR="${bootstrapvm}" \ |
---|
239 | ALT_JDK_IMPORT_PATH="${bootstrapvm}" \ |
---|
240 | ALT_DROPS_DIR="${distpath}" \ |
---|
241 | ANT_HOME="${prefix}/share/java/apache-ant" \ |
---|
242 | ALT_FREETYPE_HEADERS_PATH="${prefix}/include" \ |
---|
243 | ALT_FREETYPE_LIB_PATH="${prefix}/lib" \ |
---|
244 | ALT_CUPS_HEADERS_PATH="/usr/include" \ |
---|
245 | ALT_MOTIF_DIR="${prefix}" \ |
---|
246 | ALT_X11_PATH="${prefix}" \ |
---|
247 | ALT_DEVTOOLS_PATH=/usr \ |
---|
248 | ALT_CACERTS_FILE=/System/Library/Frameworks/JavaVM.framework/Home/lib/security/cacerts \ |
---|
249 | NO_DOCS=true \ |
---|
250 | BUILD_NUMBER="${version}" \ |
---|
251 | MILESTONE=fcs \ |
---|
252 | HOTSPOT_BUILD_JOBS="${build.jobs}" |
---|
253 | |
---|
254 | destroot { |
---|
255 | set path "${destroot}${prefix}/share/java/${name}/" |
---|
256 | xinstall -m 755 -d ${path} |
---|
257 | system "(cd ${worksrcpath}/build/bsd-${openjdk_build_arch}/j2sdk-image && tar cf - *) | (tar -C ${path} -xf -)" |
---|
258 | } |
---|