[Qt-interest] setting makefile variable from .pro file

Pete Black theblackpeter at gmail.com
Thu Feb 12 10:46:55 CET 2009


andrew.m.goth at l-3com.com wrote:
> Pete Black wrote:
>> Looks like I might have to create a custom make target that sets 
>> INSTALL_ROOT or script it.
> 
> I don't think it's possible for a target to set a variable.  Well, one
> way you could do it (if you were the one writing the makefile, which you
> aren't!) is with conditional expressions:

It is actually. Create a custom target that sets INSTALL_ROOT and add it
to the top of INSTALLS. Problem with this approach is that something is
needed for when calling make uninstall and those targets only get added
to the uninstall: makefile target if they have any files associated with
them. Have a look in the makefile for install: and uninstall and you'll
see what I mean.

After some procrastinating I decided to do it quick and dirty like this
(remember, my only requirement is that it's contained in the .pro file):

!exists($$MAKEFILE) {
  system("touch $$MAKEFILE")
  system("qmake src.pro")
  INSTALL_ROOT = "\/usr\/local"
  CMD="sed -i 's/INSTALL_PROGRAM.*=.*/&\nINSTALL_ROOT  =
$$INSTALL_ROOT/' $$MAKEFILE"
  system($$CMD)
  error("Ignore this error, everything is fine!")
}

So this will now set a default value in the generated makefile just
after INSTALL_PROGRAM. It's also possible to override that value like usual:

  make install INSTALL_ROOT=./

Anyway, I opened up a feature suggestion request, let's see what happens.

Pete



More information about the Qt-interest-old mailing list