PDA

View Full Version : How to make use of the INSTALL_ROOT that resides in generated Makefiles?



RomaHagen
2nd December 2011, 18:25
qmake generates the following rule for installing a target:


-$(INSTALL_PROGRAM) "$(TARGET)" "$(INSTALL_ROOT)/$(TARGET)"

I cannot set INSTALL_ROOT with something like this in a *.pro file


isEmpty(INSTALL_ROOT) {
INSTALL_ROOT=/usr
}

because INSTALL_ROOT is somehow local to generated Makefiles. According to what I've found out so far INSTALL_ROOT is empty by default. It could be used like


INSTALL_ROOT=$HOME make install

when invoking make, which is fine. However I want to be able to specify default installation root, say /usr. I can do it introducing a new variable PREFIX as suggested here. Then generated rule will look like (if PREFIX was set to /usr)


-$(INSTALL_PROGRAM) "$(TARGET)" "$(INSTALL_ROOT)/usr/$(TARGET)"

however, if somebody calls


INSTALL_ROOT=$HOME make install

then target will be installed to
/home/<user_name>/usr/$(TARGET) which is not that one would expect.

So setting INSTALL_ROOT to some default value will produce consistent behavior, which is superior to adding PREFIX, but how to set INSTALL_ROOT in a *.pro file?