2014年11月26日水曜日

vimビルドメモ

個人用メモ

hg clone https://vim.googlecode.com/hg/ vim

hgの#!が正しくないと動かない。
#!/usr/local/bin/python

luaとpythonが入っていることが前提。
./configure --with-features=huge \
            --enable-multibyte \
            --enable-pythoninterp \
            --with-python-config-dir=/usr/local/lib/python2.7/config \
            --enable-perlinterp \
            --enable-luainterp \
            --with-lua-prefix=/usr/local/ \
            --enable-cscope --prefix=/usr/local/stow/vim74_2 2>&1 | tee configurelog.txt
            
make 2>&1 | tee makelog.txt
ここでvimが起動するか確かめる。動かなかったらconfigure見直したりDLL調べたりする。
cygwinだとcygcheckが便利。

make install 2>&1 | tee makeinstalllog.txt

どこかに書かないと後でどのようにconfigureしたか思い出せない。

2013年9月24日火曜日

cygwinにSQLite3をインストール


apt-cyg install sqlite3
最初はapt-cygでインストールしたものを使おうとしたのですが、挙動がおかしい。多分バグ。(追記:バグは言いがかりかもしれない。)
↑キーなどカーソルキーを打つとカーソルが自在に動く。backspace連打すると消えるはずの無い部分も消える。
そこでソースをmakeして使うことにした。
SQLite Download Pageからソースを入手しています。
パッケージ管理はstowを使っています。とくに管理とかしていない方はprefixやstowの部分は無視してください。
$ wget http://www.sqlite.org/2013/sqlite-autoconf-3080002.tar.gz
$ tar zxvf sqlite-autoconf-3080002.tar.gz
$ cd sqlite-autoconf-3080002
$ ./configure --prefix=/usr/local/stow/sqlite3
#configureでインストール先をstowディレクトリに変更。
$ make && make install
$ cd /usr/local/stow
$ stow -v sqlite3

$ sqlite3
-bash: /usr/bin/sqlite3: No such file or directory
cygwinを再起動。
$ sqlite3
SQLite version 3.8.0.2 2013-09-03 17:11:13
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
これで妙な挙動をしないsqlite3が手に入った。

2013年8月28日水曜日

64bit版cygwinでRuby2.0を力技でインストール

多分今は64bit版cygwinで64bitなRubyを入れようと頑張らないほうがいいかもしれない。そのうち誰かが対応してくれるはず。
--prefix=$HOME/.rbenv/versions/2.0.0-p247でいつでも楽に消せる様にrbenvで管理してます。

ruby 2.0.0p247をcygwin64でmakeしたところ

compiling file.c
file.c:4184:47: エラー: ‘GetLastError’ と型が競合しています
 extern unsigned long __attribute__((stdcall)) GetLastError(void);
                                               ^
In file included from /usr/include/w32api/windows.h:70:0,
                 from file.c:18:
/usr/include/w32api/winbase.h:1363:27: 備考: 前の ‘GetLastError’ の宣言はここです
   WINBASEAPI DWORD WINAPI GetLastError(VOID);

あー。longかー。
調べてみるとcygwin64bitのgccはsizeof(long) => 8らしい。DWORDは確か4byteだったから多分このせいでエラーが出る。

最初はcygwin上のmingwでmake && make installしようとしたけどよくわからなかったので力技を使う。
file.cを開き、エラー箇所のlongのところをintに変えてmakeしてみた。

file.c:4184:46: 警告: ‘GetLastError’ は dllimport 属性無しで再宣言されました: 前の dllimport は無視されます [-Wattributes]
 extern unsigned int __attribute__((stdcall)) GetLastError(void);

こんな警告がでた。が、通った。
win32oreあたりもなんか警告がすごかった気がする。
そしてそのままmake installしてrubyを確認。

$ ruby -v
ruby 2.0.0p247 (2013-06-27) [x86_64-cygwin]


ここまでやったけどcygwinはしばらく32bitでいい気がしてきた。

2013年8月22日木曜日

cygwinが64bit版を出していた件

なんとなくcygwinを使いたくなってsetup.exeを実行したがうまく動かないからまた今度でいいやと思ったのが1~2週間ぐらい前。
どのミラーサーバーも動かないのはおかしいと思い始めたのが数時間前。
32bitと64bitに分かれてミラーサーバーのディレクトリも変更になったせいだとわかったのが数分前
64bit版を新しくインストール中なのが今。
うっかり今まで使ってたやつをアンインストールしてしまったので何を入れていたか全く覚えていなくて少しうろたえているのも今。

cygwin公式ページのよくわからない何かが這っているセンスは今後の参考にしたい。