| 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 | } |
|---|