Автоинструменты предоставляют основу для распространения исходного кода, а не скомпилированных продуктов. Если это ваш вопрос, вы можете легко использовать проект с автоматической настройкой для создания бинарного пакета (rpm, deb, pkg и т. Д.) И распространять его. С другой стороны, если вы просто ищете способ использовать foo.c для создания вспомогательной библиотеки, с которой main статически связан во время сборки, то (при условии, что вы используете automake) вы хотите поместить это в Makefile. я:
bin_PROGRAMS= main
noinst_LIBRARIES = libfoo.a
libfoo_a_SOURCES = foo.c
Если вы измените имя foo.c на libfoo.c, третья строка не нужна.
- ИЗМЕНИТЬ после того, как вопрос был отредактирован для отображения неплоской структуры каталогов -
Если у вас нет foo.c и main.c в одном каталоге, потребуется немного больше работы.
В toplevel / Makefile.am:
# You must list lib_foo first
SUBDIRS = lib_foo main
в lib_foo / Makefile.am
noinst_LIBRARIES = libfoo.a
libfoo_a_SOURCES = foo.c
и в main / Makefile.am
bin_PROGRAMS = main
main_LDADD = ../lib_foo/libfoo.a