Bug 90269

Summary: fail to build due to insufficiant target dependencies
Product: ModemManager Reporter: Gilles Dartiguelongue <gilles.dartiguelongue>
Component: generalAssignee: ModemManager bug user <modemmanager>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: gnome
Version: 1.4   
Hardware: Other   
OS: All   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=504496
Whiteboard:
i915 platform: i915 features:
Attachments: modemmanager-1.4.8-build.log

Description Gilles Dartiguelongue 2015-05-01 14:39:42 UTC
Created attachment 115500 [details]
modemmanager-1.4.8-build.log

While updating modemmanager from 1.4.4 to 1.4.8, I hit this problem:

[...]
  CC       ModemManager-mm-device.o
  CC       ModemManager-mm-plugin-manager.o
  CC       ModemManager-mm-base-sim.o
  GEN      mm-daemon-enums-types.h
  CC       ModemManager-mm-broadband-bearer.o
mm-broadband-bearer.c:37:33: fatal error: mm-port-enums-types.h: No such file or directory
 #include "mm-port-enums-types.h"
                                 ^
compilation terminated.
Makefile:1209: recipe for target 'ModemManager-mm-broadband-bearer.o' failed

The issue appears to be that mm-broadband-bearer.c and a couple of other files which are in ModemManager_SOURCES do include mm-port-enums-types.h but that file is only generated while building libport (nodist/noinst).

The header should be added to ModemManager_SOURCES to ensure it is generated before building the target.
Comment 1 Gilles Dartiguelongue 2015-05-01 14:50:45 UTC
Err, I believe this is actually a problem of libtool badly handling multiples libraries being built in the same directory.
Comment 2 Aleksander Morgado 2015-05-01 17:31:52 UTC
That is weird; mm-port-enums-types.h is generated during build, through glib-mkenums, and it should be generated BEFORE anything else tries to use it, as it's in BUILT_SOURCES.

Can you get me a full output log with "make V=99" starting off from a clean extracted tarball?
Comment 3 Gilles Dartiguelongue 2015-05-01 21:31:53 UTC
Another user posted a full build.log with V=1 in our bugtracker at https://504496.bugs.gentoo.org/attachment.cgi?id=401998.

Please note that this is only happening with parallel builds (I forgot to mention it in summary).
Comment 4 Aleksander Morgado 2015-05-04 07:31:34 UTC
I was wrong, the enum files generation wasn't in BUILT_SOURCES, and the explicit dependency rules were not enough. I've now fixed this in git master and the mm-1-4 branch, see:

http://cgit.freedesktop.org/ModemManager/ModemManager/commit/src?id=4fcae938fc93415857fd1eb6dfdbcac34848ec5e

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.