INSTALL_ROOT is intended for use with package building systems such as NSIS, debian, or in any other way for batch processing of firmware and its delivery.
For this you want to get the result
INSTALL_ROOT=$PWD/package_root make install
to create a tree under $ PWD / package_root that accurately mimics this on your target system that you plan to deliver. Note that you need INSTALL_ROOT to be a full path (hence $ PWD), not a relative path.
When creating a package, you can compress this tree into an archive, and then the installation process simply decompresses the same tree into the target file system.
$PWD/package_root/usr/bin/my_binary
will be set to
/usr/bin/my_binary
for the purpose.
So, this is the answer to the question what is INSTALL_ROOT intended for. To answer how to specify a "default installation root", additional information is needed on what you want to achieve.
Take a look at the qmake -query result:
sez@ubuntu-11.10 :~$ qmake -query QT_INSTALL_PREFIX:/usr QT_INSTALL_DATA:/usr/share/qt4 QT_INSTALL_DOCS:/usr/share/qt4/doc QT_INSTALL_HEADERS:/usr/include/qt4 QT_INSTALL_LIBS:/usr/lib/i386-linux-gnu QT_INSTALL_BINS:/usr/bin <snipped> QT_VERSION:4.7.4
and using the INSTALLS variable in qmake: http://doc.qt.digia.com/qt/qmake-environment-reference.html#installs - and How to do I specify the input of the QMake INSTALLS variable?
By default, if you just do
target.path = $$[QT_INSTALL_BINS] INSTALLS += target
Then your binary will be installed anywhere qt considers the desired location, QT_INSTALL_BINS. You can, of course, change these defaults by setting target.path to something else. Qt supplies these paths, but it is up to you to use them or not.
You could do
MY_DEFAULT_INSTALL=/opt/myproj somedocs.files = docs/index.html somedocs.path = $$MY_DEFAULT_INSTALL/docs target.path = $$MY_DEFAULT_INSTALL/bin INSTALLS += somedocs target
for example, where MY_DEFAULT_INSTALL is one place in your .pro file that defines the default value for installations.