[目次] (https://qiita.com/Yutaka_Aoki/items/9d38ea98406f4096435b)
Inside Wine; Build
基本ビルド
git の設定が終わった事を前提にする。
$ ./configure
$ make -j 10
$ sudo make -j 10 install
が基本。既に wineserver が起動している場合には、
$ wineserver -k
で wineserver をいったん、終了させる。
この状態で、
$ wine notepad
などとすると、wineserver が自動的に起動される。
この後、Windows アプリによっては、日本語フォント関連で問題が生じることがある。その場合、自分の場合、
$ sudo apt-get remove wine
$ sudo apt-get install wine
で元に戻った。
本当のビルド
$ ./configure --prefix=/xxx/yyy
$ make -j 10
$ make -j 10 install
などとすることを勧めます。
現実に実験してみると、/xxx/yyy の permission のせいでしょうが、make install の sudo は必要ありませんでした。
こうすると、/usr/local/bin, /usr/local/lib の代わりに、
/xxx/yyy/bin, /xxx/yyy/lib にバイナリがインストールされます。
実際の現場のビルド
このままだとビルドとインストールにとてつもなく長く時間を取られます。
なので、ビルドに関しては、user32 にあるファイルだけを修正した場合には、
$ cd /dlls/user32
$ make -j 10
などとすると、そこに、user32.dll.so というファイルができるので、それを、wineserver に読み込ませてやれば、「ルート」からの全フォルダに対する make の必要もなく、make install の作業も必要なくなります。
その事は、環境変数 WINEDLLPATH の修正で行いますが、デフォルトでは、検索パスの優先順位に問題があるので、loader.c も修正します。さらに修正後の loader が利用されるように、さらに環境変数を設定します。これは、後に述べます。