#!/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 FFMPEG_VERSION=cvs
-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 --enable-aa --enable-dvbpsi --enable-xosd --enable-mozilla --enable-kde --enable-ffmpeg --with-ffmpeg-tree=ffmpeg-$(FFMPEG_VERSION) --enable-mp4"
-# Remove --without-dvdcss here in non-totalitarian countries
-export DVDCSS_FLAGS="--enable-dvd --without-dvdcss"
+#
+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)
-export VIDDIR="usr/share/vlc"
-export PIXDIR="usr/share/pixmaps"
-export GNOMEDIR="usr/share/gnome/apps/Multimedia"
-build: build-stamp
-build-stamp:
+# 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
- # Check that we have an ffmpeg tree in here (can be a symlink)
- test -d ffmpeg-$(FFMPEG_VERSION)
- (cd ffmpeg-$(FFMPEG_VERSION) ; ./configure ; make)
+ # 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)
- case $(DEB_BUILD_ARCH) in \
- i386) \
- ARCH_FLAGS="--enable-glide" ;; \
- *) \
- ARCH_FLAGS="" ;; \
- esac ;\
+ # Configure VLC
./configure --mandir=$${prefix}/share/man \
- --infodir=$${prefix}/share/info \
- $(shell echo $(CONFIG_FLAGS)) $$ARCH_FLAGS \
- $(shell echo $(DVDCSS_FLAGS))
+ --infodir=$${prefix}/share/info $(confflags) $(vlc_confflags)
- $(MAKE)
+ touch configure-stamp
+
+build: build-stamp
+build-stamp: patch configure-stamp
+ dh_testdir
+
+ # 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
+
+ # 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
- # Check that we have an ffmpeg tree in here (can be a symlink)
- test -d ffmpeg-$(FFMPEG_VERSION)
- -(cd ffmpeg-$(FFMPEG_VERSION) ; make distclean)
-$(MAKE) distclean
dh_clean
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 lirc aa xosd kde glide" ;; \
- *) \
- ARCH_ALIASES="ggi gtk gnome esd sdl qt arts mad alsa lirc aa xosd kde" ;; \
- esac ;\
- for alias in $$ARCH_ALIASES ; do \
- ln -s vlc debian/vlc-plugin-$$alias/usr/share/doc/vlc-plugin-$$alias ; \
- mv debian/vlc/usr/lib/vlc/$$alias.so \
- debian/vlc-plugin-$$alias/usr/lib/vlc/ ; done
-
- # do the same for the mozilla plugin
- 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
+ # Package: vlc
+ mv debian/vlc/$(VIDDIR)/vlc48x48.png debian/vlc/$(PIXDIR)/vlc.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)
- # install development files
+ #cp doc/fortunes.txt debian/vlc/usr/share/games/fortunes/vlc
+ #strfile doc/fortunes.txt debian/vlc/usr/share/games/fortunes/vlc.dat
+
+ rm -Rf debian/vlc/$(VIDDIR)/skins
+ ln -s vlc.1.gz debian/vlc/usr/share/man/man1/svlc.1.gz
+
+ # 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/* debian/libvlc0-dev/usr/include/vlc/
+ mv debian/vlc/usr/include/vlc/*.h debian/libvlc0-dev/usr/include/vlc/
+ rm -Rf debian/vlc/usr/include
ln -s vlc debian/libvlc0-dev/usr/share/doc/libvlc0-dev
- # do the binary aliases
- mv debian/vlc/usr/bin/gvlc debian/gvlc/usr/bin/
+ # 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/gtk.so debian/gvlc/usr/lib/vlc/
- ln -s vlc.1.gz debian/gvlc/usr/share/man/man1/gvlc.1.gz
+ #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
- 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/gnome.so debian/gnome-vlc/usr/lib/vlc/
- ln -s vlc.1.gz debian/gnome-vlc/usr/share/man/man1/gnome-vlc.1.gz
+ # 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/
- mv debian/vlc/usr/bin/qvlc debian/qvlc/usr/bin/
+ # 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/qt.so debian/qvlc/usr/lib/vlc/
- ln -s vlc.1.gz debian/qvlc/usr/share/man/man1/qvlc.1.gz
+ #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/
- mv debian/vlc/usr/bin/kvlc debian/kvlc/usr/bin/
+ # 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/kde.so debian/kvlc/usr/lib/vlc/
- ln -s vlc.1.gz debian/kvlc/usr/share/man/man1/kvlc.1.gz
+ #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
- # copy pictures
- mv debian/vlc/$(VIDDIR)/vlc48x48.png debian/vlc/$(PIXDIR)/vlc.png
- mv debian/vlc/$(VIDDIR)/gvlc32x32.xpm debian/gvlc/$(VIDDIR)/gvlc.xpm
- mv debian/vlc/$(VIDDIR)/gvlc48x48.png debian/gvlc/$(PIXDIR)/gvlc.png
- 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
- mv debian/vlc/$(VIDDIR)/qvlc32x32.xpm debian/qvlc/$(VIDDIR)/qvlc.xpm
- mv debian/vlc/$(VIDDIR)/qvlc48x48.png debian/qvlc/$(PIXDIR)/qvlc.png
- mv debian/vlc/$(VIDDIR)/kvlc32x32.xpm debian/kvlc/$(VIDDIR)/kvlc.xpm
- mv debian/vlc/$(VIDDIR)/kvlc48x48.png debian/kvlc/$(PIXDIR)/kvlc.png
- rm -f debian/vlc/$(VIDDIR)/*.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
- cp debian/vlc.desktop debian/vlc/$(GNOMEDIR)
- cp debian/gvlc.desktop debian/gvlc/$(GNOMEDIR)
- cp debian/gnome-vlc.desktop debian/gnome-vlc/$(GNOMEDIR)
+ # 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
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 -Ngnome-vlc -Ngvlc -Nvlc-plugin-ggi -Nvlc-plugin-glide -Nvlc-plugin-esd -Nvlc-plugin-alsa -Nvlc-plugin-sdl -Nqvlc -Nvlc-plugin-arts -Nvlc-plugin-mad -Nvlc-plugin-lirc -Nvlc-plugin-aa -Nvlc-plugin-xosd -Nkvlc -Nmozilla-plugin-vlc ChangeLog
- 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-plugin-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