Сборка библиотеки fortran с waf, установка файла.mod

Я использую waf (http://code.google.com/p/waf/) для создания библиотеки на фортране (которая также использует некоторый 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) потому что он жалуется перед сборкой, если файл отсутствует.

1 ответ

Решение

Что касается этой темы (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.

Другие вопросы по тегам