Автоинструменты обеспечивают основу для распространения исходного кода, а не скомпилированных продуктов. Если это ваш вопрос, вы можете легко использовать проект с автоинструментами для создания двоичного пакета (rpm, deb, pkg и т. д.) и его распространения. С другой стороны, если вы просто ищете способ использовать foo.c для создания удобной библиотеки, с которой main статически компонуется во время сборки, то (при условии, что вы используете automake) вы хотите поместить это в Makefile. являюсь:
bin_PROGRAMS= main
noinst_LIBRARIES = libfoo.a
libfoo_a_SOURCES = foo.c
Если вы измените имя foo.c на libfoo.c, третья строка не понадобится.
--EDIT после того, как вопрос был отредактирован для отображения неплоской структуры каталогов--
Если у вас нет файлов foo.c и main.c в одном каталоге, потребуется немного больше работы. В файле верхнего уровня/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
person
William Pursell
schedule
26.01.2012