(57)【特許請求の範囲】
【請求項１】
複数ＯＳバージョンに応じてソフトウェアを生成する複数ＯＳバージョン用ソフトウェア生成装置であって、
ライブラリと、少なくとも１つのソースプログラムと、該少なくとも１つのソースプログラムの少なくとも部分的なコンパイル・リンク及び該ライブラリのコンパイル・リンクを指示するプログラムが記載されるコンパイル・リンク操作指示ファイルと、を環境ファイルとして格納する複数ＯＳバージョン毎に作成された環境ファイル保存フォルダを有する環境ファイル格納部と、
前記ＯＳバージョンと前記環境ファイル保存フォルダの格納位置を定義した生成環境一覧テーブルと、
前記ソフトウェアを生成するとき、前記環境ファイルを格納する生成環境格納部と、
前記生成環境一覧テーブルに従って、前記ＯＳバージョンに応じた前記環境ファイルを、前記生成環境格納部に複製し及び／又はインストールするソフト生成環境構築部と、
前記生成環境格納部内の前記コンパイル・リンク操作指示ファイルに基づいて、前記コンパイル・リンクを実行するソフト生成処理部と、
を備えることを特徴とする複数ＯＳバージョン用ソフトウェア生成装置。
【請求項２】
前記コンパイル・リンク操作指示ファイルは、前記ＯＳバージョンに基づいた条件分岐命令により、前記ソフトウェアに必要な少なくとも１つのソースプログラムの少なくとも部分的なコンパイル・リンク及び前記ライブラリのコンパイル・リンクを指示する請求項１に記載の複数ＯＳバージョン用ソフトウェア生成装置。
【請求項３】
複数ＯＳバージョンに応じてソフトウェアを生成する複数ＯＳバージョン用ソフトウェア生成支援プログラムであって、
ライブラリと、少なくとも１つのソースプログラムと、該少なくとも１つのソースプログラムの少なくとも部分的なコンパイル・リンク及び該ライブラリのコンパイル・リンクを指示するプログラムが記載されるコンパイル・リンク操作指示ファイルと、を環境ファイルとして格納する複数ＯＳバージョン毎に作成された環境ファイル保存フォルダから、前記ＯＳバージョンと前記環境ファイル保存フォルダの格納位置を定義した生成環境一覧テーブルに従って、前記ＯＳバージョンに応じた前記環境ファイルを、生成環境格納部に、複製し及び／又はインストールするソフト生成環境構築手順と、
前記生成環境格納部内の前記コンパイル・リンク操作指示ファイルに基づいて、コンパイルツールに、前記コンパイル・リンクを実行させるソフト生成処理手順と、
をコンピュータに実行させることを特徴とする複数ＯＳバージョン用ソフトウェア生成支援プログラム。
【請求項４】
前記コンパイル・リンク操作指示ファイルは、前記ＯＳバージョンに基づいた条件分岐命令により、前記ソフトウェアに必要な少なくとも１つのソースプログラムの少なくとも部分的なコンパイル・リンク及び前記ライブラリのコンパイル・リンクを指示する請求項３に記載の複数ＯＳバージョン用ソフトウェア生成支援プログラム。
【請求項５】
複数ＯＳバージョンに応じてソフトウェアを生成する情報処理方法であって、
コンピュータが、ライブラリと、少なくとも１つのソースプログラムと、該少なくとも１つのソースプログラムの少なくとも部分的なコンパイル・リンク及び該ライブラリのコンパイル・リンクを指示するプログラムが記載されるコンパイル・リンク操作指示ファイルと、を環境ファイルとして格納する複数ＯＳバージョン毎に作成された環境ファイル保存フォルダから、前記ＯＳバージョンと前記環境ファイル保存フォルダの格納位置を定義した生成環境一覧テーブルに従って、前記ＯＳバージョンに応じた前記環境ファイルを、生成環境格納部に、複製するソフト生成環境構築ステップと、
コンピュータが、前記生成環境格納部内の前記コンパイル・リンク操作指示ファイルに基づいて、コンパイルツールに、前記コンパイル・リンクを実行させるソフト生成処理ステップと、
を有することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なるＯＳバージョン用にソフトウェアを生成する複数ＯＳバージョン用ソフトウェア生成装置、及び、複数ＯＳバージョン用ソフトウェア生成支援プログラムに関し、特に、ＯＳバージョンに応じて、ソースプログラムとその生成ソフトウェア用の環境ファイルをコンパイル・リンクする複数ＯＳバージョン用ソフトウェア生成装置及び複数ＯＳバージョン用生成支援プログラムに関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータや、サーバ、ＰＤＡ（Personal Digital Assistants）等で起動する殆ど全てのソフトウェアは、ある特定のオペレーティング・システム（以下、「ＯＳ」という。）のバージョン上で実行するように出来ている。そのため、あるＯＳバージョンで動くソフトウェアは、そのソフトウェア特有の機能を規定するソースプログラムを開発し、次に、そのソースプログラムをＯＳバージョン毎に必要な変換とコンパイルを行い、そして、ＯＳバージョンに必要なライブラリ等をリンクして、生成される必要がある。このように、ＯＳで動くソフトウェアの生成には、ソースプログラムのＯＳバージョン毎に必要なコンパイル処理や、ライブラリのリンク等を行なう必要がある。
【０００３】
ライブラリは、ＯＳの種類によって異なるが、ＯＳバージョン毎のコンパイラ付属のライブラリ、デベロッパー・キット、ＡＰＩ（Application Protocol Interface）等が必要である。
【０００４】
例えば、Windows（登録商標）ＯＳで実行可能なソフトウェア生成するための生成方法は、主に３つの方法がある。第１は、ＳＤＫ（Software Development Kit）というＡＰＩをライブラリとして指定する方法である。ＳＤＫというＷｉｎ３２（Windows（登録商標）ＯＳにおいて、コンピュータに処理を実行させるために必要なＡＰＩ）を呼出すライブラリとヘッダのセットを利用する方法である。ＳＤＫを利用して生成されたソフトウェアは、Ｗｉｎ３２を直接指定してプロセッサを制御するために、プロセッサに細かな処理を実行させることが可能である。
【０００５】
第２は、ＭＦＣ（Microsoft Foundation Class）や．ＮＥＴ等のクラスライブラリをライブラリとして指定する方法である。クラスは、データ構造と処理を一緒にしたものであり、不要な情報を外部に出さないので、複数のプログラマが共通で使用するライブラリの作成時に威力を発揮する。そのほか任意の場所での変数宣言、演算子の機能を変更する多重定義、動的なメモリの取得と開放などの特徴を持っている。中規模以上のソフトウェア開発には最適な方法と言ってよい。
【０００６】
さらに、そのクラスに基づくライブラリであるクラスライブラリは、抽象化された高級なインタフェースとなっており、例えば、クラスライブラリの種類の１つであるＭＦＣのクラス１個に、ＳＤＫの関数５〜２０個が集約されている。そのため、クラスライブラリに対する１つの呼出しで、目的の処理が簡単に実行できる。この方法は、ＳＤＫよりプロセッサの処理を制御する上で不自由な面があるが、開発工数を削減できるという大きな利点がある。
【０００７】
このクラスライブラリの利用方法は、クラスライブラリを用いて簡単にソースコードの開発を可能にするコンパイルツール、例えば、Ｖｉｓｕａｌ  Ｃ＋＋（登録商標）や、Ｖｉｓｕａｌ  Ｓｔｕｄｉｏ  ．ＮＥＴ（登録商標）等を用いるのが通常である。そのようなコンパイルツールは、予めクラスライブラリを有し、かつ、サードパーティ製のクラスライブラリを追加して、コンパイル・リンクすることも可能である。加えて、バッチコマンドファイル等により、そのコンパイルツールの外部から、特定のクラスライブラリや、ＳＤＫ、Ｗｉｎ３２の特定のＤＬＬ（Dynamic Link Library）や、ＡＰＩを細かく指定することも可能である。
【０００８】
上述のWindows（登録商標）ＯＳで実行可能なソフトウェアを生成するためのライブラリ指定方法は、それぞれ単独で行う必要は無く、組み合わせることも可能である。つまり、ある部分はＳＤＫのＡＰＩを使用し、ある部分は、ＭＦＣ等のクラスライブラリを使用することも可能である。
【０００９】
また、このようなWindows（登録商標）ＯＳ上で実行するソフトウェアの開発は、ＳＤＫや、ＭＦＣ等のWindows（登録商標）ＯＳを利用するための必要なライブラリを指定する必要があるが、これは、Windows（登録商標）ＯＳに限定した問題ではなく、Linux（登録商標）やUnix（登録商標）においても同様の手法が必要である。
【００１０】
第３の手法は、こういったＯＳ依存の開発上の制約を離れて、ＯＳ非依存でソフトウェア開発を行う手法である。この手法を可能にするのがＪＡＶＡ（登録商標）である。しかし、ＪＡＶＡ（登録商標）は、ソースコードを一度中間コードに変換し、その中間コードをＪＶＭ（Jave Virtual Machine）が実行するため、Ｃ＋＋等のネイティブ言語と比較し、高速処理において劣り、また、Ｗｉｎ３２を用いた細かなコンピュータ処理は不得意である。そのため、例えばドライバ等の高速処理と、コンピュータハードウェアの細かな制御が必要となる場合は、ＪＡＶＡ（登録商標）による開発は不向きである。さらに、高速処理等が求められないソフトウェアの開発においても、ＪＡＶＡ（登録商標）言語以外の開発言語を習得したプログラマには、依然として、ＪＡＶＡ（登録商標）による開発は行われていないのが実情である。
【００１１】
上述の理由等により、ＯＳ依存の開発言語を使用する場合、様々なＯＳバージョン上で実行することを目的とするソフトウェアは、その開発において、ＯＳバージョン毎に環境を用意する必要がある。さらに、異なるＯＳバージョン毎にコンピュータが必要になるため、そのコンピュータに対する設備費用や、そのコンピュータ毎の作業スペースが増大するという課題がある。
【００１２】
さらに、そのような場合、複数のコンピュータの中に、ソースファイルは、散在して保管される。そのため、ソースファイルに変更が生じる場合、複数の環境内において、ソースファイルの同一性維持管理が必要となる。しかし、コンパイル後のソフトウェアに対して通常必要となるバグ修正等により、ソースファイルに頻繁な修正が生じる場合等は、複数環境内に存在する各ソースファイルの同一性管理が困難となり、結果として、各ソースファイルに相違が生じる場合がある。そのような場合、相違が生じたソースファイルをコンパイル・リンクすることで生成されるソフトウェアは、ＯＳバージョン毎の機能の相違や、バグ修正が十分にされない等の問題を生じる。
【００１３】
さらに、ＯＳバージョン毎にソフトウェアを生成するためには、どのライブラリをリンクするか、どのソースプログラムのどの部分をコンパイルするか等のコンパイル・リンクに関する設定情報を、ＯＳバージョン毎に必要となる。このような設定情報は、リンクするライブラリの種類と量が多いソフトウェアほど複雑であり、多くの場合、ソフトウェア生成時に、コンパイル・リンク設定情報を手動で指定して、ソフトウェアを生成する必要がある。また、ソフトウェアのテストにおいては、そのような手動設定作業をＯＳバージョン毎に繰り返し行うため、開発者にソフトウェアの生成ミスを誘引する危険性がある。
【００１４】
従来、コンピュータ機種に応じた対応プログラム自動生成装置が提案されている（例えば、特許文献１参照）。ここでは、プログラムの自動生成を目的とするが、異なるハードウェア装置用にソフトウェアを再利用して、さらに、自動生成する方法が述べられており、異なるＯＳバージョン種別に適応するようにソースプログラムを自動生成する方法は提案されていない。
【００１５】
さらに、従来、変換元ＯＳから変換先ＯＳに自動変換する複数ＯＳ用アプリケーション生成装置が提案されている（例えば、特許文献２参照）。しかし、ＯＳバージョン種別が異なった場合、自動変換処理を実施するための具体的手段が提案されていない。
【００１６】
【特許文献１】特開２００２−０７６８８６号公報
【特許文献２】特開平９−２０４３０２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
本発明は、上述した従来のソフトウェア自動生成装置が有する課題に鑑み、生成ソフトウェアに必要なライブラリ、ソースプログラム、及び、コンパイル又はリンク命令を記載した設定ファイルを、ＯＳバージョン毎に用意し、それにより、コンパイラツールに、ライブラリとソースコードをコンパイル・リンクさせて、ＯＳバージョン毎のソフトウェアを自動生成させることを目的とする。
【課題を解決するための手段】
【００１８】
本発明は、上記の課題を解決するためになされたもので、複数ＯＳバージョンに応じてソフトウェアを生成する複数ＯＳバージョン用ソフトウェア生成装置であって、ライブラリと、少なくとも１つのソースプログラムと、少なくとも１つのソースプログラムの少なくとも部分的なコンパイル・リンク及びライブラリのコンパイル・リンクを指示するプログラムが記載されるコンパイル・リンク操作指示ファイルと、を環境ファイルとして格納する複数ＯＳバージョン毎に作成された環境ファイル保存フォルダを有する環境ファイル格納部と、ＯＳバージョンと環境ファイル保存フォルダの格納位置を定義した生成環境一覧テーブルと、ソフトウェアを生成するとき、環境ファイルを格納する生成環境格納部と、生成環境一覧テーブルに従って、ＯＳバージョンに応じた環境ファイルを、生成環境格納部に複製し及び／又はインストールするソフト生成環境構築部と、生成環境格納部内のコンパイル・リンク操作指示ファイルに基づいて、コンパイル・リンクを実行するソフト生成処理部と、を備える複数ＯＳバージョン用ソフトウェア生成装置を提供する。
【００１９】
さらに、本発明は、複数ＯＳバージョンに応じてソフトウェアを生成する複数ＯＳバージョン用ソフトウェア生成支援プログラムであって、ライブラリと、少なくとも１つのソースプログラムと、少なくとも１つのソースプログラムの少なくとも部分的なコンパイル・リンク及びライブラリのコンパイル・リンクを指示するプログラムが記載されるコンパイル・リンク操作指示ファイルと、を環境ファイルとして格納する複数ＯＳバージョン毎に作成された環境ファイル保存フォルダから、ＯＳバージョンと環境ファイル保存フォルダの格納位置を定義した生成環境一覧テーブルに従って、ＯＳバージョンに応じた環境ファイルを、生成環境格納部に、複製し及び／又はインストールするソフト生成環境構築手順と、生成環境格納部内のコンパイル・リンク操作指示ファイルに基づいて、コンパイルツールに、コンパイル・リンクを実行させるソフト生成処理手順と、をコンピュータに実行させることを特徴とする複数ＯＳバージョン用ソフトウェア生成支援プログラムを提供する。
【発明の効果】
【００２０】
本発明によれば、生成ソフトウェアに必要なライブラリ、ソースプログラム、及び、コンパイル又はリンク命令を記載した設定ファイルを、ＯＳバージョン毎に用意し、それにより、コンパイラツールに、ライブラリとソースコードをコンパイル・リンクさせて、ＯＳバージョン毎のソフトウェアを自動生成させることができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明による複数ＯＳ用ソフトウェア生成装置及び複数ＯＳ用ソフトウェア生成支援プログラムの実施形態について、添付図面を参照して詳述する。
【００２２】
図１は、本発明の一実施形態である複数ＯＳバージョン用ソフトウェア生成支援プログラムの機能構成を示す図である。この複数ＯＳバージョン用ソフトウェア生成支援プログラム１０は、その生成処理として、生成ソフト選択ダイアログ表示処理１、ソフト生成環境判定処理２、ソフト生成環境構築処理３、ソフト生成処理４、ソフト生成完了監視処理５、ソフト生成完了表示処理６を有し、このプログラム１０は、プロセッサ（図示せず）によって実行され、さらに、生成環境一覧テーブル７を有する。
【００２３】
図１は、さらに、プログラム１０と、関連する記憶装置や外部ソフトウェアであるコンパイルツール等の機能構成との関係を示す。それら外部機能は、ディスプレイ（図示せず）に表示される生成ソフト選択画面１２、完了表示画面１３、及び、環境ファイル格納部１１、生成環境格納部１４、生成ソフトウェア格納部１５、コンパイルツール１６がある。
【００２４】
次に、プログラム１０を構成する各処理の機能と、外部機能について説明する。
生成ソフト選択ダイアログ表示処理１は、生成ソフト選択画面１２に生成する複数のソフト種別とＯＳバージョンを表示させ、生成ソフト選択画面１２から、ソフト種別とＯＳバージョン種別の選択データを受信し、そのデータから、ソフト種別とＯＳバージョン種別によって一意的に決まる「選択ＩＤ」を生成し、ソフト生成環境判定処理２に、その「選択ＩＤ」を送信する処理を行う。
【００２５】
ソフト生成環境判定処理２は、ソフト種別とＯＳバージョン種別から、そのソフト種別とＯＳバージョン種別に従う環境ファイル保存フォルダのパスを選定する処理を行う。より具体的には、ソフト生成環境判定処理２は、受信した「選択ＩＤ」をキーとして、生成環境一覧テーブル７から「ソフト種別」、「ＯＳバージョン」、「環境ファイル保存フォルダパス」の情報を取得する。表１に、生成環境一覧テーブル７の例を示す。
【００２６】
【表１】
0004828271.tif 000002
【００２７】
表１に記載のように、生成環境一覧テーブル７は、選択ＩＤ、ソフト種別、ＯＳバージョン、環境ファイル保存フォルダパスの情報を有するテーブル情報である。例えば、生成ソフト選択ダイアログ表示処理１において、ソフト種別として「ＵＳＢケーブルドライバ」、ＯＳバージョンとして「Ｗｉｎｄｏｗｓ（登録商標）  ＸＰ  Ｐｒｏ  ３２Ｂｉｔ版」がそれぞれ選定された場合、選択ＩＤは「0x01」となる。
【００２８】
従って、選択ＩＤ「0x01」が送信されたソフト生成環境判定処理２は、「0x01」をキーとして、生成環境一覧テーブル７から、ソフト種別「ＵＳＢケーブルドライバ」、ＯＳバージョン「Ｗｉｎｄｏｗｓ（登録商標）  ＸＰ  Ｐｒｏ  ３２Ｂｉｔ版」、環境ファイル保存フォルダパス「C:\usb\win-xp-32\mk-env」を取得する。
【００２９】
「環境ファイル保存フォルダパス」は、環境ファイル格納部１１に格納されている環境ファイル保存フォルダ１１―１のフォルダパスである。環境ファイル保存フォルダ１１―１には、ソフトの生成に必要な環境ファイルが保存される。例えば、Windows（登録商標）ＯＳの場合、Ｗｉｎ３２によるライブラリ指定は、ＳＤＫ、ＭＦＣ等のクラスライブラリ、あるいは、サードパーティのクラスライブラリキット等様々な種類の指定が可能である。このように必要な環境ファイルの指定を確実に行わなければ、ライブラリのリンク処理時のリンクエラー等の弊害を生じる。そのため、環境ファイル保存フォルダには、リンクエラーや実行時エラー等が生じないような環境ファイルのセットが予め用意される。
【００３０】
ソフト生成環境構築処理３は、「環境ファイル保存フォルダ」内のソフト生成に必要な環境ファイルを、生成環境格納部１４に保存する処理を行う。環境ファイルは、例えば、ソースプログラムが記載されたソースファイル、ＤＤＫ（ドライバ開発キット）、コンパイルツール、コンパイル・リンク操作指示ファイル（以下、操作指示ファイルと言う）等、及び、それらの環境ファイルの構成を指示する構成指示ファイルがある。ソフト生成環境構築処理３は、ソフト生成環境判定処理２から受信した環境ファイル保存フォルダパスから、環境ファイル保存フォルダ１１―１内の環境ファイルを見つけ出し、その環境ファイルを生成環境格納部１４にコピー又はインストールする処理を行う。
【００３１】
環境ファイル保存フォルダ１１―１内の構成指示ファイルには、ソフト生成環境構築処理３が、環境ファイル保存フォルダ１１―１に格納されている環境ファイルを、生成環境格納部１４内の所定のアドレスにインストール又はコピーするために必要な以下の情報が記載されている。
−コンポーネント（環境ファイル）名称
−操作種別（インストール又はコピー）
−インストール場所又はコピー場所（フォルダパスで指定）
【００３２】
構成指示ファイルには、環境ファイル名称と、操作種別と、フォルダパスが指定され、環境ファイルがコンパイルツールのようなアプリケーションとして、インストールすべきファイルであるか、あるいは、ＤＬＬのようにコピーするだけのファイルであるかが、区別されている。ソフト生成環境構築処理３は、構成指示ファイルの情報に従い所定のアドレスのインストール場所又はコピー場所に、各環境ファイルをインストール又はコピーする。これにより、生成環境格納部１４は、対象となるソフトウェアを生成するためのクリーンインストール環境となる。
【００３３】
生成ソフトウェアの種類によっては、インストールされるファイルと同じディレクトリにあるファイルにより、リンクエラー等の問題を生じるためインストールが出来ない場合や、ソフト生成後に実行時エラー等のバグが生じるという場合がある。このような問題を回避するには、クリーンインストール環境、つまり、何もファイルが存在しない環境に、上述のエラーが生じない環境ファイルのセットをインストールすることが重要である。そのため、生成環境格納部１４のようなクリーンインストール環境を構築することで、ソフト種別、ＯＳバージョンに基づく環境ファイルが正しくインストールされることを確実にすることができる。
【００３４】
このように、予め生成環境に必要なファイルを環境ファイル格納部１１に用意しておき、ソフトウェア生成時に生成環境格納部１４に、生成環境を構築することにより、従来は、生成環境毎に必要だったコンピュータ台数を、１台のコンピュータに中に複数の生成環境を実現することが出来る。
【００３５】
環境ファイル保存フォルダ１１―１内の操作指示ファイルには、ソフト生成処理４が、生成環境格納部１４に格納される環境ファイルに含まれるどのソースファイルをコンパイルするか、そのソースファイルのどの部分のソースコードをコンパイルするか、さらに、どの環境ファイルをリンクするか等の操作手順が記載されている。このように、従来は手作業でコンパイル・リンクコマンドを入力していた作業を、操作指示ファイルの中で、予めプログラミングし、生成するＯＳバージョン種別毎に操作指示ファイルを用意し、生成時にそのファイルを選定することで、ＯＳバージョン毎のソフトウェア生成を自動化することができる。操作指示ファイル内容の詳細については、具体例を用いて後に詳述する。
【００３６】
ソフト生成処理４は、操作指示ファイルを、生成環境格納部１４にインストールされたコンパイルツール１６を用いて、実行し、生成環境格納部１４に保存された生成ソフトウェアに必要なソースファイル、クラスライブラリ等のコンパイル・リンク処理を行う。コンパイルツールは、操作指示ファイルに記載された上述の条件コンパイルはもちろんのこと、指定される特定のクラスライブラリや、特定のＳＤＫ、特定の開発キット、Ｗｉｎ３２の特定のＤＬＬや、Ｗｉｎ３２のＡＰＩ等の細かな指定に従い、ソフトウェア生成処理を行う。
【００３７】
ソフト生成処理４は、さらに、生成したソフトウェアを生成ソフトウェア格納部１５に保存する。この保存処理は、ソフト種別、ＯＳバージョン種別に従い、操作指示ファイルに規定された生成ソフトウェア格納部１５内の所定アドレス位置に保存することが可能である。それにより、コンパイルツール１６は、生成したソフトウェアを所定アドレス位置に保存する。
【００３８】
ソフト生成処理４による、操作指示ファイルは、コンパイルツール１６に対して、バッチ処理で実行させることができる。コンパイルツール１６は、操作指示ファイルの指示に従い、ソースファイルをコンパイルし、必要なライブラリをリンクして、ソフトウェアを生成する。ソフト生成処理４は、ソフト生成完了監視処理５に、操作指示ファイルの実行を、ソフト種別、ＯＳバージョン及び環境ファイル保存フォルダパスの情報と共に通知する。
【００３９】
ソフト生成完了監視処理５は、受信したソフト種別等の情報から、ソフトウェアの生成するアドレスを判断する。例えば、生成環境一覧テーブル７や、環境ファイル保存フォルダパス内の操作指示ファイル内に、生成ソフトウェアパス情報があり、それを検索することによって、ソフトウェア生成アドレスを判断する。ソフト生成完了監視処理５は、生成ソフトウェア格納部１５にソフトウェアが生成する所定位置におけるソフトウェア生成を監視し、それを確認すると、ソフト生成完了情報をソフト生成完了表示処理６に通知する処理を行う。
【００４０】
ソフト生成完了表示処理６は、ソフト生成完了情報を受信すると、完了表示画面１３に生成ソフトウェアの完了を、ソフト種別、ＯＳバージョン等と共に表示する処理を行う。
【００４１】
このようにして、生成ソフト選択画面１２で選択されたＯＳバージョン毎のソフトウェアが、上述の処理により生成ソフトウェア格納部１５に生成され、その生成完了が表示され、複数ＯＳ用ソフトウェア生成プログラムの処理が終了する。
【００４２】
なお、生成環境格納部１４は、ソフトウェア生成を行う際には、クリーンな環境（ファイルが存在しない状態）を実現する必要がある。そのため、一度ソフトウェアを生成した後は、次の異なるバージョン用ソフトウェア生成のために、生成環境格納部１４内ファイルを全削除する処理が必要となる。この処理のタイミングは、生成ソフトウェア格納部１５に、ソフトウェア生成時、あるいは、ソフト生成環境構築処理３による処理開始時等に行われる。
【００４３】
このようにして、ＯＳバージョン毎のソフトウェアを生成時に、生成環境を構築し、ソフトウェア生成後、生成環境を削除することで、一台のＰＣにおいて、複数のＯＳバージョンのソフトウェアを生成することが出来る。
【００４４】
次に、上述の操作指示ファイルの具体例を説明する。その具体例は、例えば、Ｃ言語等で使用されるメイクファイル（Makefile）である。メイクファイルは、複数のファイルが依存して構成されるソフトウェアをコンパイル及びリンクするとき、人間が行うコンパイル及びリンクコマンドの作成作業を軽減又は失くすために用意されるファイルである。
【００４５】
例えば、生成ソフトウェアのソースファイルの一部が別のソースファイルに依存しているような場合、正しい順番でそれらのソースファイルをコンパイルする必要がある。また、ソースファイルの一部を修正した場合、コンパイル順序を開発者が考え直す場合が生じるが、そのような作業をメイクファイルにより自動化することできる。メイクファイルは、makeコマンドのコンピュータへの入力作業によって、実行される。
【００４６】
メイクファイルには、コンパイル対象となる特定のクラスライブラリや、特定のＳＤＫ、特定の開発キット（複数のＷｉｎ３２のＡＰＩを、簡単な関数呼び出しで実行できるように用意された、ソフトウェア種別毎の市販の開発キット等）、Ｗｉｎ３２の特定のＤＬＬ（Dynamic Link Library）や、Ｗｉｎ３２のＡＰＩ等の細かな指定が可能である。
【００４７】
ＯＳバージョン毎のソフトウェアは、ＯＳバージョン毎に、ＳＤＫやクラスライブラリのコール部分に変更が生じるため、ソースファイル内のＳＤＫ等の呼出しを行うコード部分、例えば、プリコンパイルヘッダの宣言部分、関数呼出し部分、変数呼出し部分等（以下、ライブラリコール部分と言う。）、に変更が必要となる。しかし、それらの呼出し部分とは関係が無く、生成ソフトウェア独自の処理を記述するソースコード部分（以下、独自処理コード部分と言う。）は、ＯＳバージョン毎の変更は無い。そのため、そのような独自処理コード部分を、ＯＳバージョン毎に複数用意することなく、共通に利用することで、独自処理コード部分を変更することなく、ＯＳバージョン毎に異なるソフトウェアを生成することが可能である。
【００４８】
本発明の一実施形態による操作指示ファイルは、独自処理コード部分を変更することなく共通管理し、かつ、ライブラリコール部分を、ＯＳバージョンに合わせて部分的にコンパイルする。
例えば、そのような解決方法として、条件コンパイルをメイクファイルに記載することが考えられる。つまり、条件分岐により、特定のソースファイルをコンパイルするか否か、あるいは、その特定ソースファイル内のライブラリコール部分をコンパイルするか否かの条件分岐を設定することができる。
そのようなメイクファイルの条件コンパイルコーディング例は以下のようになる。
【００４９】
#DEFINE 0x01 // Windows（登録商標）XP Pro 32bit版のときの識別ID
#DEFINE 0x02 // Windows（登録商標）XP Pro 64bit版のときの識別ID
#DEFINE 0x03 // Windows（登録商標）98bit版のときの識別ID
#IFDEF (0x01) // 条件コンパイルの始まり
cout << // 識別子が0x01の場合にコンパイル対象となるライブラリコール部分;
#ENDIF // 条件コンパイルの終り
#IFDEF (0x02)
cout << // 識別子が0x02の場合にコンパイル対象となるライブラリコール部分;
#ENDIF // 条件コンパイルの終り
#IFDEF (0x03)
cout << // 識別子が0x03の場合にコンパイル対象となるライブラリコール部分;
#ENDIF // 条件コンパイルの終り
【００５０】
このように、独自処理コード部分は、ＯＳバージョン毎に共通とし、ＯＳバージョン毎に変更が生じるライブラリコール部分を条件コンパイルすることで、ＯＳバージョン毎に異なるソフトウェアを生成することができる。またこの手法は、独自処理コード部分の一元管理が可能であり、独自処理コード部分の変更が、ＯＳバージョン毎の生成ソフトウェアにすぐに反映することができる。従って、従来のように、ＯＳバージョン毎にコンパイル・リンクコマンドを手動で入力することなく、予め用意しておいた操作指示ファイルを、ソフト種別とＯＳバージョン種別により自動選定させることで、ソフトウェアの生成を自動的に行うことが可能である。このようにしておくことで、ソースコード修正作業等に伴う頻繁なソフトウェア生成処理により生じる生成ミスを回避可能である。
【００５１】
構成指示ファイル内に定義されるコンパイル・リンク対象の環境ファイルは、生成環境格納部１４にコピー又はインストールされたものである。そのため、構成指示ファイル内に定義されるソースファイルやライブラリの位置情報は、生成環境格納部１４のパス情報であっても良いし、また、コンパイルツールを、そのソースファイル等と同じディレクトリにインストールして起動する場合は、そのコンパイルツールのカレントディレクトリに指定されていても良い。
【００５２】
図２は、本発明の一実施形態である複数ＯＳバージョン用ソフトウェア生成支援プログラムの処理フローチャートである。以下に、そのフローチャートの各ステップについて説明する。
【００５３】
ステップＳ１０１では、生成ソフト選択ダイアログ表示処理１は、生成ソフト選択画面１２にソフト種別とＯＳバージョン等を表示する。次に、生成ソフト選択ダイアログ表示処理１は、ユーザが選択したソフト種別とＯＳバージョン等によって決まる選択ＩＤをソフト生成環境判定手段１２に送信し、ステップＳ１０２に進む。
【００５４】
ステップＳ１０２では、ソフト生成環境判定処理２は、選択ＩＤをキーとして、生成環境一覧テーブル７から、ソフト種別、ＯＳバージョン、及び、環境ファイル格納部１１内の環境ファイル保存フォルダパスの情報を取得する。ソフト生成環境判定処理２は、それらの情報をソフト生成環境構築処理３に送信し、ステップＳ１０３に進む。
【００５５】
ステップＳ１０３では、ソフト生成環境構築処理３は、環境ファイル保存フォルダ内のファイルを、同フォルダ内の構成指示ファイルに従い、生成環境格納部１４にコピー又はインストールし、ソフト種別、ＯＳバージョン、及び、環境ファイル保存フォルダパスの情報をソフト生成処理４に送信し、ステップＳ１０４に進む。
【００５６】
ステップＳ１０４では、ソフト生成処理４は、操作指示ファイル記載のプログラムに従い、生成環境格納部１４に保存したファイルをコンパイルするための操作指示ファイルの実行コマンドを実行する。さらに、ソフト生成処理４は、生成ソフトウェア格納部１５に生成ソフトウェアを格納し、ステップＳ１０５に進む。
【００５７】
ステップＳ１０５では、ソフト生成処理４は、ソフト種別、ＯＳバージョン、及び、環境ファイル保存フォルダパスの情報をソフト生成完了監視処理５に送信し、ステップＳ１０６に進む。
【００５８】
ステップＳ１０６では、ソフト生成完了監視処理５は、生成ソフトウェア格納部１５の所定位置に生成ソフトウェアが生成されたかを、ポーリングにより確認し、生成確認後、ソフト生成完了表示処理６に完了情報としてソフト種別、ＯＳバージョン情報を送信し、ステップＳ１０７に進む。
【００５９】
ステップＳ１０７では、ソフト生成完了表示処理６は、ソフト種別、ＯＳバージョンの情報を完了表示画面１３に表示する。
【００６０】
次に、ステップＳ１０８に進み、他ＯＳバージョンのソフトウェア生成処理があるか否かの判断を生成ソフト選択画面１２からの入力を待つ。入力があれば、生成環境格納部１４内の環境ファイルを全て削除し、ステップＳ１０１へ戻る。入力が無ければ、ソフトウェア生成処理は、終了する。
【００６１】
図３に、本発明の一実施形態である複数ＯＳバージョン用ソフトウェア生成支援プログラムを実施する装置の構成例を示す図である。プログラム１０は、例えば、図３に示すようなコンピュータ２０により実行される。コンピュータ２０は、必要な処理を実行するＣＰＵ２１、処理結果を格納するメモリ２２（例えば、ＲＡＭ（Random Access Memory））、ディスプレイ２３、例えば、キーボードやマウスのような入力装置２４、ハードディスク２５Ａ、２５Ｂ、２５Ｃ、ＣＤ／ＤＶＤドライブのような外部記憶装置２６、ＮＩＣ（ネットワーク・インタフェース・カード）２７を備える。コンピュータ２０は、ＮＩＣ２７に接続されたイーサネット（登録商標）ケーブルにより構成されるネットワーク２８を介して、他のコンピュータ３０と接続可能である。
【００６２】
プログラム１０は、記録媒体に保存され、外部記憶装置２６からローディングされ、もしくは、他のコンピュータ３０からネットワーク２８を介してダウンロードされ、ＣＰＵ２１の制御によって、コンピュータ２０のハードディスク２５Ａ、又は、２５Ｃのいずれかに保存される。次に、保存されたプログラム１０は、ＣＰＵ２１によって、実行され、実行プロセス又はスレッドとしてメモリ２２に格納される。
【００６３】
また、図１に示される、生成ソフト選択ダイアログ表示処理１、ソフト生成環境判定処理２、ソフト生成環境構築処理３、ソフト生成処理４、ソフト生成完了監視処理５、ソフト生成完了表示処理６が示す各処理は、ＣＰＵ２１で実行される。
【００６４】
生成環境一覧テーブル７は、ハードディスク２５Ａもしくは２５Ｃ、又は、処理速度を考慮してメモリ２２に格納される。環境ファイル格納部１１は、ハードディスク２５Ａに、生成環境格納部１４は、ハードディスク２５Ｂに、及び、生成ソフトウェア格納部１５は、ハードディスク２５Ｃに、それぞれ保存される。図３においては、各ハードディスクは、物理的に異なるハードディスクであるように表されるが、これらのハードディスクは、論理的にバーティションを分けることにより独立しても良いし、生成環境格納部１４のクリーンインストール環境が実現可能であれば、同一パーティションで、フォルダを分けることにより、機能的に分離されるもであっても良い。更に、それぞれのハードディスクは、他のコンピュータ３０内に別れて存在しても良い。
【００６５】
生成ソフト選択画面１２、完了表示画面１３は、ディスプレイ２３又は、他のコンピュータ３０の画面に表示され、ソフトウェア種別やバージョン種別等の選択情報は入力装置２４によって入力される。
【００６６】
ハードディスク２５Ａの環境ファイル格納部１１は、２つの環境ファイル保存フォルダ、ＯＳバージョンＡ用のソフトウェアＣの環境ファイルフォルダ１１−１Ａ、及び、ＯＳバージョンＢ用のソフトウェアＣの環境ファイルフォルダ１１−１Ｂを有する。
【００６７】
ＯＳバージョンＡ用のソフトウェアＣの環境ファイルフォルダ１１−１Ａ、及び、ＯＳバージョンＢ用のソフトウェアＣの環境ファイルフォルダ１１−１Ｂは、同一のソースファイルＣを有する。各環境ファイルフォルダは、同一のソースファイルＣと、異なる操作環境ファイルを有することで、ＯＳバージョンＡとＢに対応したソフトウェアＣの生成が可能となる。
【００６８】
また、ソースファイルＣは、２つのフォルダ内に存在するが、これらは、上述のように同一性を維持する必要がある。そのためには、ソフトウェアＣ用のファイル内のソースファイルＣは、ソースファイルのいずれかに変更が生ずる場合は、各ソフトウェアＣ内のソースファイルは同期をとって同一性を維持するように処理される。
【００６９】
または、このソースファイル同一性管理は、ソースファイルＣ〜Ｆのようにソースファイルだけを保存したソースファイル格納用フォルダ１１−１Ｃを設けることで対処しても良い。この場合は、ただ１つのソースファイルがソースファイル格納用フォルダ１１−１Ｃにあるだけなので、同一性のための同期処理は不要である。この場合のソフトウェア生成は、ソフトウェアＣを生成する各操作指示ファイルに、このフォルダ１１−１Ｃ内の対象ソースファイルＣをコンパイルするように規定して、ソフトウェアＣを生成する。
【００７０】
上記説明においては、環境ファイル保存フォルダ１１−１には、コンパイルツールが保存され、ソフト生成環境構築処理３によって、コンパイルツールが生成環境格納部１４にインストールすることを示したが、コンパイルツールに付属のクラスライブラリ等を利用しない場合は、予めコンピュータ２０のＯＳ同様にインストールしておき、そのコンパイルツールから生成環境格納部に格納された環境ファイルをコンパイル・リンクすることも可能である。
【００７１】
以上説明したように、本発明においては、ソースプログラムを、ソフトウェア種別及び／又はＯＳバージョン種別毎に必要なライブラリと共にコンパイル・リンクして、ソフトウェアを生成する複数ＯＳバージョン用ソフトウェア生成装置及び複数ＯＳバージョン用ソフトウェア生成支援プログラムを提供する。これにより、複数コンピュータ環境に、ソースプログラムをそれぞれ備えることなく、単一の環境で、目的とするソフトウェア種別及び／又はＯＳバージョン種別毎のソフトウェアを生成することが可能である。このように、ＯＳバージョン毎に対応可能なソフトウェアが単一の環境で生成されることは、開発期間の短縮をもたらし、日々新しい開発が要求されるソフトウェア業界において、極めて有益である。
【００７２】
また、本発明は、ＯＳ依存のソフトウェア開発を目的としたものであるが、このような開発環境は、あらゆるソフトウェア種別の開発に適用可能である。
【図面の簡単な説明】
【００７３】
【図１】本発明に係る複数ＯＳバージョン用ソフトウェア生成支援プログラムの機能構成を説明するフロー図である。
【図２】本発明に係る複数ＯＳバージョン用ソフトウェア生成支援プログラムのメッセージログ生成手段３の処理の詳細を示す図である。
【図３】本発明に係る複数ＯＳバージョン用ソフトウェア生成支援プログラムを実施する装置を示す図である。
【符号の説明】
【００７４】
１    生成ソフト選択ダイアログ表示処理
２    ソフト生成環境判定処理
３    ソフト生成環境構築処理
４    ソフト生成処理
５    ソフト生成完了監視処理
６    ソフト生成完了表示処理
７    生成環境一覧テーブル
１０    複数ＯＳバージョン用ソフトウェア生成支援プログラム
１１    環境ファイル格納部
１４    生成環境格納部
１５    生成ソフトウェア格納部
２０    コンピュータ
２１    ＣＰＵ
２２    メモリ
２３    ディスプレイ
２４    入力装置
２５Ａ    ハードディスク
２５Ｂ    ハードディスク
２５Ｃ    ハードディスク
２６    外部記憶装置
２７    ＮＩＣ
２８    ネットワーク
３０    他のコンピュータ
【図１】
0004828271.tif 000003
【図２】
0004828271.tif 000004
【図３】
0004828271.tif 000005