* NIXプラットフォームでソースコードをビルドする一般的な方法の1つは、configure
スクリプトを使用することです。その中で、configureは一連のテストプログラムをビルドして、アクセス可能なライブラリを特定しようとします。次に、マクロに束縛されたマクロを定義するプロジェクトに含まれるヘッダファイルを生成します。これにより、特定の "依存関係"がない場合、プログラマが代替ライブラリを提供したり、ライブラリ/プログラムを削除することができます。 numpy.distutils
を使用して機能的に同等のものはありますか?一例として、numpy distutils - 失敗したら何かをコンパイルしてフラグを設定しよう
は、ここに私のsetup.py
です:
from numpy.distutils.misc_util import Configuration
def configuration(parent_package='',top_path=None):
config = Configuration('pyggcm',parent_package,top_path)
#TODO: Currently, I have some macros to conditionally build the seek-code
#Unfortunately, that's not the best solution (by far). Perhaps if we
#changed to using stream access it would work better, without the need
#for these silly macros.
config.add_extension('_fortfile',sources=['_fortfile/_fortfile.F90'],
define_macros=[
('FSEEKABLE',1), #compiler provides fseek and ftell
('HAVE_STREAM',1) #compiler provides access='stream' for opening files. (f2003 standard)
])
config.add_extension('jrrle',sources=['jrrle/jrrle.f90'])
config.add_scripts(['scripts/ggcm_timehist',
'scripts/ggcm_plasmasheet',
'scripts/ggcm_plot'])
return config
from numpy.distutils.core import setup
setup(configuration=configuration)
これは無条件にFSEEKABLE
コードを構築して、ユーザーのFortranコンパイラがそれをサポートしていない場合は、手動で編集する必要があります(マクロはfseek
を包みますおよびftell
GNU組み込み関数)。 Fortranコンパイラがこれらの組み込み関数を提供するかどうかを判断する方法はありますか?
欠落単語を:* ...のようなツールを構築することができますか... *? – Tshepang