*NIX プラットフォームでソース コードをビルドする一般的な方法の 1 つは、configure
スクリプトを使用することです。内部では、configure は一連のテスト プログラムを構築して、どのライブラリにアクセスできるかを判断しようとします。次に、特定の「依存関係」が欠落している場合に、プログラマーが代替案を提供したり、ライブラリ/プログラムの簡素化されたバージョンを構築したりできるように、一連のマクロを条件付きで定義するプロジェクトに含まれるヘッダー ファイルを生成します。を使用して機能的に同等のものはあり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 コンパイラがサポートしていない場合は手動で編集する必要があります (マクロはGNU 組み込み関数をラップします) fseek
。ftell
Fortran コンパイラがこれらの組み込み関数を提供しているかどうかを判断する方法はありますか?