openjdk windows 編譯

前記

 

如果你不是閒着蛋疼最好不要在windows上面編譯,linux上面一會就編譯好了。。。。可是windows上面  只想說10個字“尼瑪”

 

出現問題了  可以直接改他的makefile和gmk 爺爺的 例如那個verify.res 啥的 明明沒有 他非要加入link 中,導致編譯失敗

 

感嘆 人生太多的時間花費在這些雖然結果有用,但是過程無用的地方了  


參考文章

http://www.iteye.com/topic/1097344

openjdk自帶的build html

 

BUILD JDK

 

1 hg http://mercurial.selenic.com/release/windows/mercurial-2.5.4-x86.msi

 

 

1 freetype freetype-2.3.5-1-bin

 

url  http://jaist.dl.sourceforge.net/project/gnuwin32/freetype/2.3.5-1/freetype-2.3.5-1-bin.zip

 

同時將bin目錄下的文件全部拷貝到lib下 同時命名freetype6.dll 爲freetype.dll

 

2 apache-ant-1.9.0

 

url http://mirrors.cnnic.cn/apache//ant/binaries/apache-ant-1.9.0-bin.zip

 

 

 

3 directx sdk DXSDK_Jun10.exe

 

url http://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe

 

 

4 cygwin

 

url http://cygwin.com/setup.exe

 

假如沒有這個dll 從網上下載一個

cygintl-3.dll  url http://www.opendll.com/dll/c/__32-cygintl-3.dll.zip

 

重命名 link.exe to link1.exe

 

替換the make.exe  url http://www.cmake.org/files/cygwin/make.exe

 

 

 

5 zlib1.dll

 

把這個zlib1.dll 放到要編譯的jdk源碼的根目錄

 

6 修改語言設置

 


 

7 要編譯x86版本一定要在x86 32位機器上編譯,否則xxxxx

 

8 安裝vs2010版

 

9 environment 變量設置

 

所有路徑最好是/ 而不是\

 

ALT_BOOTDIR C:/javasec/src/compler/jdk

 

ALT_COMPILER_PATH   C:/ProgramFiles/Microsoft Visual Studio 10.0/VC/bin

 

ALT_DXSDK_PATH  c:/javasec/src/dxsdk

 

ALT_FREETYPE_HEADERS_PATH   C:/javasec/src/compler/freetype-2.3.5-1-bin/include

 

ALT_FREETYPE_LIB_PATH   C:/javasec/src/compler/freetype-2.3.5-1-bin/lib

 

ALT_JDK_IMPORT_PATHc:/javasec/src/compler/jdk

 

ANT_HOMEC:/javasec/src/compler/apache-ant-1.9.0

 

ALT_MSVCRNN_DLLc:/javasec/src/compler/msvcr

 

LIBPATH C:/Program Files/Microsoft VisualStudio 10.0/VC/lib;%LIB%

 

WINDOWSSDKDIR C:/Program Files/MicrosoftSDKs/Windows/v7.0A

 

VSINSTALLDIR C:/Program Files/MicrosoftVisual Studio 10.0

 

PATH

C:/Program Files/Microsoft Visual Studio10.0/VC/bin;c:/javasec/src/compler/jdk;c:/javasec/src/compler/jdk/bin;C:/ProgramFiles/Microsoft Visual Studio10.0;%VSINSTALLDIR%\Common7\Tools;%VSINSTALLDIR%\Common7\IDE;%VCINSTALLDIR%\VCPackages;c:/javasec/src/compler/freetype-2.3.5-1-bin/bin;%PATH%;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles\Mercurial\;C:\Program Files\Microsoft SQLServer\100\Tools\Binn\;C:\Program Files\Microsoft SQLServer\100\DTS\Binn\;C:/Program Files/Microsoft SDKs/Windows/v7.0A/bin

 

INCLUDE

C:/Program Files/Microsoft Visual Studio10.0/VC/include;C:/Program Files/MicrosoftSDKs/Windows/v7.0A/Include;%ALT_FREETYPE_HEADERS_PATH%

 

LIB

