Well, i think the easiest way to solve this gpde issue to move the N_pde.h header file into grass6/include.<br>So there should be no need to copy it. <br>I have kept the header file in the source directory for the <br>doxygen documentation generation. To have all the used structures documented.
<br>But i guess i can tell doxygen to use ../../include/N_pde.h instead of keeping the header <br>file in the source dir.<br><br>Soeren<br><br><div><span class="gmail_quote">2007/10/18, Glynn Clements &lt;<a href="mailto:glynn@gclements.plus.com">
glynn@gclements.plus.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>Maciej Sieczka wrote:<br><br>&gt; Glynn Clements wrote:
<br>&gt; &gt; Maciej Sieczka wrote:<br>&gt; &gt;<br>&gt; &gt;&gt;&gt;&gt; sorry but I&#39;m not an make guru and thus see it simple: if I run comand<br>&gt; &gt;&gt;&gt;&gt; &quot;make -j4&quot; it should get along with it or fail with &quot;err blah parallel
<br>&gt; &gt;&gt;&gt;&gt; buld not supported&quot;. Current CVS version does neither of it.<br>&gt; &gt;&gt;&gt; I hope we don&#39;t give up so early. Probably just a few Makefiles<br>&gt; &gt;&gt;&gt; need to be fixed (basically, get the target order right therein).
<br>&gt; &gt;&gt;&gt;&gt; As multicore CPU&#39;s are getting more popular, more and more users will be<br>&gt; &gt;&gt;&gt;&gt; trying to run &quot;make -j X&quot; and thus report failure as bug [1].<br>&gt; &gt;&gt;&gt; Not always. As written yesterday, &quot;make -j3&quot; worked for me on my RHEL5
<br>&gt; &gt;&gt;&gt; box. Now testing with Mandriva.<br>&gt; &gt;&gt;&gt;&gt; If I can help with testing, drop me instructions. I have Gentoo ~x86<br>&gt; &gt;&gt;&gt;&gt; system (gcc version 4.2.1; GNU Make 3.81).<br>&gt; &gt;&gt;&gt; Please help testing. Just run it and see if and where it fails.
<br>&gt; &gt;&gt;&gt; Then check the problematic Makefile(s) for correct order:<br>&gt; &gt;&gt;&gt; <a href="http://grass.gdf-hannover.de/wiki/Development#GRASS_Makefile_writing">http://grass.gdf-hannover.de/wiki/Development#GRASS_Makefile_writing
</a><br>&gt; &gt;&gt; As for testing: I get the following errors with make -j3 on<br>&gt; &gt;&gt; Intel Core 2 6600 running 2.6.15-29-amd64-xeon (Ubuntu Dapper):<br>&gt; &gt;&gt;<br>&gt; &gt;&gt; --<br>&gt; &gt;&gt; Errors in:
<br>&gt; &gt;&gt; /home/maciek/src/straight/grass63/lib/gpde<br>&gt; &gt;&gt; /home/maciek/src/straight/grass63/imagery/i.vpoints<br>&gt; &gt;&gt; /home/maciek/src/straight/grass63/misc/m.cogo<br>&gt; &gt;&gt; /home/maciek/src/straight/grass63/raster/r.gwflow
<br>&gt; &gt;&gt; /home/maciek/src/straight/grass63/raster/r.to.rast3elev<br>&gt; &gt;&gt; /home/maciek/src/straight/grass63/raster3d/r3.gwflow<br>&gt; &gt;&gt; /home/maciek/src/straight/grass63/vector/v.sample<br>&gt; &gt;
<br>&gt; &gt; What errors, exactly?<br>&gt;<br>&gt; That&#39;s all it says:<br>&gt;<br>&gt; Started compilation: Thu Oct 18 00:07:37 CEST 2007<br>&gt; --<br>&gt; Errors in:<br>&gt; /home/maciek/src/straight/grass63/lib/gpde
<br>&gt; /home/maciek/src/straight/grass63/misc/m.cogo<br>&gt; /home/maciek/src/straight/grass63/raster/r.gwflow<br>&gt; /home/maciek/src/straight/grass63/raster3d/r3.gwflow<br>&gt; --<br>&gt; In case of errors please change into the directory with
<br>&gt; error and run &#39;make&#39;. If you get multiple errors, you need<br>&gt; to deal with them in the order they appear in the error log.<br>&gt; If you get an error building a library, you will also get<br>&gt; errors from anything which uses the library.
<br>&gt; --<br>&gt; Finished compilation: Thu Oct 18 00:11:12 CEST 2007<br>&gt; make: *** [default] Error 1<br>&gt;<br>&gt; If you&#39;d like to see full make and configure output they are<br>&gt; here [1].<br><br>The relevant make output is necessary.
<br><br>lib/gpde:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;N_arrays.c:19:25: error: grass/N_pde.h: No such file or directory<br><br>I&#39;ve just figured out what&#39;s going on; it&#39;s the way that phony targets<br>are being used. E.g. lib/gpde/Makefile has:
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default: headers lib<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;headers:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for file in ./N_*.h ; do $(INSTALL_DATA) $$file $(GISBASE)/include/grass/ ; done<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lib: headers<br><br>&quot;headers&quot; is a prerequisite of &quot;lib&quot;, and so will be built before it.
<br>But &quot;lib&quot; is defined in Lib.make as:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lib: $(GRASS_LIBRARY_TYPE)<br><br>$(GRASS_LIBRARY_TYPE) is either &quot;shlib&quot; or &quot;stlib&quot;. Assuming &quot;shlib&quot;,<br>that&#39;s defined in 
Shlib.make as:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shlib: $(SHLIB)<br><br>When there are multiple rules for a given target, all of the<br>dependencies are merged, so in effect we have:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lib: headers $(SHLIB)<br><br>IOW, the headers target and the actual shared library are built in
<br>parallel.<br><br>Using phony targets for real files (as opposed to e.g. &quot;clean&quot;) sucks.<br><br>What we really want is a dependency like:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(SHLIB): headers<br><br>But it isn&#39;t clear how to abstract out the library type. Note that:
<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$(GRASS_LIBRARY_TYPE): headers<br><br>won&#39;t work, as that just gives e.g.:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shlib: headers<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shlib: $(SHLIB)<br><br>which is equivalent to:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;shlib: headers $(SHLIB)
<br><br>which will still result in headers and $(SHLIB) being built in<br>parallel.<br><br>Note to self (and anyone else who it concerns): a dependency such as<br>&quot;foo: bar&quot; does *not* make &quot;foo&quot; into an alias for &quot;bar&quot;. Sure, making
<br>foo will make bar, but if foo has other prerequisites, they will be<br>made in parallel with bar, not before it.<br><br>Ugh. I don&#39;t immediately know how to solve this, but I do at least<br>know what&#39;s going on now. I&#39;m fairly sure that that this is the cause
<br>of many of the outstanding problems with parallel builds.<br><br>--<br>Glynn Clements &lt;<a href="mailto:glynn@gclements.plus.com">glynn@gclements.plus.com</a>&gt;<br><br>_______________________________________________
<br>grass-dev mailing list<br><a href="mailto:grass-dev@grass.itc.it">grass-dev@grass.itc.it</a><br><a href="http://grass.itc.it/mailman/listinfo/grass-dev">http://grass.itc.it/mailman/listinfo/grass-dev</a><br></blockquote>
</div><br>