Install rule in Makefile for 4.2 does not support multiple make jobs

Johannes Wienke <[email protected]> Thu, 04 Apr 2013 10:26:50 +0200
Newsgroups gmane.network.spread.user
Message-ID <[email protected]>
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
signature.asc (application/pgp-signature, 263 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/

iEYEARECAAYFAlFdOU0ACgkQBFcR5UV/ccL4rQCgtxXjI+DizbyQdJE8FzcnP0sN
rg4AoLRIukNIC2f2ANuNqwNqGI60AQZe
=lAhv
-----END PGP SIGNATURE-----