]> git.sesse.net Git - vlc/blobdiff - Makefile.am
Build VLC aliases cleanly (don't need to parse argv[0])
[vlc] / Makefile.am
index 3d99d8c8949119ef7976f5eb0bafcdd4a57633e5..3d099306b72c41bd9a6126109d4fc167fa6f11ac 100644 (file)
@@ -19,14 +19,14 @@ EXTRA_DIST = \
        vlc.exe.manifest \
        MAINTAINERS \
        README.MacOSX.rtf \
-       bootstrap \
-       toolbox \
        vlc-config.in.in \
        vlc.fedora.spec \
        vlc.mandriva.spec \
        vlc.altlinux.spec \
        vlc.win32.nsi.in
 
+dist_noinst_SCRIPTS = bootstrap toolbox
+
 BUILT_SOURCES_distclean = vlc-config compile vlc.win32.nsi
 if HAVE_DARWIN
 BUILT_SOURCES_clean = macosx-sdk
@@ -213,8 +213,8 @@ EXTRA_DIST += \
        extras/make.pl \
        extras/valgrind.suppressions \
        extras/m4/autoconf260.m4 \
-       extras/dbus-vlc.py \
-       extras/dbus-vlc.glade
+       extras/mpris.py \
+       extras/mpris.glade
 
 dist-hook:
        distdir=$(distdir) srcdir=$(srcdir) $(SHELL) $(srcdir)/toolbox --dist-contrib
@@ -236,6 +236,14 @@ vlc-config.in: vlc-config.in.in
 CLEANFILES = $(BUILT_SOURCES_clean) stamp-builtin
 DISTCLEANFILES = $(BUILT_SOURCES_distclean) vlc-config.in compile
 
+# Shortcut for developpers to rebuild the core (libvlc + vlc)
+# Don't use it if you don't know what it is about.
+# Don't complain if it doesn't work. -- Courmisch
+libvlc:
+       cd src && $(MAKE) $(AM_MAKEFLAGS) $(LIB_libvlc)
+
+.PHONY: libvlc
+
 ###############################################################################
 # Building vlc
 ###############################################################################
@@ -246,31 +254,25 @@ vlc_SOURCES = src/vlc.c
 # Ugly kludge so that automake defines $(CXXLINK)
 nodist_EXTRA_vlc_SOURCES = extras/zsh.cpp src/misc/darwin_specific.m
 
-# Work around a bug in the arm-wince-pe linker
-if HAVE_WINCE
-vlc_WORKAROUNDLDFLAGS = $(LIBVLC)
-endif
-
-vlc_DEPENDENCIES = $(LIBVLC) $(DATA_win32_rc)
+vlc_DEPENDENCIES = $(DATA_win32_rc)
 
-vlc_LDADD = $(DATA_win32_rc) $(LIBVLC) $(LTLIBINTL)
+vlc_LDADD = $(DATA_win32_rc) $(LIBVLC) $(LTLIBINTL) `$(VLC_CONFIG) -libs vlc`
+vlc_LDFLAGS = `$(VLC_CONFIG) --ldflags vlc`
+if !HAVE_PLUGINS
+vlc_LDFLAGS += `$(VLC_CONFIG) --target plugin | sed -e 's/\_plugin /_plugin.la /g'`
+endif
 
 vlc_CFLAGS = `$(VLC_CONFIG) --cflags vlc`
 LIB_libvlc = libvlc.la
 LIBVLC = src/$(LIB_libvlc)
 
-# Shortcut for developpers to rebuild the core (libvlc + vlc)
-# Don't use it if you don't know what it is about.
-# Don't complain if it doesn't work. -- Courmisch
-libvlc:
-       cd src && $(MAKE) $(AM_MAKEFLAGS) $(LIB_libvlc)
-
-core: libvlc
-       $(MAKE) $(AM_MAKEFLAGS) vlc$(EXEEXT)
+#To get some nice output
+nice:
+       $(top_builddir)/compile
 
-.PHONY: libvlc core
+core: libvlc vlc$(EXEEXT)
 
-src/$(LIB_libvlc): libvlc
+.PHONY: core
 
 vlc$(EXEEXT): $(vlc_OBJECTS) $(vlc_DEPENDENCIES)
        @rm -f vlc$(EXEEXT)
@@ -279,7 +281,7 @@ vlc$(EXEEXT): $(vlc_OBJECTS) $(vlc_DEPENDENCIES)
          objc) cmd="$(OBJCLINK)" ;; \
          c|*) cmd="$(LINK)" ;; \
        esac ; \
