On 08/22/2012 10:03 AM, Slávek Banko wrote: > David, > > I still have doubts about the patch. Reasons I got: > 1) In the GIT never been such a form. > 2) Other distributions not reported this problem. > 3) The patch removes the command and leaves orphaned parameters. > 4) When I tried to add it, on Debian/Ubuntu occurred FTBFS. > > I can not help but still it shows me that the problem lies elsewhere. > Specifically, in that instead of 'moc-tqt' is called directly 'moc'. > Variable MOC_QT3 should be set to the 'moc-tqt'. > > Please try this patch instead of your proposed. This is a > reduced "essence" of patches 594a27c9, 18173187 and 7b10d93d. > > Slavek OK, I will look into this further tonight. All I can say is that without it, I get a FTBFS. As I noted originally, I found the solution here: http://trinity-devel.pearsoncomputing.net/?0::6608 The gnu make expansion rule is explained here: http://www.gnu.org/software/make/manual/make.html Specifically: 4.5.4 Writing Recipes with Directory Search When a prerequisite is found in another directory through directory search, this cannot change the recipe of the rule; they will execute as written. Therefore, you must write the recipe with care so that it will look for the prerequisite in the directory where make finds it. For instance, the value of ‘$^’ is a list of all the prerequisites of the rule, *including the names of the directories* in which they were found, and the value of ‘$@’ is the target. Thus: foo.o : foo.c cc -c $(CFLAGS) $^ -o $@ The explanation of Automatic Variables is here: http://www.gnu.org/software/make/manual/make.html#Automatic-Variables 10.5.3 Automatic Variables $^ The names of all the prerequisites, with spaces between them. For prerequisites which are archive members, only the named member is used (see Archives). A target has only one prerequisite on each other file it depends on, no matter how many times each file is listed as a prerequisite. So if you list a prerequisite more than once for a target, the value of $^ contains just one copy of the name. As with the other person who originally posted http://trinity-devel.pearsoncomputing.net/?0::6608, the change is apparently necessary so that correct *directory* information is provided for the build. You must be exporting some path somewhere in your build such that telling make to use the correct directory information with '$^' results in double-path information in your build. I don't know. It is either broken on your end or on my end. I'm not using any exports to build, just the code from GIT. Building just from GIT without altering the environment requires the patch I submitted. I still don't completely understand why I need it and you don't other than what I explained above being the only logical guess I have. We need one of the makefile wizards on the list to take a look. -- David C. Rankin, J.D.,P.E.