[Spread-users] Install rule in Makefile for 4.2 does not support multiple make jobs

Jonathan Stanton jonathan at spreadconcepts.com
Thu Apr 4 20:30:32 EDT 2013


Hello Johannes,

Thanks for the report. I checked it out and you are correct about the problem. I have committed a fix which allows make -j4 install to work on my machines. If you check out svn or the 4.3 test release that is coming out tonight it has the fix in it and should compile/install with parallel make. 

Cheers,

Jonathan

-------------------------------------------------------------------------------
Jonathan Stanton		jonathan at spreadconcepts.com
Spread Group Messaging	www.spread.org
Spread Concepts LLC 	www.spreadconcepts.com
-------------------------------------------------------------------------------



On Apr 4, 2013, at 4:26 AM, Johannes Wienke wrote:

> Hi,
> 
> I think I found a new bug in the Makefiles for the 4.2 release of
> spread. Apparently, the install rules are do not support multiple make
> jobs (with -j). In my case this always ends up in the .so files not
> being installed:
> 
> make[1]: Entering directory
> `/home/languitar/abs/spread-daemon/src/spread-src-4.2.0/libspread'
> ../buildtools/mkinstalldirs /tmp/bla/usr/lib
> /usr/bin/install -c -m 0755 libspread.so /tmp/bla/usr/lib/libspread.so.3.0.0
> /usr/bin/install -c -m 0755 libspread-core.so
> /tmp/bla/usr/lib/libspread-core.so.3.0.0
> /usr/bin/install: cannot create regular file
> ‘/tmp/bla/usr/lib/libspread.so.3.0.0’: No such file or directory
> make[1]: *** [install-libspread.so] Error 1
> make[1]: *** Waiting for unfinished jobs....
> /usr/bin/install: cannot create regular file
> ‘/tmp/bla/usr/lib/libspread-core.so.3.0.0’: No such file or directory
> make[1]: *** [install-libspread-core.so] Error 1
> mkdir /tmp/bla/usr/lib
> ../buildtools/mkinstalldirs /tmp/bla/usr/include
> /usr/bin/install -c -m 644 libspread.a /tmp/bla/usr/lib/libspread.a
> /usr/bin/install -c -m 644 libspread-core.a
> /tmp/bla/usr/lib/libspread-core.a
> /usr/bin/install -c -m 644 libtspread-core.a
> /tmp/bla/usr/lib/libtspread-core.a
> /usr/bin/install -c -m 644 ../include/sp.h /tmp/bla/usr/include/sp.h
> /usr/bin/install -c -m 644 ../include/sp_func.h
> /tmp/bla/usr/include/sp_func.h
> /usr/bin/install -c -m 644 ../include/sp_events.h
> /tmp/bla/usr/include/sp_events.h
> /usr/bin/install -c -m 644 ../include/fl.h /tmp/bla/usr/include/fl.h
> 
> The problem I see in the libspread/Makefile is that the install rules
> for the shared libraries implicitly depend on the install-files target,
> which initially created $(DESTDIR)$(libdir). As this dependency is not
> explicit and in case of multiple jobs ordering of dependencies is not
> obeyed, the installs for the shared libraries are executed before the
> libdir was created.
> 
> For my own needs I will do a quick workaround by disabling parallel
> builds, but ultimately this should be fixed.
> 
> Cheers,
> Johannes
> 
> _______________________________________________
> Spread-users mailing list
> Spread-users at lists.spread.org
> http://lists.spread.org/mailman/listinfo/spread-users




More information about the Spread-users mailing list