在Centos上编译过OPENJDK7后,现在试着在MAC系统编译一下OPENJDK,由于OPENJDK7在MAC上编译设置太多,所以直接选择OPENJDK8进行编译,编译步骤如下:
1.安装brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
1.1.解决github的token问题
export HOMEBREW_GITHUB_API_TOKEN="1bbccff6adaac768fb4fbf5d78270379986177d5"
参考:http://www.cnblogs.com/phoenix-fec/p/5286695.html
1.2.安装freetype和llvm不知道后面是否有用,因为前面已安装过xcode8
brew search llvm
brew install llvm
brew search freetype
brew install freetyp
2.手动直接安装freetype,安装目录在/usr/local下
./configuration
make
make install
后面编译时找不到freetype需加上以下参数: --with-freetype-include=/usr/local/include/freetype2 --with-freetype-lib=/usr/local/lib/
http://mail.openjdk.java.net/pipermail/build-dev/2014-October/013491.html
3.以前安装过xcode及command line 不是是否有用
4.下载jdk7并安装
5.安装XQuartz
6.链拉sudo ln -s /usr/X11/include/X11 /usr/include/X11
链拉时出现问题Operation not permitted
解决:将其修改为/usr/local下
参考:https://segmentfault.com/q/1010000003958979
7.准备环境参数
# 设定语言选项,必须设置
export LANG=C
# Mac平台,C编译器不再是GCC,是clang
export CC=clang
# 跳过clang的一些严格的语法检查,不然会将N多的警告作为Error
export COMPILER_WARNINGS_FATAL=false
# 链接时使用的参数
export LFLAGS='-Xlinker -lstdc++'
# 是否使用clang
export USE_CLANG=true
# 使用64位数据模型
export LP64=1
# 告诉编译平台是64位,不然会按32位来编译
export ARCH_DATA_MODEL=64
# 允许自动下载依赖
export ALLOW_DOWNLOADS=true
# 并行编译的线程数,编译时间长,为了不影响其他工作,我选择为2
export HOTSPOT_BUILD_JOBS=2
export ALT_PARALLEL_COMPILE_JOBS=2
# 是否跳过与先前版本的比较
export SKIP_COMPARE_IMAGES=true
# 是否使用预编译头文件,加快编译速度
export USE_PRECOMPILED_HEADER=true
# 是否使用增量编译
export INCREMENTAL_BUILD=true
# 编译内容
export BUILD_LANGTOOLS=true
export BUILD_JAXP=true
export BUILD_JAXWS=true
export BUILD_CORBA=true
export BUILD_HOTSPOT=true
export BUILD_JDK=true
# 编译版本
export SKIP_DEBUG_BUILD=false
export SKIP_FASTDEBUG_BUILD=false
export DEBUG_NAME=debug
# 避开javaws和浏览器Java插件之类的部分的build
export BUILD_DEPLOY=false
export BUILD_INSTALL=false
# FreeType
export FREETYPE_LIB_PATH=/usr/X11R6/lib
export FREETYPE_HEADERS_PATH=/usr/X11R6/include
export ALT_FREETYPE_LIB_PATH=/usr/local/Cellar/freetype/2.7.1/lib
export ALT_FREETYPE_HEADERS_PATH=/usr/local/Cellar/freetype/2.7.1/include
# 目标编译版本信息
export MILESTONE=internal
export BUILD_NUMBER=b25
# 指定bootstrap jdk的路径。反引号的意思是执行这段shell代码后得到的结果作为该环境变量的值
export ALT_BOOTDIR=/Users/lizheng/Downloads/jdk7
# 编译结果的输出路径
# export ALT_OUTPUTDIR=/Users/zhongmingmao/Documents/source_code/java/openjdk/openjdk7/openjdk/build
# ANT
# export ANT_HOME=/Users/zhongmingmao/Downloads/apache-ant-1.9.7
# 取消环境变量的设置,减少警告
unset JAVA_HOME
unset CLASSPATH
unset LD_LIBRARY_PATH
8.开始安装
sh configure --with-debug-level=slowdebug --with-boot-jdk=`/usr/libexec/java_home -v 1.7` --with-freetype-include=/usr/local/include/freetype2 --with-freetype-lib=/usr/local/lib/ --with-target-bits=64 --with-jvm-variants=server --with-jdk-variant=normal --with-milestone=internal --with-update-version=b25 --with-build-number=b25 --with-zlib=system --with-num-cores=2 --with-jobs=4 CC=clang CXX=clang++
make all COMPILER_WARNINGS_FATAL=false LFLAGS='-Xlinker -lstdc++' CC=clang USE_CLANG=true LP64=1
http://zhongmingmao.me/2016/07/13/openjdk.html?utm_source=tuicool&utm_medium=referral
9.安装中出现的问题及解决
9.1.relocInfo.hpp报错
http://blog.csdn.net/j754379117/article/details/53695426第五条解决