- sudo port install gcc49 mpich-gcc49
- sudo port install netcdf-fortran +gcc49
- sudo port install mpich-gcc49
- sudo port select --set gcc mp-gcc49
- sudo port select --set mpi mpich-gcc49-fortran
- sudo port install python35 py35-numpy py35-scipy py35-matplotlib py35-tkinter
- sudo port select --set python python35
- cd /pkg && tar jxf AmberTools16.tar.bz2
- cd /pkg/amber16 && export AMBERHOME=/pkg/amber16
- ./configure -macAccelerate gnu
- test -f /pkg/amber16/amber.sh && source /pkg/amber16/amber.sh
- make -j 4
- make test
- make install
上面的指令可以分成三大塊:1~5是在安裝編譯器;6是安裝Python;10~14才是真正在編譯AmberTools16。編譯的部分主要是參考Jason Swails' blog寫的《Preparing for AMBER》。以下依序介紹上述指令
- 安裝GCC 4.9,包含了C的編譯器gcc與fortran的編譯器gfortran
- 安裝給fortran的netCDF,後面的+gcc49代表要配著GCC 4.9來用
- 安裝GCC 4.9的MPICH函式庫
- 設定GCC 4.9為預設的gcc
- 設定為GCC 4.9編出來的MPICH函式庫為預設的mpi
- 安裝Python 3.5與相關的套件numpy, scipy, matplotlib, tkinter
- 將預設的Python設定為Python 3.5
- 解壓縮AmberTools16到/pkg/amber16裡面
- 進入/pkg/amber16,設定AMBER工作目錄
- 設定使用的編譯器是GNU的GCC,並且使用Mac OS X最佳化過的blas/lapack
- 設定amber16的環境變數
- 用四核心來編譯(MBPR 2013約莫要7分鐘)
- 測試編譯出來的程式(總共測試1864個檔案,用了一小時)
- 安裝編譯好的程式(最後/pkg/amber16這個資料夾佔了2.3G的硬碟空間)
這邊沒有使用Python2.7是在編譯期間出現了下面的錯誤訊息
running build_py
copying pytraj/version.py -> build/lib.macosx-10.11-intel-2.7/pytraj
running build_ext
building 'pytraj.c_dict' extension
gcc -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -I/pkg/amber16/AmberTools/src/cpptraj/src -I/pkg/amber16/AmberTools/src/pytraj/pytraj/ -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c pytraj/c_dict.cpp -o build/temp.macosx-10.11-intel-2.7/pytraj/c_dict.o -O0 -ggdb
gcc: error: unrecognized command line option '-Wshorten-64-to-32'
error: command 'gcc' failed with exit status 1
make[2]: *** [pytraj] Error 1
make[1]: *** [serial] Error 2
make: *** [install] Error 2
也就是在編譯pytraj這隻程式出問題,所以才會想要換Python版本來試試看
_EOF_
沒有留言:
張貼留言