[PATCH] Make mjpegtools build with LDFLAGS=-Wl, --as-needed

Fabian Greffrath <[email protected]> Sat, 22 Mar 2008 14:38:31 +0100
Newsgroups gmane.comp.video.mjpeg.devel
Message-ID <1206193111.7649.0.camel@beppo>
Dear mjpegtools developers,

please find attached a patch that makes it possible to build the
mjpegtools package with LDFLAGS=-Wl,--as-needed and thus avoid
unnecessary dependencies for resulting binary packages.

The patch adds libraries to objects that use some of their symbols and
reorders some LDFLAGS/LIBADD fields (libraries should be added to
LIBADD, not LDFLAGS).

To tell the truth, there is another patch necessary to keep ltmain.sh
from insanely reordering the linker arguments (please see [1]), but
that's not your issue, I guess. ;)

Cheers,
Fabian

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=347650

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

_______________________________________________
Mjpeg-developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mjpeg-developer
mjpegtools-1.9~rc3_as-needed.patch (text/x-patch, 2 KB)
diff -Nur mjpegtools-1.9.0rc3/lavtools/Makefile.am mjpegtools-1.9.0rc3.new/lavtools/Makefile.am
--- mjpegtools-1.9.0rc3/lavtools/Makefile.am
+++ mjpegtools-1.9.0rc3.new/lavtools/Makefile.am
@@ -40,25 +40,24 @@
 
 liblavfile_la_SOURCES = editlist.c lav_io.c avilib.c
 liblavfile_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBDV_CFLAGS) $(JPEG_CFLAGS)
-liblavfile_la_LDFLAGS = $(LAV_ALL_LIB_OPTS) \
-	$(LIBQUICKTIME_LIBS) $(JPEG_LIBS) $(LIBDV_LIBS)
-liblavfile_la_LIBADD = $(LIBMJPEGUTILS)
+liblavfile_la_LDFLAGS = $(LAV_ALL_LIB_OPTS)
+liblavfile_la_LIBADD = $(LIBQUICKTIME_LIBS) $(JPEG_LIBS) $(LIBDV_LIBS) $(LIBMJPEGUTILS)
 
 liblavjpeg_la_SOURCES = jpegutils.c
 liblavjpeg_la_CPPFLAGS = $(AM_CPPFLAGS) $(JPEG_CFLAGS)
-liblavjpeg_la_LDFLAGS = $(LAV_ALL_LIB_OPTS) $(JPEG_LIBS)
-liblavjpeg_la_LIBADD = $(LIBMJPEGUTILS)
+liblavjpeg_la_LDFLAGS = $(LAV_ALL_LIB_OPTS)
+liblavjpeg_la_LIBADD = $(JPEG_LIBS) $(LIBMJPEGUTILS)
 
 liblavrec_la_SOURCES = liblavrec.c audiolib.c frequencies.c
 liblavrec_la_CPPFLAGS = $(AM_CPPFLAGS) # so automake doesn't complain about audiolib & frequencies
 liblavrec_la_LDFLAGS = $(LAV_ALL_LIB_OPTS)
-liblavrec_la_LIBADD = liblavfile.la liblavjpeg.la
+liblavrec_la_LIBADD = liblavfile.la liblavjpeg.la $(LIBMJPEGUTILS)
 liblavrec_la_DEPENDENCIES = liblavfile.la liblavjpeg.la
 
 liblavplay_la_SOURCES = liblavplay.c audiolib.c
 liblavplay_la_CPPFLAGS = $(AM_CPPFLAGS) $(LIBDV_CFLAGS) $(X_CFLAGS)
 liblavplay_la_LDFLAGS = $(LAV_ALL_LIB_OPTS)
-liblavplay_la_LIBADD = liblavfile.la $(SDL_LIBS) liblavjpeg.la
+liblavplay_la_LIBADD = liblavfile.la $(SDL_LIBS) liblavjpeg.la $(LIBDV_LIBS) $(LIBMJPEGUTILS)
 if HAVE_V4L
    liblavplay_la_LIBADD += ${X_LIBS} -lX11
 endif
diff -Nur mjpegtools-1.9.0rc3/mpeg2enc/Makefile.am mjpegtools-1.9.0rc3.new/mpeg2enc/Makefile.am
--- mjpegtools-1.9.0rc3/mpeg2enc/Makefile.am
+++ mjpegtools-1.9.0rc3.new/mpeg2enc/Makefile.am
@@ -78,7 +78,7 @@
 
 libmpeg2encpp_la_DEPENDENCIES = $(LIBMJPEGUTILS)
 
-libmpeg2encpp_la_LIBADD = $(LIBMJPEGUTILS)
+libmpeg2encpp_la_LIBADD = $(LIBMJPEGUTILS) -lpthread
 
 mpeg2enc_DEPENDENCIES = \
 	$(LIBMJPEGUTILS) \