質問: ### 前提・実現したいこと OSSを利用したフレームワークの作成を行っています。 利用するOSSの種類が膨大であるため、ライセンス等のリスク調査が必要です。 リスク調査の一環として、各OSSの種類(実行ファイル/静的リンクするライブラリ/動的リンクするライブラリ)が必要です。 各OSSのconfigure.acやMakefile.amから上記どの種類のファイルを作っているのか特定する手段はないでしょうか。 pythonやbash等で簡単に引っこ抜ける方法だと嬉しいです。 ### 例 例えば、alsa-libであれば以下の通りです。 **(ただし、alsa-libはあくまで一例であり、多くのOSSで使用できる調査方法が知りたいです。)** * Makefile.am * configure.ac ### 試したこと 生成されるMakefileの中を確認し、ranlibしているか、gccでリンクしているか等確認しようとしました。 しかしながら、Makefile等の記述方法に明るくなく、解読できませんでした...
回答: `Makefile.am`や`configure.ac`はautoconfやautomakeでビルド環境を生成するための記述をしたファイルなので、まずはこれらのファイルの記述の意味を理解する必要があります。参考書を挙げておきます。 * Gary V. Vaughan他 (2001) 2000].『[GNU Autoconf/Automake/Libtool』オーム社. * 前掲書の原著最新版. 上のファイルの記述内容を理解していれば、作成しているのが実行ファイルなのか、ライブラリなのか、その他なのかはわかりますし、それらの識別を自動化することもある程度はできるとおもいます。 ただし、大がかりなソフトウェアであれば一つのパッケージでライブラリも実行ファイルも生成するかもしれません (一例としてOpenSSLはそうです)。またたいていのライブラリについては、動的リンクするかと静的リンクするかを (一部のプラットフォームを除き) ビルド者が選択できます。こういった場合も含めた解析をすることになりますね。