У меня есть Makefile.am
, который будет отвечать за создание окончательного двоичного файла приложения:
project/src/Makefile.am
Также в каталоге src есть подкаталог с именем ctrnn
, который содержит дополнительный Makefile.am
:
project/src/ctrnn/Makefile.am
Теперь ctrnn/Makefile.am
должен генерировать только объектные .o
файлы с идеей, что верхний уровень Makefile.am
должен использовать объектные файлы, сгенерированные в подкаталоге ctrnn
, для создания двоичного файла.
Это ctrnn/Makefile.am
:
SOURCES = network.cpp\
neuron.cpp
AM_CPPFLAGS= @CXXFLAGS@
Основываясь на этом Makefile.am
файле, я хочу получить network.o и neuron.o. Я генерирую соответствующий Makefile
с помощью Automake и т. Д., Но когда я пытаюсь и затем выполняю файл make, он ничего не делает и просто говорит:
make: Nothing to be done for `all'
Я знаю, почему это так, мне нужно указать цель сборки. Но как мне это сделать в сценарии ctrnn/Makefile.am
, если я не хочу создавать двоичный файл, для которого потребуются bin_PROGRAMS
, а реальные объектные файлы network.o
и neuron.o
?
(Обратите внимание, что если я укажу имя bin_PROGRAMS, оно будет справедливо заканчиваться жалобой на неопределенную ссылку на main).
Что я делаю не так?