]> git.sesse.net Git - vlc/blobdiff - debian/rules
* : svn:keywords
[vlc] / debian / rules
index d6ce94efd22e8cd80852bb10108a20b86189d1a7..ec6b83276a72ddc8602c3199b7eb23d0318d9d76 100755 (executable)
 #!/usr/bin/make -f
-# debian/rules for the VideoLAN Client - uses debhelper.
+# debian/rules for the VLC media player - uses debhelper.
+# $Id$
 # based on Joey Hess's one.
 
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
+include /usr/share/dpatch/dpatch.make
 
-# This is the debhelper compatability version to use.
-export DH_COMPAT=3
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+confflags = --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) 
 
+#
 # Compilation options
-export CONFIG_FLAGS="--enable-release --prefix=/usr --enable-gnome --enable-gtk --enable-fb --enable-ggi --enable-sdl --enable-esd --enable-qt --enable-mad --enable-arts --enable-alsa --enable-lirc --enable-a52"
-export LIBDVDCSS_FLAGS="--with-dvdcss=local-shared"
-export VIDDIR="usr/share/videolan"
-export PIXDIR="usr/share/pixmaps"
-export GNOMEDIR="usr/share/gnome/apps/Multimedia"
+#
+vlc_confflags = --enable-release --prefix=/usr
+vlc_confflags += \
+       --disable-gnome \
+       --disable-gtk \
+       --disable-familiar \
+       --disable-fb \
+       --enable-ggi \
+       --enable-sdl \
+       --enable-esd \
+       --disable-qt \
+       --enable-mad \
+       --enable-arts \
+       --enable-alsa \
+       --enable-lirc \
+       --enable-a52 \
+       --enable-aa \
+       --enable-dvbpsi \
+       --enable-mozilla \
+       --disable-kde \
+       --enable-mp4 \
+       --enable-dvb \
+       --enable-dv \
+       --disable-satellite \
+       --enable-ogg \
+       --enable-vorbis \
+       --enable-wxwidgets \
+       --with-wx-config=wx-config \
+       --disable-slp \
+       --enable-flac \
+       --disable-skins \
+       --disable-basic-skins \
+       --enable-skins2 \
+       --enable-freetype \
+       --enable-mkv \
+       --enable-v4l \
+       --enable-pvr \
+       --disable-speex \
+       --enable-caca \
+       --enable-livedotcom \
+       --enable-libmpeg2 \
+       --enable-dts \
+       --enable-fribidi \
+       --enable-cdio \
+       --enable-mod \
+       --enable-theora \
+       --enable-modplug \
+       --enable-dvdnav \
+       --enable-gnutls \
+       --enable-ffmpeg \
+       --enable-ncurses \
+       --enable-smb \
+       --disable-gnomevfs \
+       --enable-bonjour \
+       --enable-mpc \
+       --enable-vcd \
+       --enable-vcdx \
+       --enable-xosd \
+       $(NULL)
 
