[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 メーリングリストの案内