Я выполняю аутоутилизацию проекта библиотеки, и в этом проекте есть несколько примеров программ. Я хочу, чтобы примеры программ были распределены на dist, но не.automake: Как скопировать файлы в каталог сборки?
В настоящее время демонстрационные программы организованы следующим образом:
src/*.cpp (library source)
include/*.h (library headers)
demos/demo.cpp (example program)
demos/RunDemo (script to run demo)
Важно, чтобы RunDemo быть работоспособным после построения программного обеспечения, не требуя от «установки» шаг.
До сих пор я смог построить «демонстрационную» версию, используя цель noinst_PROGRAMS
. Однако, после того, как make
в VPATH сборки, следующие доступны:
build/src/.libs/libxxx.so (etc..)
build/demos/demo
Как вы можете видеть, сценарий RunDemo необходимо выполнить «демо» не копируется в $ (builddir). Я попробовал несколько вещей, например, добавление RunDemo
к dist_noinst_SCRIPTS
, а также добавлять свои собственные цели копирования и пытается не зацепить all
.. независимо от того, что я стараюсь, я всегда получаю выход,
$ make RunDemo
make: Nothing to be done for `../../../projects/demo/RunDemo'.
я, кажется, чтобы не удалось создать цель в builddir, в которой говорится: «Если этот файл отсутствует в builddir, скопируйте его из srcdir».
Возможно ли это с помощью automake?
Это, кажется, решает мою проблему, спасибо! – Steve
Есть ли способ сделать это с помощью каталогов, а не только файлов? –
Я предполагаю, что 'AC_CONFIG_LINKS ([каталог: каталог])' не работает? Я не уверен, почему это было бы, но вы могли бы попробовать написать команду, чтобы скопировать ее с помощью 'AC_CONFIG_COMMANDS', используя переменные' srcdir' и 'builddir'. –