Проблема: есть простой qmake проект, который компилируется в библиотеку, с которой можно линковаться, или подсунуть дизайнеру как плагин. Теперь пишу для него процедуру установки:
target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS += target
linkable.path = /usr/local/lib
linkable.files = libDoubleSpinboxPlugin.so
INSTALLS += linkable
Т.е. встроенную цель ставим как плагин дизайнера, и свою цель ставим как linkable библиотеку в /usr/local/lib.
Очищаем полностью проект от всех выходных файлов, включая Makefile. Теперь магия:
Bash
[debian DoubleSpinbox]$ qmake
[debian DoubleSpinbox]$ make -s
[debian DoubleSpinbox]$ ls *.so
libDoubleSpinboxPlugin.so
[debian DoubleSpinbox]$ cat Makefile | grep linkable
Никаких следов цели "linkable".
Повторно:
Bash
[debian DoubleSpinbox]$ qmake
[debian DoubleSpinbox]$ cat Makefile | grep linkable
install_linkable: first FORCE
uninstall_linkable: FORCE
install: install_target install_linkable FORCE
uninstall: uninstall_target uninstall_linkable FORCE
Цель есть.
Экспериментальным путём выяснено, что на генерацию Makefile-а влияет существование выходного файла "libDoubleSpinboxPlugin.so". Если он есть, то последующий вызов qmake создаст корректный Makefile. Если его нет, то последующий вызов qmake создаст битый Makefile без цели "linkable". Что за?
P.S. Debian Lenny, Qt 4.5.2