Как заставить арматуру запускать make для зависимости?

Одна из моих зависимостей не использует rebar - он использует Makefile. Как я могу получить rebar запустить этот Makefile, а не пытаться скомпилировать сам исходный код?

Обратите внимание, что я хотел бы продолжить использовать арматуру для всего остального.

2 ответа

Глядя на файл примера rebar.config, вы можете пометить зависимость как rawЭто означает, что он не скомпилирован с помощью арматуры. Затем вы можете добавить хук до или после компиляции для запуска make в этом каталоге зависимостей. Арматура generate Команда все еще должна быть в состоянии выбрать любые приложения Erlang, созданные там, при условии, что они имеют структуру файла OTP.

Если вы используете rebar через makeВы можете добавить такой код в ваш Makefile:

    @if [[ -f $@/Makefile ]]; \
    then echo 'make -C $@ all' ; \
               make -C $@ all  ; \
    else echo 'cd $@ && rebar get-deps compile && cd ../..' ; \
               cd $@ && rebar get-deps compile && cd ../..  ; fi

Это проверяет, если $@ имеет Makefile, а затем решает, использовать ли make или же rebar,

Этот фрагмент из erl.mk https://github.com/fenollp/erl-mk/blob/master/erl.mk#L17-L21

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