C:/Program Files/Microsoft Visual Studio10.0/VC/lib;C:/Program Files/Microsoft SDKs/Windows/v7.0A/lib;%ALT_FREETYPE_LIB_PATH%

 


 

10 修改openjdk 的makefile文件和gmk文件

 

下面是修改的部分,主要是爲了解決資源res 不存在的問題

Program.gmk

 

{

 

#$(OBJDIR)/$(PROGRAM).res:$(VERSIONINFO_RESOURCE)

#       @$(prep-target)

#ifndef LOCAL_RESOURCE_FILE

#       $(RC)$(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(@) $(VERSIONINFO_RESOURCE)

#endif

# $(OBJDIR)/$(PROGRAM).res add instruder

$(OBJDIR)/$(PROGRAM).lcf: $(FILES_o)

         @$(prep-target)

         @$(ECHO)$(FILES_o) > $@

#  ifndefLOCAL_RESOURCE_FILE

#       @$(ECHO)$(OBJDIR)/$(PROGRAM).res >> $@

#  endif

         @$(ECHO)setargv.obj >> $@

         @$(ECHO)Created $@

 

}

 

 

Library.gmk

{

#$(OBJDIR)/$(LIBRARY).res

$(OBJDIR)/$(LIBRARY).lcf: $(COMPILE_FILES_o)$(FILES_m)

         @$(prep-target)

         @$(MKDIR)-p $(TEMPDIR)

         @$(ECHO)$(FILES_o) > $@

#ifndef LOCAL_RESOURCE_FILE

#       @$(ECHO)$(OBJDIR)/$(LIBRARY).res >> $@

#       #@$(ECHO)Created $@

#endif

#       @$(ECHO)Created $@

 

# JDK name required here

RC_FLAGS += /D"JDK_FNAME=$(LIBRARY).dll" \

           /D "JDK_INTERNAL_NAME=$(LIBRARY)" \

           /D "JDK_FTYPE=0x2L"

 

#$(OBJDIR)/$(LIBRARY).res:$(VERSIONINFO_RESOURCE)

#ifndef LOCAL_RESOURCE_FILE

#       @$(prep-target)

#       $(RC)$(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(@) $(VERSIONINFO_RESOURCE)

#endi

}

 

Compiler-msvc.gmk

 

  ifeq($(CC_MAJORVER), 16)

   COMPILER_NAME=Microsoft Visual Studio 10 (16.00.30319.01)

   COMPILER_VERSION=VS201         #add

 

 

jdk\make\com\sun\java\pack\makefile

 

{

$(UNPACK_EXE): $(UNPACK_EXE_FILES_o)updatefiles winres

         $(prep-target)

         $(RM)$(TEMPDIR)/mapfile-vers

         $(CP)mapfile-vers-unpack200 $(TEMPDIR)/mapfile-vers

         $(LINKER)  $(LDDFLAGS) $(UNPACK_EXE_FILES_o) $(LIBCXX)$(LDOUTPUT)$(TEMPDIR)/unpack200$(EXE_SUFFIX)

# $(RES) fix by instruder

ifdef MT

         $(MT)/manifest $(OBJDIR)/unpack200$(EXE_SUFFIX).manifest/outputresource:$(TEMPDIR)/unpack200$(EXE_SUFFIX);#1

endif

         $(CP)$(TEMPDIR)/unpack200$(EXE_SUFFIX) $(UNPACK_EXE)

         @$(callbinary_file_verification,$@)

#fix by instruder

#ifeq ($(PLATFORM), windows)

#$(RES):: $(VERSIONINFO_RESOURCE)

#       $(prep-target)

#       $(RC)$(RC_FLAGS) $(CC_OBJECT_OUTPUT_FLAG)$(@) $(VERSIONINFO_RESOURCE)

#endi

}

 

 

Demo.gmk

 

{

#fix by instruder +

DEMO_RESOURCES        = $(filter-out %.java,$(DEMO_ALL_FILES)

}

 

 

 

11 上面操作完成之後,執行opjdk目錄下面jdk/make 裏面的jdk_generic_profile.sh 命令腳本

 

 

12 執行make sanity ,成功後開始make。。。。

 

 

13 看到這個界面就編譯通過啦

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章