-       cmd="$$cmd $(vlc_OBJECTS) $(vlc_LDADD)" ; \
+       cmd="$$cmd $(vlc_OBJECTS) $(vlc_LDADD) $(vlc_LDFLAGS)" ; \
        echo $$cmd ; \
        eval $$cmd
 
@@ -301,7 +303,7 @@ vlc-bundle: vlc
            cp $$i $(top_builddir)/vlc-bundle/lib/ ; \
          done ; \
        fi
-       for i in $(ALL_LINGUAS); do \
+       cat $(top_srcdir)/po/LINGUAS | while read i; do \
          mkdir -p "$(top_builddir)/vlc-bundle/locale/$$i/LC_MESSAGES" ; \
          cp "$(top_builddir)/po/$$i.gmo" \
            "$(top_builddir)/vlc-bundle/locale/$$i/LC_MESSAGES/vlc.mo" || true ; \
@@ -309,19 +311,35 @@ vlc-bundle: vlc
        find $(top_builddir)/vlc-bundle -type f -exec mimeset -f "{}" \;
 endif
 
-# Install the symlinks
-install-exec-local: install-binPROGRAMS
-       inst="`echo vlc | sed -e '$(transform)'`" ; \
-       for i in "" $(ALIASES) ; do if test -n "$$i" ; then \
-         rm -f "$(DESTDIR)$(bindir)/$$i" && \
-         ln -sf "$${inst}" "$(DESTDIR)$(bindir)/$$i" ; \
-       fi ; done
+###############################################################################
+# Building aliases
+###############################################################################
+
+ALL_ALIASES = cvlc rvlc svlc wxvlc qvlc nvlc
+bin_SCRIPTS += $(ALIASES)
+EXTRA_SCRIPTS = $(ALL_ALIASES)
+
+dist_noinst_SCRIPTS += make-alias
+
+MKALIAS = bindir="$(bindir)" transform="$(transform)" $(top_srcdir)/make-alias $@
 
-# the opposite of install-{data,exec}-local
-uninstall-local:
-       for i in "" $(ALIASES) ; do if test -n "$$i" ; then \
-         rm -f "$(DESTDIR)$(bindir)/$$i" ; \
-       fi ; done
+cvlc: make-alias
+       $(MKALIAS) dummy
+
+rvlc: make-alias
+       $(MKALIAS) rc
+
+svlc: make-alias
+       $(MKALIAS) skins2
+
+wxvlc: make-alias
+       $(MKALIAS) wx
+
+qvlc: make-alias
+       $(MKALIAS) qt4
+
+nvlc: make-alias
+       $(MKALIAS) ncurses
 
 if HAVE_DARWIN
 # Create the MacOS X app
@@ -404,6 +422,11 @@ VLC-release.app: vlc
                   $(top_builddir)/VLC-release.app/Contents/MacOS/VLC
        $(INSTALL) $(top_builddir)/src/.libs/libvlc.1.dylib \
                   $(top_builddir)/VLC-release.app/Contents/MacOS/lib/libvlc.dylib
+       $(INSTALL) $(top_builddir)/src/.libs/libvlc-control.1.dylib \
+                  $(top_builddir)/VLC-release.app/Contents/MacOS/lib/libvlc-control.dylib
+       install_name_tool -change /usr/local/lib/libvlc.1.dylib \
+                  @executable_path/lib/libvlc.dylib \
+                  $(top_builddir)/VLC-release.app/Contents/MacOS/lib/libvlc-control.dylib
        install_name_tool -change /usr/local/lib/libvlc.1.dylib \
                   @executable_path/lib/libvlc.dylib \
               $(top_builddir)/VLC-release.app/Contents/MacOS/VLC
