Нет. Существует простой способ изменения Makefile.in
для этого. Makefile.in
- шаблон для Makefile
; сценарий configure
делает немного больше, чем заменяет выражения, заключенные в @
, в Makefile.in
со значениями, которые он выводил во время его запуска, поэтому вы можете добавлять правила в Makefile.in
почти так же, как и в обычный Makefile.
В данном конкретном случае, можно добавить следующее:
dropbearlibobjs = $(filter-out svr-main.o,$(dropbearobjs))
libdropbear.a: $(dropbearlibobjs) $(HEADERS) $(LIBTOM_DEPS) Makefile
ar rcs [email protected] $(dropbearlibobjs)
Большая часть этого берется из dropbear:
цели, за исключением того, что рецепт создает статическую библиотеку и блок перевода, который содержит функцию main
фильтруется вне. Затем вы можете использовать
./configure
make libdropbear.a
для создания библиотеки.
Я не уверен, насколько легко эта библиотека может быть интегрирована с новой программой. Авторы dropbear почти наверняка не рассматривали этот случай использования, когда они его написали, поэтому части кода могут зависеть от глобального состояния (например, обработчиков сигналов), которое ваше приложение не может предоставить, и, как правило, нет документального API, от которого вы можете зависеть , Я не знаю, что именно вы планируете делать, но этот путь вряд ли будет простым и понятным.
Возможно, вы бы хотели взглянуть на libssh или libssh2? (Интересно, что первый, кажется, более поздний, чем последний)