[Mew-dist 14384] Re: Windows
Shun-ichi GOTO
gotoh at example.com
2000年 10月 4日 (水) 13:49:45 JST
>>>>> at Wed, 4 Oct 2000 12:47:42 +0900
>>>>> kazu == Kazu Yamamoto (山本和彦) <kazu at example.com> said,
kazu> 素人の質問で申し訳ないのですが、調べている時間がもったいないので教えて
kazu> 下さい。
kazu> Borland C を入れます。さて、どうやってコンパイルすればよいのでしょう?
どうやってってのは... どういうレベルの話だろう? (^^;
kazu> (Q1) configure はどうするの?
kazu> # 自分で Makefile を書く?
cygwin を使わない、のであれば
configure を使えるようにするまずむりでしょう。
環境はWindows という環境で固定なので
config.h 類は(必要なら)あらかじめ手動で作っておくので良いでしょう。
Makefile.in => Makefile のcreate も
あらかじめ Makefile.vc とか Makefile.bc とか作っておくのが多いと
思います。でもってREADME.w32 とかで『build するには...』と
記述しておく。
まずはBC で作り、VC でも出来るように手を加えていく、といった
アプローチですね。
いがいとやらしいのは、どのmake を前提にするか、という点。
MS のnmake.exe、Borland のmake.exe は結構クセがあります。
.VPATH とか .if とかいうディレクティブは使わないほうがいいでしょうし
暗黙のrule などもあてにできないです。
変に自動化しよう/楽な記述を使用と思わない事です。
幸いにしてMew は compile するsource の数は少ないですし、
batch file が如くガリガリとかくのがよいと思います。
kazu> (Q2) make はどうするの?
kazu> # どこからか拾ってくる?
make.exe がBC55 のアーカイブに含まれていると思いますが?
kazu> (Q3) その他有益な情報があれば教えて下さい。
あと、pipe() はあるけど、fork() やらselect() やら、UNIX で当たり前のものが
ありません。大抵の場合は相当するメカニズムはありますが、
それらを適切に使おうとすると、場合によってはUNIX版とアルゴリズムを
共用できません(特にselect()まわり)。
なので注意点は
* まず現状のcodeで、Win32 向きでない部分を洗い出す。
=> 私や北口さんやその他、チャレンジャーがまずやってみる、とかね。
* UNIX にどっぷりなLOGICを排除/回避する
この辺りは本家とWin32家の折衝
=> fork()や unix-domain-socket() の利用などはしない
ls などの外部コマンドに頼らなくてもいいようにする
sym-link などFile System に依存したものを使用しない
* 最終的には #ifdef やら、win32func.c とかを用意して
UNIX版/Win32版を一元管理する。
ですね。
そういうもろもろがめんどうならば
* 割り切ってCygWin / Mingw だけをサポートする。
(そしてバイナリ配付を検討)
--- Regards,
Shun-ichi Goto <gotoh at example.com>
R&D Group, TAIYO Corp., Tokyo, JAPAN
Mew-dist メーリングリストの案内