3

我使用 waf (http://code.google.com/p/waf/) 来构建一个 fortran 库(它也使用一些 c 代码)。

对应的 wscript 如下所示:

 def build(bld):

    bld(
            features = 'fc',
            source   = 'fortran_interface.f90',
            target   = 'fortran_interface.o')
            #install_path = '${PREFIX}/mod')
    #bld.install_files('${PREFIX}/mod','fortran_interface.mod')

    bld(
            features = 'c',
            includes = '../../include',
            source   = 'init_wrapper.c',
            target   = 'init_wrapper.o')

    bld(
            features = 'fc fcstlib',
            use      = 'init_wrapper.o fortran_interface.o',
            target   = 'fortran_interface',
            install_path = '${PREFIX}/lib')

调用 waf 产生如下所示:

fc: src/fortran/fortran_interface.f90 -> 
    build/src/fortran/fortran_interface.f90.1.o 
    build/fortran_interface.mod

我希望能够将.mod文件安装到${PREFIX}/mod. 我试过install_path在这种情况下没有效果,或者 install_files 不起作用,因为 a)它没有在 build/ 目录中查找,b)因为如果文件不存在,它会在构建之前抱怨。 3

4

1 回答 1

3

至于这个线程(http://groups.google.com/group/waf-users/browse_thread/thread/c771a2f4fedd4e3?pli=1)的答案是创建

  • 单独的构建组

    bld.add_group()

  • 并使用

    bld.srcnode.find_or_declare(<filename>.mod)

让 waf 在构建目录中查找 .mod 文件。

于 2011-11-27T13:21:49.337 回答