Как заставить арматуру запускать 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