- ベストアンサー
C言語 CGIの一括コンパイル方法とは?
- 10年前に作成したゲームの復活を考えています。C言語で作成されたゲームを再開するためにはCGIプログラムをコンパイルする必要があります。
- 他のマシンでコンパイルしたCGIプログラムをそのまま使用することはできず、すべてのプログラムを再度コンパイルする必要があります。
- 178個のCGIプログラムがあり、ファイルは40個のディレクトリに分かれて保存されています。個別にコンパイルすると1か月以上かかる見込みです。一括でコンパイルする方法を探しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
一般的な方法はありません。 それぞれのファイルがどんな関係になっているかが不明です。 全部で一つの実行ファイルになるのか、それぞれが実行ファイルになるのか、いくつかずつまとめて複数の実行ファイルになるのか、それぞれによってコンパイルのやり方が違います。 例えば、 a.c,b.c,c.cの3つがあったとして ・それぞれから a.cgi b.cgi c.cgi の3つの実行ファイルを作る →gcc -o a.cgi a.c; gcc -o b.cgi b.c ; gcc -o c.cgi c.c ・全てのコンパイル結果をリンクして d.cgiを作る →gcc -o d.cgi a.c b.c c.c ・a.cとb.cから a.cgi, c.cから c.cgi を作る →gcc -o a.cgi a.c b.c ; gcc -o c.cgi c.c ・a.cとb.cから a.cgi, c.cとb.cgiから c.cgi を作る →gcc -c b.c ; gcc -o a.cgi a.c b.o ; gcc -o c.cgi c.c b.o .... 他にもライブラリの指定等の各種オプションの指定も違うこともあります。 なので、普通は、一括コンパイル用のシェルスクリプトや、makeコマンドで一括処理するための Makefile (または、環境や設定に合せてMakefileを作成するための configureスクリプト)を用意します。 または、コンパイルするための情報が書いてあるファイル(READMEやINSTALL等)を用意します。 それらのファイルは無いでしょうか? 逆に言えば、これらの情報が無ければ、コンパイルは無理です。ソースを解析して、コンパイル方法を推測する必要があります
お礼
もう少し良く確認したところ、mk_file のファイルが各ディレクトリ毎にありました。これを使えばいいのですね。 有難うございました。 大変助かりました。 あとは、調べれば自分で出来るかと思います。 有難うござました。
補足
有難うございます。 確認したところ、 utils ディレクトリの中に「makefileファイル」「mk_info =C言語ソース & mk_infoファイル」「configure.csh ファイル」を見つけました。 makefileファイルは ************************************** # all: mk_info # mk_info: mk_info.c cc -g mk_info.c -o mk_info *************************************** となっています。 mk_info =C言語ソースを見ると、 どのC言語ファイルをどうするなどの指示文書にはなっていないファイルでした。 このファイルで一括変更したのではないかもしれません。 .cファイルについてですが、xxx.c に対応するcgiであるxxx.ccgiのように、178個全てにおいて、.c ファイルと同じ名前のcgiファイルがあります。 従い、 例えば、 a.c,b.c,c.cの3つがあったとして ・それぞれから a.cgi b.cgi c.cgi の3つの実行ファイルを作る →gcc -o a.cgi a.c; gcc -o b.cgi b.c ; gcc -o c.cgi c.c の例で問題ないと考えますがいかがでしょうか? 他にもライブラリの指定等の各種オプションの指定も違うこともあります。については、さすがに分かりません。 従来のものとは別のディレクトリに用意するため、 万一動かなかったとしても 大元を壊すことにはなりません。