-# Library options
-version=$(shell grep '^ *LIBDVDCSS_VERSION=' configure.in | head -1 | sed 's/"//g' | cut -f2 -d=)
-major=$(shell echo "$(version)" | cut -f1 -d.)
+
+# These ones are currently shipped with VLC
+vlc_confflags += --enable-faad --with-faad-tree=extras/faad2
+vlc_confflags += --enable-x264 --with-x264-tree=extras/x264
+
+# Glide and svgalib are only for x86
+ifeq ($(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU),i386)
+vlc_confflags += --enable-glide
+vlc_confflags += --enable-svgalib
+endif
+
+# Remove --without-dvdcss in non-totalitarian countries
+vlc_confflags += --enable-dvd --without-dvdcss
+
+# A few shortcuts
+VIDDIR = usr/share/vlc
+PIXDIR = usr/share/pixmaps
+APPDIR = usr/share/applications
+
+
+#
+# Build rules
+#
+
+configure: configure-stamp
+configure-stamp:
+       dh_testdir
+
+       # Touch stuff
+       touch configure.ac
+       touch aclocal.m4
+       touch configure
+       touch config.h.in
+       touch `find . -name Makefile.in`
+
+       # Check that we have an x264 tree in here (can be a symlink)
+       test -d extras/x264
+       cd extras/x264 \
+        && ./configure $(confflags) --extra-cflags='$$(ECFLAGS)' \
+                                    --extra-asflags='$$(EASFLAGS)' \
+        && $(MAKE)
+
+       # Check that we have an faad2 tree in here (can be a symlink)
+       test -d extras/faad2
+       cd extras/faad2 \
+        && touch `find . -name configure.in` \
+        && touch `find . -name aclocal.m4` \
+        && touch `find . -name configure` \
+        && touch `find . -name config.h.in` \
+        && touch `find . -name Makefile.in` \
+        && ./configure $(confflags) --disable-shared \
+        && cd libfaad \
+        && $(MAKE)
+
+       # Configure VLC
+       ./configure --mandir=$${prefix}/share/man \
+         --infodir=$${prefix}/share/info $(confflags) $(vlc_confflags)
+
+       touch configure-stamp
 
 build: build-stamp
-build-stamp:
+build-stamp: patch configure-stamp
        dh_testdir
 
-       case $(DEB_BUILD_ARCH) in \
-       i386) \
-               ARCH_FLAGS="--enable-glide" ;; \
-       *) \
-               ARCH_FLAGS="" ;; \
-       esac ;\
-       ./configure $$ARCH_FLAGS --mandir=$${prefix}/share/man \
-               --infodir=$${prefix}/share/info \
-               $(shell echo $(CONFIG_FLAGS)) $(shell echo $(LIBDVDCSS_FLAGS))
+       # Build only VLC, with the non-PIC libs
+       $(MAKE) include/vlc_symbols.h
+       cd modules && AM_MAKEFLAGS='plugin=no pic=no' $(MAKE)
+       $(MAKE) vlc
+
+       # Hackety hackety hack
+       cd extras/x264 && $(MAKE) clean && $(MAKE) ECFLAGS=-fPIC EASFLAGS=-D__PIC__
+
+       # HACKETY HACKETY HACK
+       cd extras/faad2/libfaad && $(MAKE) clean && $(MAKE) AM_CFLAGS=-fPIC
 
-       $(MAKE)
+       # Build all the rest, with the PIC libs
+       AM_MAKEFLAGS='builtin=no' $(MAKE)
+
+       # Minor test, to see which plugins were built and whether they load
+       # properly.
+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
+       ./vlc --reset-plugins-cache -l -I rc vlc:quit
+endif
 
        touch build-stamp
 
-clean:
+clean: unpatch
        dh_testdir
        dh_testroot
-       rm -f build-stamp
+       rm -f configure-stamp build-stamp
+
+       # Check that we have an x264 tree in here (can be a symlink)
+       test -d extras/x264
+       -cd extras/x264 && $(MAKE) distclean
+       # Check that we have an faad2 tree in here (can be a symlink)
+       test -d extras/faad2
+       -cd extras/faad2 && $(MAKE) distclean
+
+       # Clean zsh completion stuff
+       rm -f extras/zsh
+
+       # Removed ugly cruft
+       rm -f src/misc/modules_builtin.h
+       rm -f mozilla/vlcintf.xpt mozilla/vlcintf.h
+
+       # Remove spurious autotools stuff
+       rm -f config.log confdefs.h
 
        -$(MAKE) distclean
 
@@ -54,48 +195,132 @@ install: build
 
        DESTDIR=`pwd`/debian/vlc/ $(MAKE) install prefix=/usr
 