@@ -424,6 +447,50 @@ VLC-release.app: vlc
        for i in $(srcdir)/share/luaplaylist/*.* ; do \
          $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/luaplaylist/`basename $${i}` ; \
        done ; \
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/luameta
+       for i in $(srcdir)/share/luameta/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/luameta/`basename $${i}` ; \
+       done ; \
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/luaintf
+       for i in $(srcdir)/share/luaintf/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/luaintf/`basename $${i}` ; \
+       done ; \
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/luaintf/modules
+       for i in $(srcdir)/share/luaintf/modules/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/luaintf/modules/`basename $${i}` ; \
+       done ; \
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/dialogs
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/js
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/old
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/old/admin
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/old/vlm
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/images
+       $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/requests
+       for i in $(srcdir)/share/http-lua/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/`basename $${i}` ; \
+       done ; \
+       for i in $(srcdir)/share/http-lua/dialogs/* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/dialogs/`basename $${i}` ; \
+       done ; \
+       for i in $(srcdir)/share/http-lua/js/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/js/`basename $${i}` ; \
+       done ; \
+       for i in $(srcdir)/share/http-lua/old/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/old/`basename $${i}` ; \
+       done ; \
+       for i in $(srcdir)/share/http-lua/old/admin/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/old/admin/`basename $${i}` ; \
+       done ; \
+       for i in $(srcdir)/share/http-lua/old/vlm/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/old/vlm/`basename $${i}` ; \
+       done ; \
+       for i in $(srcdir)/share/http-lua/images/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/images/`basename $${i}` ; \
+       done ; \
+       for i in $(srcdir)/share/http-lua/requests/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/requests/`basename $${i}` ; \
+       done ; \
+       $(INSTALL) -m 644 $(srcdir)/share/http-lua/requests/readme $(top_builddir)/VLC-release.app/Contents/MacOS/share/http-lua/requests/readme.txt
        $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/dialogs
        $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/js
        $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/old
@@ -457,7 +524,7 @@ VLC-release.app: vlc
        done ; \
        $(INSTALL) -m 644 $(srcdir)/share/http/requests/readme $(top_builddir)/VLC-release.app/Contents/MacOS/share/http/requests/readme.txt
        $(INSTALL) -d $(top_builddir)/VLC-release.app/Contents/MacOS/locale
-       for i in $(ALL_LINGUAS); do \
+       cat $(top_srcdir)/po/LINGUAS | while read i; do \
          mkdir -p $(top_builddir)/VLC-release.app/Contents/MacOS/locale/$${i}/LC_MESSAGES ; \
          cp $(srcdir)/po/$${i}.gmo $(top_builddir)/VLC-release.app/Contents/MacOS/locale/$${i}/LC_MESSAGES/vlc.mo || true ; \
          mkdir -p $(top_builddir)/VLC-release.app/Contents/Resources/$${i}.lproj ; \
@@ -546,6 +613,11 @@ VLC.app: vlc
                   $(top_builddir)/VLC.app/Contents/MacOS/VLC
        $(INSTALL) $(top_builddir)/src/.libs/libvlc.1.dylib \
                   $(top_builddir)/VLC.app/Contents/MacOS/lib/libvlc.dylib
+       $(INSTALL) $(top_builddir)/src/.libs/libvlc-control.1.dylib \
+                  $(top_builddir)/VLC.app/Contents/MacOS/lib/libvlc-control.dylib
+       install_name_tool -change /usr/local/lib/libvlc.1.dylib \
+                  @executable_path/lib/libvlc.dylib \
+                  $(top_builddir)/VLC.app/Contents/MacOS/lib/libvlc-control.dylib
        install_name_tool -change /usr/local/lib/libvlc.1.dylib \
                   @executable_path/lib/libvlc.dylib \
               $(top_builddir)/VLC.app/Contents/MacOS/VLC
@@ -566,9 +638,9 @@ VLC.app: vlc
            ln -sfn `pwd`/$${i} $(top_builddir)/VLC.app/Contents/MacOS/lib/`basename $${i}` ; \
          done ; \
        fi
-       ln -sfn `pwd`/share $(top_builddir)/VLC.app/Contents/MacOS/
+       ln -sfn `pwd`/$(srcdir)/share $(top_builddir)/VLC.app/Contents/MacOS/
        $(INSTALL) -d $(top_builddir)/VLC.app/Contents/MacOS/locale
-       for i in $(ALL_LINGUAS); do \
+       cat $(top_srcdir)/po/LINGUAS | while read i; do \
          mkdir -p $(top_builddir)/VLC.app/Contents/MacOS/locale/$${i}/LC_MESSAGES ; \
          ln -sfn `pwd`/po/$${i}.gmo $(top_builddir)/VLC.app/Contents/MacOS/locale/$${i}/LC_MESSAGES/vlc.mo || true ; \
          mkdir -p $(top_builddir)/VLC.app/Contents/Resources/$${i}.lproj ; \
@@ -589,30 +661,12 @@ share/vlc_win32_rc.$(OBJEXT): share/vlc_win32_rc.rc
 endif
 
 
-###############################################################################
-# Building specific source packages
-###############################################################################
-
-dist-woody: distdir
-       $(remove_distdir_woody)
-       mv $(distdir) $(PACKAGE)-woody-$(VERSION)
-       $(srcdir)/toolbox --make-woody $(PACKAGE)-woody-$(VERSION)
-       $(AMTAR) chof - $(PACKAGE)-woody-$(VERSION) \
-         | GZIP=$(GZIP_ENV) gzip -c >$(PACKAGE)-woody-$(VERSION).tar.gz
-       $(remove_distdir_woody)
-
-remove_distdir_woody = \
-  { test ! -d $(PACKAGE)-woody-$(VERSION) \
-    || { find $(PACKAGE)-woody-$(VERSION) -type d ! -perm -200 \
-           -exec chmod u+w {} ';' \
-         && rm -fr $(PACKAGE)-woody-$(VERSION); }; }
-
 ###############################################################################
 # Building architecture-specific binary packages
 ###############################################################################
 
 # XXX: this rule is probably only useful to you if you have exactly
-# the same setup as me. Contact sam@zoy.org if you need to use it.
+# the same setup as the maintaner(s).
 #
 
 package-win-common:
@@ -630,18 +684,57 @@ package-win-common:
        cp "$(top_builddir)/src/.libs/libvlc$(LIBEXT)" "vlc-${VERSION}/"
        cp "$(top_builddir)/src/.libs/libvlc-control$(LIBEXT)" "vlc-${VERSION}/"
 
-       for file in AUTHORS MAINTAINERS THANKS NEWS COPYING README ; \
-         do sed 's/@/_AT_/' < "$(srcdir)/$$file" > "$(top_builddir)/vlc-${VERSION}/$${file}.txt" ; \
-         unix2dos "$(top_builddir)/vlc-${VERSION}/$${file}.txt" ; done
+       for file in AUTHORS MAINTAINERS THANKS ; \
+         do sed 's/@/_AT_/' < "$(srcdir)/$$file" > "$(top_builddir)/vlc-${VERSION}/$${file}.txt" ; done;
+       for file in NEWS COPYING README; \
+          do cp "$(srcdir)/$$file" "$(top_builddir)/vlc-${VERSION}/$${file}.txt"; done
+         unix2dos "$(top_builddir)/vlc-${VERSION}/"*.txt
 
        mkdir $(top_builddir)/vlc-${VERSION}/locale
-       for i in $(ALL_LINGUAS); do \
+       cat $(top_srcdir)/po/LINGUAS | while read i; do \
          mkdir -p "$(top_builddir)/vlc-${VERSION}/locale/$${i}/LC_MESSAGES" ; \
          cp "$(srcdir)/po/$${i}.gmo" \
            "$(top_builddir)/vlc-${VERSION}/locale/$${i}/LC_MESSAGES/vlc.mo" \
             || true ; \
        done
 
+       mkdir -p "$(top_builddir)/vlc-${VERSION}/http-lua/images"
+       mkdir -p "$(top_builddir)/vlc-${VERSION}/http-lua/requests"
+       mkdir -p "$(top_builddir)/vlc-${VERSION}/http-lua/js"
+       mkdir -p "$(top_builddir)/vlc-${VERSION}/http-lua/dialogs"
+       mkdir -p "$(top_builddir)/vlc-${VERSION}/http-lua/old"
+       mkdir -p "$(top_builddir)/vlc-${VERSION}/http-lua/old/vlm"
+       mkdir -p "$(top_builddir)/vlc-${VERSION}/http-lua/old/admin"
+       cp $(srcdir)/share/http-lua/*.html $(top_builddir)/vlc-${VERSION}/http-lua/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/*.html ;
+       cp $(srcdir)/share/http-lua/.hosts $(top_builddir)/vlc-${VERSION}/http-lua/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/.hosts ;
+       cp $(srcdir)/share/http-lua/*.css $(top_builddir)/vlc-${VERSION}/http-lua/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/*.css ;
+       cp $(srcdir)/share/http-lua/js/*.js $(top_builddir)/vlc-${VERSION}/http-lua/js/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/js/*.js ;
+       cp $(srcdir)/share/http-lua/dialogs/* $(top_builddir)/vlc-${VERSION}/http-lua/dialogs/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/dialogs/* ;
+       cp $(srcdir)/share/http-lua/dialogs/.hosts $(top_builddir)/vlc-${VERSION}/http-lua/dialogs/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/dialogs/.hosts ;
+       cp $(srcdir)/share/http-lua/*.ico $(top_builddir)/vlc-${VERSION}/http-lua/ ;
+       cp $(srcdir)/share/http-lua/images/*.png $(top_builddir)/vlc-${VERSION}/http-lua/images/
+       cp $(srcdir)/share/http-lua/requests/*.xml $(top_builddir)/vlc-${VERSION}/http-lua/requests/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/requests/*.xml ;
+       cp $(srcdir)/share/http-lua/requests/readme $(top_builddir)/vlc-${VERSION}/http-lua/requests/readme.txt ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/requests/readme.txt ;
+
+       cp $(srcdir)/share/http-lua/old/*.html $(top_builddir)/vlc-${VERSION}/http-lua/old/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/old/*.html ;
+       cp $(srcdir)/share/http-lua/old/*.css $(top_builddir)/vlc-${VERSION}/http-lua/old/ ;
+       cp $(srcdir)/share/http-lua/old/.hosts $(top_builddir)/vlc-${VERSION}/http-lua/old/ ;
+       cp $(srcdir)/share/http-lua/old/*.png $(top_builddir)/vlc-${VERSION}/http-lua/old/ ;
+       cp $(srcdir)/share/http-lua/old/vlm/*.html $(top_builddir)/vlc-${VERSION}/http-lua/old/vlm/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/old/vlm/*.html ;
+       cp $(srcdir)/share/http-lua/old/admin/*.html $(top_builddir)/vlc-${VERSION}/http-lua/old/admin/ ;
+       unix2dos $(top_builddir)/vlc-${VERSION}/http-lua/old/admin/*.html ;
+       cp $(srcdir)/share/http-lua/old/admin/.access $(top_builddir)/vlc-${VERSION}/http-lua/old/admin/ ;
+
        mkdir -p "$(top_builddir)/vlc-${VERSION}/http/images"
        mkdir -p "$(top_builddir)/vlc-${VERSION}/http/requests"
        mkdir -p "$(top_builddir)/vlc-${VERSION}/http/js"
@@ -729,17 +822,37 @@ package-win32-base-debug: package-win-common
          cp $$i $(top_builddir)/vlc-${VERSION}/skins/ || true ; \
        done
 
+       $(INSTALL) -d $(top_builddir)/vlc-${VERSION}/share/luaplaylist
+       for i in $(srcdir)/share/luaplaylist/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/vlc-${VERSION}/share/luaplaylist/`basename $${i}` ; \
+       done ;
+       $(INSTALL) -d $(top_builddir)/vlc-${VERSION}/share/luameta
+       for i in $(srcdir)/share/luameta/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/vlc-${VERSION}/share/luameta/`basename $${i}` ; \
+       done ;
+       $(INSTALL) -d $(top_builddir)/vlc-${VERSION}/share/luaintf
+       for i in $(srcdir)/share/luaintf/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/vlc-${VERSION}/share/luaintf/`basename $${i}` ; \
+       done ;
+       $(INSTALL) -d $(top_builddir)/vlc-${VERSION}/share/luaintf/modules
+       for i in $(srcdir)/share/luaintf/modules/*.* ; do \
+         $(INSTALL) -m 644 $${i} $(top_builddir)/vlc-${VERSION}/share/luaintf/modules/`basename $${i}` ; \
+       done ;
+
        mkdir -p "$(top_builddir)/vlc-${VERSION}/osdmenu"
        cp $(srcdir)/share/osdmenu/*.* "$(top_builddir)/vlc-${VERSION}/osdmenu"
-       for dir in dvd dvd/selected dvd/unselect dvd/selection dvd/volume default default/selected default/selection default/volume;do \
+       for dir in dvd dvd/selected dvd/unselect dvd/selection dvd/volume default default/selected default/selection default/volume minimal;do \
                mkdir -p "$(top_builddir)/vlc-${VERSION}/osdmenu/$$dir"; \
                for file in $(srcdir)/share/osdmenu/$${dir}/*.*;do \
                         cp $$file "$(top_builddir)/vlc-${VERSION}/osdmenu/$$dir" || true; \
                done; \
        done
        unix2dos $(top_builddir)/vlc-${VERSION}/osdmenu/*.cfg;
-       sed -i 's%share/osdmenu%osdmenu%g' $(top_builddir)/vlc-${VERSION}/osdmenu/*.cfg
-       sed -i 's%/%\\%g' $(top_builddir)/vlc-${VERSION}/osdmenu/*.cfg 
+       for file in $(top_builddir)/vlc-${VERSION}/osdmenu/*.cfg; do \
+               if sed 's%share/osdmenu%osdmenu%g' $$file >$$file.tmp; then :; else exit 1; fi; \
+               if sed 's%/%\\%g' $$file.tmp >$$file; then :; else exit 1; fi; \
+               rm -f $$file.tmp; \
+       done
 
 
 package-win32-base: package-win32-base-debug package-win-common-strip
@@ -752,7 +865,9 @@ package-win32-base-exe: package-win32-base
            MAKENSIS="makensis -DVERSION=${VERSION}"; \
        elif [ -x "/cygdrive/c/Program Files/NSIS/makensis" ]; then \
            MAKENSIS="/cygdrive/c/Program\ Files/NSIS/makensis /DVERSION=${VERSION}"; \
-       elif wine --version >dev/null 2>&1; then \
+       elif [ -x "${PROGRAMFILES}/NSIS/makensis" ]; then \
+           MAKENSIS="${PROGRAMFILES}/NSIS/makensis -DVERSION=${VERSION}"; \
+       elif wine --version >/dev/null 2>&1; then \
            MAKENSIS="wine C:/Program\ Files/NSIS/makensis.exe /DVERSION=${VERSION}"; \
        else \
            echo 'Error: cannot locate makensis tool'; exit 1; \
@@ -851,6 +966,10 @@ package-macosx:
        echo "Create package directory: vlc-${VERSION}/";
        mkdir -p "$(top_builddir)/vlc-${VERSION}/";
 
+# For now, export the framework for third parties, from here
+       (cd $(top_builddir)/extras/MacOSX/Framework && xcodebuild);
+       cp -r $(top_builddir)/extras/MacOSX/Framework/build/Release/VLC.framework $(top_builddir)/vlc-${VERSION}/VLC.framework
+
 # Copy relevant files 
        @if test -e "$(top_builddir)/VLC-release.app/"; then \
          cp -R "$(top_builddir)/VLC-release.app" "$(top_builddir)/vlc-${VERSION}/VLC.app"; \
@@ -882,38 +1001,7 @@ package-macosx:
        hdiutil attach -readwrite -noverify -noautoopen "$(top_builddir)/vlc-${VERSION}.dmg" -mountpoint "$(top_builddir)/vlcmnt/vlc-${VERSION}" ;
        bless --folder "$(top_builddir)/vlcmnt/vlc-${VERSION}/" --openfolder "$(top_builddir)/vlcmnt/vlc-${VERSION}" ;
        sleep 1 # Make sure operation completes
-
-# Place the image disk finder icon at the correct place
-# Note: careful here the finder does some weird things
-# sometimes. delays in the script should prevent those.
        cd "$(srcdir)"
-       osascript -e "tell application \"Finder\"" \
-       -e "   set f to POSIX file (\"$(top_builddir)/vlcmnt/vlc-${VERSION}/\" as string) as alias" \
-       -e "   tell folder f" \
-       -e "       open" \
-       -e "       tell container window" \
-       -e "          set toolbar visible to false" \
-       -e "          set statusbar visible to false" \
-       -e "          set current view to icon view" \
-       -e "          delay 1 -- Sync" \
-       -e "          set the bounds to {50, 100, 1000, 1000} -- Big size so the finder won't do silly things" \
-       -e "       end tell" \
-       -e "       delay 1 -- Sync" \
-       -e "       set icon size of the icon view options of container window to 128" \
-       -e "       set arrangement of the icon view options of container window to not arranged" \
-       -e "       set background picture of the icon view options of container window to file \".background:background.png\"" \
-       -e "       set position of item \"VLC.app\" to {100, 20}" \
-       -e "       set position of item \"Applications\" to {310, 20}" \
-       -e "       set position of item \"Goodies\" to {40, 200}" \
-       -e "       set position of item \"Read Me.rtf\" to {410, 200}" \
-       -e "       set the bounds of the container window to {50, 100, 590, 500}" \
-       -e "       update without registering applications" \
-       -e "       delay 5 -- Sync" \
-       -e "       close" \
-       -e "   end tell" \
-       -e "   -- Sync" \
-       -e "   delay 5" \
-       -e "end tell" || true # Make sure we don't make the build bots fail
 
 # Unmount the image now
        hdiutil detach "$(top_builddir)/vlcmnt/vlc-${VERSION}" ;
@@ -940,7 +1028,7 @@ if BUILD_MOZILLA
        mkdir -p "$(top_builddir)/macosx-plugin-instdata"
        cp -R "$(top_builddir)/mozilla/VLC Plugin.plugin" "$(top_builddir)/macosx-plugin-instdata"
        rm -rf "$(top_builddir)/VLC Internet Plug-In.pkg"
-       /Developer/Tools/packagemaker -build -ds -p "$(top_builddir)/VLC Internet Plug-In.pkg" \
+       PATH=/Developer/usr/bin:/Developer/Tools:$$PATH packagemaker -build -ds -p "$(top_builddir)/VLC Internet Plug-In.pkg" \
        -f "$(top_builddir)/macosx-plugin-instdata" \
        -i "$(srcdir)/extras/MacOSX/plugin/InstallerInfo.plist" \
        -d "$(srcdir)/extras/MacOSX/plugin/InstallerDescription.plist"; true
@@ -966,7 +1054,7 @@ package-translations:
          echo "OK."; mkdir -p "$(srcdir)/vlc-translations-${VERSION}"; \
        fi
 # Copy translations
-       for i in $(ALL_LINGUAS); do \
+       cat $(top_srcdir)/po/LINGUAS | while read i; do \
          cp "$(srcdir)/po/$${i}.po" \
            "$(srcdir)/vlc-translations-${VERSION}/$${i}.po" \
            || true ; \
@@ -988,6 +1076,8 @@ package-translations:
 
 ###############################################################################
 # PO translation files update
+# Generate po/POTFILES.in which lists all the files containing translatable
+# strings. Find all source files and remove the generated files
 ###############################################################################
 .PHONY: update-po
 
@@ -999,13 +1089,15 @@ update-po:
          echo "" ; \
          echo "# main sources" ; \
          find include src -name '*.[chm]' -o -name '*.[ch]pp' \
-           | grep -v '\(misc/modules_\|src/misc/revision.c\|modules/builtin.h\)' \
+           | grep -v '\(misc/modules_\|src/misc/revision.c\|modules/builtin.h\|include/vlc_about.h\)' \
            | sort ; \
          echo "" ; \
          echo "# modules" ; \
-         find modules -name '*.[chm]' -o -name '*.[ch]pp' -o -wholename 'modules/gui/qt4/ui/*.ui'\
+         find modules -name '*.[chm]' -o -name '*.[ch]pp' -o -name '*.ui' \
            | grep -v '\(\.moc\.\|gui/gtk2/\)' \
-           | grep -vE 'qt4/ui/.*.h' |grep -v qt4/resources.cpp \
+           | grep -vE 'qt4/ui/.*.h' \
+           | grep -v 'qt4/resources.cpp\|qt4/dialogs/about.hpp' \
+           | grep -v 'gui/opie' \
            | sort ; \
        } > $(top_srcdir)/po/POTFILES.in
        rm -f $(top_srcdir)/po/vlc.pot
@@ -1016,22 +1108,18 @@ update-po:
 ###############################################################################
 # Stamp rules
 ###############################################################################
-stamp-builtin: FORCE
-       @for dep in "" `$(VLC_CONFIG) --target builtin`; do \
-         if test "$${dep}" -nt "$(top_builddir)/vlc$(EXEEXT)"; then \
-           rm -f $@; \
+stamp-builtin:
+       @for dep in "" `$(VLC_CONFIG) --target plugin`; do \
+         if test "$${dep}.la" -nt "$(top_builddir)/vlc$(EXEEXT)"; then \
+           touch "$@"; \
            break; \
          fi; \
        done
-       @if test ! -f $@; then printf "" > $@; fi
+
+.PHONY: stamp-builtin
 
 ###############################################################################
 # Enforce Mac OS X deployment target environment variable
 ###############################################################################
 macosx-sdk: Makefile.in $(HEADERS_include) vlc-config
        export MACOSX_DEPLOYMENT_TARGET=$(MACOSX_DEPLOYMENT_TARGET)
-
-###############################################################################
-# Force rule
-###############################################################################
-FORCE: