64bit cygwin (Windows8.1) での GrADS 2.1.a1 コンパイルメモ (2014/04/13)  

Table of Contents

cygwin  

supplibs ダウンロード  

supplibs インストール  

インストールに失敗したライブラリに個別に対応  

zlib  

hdf4  

configure: creating ./config.lt
config.lt: creating libtool
*** unknown host x86_64-unknown-cygwin!

hdf5  

netcdf  

make install ALLDIRS=netcdf
In file included from dapparselex.h:11:0,
                 from dap.y:11:
daptab.h:93:15: error: unknown type name 'DAPparsestate'

daptab.hでDAPparsestateを使っていて、dapparselex.hで定義されている。
が、dapparselex.hでdaptab.hがincludeされている?

int dapparse (DAPparsestate* parsestate);

struct DAPparsestate;
int dapparse (struct DAPparsestate* parsestate);

に変える。

Makefile:431: recipe for target 'netcdf-f90.info' failed
make: *** [netcdf-f90.info] Error 1

だが、configure時に--disable-f90のため、要らないはず。(manだからそもそも無くて良いはずだけど)

netcdf-f90.texi:2085: warning: @item missing argument
netcdf-f90.texi:6982: raising the section level of @unnumberedsubsec which is too low
Makefile:431: recipe for target 'netcdf-f90.info' failed
make: *** [netcdf-f90.info] Error 1

netcdf-f90.info の @unnumberedsubsec を @unnumberedsec に書き換える(3箇所)

dap  

gadap  

make install ALLDIRS=gadap
gaReports.cc: In member function ‘int gaReports::getVarDbl(int, int, int, int, double*) ’:
gaReports.cc:167:11: error: ‘free’ was not declared in this scope

#include <stdlib.h> 追加。

GrADS 2.1.a1 ダウンロード  

http://iges.org/grads/downloads.html から
ソース
ftp://cola.gmu.edu/grads/2.1/grads-2.1.a1-src.tar.gz
をダウンロード。

GrADS 2.1.a1 インストール  

tar xvzf grads-2.1.a1-src.tar.gz
cd grads-2.1.a1
SUPPLIBS=どこぞのsupplibs-2.2.1/x86_64-unknown-cygwin \
./configure --disable-dyn-supplibs --prefix=インストールしたい場所
conftest.c:71:22: fatal error: ft2build.h: No such file or directory

cairoのチェック中にエラーが出る。ft2build.hはfreetype2のヘッダファイルで
${SUPPLIBS}/include/ft2build.h にあるが、-I${SUPPLIBS}/include/freetype2 などしかチェックしていない。
${SUPPLIBS}/include/ft2build.h から ${SUPPLIBS}/include/freetype2/ にコピー。

SUPPLIBS=どこぞのsupplibs-2.2.1/x86_64-unknown-cygwin \
./configure --disable-dyn-supplibs --prefix=インストールしたい場所
make
g++: error: supplibs-2.2.1/x86_64-unknown-cygwin/lib/libnetcdf.a: No such file or directory
g++: error: supplibs-2.2.1/x86_64-unknown-cygwin/lib/libXrender.a: No such file or directory

libXrenderはSUPPLIBSに無いのにSUPPLIBSを見に行っている。-lXrender に変更。 libnetcdf.aはlibnetcdf.libとしてインストールされている。libnetcdf.libに変更。

libsx.a(libsx.o): In function `ShowDisplay':
supplibs-2.2.1/src/libsx/src/libsx.c:414: undefined reference to `XInternAtom'

libsx.a には -lX11が必要。gui_libsに追加。

libxml2.a(encoding.o):encoding.c:(.text+0x2fac): undefined reference to `libiconv_open'

libxml2.a に libiconvが必要なので、cairo_libsとdap_libsに-liconv追加

libcairo.a(cairo-xlib-surface.o):cairo-xlib-surface.c:(.text+0x16f): undefined reference to `XCreatePixmap'
/usr/bin/ld: supplibs-2.2.1/x86_64-unknown-cygwin/lib/libcairo.a(cairo-win32-font.o): bad reloc address 0x0 in section `.pdata'

cairo_libs に -lX11 -lgdi32 -lmsimg32 追加。

grib2scan.c:300: undefined reference to `gagby'
gcc -g -O2    grib2scan.c   -o grib2scan

が実行されているが、gagbyはgamach.oで定義されている。他も追加して、手動コンパイル。

gcc -g -O2    grib2scan.c gamach.o gautil.o galloc.o gatxt.o -lreadline -o grib2scan
make install

このあと、/usr/local/lib/grads にフォントデータなどを用意する。ftp://cola.gmu.edu/grads/data2.tar.gz からダウンロード。


掲示板に要望があれば、バイナリをアップするかも? 他人の作ったバイナリでも気にせず実行できるなら...

と思ったけど、無料サイトなので1ファイル3MBまでしかアップできない orz 分割してもいいけど。


By T. Egawa <2014.04.13>
戻る