]> git.sesse.net Git - vlc/commitdiff
- Remove dependency of vlc on stamp-builtin with shared libvlc
authorRémi Denis-Courmont <rem@videolan.org>
Mon, 20 Feb 2006 18:00:28 +0000 (18:00 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Mon, 20 Feb 2006 18:00:28 +0000 (18:00 +0000)
- Link against -lvlc instead of src/libvlc.so otherwise installed vlc
  cannot be loaded (closes #555)
- Remove src/libvlc.a when src/libvlc.so is built so that previous item
  does not break Win32 linking

<subliminal message>how about using libtool</subliminal message>

Makefile.am
src/Makefile.am

index 3ece91e5ecbf9700a029a0613205c212322326fd..c842d5befc1573f4b365a6a3de60b8b998bf4f52 100644 (file)
@@ -221,24 +221,25 @@ if HAVE_WINCE
 vlc_WORKAROUNDLDFLAGS = $(LIB_libvlc)
 endif
 
-if BUILD_SHARED
-LIB_libvlc = src/libvlc$(LIBEXT)
-vlc_config = vlc
-#-Wl,-rpath $(libdir)
-else
-LIB_libvlc = src/libvlc.a
-vlc_config = vlc builtin
-endif
-
-vlc_LDFLAGS = `$(VLC_CONFIG) --libs $(vlc_config)` $(vlc_WORKAROUNDLDFLAGS)
-vlc_LDADD = $(LIB_libvlc) $(DATA_win32_rc) $(INCLUDED_LIBINTL)
 vlc_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
+vlc_LDFLAGS = $(LDFLAGS_libvlc) $(vlc_WORKAROUNDLDFLAGS)
+vlc_LDADD = $(DATA_win32_rc) $(INCLUDED_LIBINTL)
 
 # We use DEPENDENCIES_vlc instead of vlc_DEPENDENCIES because of an
 # old automake-1.5 bug (automake/279).
 DEPENDENCIES_vlc = $(LIB_libvlc) $(DATA_win32_rc)
 
-vlc$(EXEEXT): $(vlc_OBJECTS) $(DEPENDENCIES_vlc) stamp-builtin
+if BUILD_SHARED
+vlc_LDFLAGS += `$(VLC_CONFIG) --libs vlc` -Wl,-rpath $(libdir) -Lsrc -lvlc
+LIB_libvlc = src/libvlc$(LIBEXT)
+else
+vlc_LDFLAGS += `$(VLC_CONFIG) --libs vlc builtin`
+vlc_LDADD += $(LIB_libvlc)
+LIB_libvlc = src/libvlc.a
+DEPENDENCIES_vlc += stamp-builtin
+endif
+
+vlc$(EXEEXT): $(vlc_OBJECTS) $(DEPENDENCIES_vlc)
        @rm -f vlc$(EXEEXT)
        @case `$(VLC_CONFIG) --linkage $(vlc_config)` in \
          c++) cmd="$(CXXLINK)" ;; \
index 246e81c5a799ef09716d1232a248be43d6034117..23c9d10bae03ec33ae556e95683816086e205972 100644 (file)
@@ -200,6 +200,10 @@ libvlc$(LIBEXT): $(OBJECTS_libvlc_so) builtins
        esac ; \
        echo $$ld $(OBJECTS_libvlc_so) $$ldfl ; \
        $$ld $(OBJECTS_libvlc_so) $$ldfl
+# It sucks big time, but we have to do that to link vlc properly
+# on non-PIC OSes, otherwise ld will favor builtins-less libvlc.a over
+# libvlc$(LIBEXT)
+       rm -f libvlc.a
 
 EXTRA_DIST += \
        $(SOURCES_libvlc_beos) \