Re: Install rule in Makefile for 4.2 does not support multiple make jobs
Jonathan Stanton <[email protected]> Thu, 4 Apr 2013 20:30:32 -0400
| Newsgroups | gmane.network.spread.user |
|---|---|
| Message-ID | <[email protected]> |
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 [email protected] 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 > [email protected] > http://lists.spread.org/mailman/listinfo/spread-users