]> git.sesse.net Git - vlc/commitdiff
- Build builtins before shared libvlc
authorRémi Denis-Courmont <rem@videolan.org>
Sun, 19 Feb 2006 18:29:08 +0000 (18:29 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Sun, 19 Feb 2006 18:29:08 +0000 (18:29 +0000)
- Link builtins with libvlc instead of vlc
  (seems to fix shared libvlc on Win32)

Makefile.am
src/Makefile.am

index 937651d358ab954b87ab3238e7068e61dcd76668..b895d8734149a0d14038b13d936b63a93bf07d34 100644 (file)
@@ -225,7 +225,7 @@ else
 LIB_libvlc = src/libvlc.a
 endif
 
-vlc_LDFLAGS = `$(VLC_CONFIG) --libs vlc builtin` $(vlc_WORKAROUNDLDFLAGS)
+vlc_LDFLAGS = `$(VLC_CONFIG) --libs vlc` $(vlc_WORKAROUNDLDFLAGS)
 vlc_LDADD = $(LIB_libvlc) $(DATA_win32_rc) $(INCLUDED_LIBINTL)
 vlc_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
 
@@ -235,7 +235,7 @@ DEPENDENCIES_vlc = $(LIB_libvlc) $(DATA_win32_rc)
 
 vlc$(EXEEXT): $(vlc_OBJECTS) $(DEPENDENCIES_vlc) stamp-builtin
        @rm -f vlc$(EXEEXT)
-       @case `$(VLC_CONFIG) --linkage vlc builtin` in \
+       @case `$(VLC_CONFIG) --linkage vlc` in \
          c++) cmd="$(CXXLINK)" ;; \
          objc) cmd="$(OBJCLINK)" ;; \
          c|*) cmd="$(LINK)" ;; \
index 3ec8bf96d4f48ffb6c0ecccfe2e63231c4a03127..246e81c5a799ef09716d1232a248be43d6034117 100644 (file)
@@ -110,6 +110,29 @@ misc/modules.c: misc/modules_builtin.h
 misc/version.c: FORCE
        $(TOOLBOX) --update-version
 
+###############################################################################
+# Building builtin modules
+###############################################################################
+#
+# As long as we use builtins with a shared libvlc, we must build them before
+# we build libvlc. Maybe one day, libvlc will handle multiple modules per
+# shared object, which will make builtins fairly redumdant. Until then, we
+# need this workaround.
+
+builtins:
+if BUILD_SHARED
+       @if test "$(pic)" = "pic"; then ext="_pic.a"; else ext=".a"; fi ; \
+       for c in `$(VLC_CONFIG) --libs builtin`; do \
+               case $$c in \
+                       ../modules/*.a) echo $$c ;; \
+               esac ; \
+       done | \
+       sed -e 's/^\(.*\)\/\([^\/]*\)\.a$$/cd \1 \&\& $(MAKE) \2/g' | \
+       while read cmd; do echo $$cmd$$ext; eval "($$cmd$$ext)" || exit $$? ; done
+endif
+
+.PHONY: builtins
+
 ###############################################################################
 # Building libvlc
 ###############################################################################
@@ -168,9 +191,9 @@ OBJECTS_libvlc_so = $(libvlc_pic_a_OBJECTS)
 endif
 endif
 
-libvlc$(LIBEXT): $(OBJECTS_libvlc_so)
-       @ldfl="`$(VLC_CONFIG) --libs plugin vlc $(pic)` $(INCLUDED_LIBINTL)" ; \
-       case `$(VLC_CONFIG) --linkage vlc` in \
+libvlc$(LIBEXT): $(OBJECTS_libvlc_so) builtins
+       @ldfl="`$(VLC_CONFIG) --libs plugin vlc builtin $(pic)` $(INCLUDED_LIBINTL)" ; \
+       case `$(VLC_CONFIG) --linkage vlc builtin` in \
          c++)  ld="$(CXXLINK)" ;; \
          objc) ld="$(OBJCLINK)" ;; \
          c|*)  ld="$(LINK)" ;; \