GNOME Bugzilla – Bug 132045
incorrect dependency causes rebuilding of libgstreamer on "make install"
Last modified: 2004-12-22 21:47:04 UTC
When I build an rpm for GStreamer, I do the usual "./configure ...; make; make install" routine as suggested elsewhere. However, on "make install" I see that a part of the build tree, including libgstreamer-0.7.la, gets rebuilt. This can be nasty, because a typical "run make install" rpm macro in many distributions relocates $(libdir) and other makefile variables to a temporary install root. As the result, the rebuilt libstreamer-0.7.la gets this bogus libdir setting written into it, and, by the time a dependant libgstcontrol shared library is installed, it gets relinked with a bogus rpath. A pedantic packaging verify script frowns at such things. The cause of the problem was tracked down to the following rule in 'gst/parse/Makefile.am': lex._gst_parse_yy.c: parse.l grammar.tab.h $(FLEX_PATH) -P_gst_parse_yy $^ 'grammar.tab.h' is rebuilt by a bison invocation _after_ the first flex invocation at the "make" stage, making the target stale. In fact, this header file doesn't affect the flex's output and should never be made a dependency in this rule in the first place.
Created attachment 23655 [details] [review] Fix dependencies and build order in gst/parse/
The attachment mentioned above corrects a few more rules and uncomments the BUILT_SOURCES listing. I don't know or care much about how BUILT_SOURCES affects the dist target, but it should be there to make sure the generated parser sources are created early, so as to avoid botching the gcc-built dependencies.
should be fixed in HEAD, please reopen if not.