-       # make symlinks for packages and install plugins
-       case $(DEB_BUILD_ARCH) in \
-       i386) \
-               ARCH_ALIASES="ggi gtk gnome esd sdl qt arts mad alsa a52 lirc glide" ;; \
-       *) \
-               ARCH_ALIASES="ggi gtk gnome esd sdl qt arts mad alsa a52 lirc" ;; \
-       esac ;\
-       for alias in $$ARCH_ALIASES ; do \
-               ln -s vlc debian/vlc-$$alias/usr/share/doc/vlc-$$alias ; \
-               mv debian/vlc/usr/lib/videolan/vlc/$$alias.so \
-                       debian/vlc-$$alias/usr/lib/videolan/vlc/ ; done
-
-       mv debian/vlc/usr/bin/gvlc debian/vlc-gtk/usr/bin/
-       mv debian/vlc/usr/bin/gnome-vlc debian/vlc-gnome/usr/bin/
-       mv debian/vlc/usr/bin/qvlc debian/vlc-qt/usr/bin/
-
+       # Package: vlc
        mv debian/vlc/$(VIDDIR)/vlc48x48.png debian/vlc/$(PIXDIR)/vlc.png
-       mv debian/vlc/$(VIDDIR)/gvlc32x32.xpm debian/vlc-gtk/$(VIDDIR)/gvlc.xpm
-       mv debian/vlc/$(VIDDIR)/gvlc48x48.png debian/vlc-gtk/$(PIXDIR)/gvlc.png
-       mv debian/vlc/$(VIDDIR)/gnome-vlc32x32.xpm debian/vlc-gnome/$(VIDDIR)/gnome-vlc.xpm
-       mv debian/vlc/$(VIDDIR)/gnome-vlc48x48.png debian/vlc-gnome/$(PIXDIR)/gnome-vlc.png
-       mv debian/vlc/$(VIDDIR)/qvlc32x32.xpm debian/vlc-qt/$(VIDDIR)/qvlc.xpm
-       mv debian/vlc/$(VIDDIR)/qvlc48x48.png debian/vlc-qt/$(PIXDIR)/qvlc.png
+       mv debian/vlc/$(VIDDIR)/vlc32x32.xpm debian/vlc/$(VIDDIR)/vlc.xpm
+       cp debian/gvlc.desktop debian/gvlc/$(APPDIR)
+       cp debian/gnome-vlc.desktop debian/gnome-vlc/$(APPDIR)
 
-       cp debian/vlc.desktop debian/vlc/$(GNOMEDIR)
-       cp debian/gvlc.desktop debian/vlc-gtk/$(GNOMEDIR)
-       cp debian/gnome-vlc.desktop debian/vlc-gnome/$(GNOMEDIR)
+       #cp doc/fortunes.txt debian/vlc/usr/share/games/fortunes/vlc
+       #strfile doc/fortunes.txt debian/vlc/usr/share/games/fortunes/vlc.dat
 
-       #gzip -9 < doc/vlc.1 >| debian/vlc/usr/share/man/man1/vlc.1.gz
-       ln -s vlc.1.gz debian/vlc-gtk/usr/share/man/man1/gvlc.1.gz
-       ln -s vlc.1.gz debian/vlc-gnome/usr/share/man/man1/gnome-vlc.1.gz
-       ln -s vlc.1.gz debian/vlc-qt/usr/share/man/man1/qvlc.1.gz
+       rm -Rf debian/vlc/$(VIDDIR)/skins
+       ln -s vlc.1.gz debian/vlc/usr/share/man/man1/svlc.1.gz
 
-# libdvdcss start
-       mv debian/vlc/usr/include/videolan/dvdcss.h \
-                               debian/libdvdcss$(major)-dev/usr/include/videolan
+       # Package: libvlc0-dev
+       mv debian/vlc/usr/bin/vlc-config debian/libvlc0-dev/usr/bin/
+       mv debian/vlc/usr/lib/*.a debian/libvlc0-dev/usr/lib/
+       mv debian/vlc/usr/lib/vlc/*.a debian/libvlc0-dev/usr/lib/vlc/
+       mv debian/vlc/usr/include/vlc/*.h debian/libvlc0-dev/usr/include/vlc/
        rm -Rf debian/vlc/usr/include
-       mv debian/vlc/usr/lib/*.a debian/libdvdcss$(major)-dev/usr/lib
-       mv debian/vlc/usr/lib/*.so debian/libdvdcss$(major)-dev/usr/lib
-       mv debian/vlc/usr/lib/*.so.* debian/libdvdcss$(major)/usr/lib
-       ln -s libdvdcss$(major) debian/libdvdcss$(major)-dev/usr/share/doc/libdvdcss$(major)-dev
-# libdvdcss stop
+       ln -s vlc debian/libvlc0-dev/usr/share/doc/libvlc0-dev
+
+       # Package: gnome-vlc
+       #mv debian/vlc/usr/bin/gnome-vlc debian/gnome-vlc/usr/bin/
+       ln -s vlc debian/gnome-vlc/usr/share/doc/gnome-vlc
+       #mv debian/vlc/usr/lib/vlc/misc/libgnome_main_plugin.so \
+       #  debian/gnome-vlc/usr/lib/vlc/gui/
+       #mv debian/vlc/usr/lib/vlc/gui/libgnome_plugin.so \
+       #  debian/gnome-vlc/usr/lib/vlc/gui/
+       #ln -s vlc.1.gz debian/gnome-vlc/usr/share/man/man1/gnome-vlc.1.gz
+       #mv debian/vlc/$(VIDDIR)/gnome-vlc32x32.xpm debian/gnome-vlc/$(VIDDIR)/gnome-vlc.xpm
+       #mv debian/vlc/$(VIDDIR)/gnome-vlc48x48.png debian/gnome-vlc/$(PIXDIR)/gnome-vlc.png
+
+       # Package: gvlc
+       #mv debian/vlc/usr/bin/gvlc debian/gvlc/usr/bin/
+       ln -s vlc debian/gvlc/usr/share/doc/gvlc
+       #mv debian/vlc/usr/lib/vlc/misc/libgtk_main_plugin.so \
+       #  debian/gvlc/usr/lib/vlc/gui/
+       #mv debian/vlc/usr/lib/vlc/gui/libgtk_plugin.so \
+       #  debian/gvlc/usr/lib/vlc/gui/
+       #mv debian/vlc/usr/lib/vlc/gui/libfamiliar_plugin.so \
+       #  debian/gvlc/usr/lib/vlc/gui/
+       #ln -s vlc.1.gz debian/gvlc/usr/share/man/man1/gvlc.1.gz
+       #mv debian/vlc/$(VIDDIR)/gvlc32x32.xpm debian/gvlc/$(VIDDIR)/gvlc.xpm
+       #mv debian/vlc/$(VIDDIR)/gvlc48x48.png debian/gvlc/$(PIXDIR)/gvlc.png
+
+       # Package: vlc-plugin-esd
+       ln -s vlc debian/vlc-plugin-esd/usr/share/doc/vlc-plugin-esd
+       mv debian/vlc/usr/lib/vlc/audio_output/libesd_plugin.so \
+         debian/vlc-plugin-esd/usr/lib/vlc/audio_output/
+
+       # Package: vlc-plugin-alsa
+       ln -s vlc debian/vlc-plugin-alsa/usr/share/doc/vlc-plugin-alsa
+       mv debian/vlc/usr/lib/vlc/audio_output/libalsa_plugin.so \
+         debian/vlc-plugin-alsa/usr/lib/vlc/audio_output/
+
+       # Package: vlc-plugin-sdl
+       ln -s vlc debian/vlc-plugin-sdl/usr/share/doc/vlc-plugin-sdl
+       mv debian/vlc/usr/lib/vlc/audio_output/libaout_sdl_plugin.so \
+         debian/vlc-plugin-sdl/usr/lib/vlc/audio_output/
+       mv debian/vlc/usr/lib/vlc/video_output/libvout_sdl_plugin.so \
+         debian/vlc-plugin-sdl/usr/lib/vlc/video_output/
+
+       # Package: vlc-plugin-ggi
+       ln -s vlc debian/vlc-plugin-ggi/usr/share/doc/vlc-plugin-ggi
+       mv debian/vlc/usr/lib/vlc/video_output/libggi_plugin.so \
+         debian/vlc-plugin-ggi/usr/lib/vlc/video_output/
+
+       # Package: vlc-plugin-glide
+ifeq ($(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU),i386)
+       ln -s vlc debian/vlc-plugin-glide/usr/share/doc/vlc-plugin-glide
+       mv debian/vlc/usr/lib/vlc/video_output/libglide_plugin.so \
+         debian/vlc-plugin-glide/usr/lib/vlc/video_output/
+endif
+
+       # Package: qvlc
+       #mv debian/vlc/usr/bin/qvlc debian/qvlc/usr/bin/
+       ln -s vlc debian/qvlc/usr/share/doc/qvlc
+       #mv debian/vlc/usr/lib/vlc/gui/libqt_plugin.so \
+       #  debian/qvlc/usr/lib/vlc/gui/
+       #ln -s vlc.1.gz debian/qvlc/usr/share/man/man1/qvlc.1.gz
+       #mv debian/vlc/$(VIDDIR)/qvlc32x32.xpm debian/qvlc/$(VIDDIR)/qvlc.xpm
+       #mv debian/vlc/$(VIDDIR)/qvlc48x48.png debian/qvlc/$(PIXDIR)/qvlc.png
+
+       # Package: vlc-plugin-arts
+       ln -s vlc debian/vlc-plugin-arts/usr/share/doc/vlc-plugin-arts
+       mv debian/vlc/usr/lib/vlc/audio_output/libarts_plugin.so \
+         debian/vlc-plugin-arts/usr/lib/vlc/audio_output/
+
+       # Package: mozilla-plugin-vlc
+       ln -s vlc debian/mozilla-plugin-vlc/usr/share/doc/mozilla-plugin-vlc
+       mv debian/vlc/usr/lib/mozilla debian/mozilla-plugin-vlc/usr/lib
+       # links for firefox
+       mkdir -p debian/mozilla-plugin-vlc/usr/lib/mozilla-firefox/plugins/
+       ln -s ../../mozilla/plugins/libvlcplugin.so debian/mozilla-plugin-vlc/usr/lib/mozilla-firefox/plugins/
+       mkdir -p debian/mozilla-plugin-vlc/usr/lib/mozilla-firefox/components/
+       ln -s ../../mozilla/components/vlcintf.xpt debian/mozilla-plugin-vlc/usr/lib/mozilla-firefox/components/
+
+       # Package: kvlc
+       #mv debian/vlc/usr/bin/kvlc debian/kvlc/usr/bin/
+       ln -s vlc debian/kvlc/usr/share/doc/kvlc
+       #mv debian/vlc/usr/lib/vlc/gui/libkde_plugin.so \
+       #  debian/kvlc/usr/lib/vlc/gui/
+       #mv debian/vlc/$(VIDDIR)/ui.rc debian/kvlc/$(VIDDIR)
+       #ln -s vlc.1.gz debian/kvlc/usr/share/man/man1/kvlc.1.gz
+       #mv debian/vlc/$(VIDDIR)/kvlc32x32.xpm debian/kvlc/$(VIDDIR)/kvlc.xpm
+       #mv debian/vlc/$(VIDDIR)/kvlc48x48.png debian/kvlc/$(PIXDIR)/kvlc.png
+
+       # Package: vlc-plugin-svgalib
+ifeq ($(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU),i386)
+       ln -s vlc debian/vlc-plugin-svgalib/usr/share/doc/vlc-plugin-svgalib
+       mv debian/vlc/usr/lib/vlc/video_output/libsvgalib_plugin.so \
+         debian/vlc-plugin-svgalib/usr/lib/vlc/video_output
+endif
+
+       # Package: wxvlc
+       mv debian/vlc/usr/bin/wxvlc debian/wxvlc/usr/bin/
+       ln -s vlc debian/wxvlc/usr/share/doc/wxvlc
+       cp debian/vlc/$(VIDDIR)/vlc.xpm debian/wxvlc/$(VIDDIR)/wxvlc.xpm
+       cp debian/vlc.desktop debian/wxvlc/$(APPDIR)
+       mv debian/vlc/usr/lib/vlc/gui/libwxwidgets_plugin.so \
+         debian/wxvlc/usr/lib/vlc/gui/
+       ln -s vlc.1.gz debian/wxvlc/usr/share/man/man1/wxvlc.1.gz
+
+       # Clean up
+       rm -f debian/vlc/$(VIDDIR)/*.png
+
+       #gzip -9 < doc/vlc.1 >| debian/vlc/usr/share/man/man1/vlc.1.gz
 
 # Build architecture-independent files here.
 binary-indep: build install
@@ -107,38 +332,26 @@ binary-arch: build install
        dh_testdir
        dh_testroot
 #      dh_installdebconf       
-       dh_installdocs
+       dh_installdocs -p vlc
+       dh_buildinfo -p vlc
 #      dh_installexamples
-       dh_installmenu
-#      dh_installemacsen
-#      dh_installpam
-#      dh_installinit
-#      dh_installcron
-       dh_installman doc/vlc.1
-#      dh_installinfo
-#      dh_undocumented
-       dh_installchangelogs -Nvlc-gnome -Nvlc-gtk -Nvlc-ggi -Nvlc-glide -Nvlc-esd -Nvlc-alsa -Nvlc-sdl -Nvlc-qt -Nvlc-arts -Nvlc-mad -Nvlc-lirc -Nvlc-a52 ChangeLog
-# libdvdcss start
-       dh_installchangelogs -Nvlc-gnome -Nvlc-gtk -Nvlc-ggi -Nvlc-glide -Nvlc-esd -Nvlc-alsa -Nvlc-sdl -Nvlc-qt -Nvlc-arts -Nvlc-mad -Nvlc-lirc -Nvlc-a52 ChangeLog.libdvdcss
-# libdvdcss stop
-       dh_link
-       dh_strip
-       dh_compress
-       dh_fixperms
-       dh_makeshlibs
-       dh_installdeb
+       dh_installmenu -s
+       dh_installmime -s
+       dh_installman doc/vlc.1 -p vlc
+       dh_installman doc/vlc-config.1 -p libvlc0-dev
+       dh_installchangelogs ChangeLog -p vlc
+       for x in doc/ChangeLog-* ; do cp "doc/ChangeLog-$${x#*-}" "debian/vlc/usr/share/doc/vlc/changelog$${x#*-}" ; done
+       dh_link -s
+       dh_strip -s
+       dh_compress -s
+       dh_fixperms -s
+       dh_makeshlibs -s
+       dh_installdeb -s
 #      dh_perl
-
-       case $(DEB_BUILD_ARCH) in \
-       i386) \
-               ARCH_EXCLUDE="" ;; \
-       *) \
-               ARCH_EXCLUDE="-Nvlc-glide" ;; \
-       esac ;\
-       dh_shlibdeps $$ARCH_EXCLUDE ;\
-       dh_gencontrol $$ARCH_EXCLUDE ;\
-       dh_md5sums $$ARCH_EXCLUDE ;\
-       dh_builddeb $$ARCH_EXCLUDE
+       dh_shlibdeps -s
+       dh_gencontrol -s
+       dh_md5sums -s
+       dh_builddeb -s
 
 binary: binary-indep binary-arch
 .PHONY: build clean binary-indep binary-arch binary install