#!/usr/bin/make -f
# debian/rules for the VideoLAN Client - uses debhelper.
# based on Joey Hess's one.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

# This is the debhelper compatability version to use.
export DH_COMPAT=3

#
# Compilation options
#

ARCH_EXCLUDE =

CONFIG_FLAGS = --enable-release --prefix=/usr
CONFIG_FLAGS += \
	--enable-gnome \
	--enable-gtk \
	--enable-familiar \
	--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-mp4 \
	--enable-dvb \
	--enable-dv \
	--enable-svgalib \
	--enable-satellite \
	--enable-ogg \
	--enable-vorbis \
	--enable-wxwindows \
	--enable-slp \
	$(NULL)

# These ones are currently shipped with VLC
CONFIG_FLAGS += --enable-ffmpeg --with-ffmpeg-tree=extras/ffmpeg
CONFIG_FLAGS += --enable-faad --with-faad-tree=extras/faad

# Glide is only for x86
ifeq ($(DEB_BUILD_ARCH),i386)
CONFIG_FLAGS += --enable-glide
else
ARCH_EXCLUDE += -Nvlc-plugin-glide -Nvlc-glide
endif

# Remove --without-dvdcss in non-totalitarian countries
CONFIG_FLAGS += --enable-dvd --without-dvdcss

# A few shortcuts
VIDDIR = usr/share/vlc
PIXDIR = usr/share/pixmaps
GNOMEDIR = usr/share/gnome/apps/Multimedia

#
# Build rules
#

build: build-stamp
build-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 ffmpeg tree in here (can be a symlink)
	test -d extras/ffmpeg
	if test ! -d CVS; then \
		cd extras/ffmpeg \
		&& ./configure \
		&& cd libavcodec \
		&& make; \
	fi

	# Check that we have an faad tree in here (can be a symlink)
	test -d extras/faad
	if test ! -d CVS; then \
		cd extras/faad \
		&& touch configure.in \
		&& touch aclocal.m4 \
		&& touch configure \
		&& touch config.h.in \
		&& touch `find . -name Makefile.in` \
		&& ./configure --disable-shared \
		&& cd libfaad \
		&& make; \
	fi

	# Configure VLC and build it
	./configure --mandir=$${prefix}/share/man \
		--infodir=$${prefix}/share/info $(CONFIG_FLAGS)
	$(MAKE)

	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp

	# Check that we have an ffmpeg tree in here (can be a symlink)
	test -d extras/ffmpeg
	-if test ! -d CVS; then cd extras/ffmpeg && make distclean; fi
	# Check that we have an faad tree in here (can be a symlink)
	test -d extras/faad
	-if test ! -d CVS; then cd extras/faad && make distclean; fi

	-$(MAKE) distclean

	dh_clean

install: build
	dh_testdir
	dh_testroot
	dh_clean -k
	dh_installdirs

	DESTDIR=`pwd`/debian/vlc/ $(MAKE) install prefix=/usr

	# 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/$(GNOMEDIR)
	cp debian/gnome-vlc.desktop debian/gnome-vlc/$(GNOMEDIR)

	cp doc/fortunes.txt debian/vlc/usr/share/games/fortunes/vlc
	strfile doc/fortunes.txt debian/vlc/usr/share/games/fortunes/vlc.dat

	# 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
	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

	mkdir -p debian/vlc-gnome/usr/share/doc/
	ln -s vlc debian/vlc-gnome/usr/share/doc/vlc-gnome

	# 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

	mkdir -p debian/vlc-gtk/usr/share/doc/
	ln -s vlc debian/vlc-gtk/usr/share/doc/vlc-gtk

	# 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/

	mkdir -p debian/vlc-esd/usr/share/doc/
	ln -s vlc debian/vlc-esd/usr/share/doc/vlc-esd

	# 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/

	mkdir -p debian/vlc-alsa/usr/share/doc/
	ln -s vlc debian/vlc-alsa/usr/share/doc/vlc-alsa

	# 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/

	mkdir -p debian/vlc-sdl/usr/share/doc/
	ln -s vlc debian/vlc-sdl/usr/share/doc/vlc-sdl

	# 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/

	mkdir -p debian/vlc-ggi/usr/share/doc/
	ln -s vlc debian/vlc-ggi/usr/share/doc/vlc-ggi

	# Package: vlc-plugin-glide
ifeq ($(DEB_BUILD_ARCH),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/

	mkdir -p debian/vlc-glide/usr/share/doc/
	ln -s vlc debian/vlc-glide/usr/share/doc/vlc-glide
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

	mkdir -p debian/vlc-qt/usr/share/doc/
	ln -s vlc debian/vlc-qt/usr/share/doc/vlc-qt

	# Package: vlc-plugin-mad
	ln -s vlc debian/vlc-plugin-mad/usr/share/doc/vlc-plugin-mad
	mv debian/vlc/usr/lib/vlc/audio_filter/libmpgatofixed32_plugin.so \
		debian/vlc-plugin-mad/usr/lib/vlc/audio_filter/

	mkdir -p debian/vlc-mad/usr/share/doc/
	ln -s vlc debian/vlc-mad/usr/share/doc/vlc-mad

	# 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/

	mkdir -p debian/vlc-arts/usr/share/doc/
	ln -s vlc debian/vlc-arts/usr/share/doc/vlc-arts

	# Package: vlc-plugin-lirc
	ln -s vlc debian/vlc-plugin-lirc/usr/share/doc/vlc-plugin-lirc
	mv debian/vlc/usr/lib/vlc/control/liblirc_plugin.so \
		debian/vlc-plugin-lirc/usr/lib/vlc/control/

	mkdir -p debian/vlc-lirc/usr/share/doc/
	ln -s vlc debian/vlc-lirc/usr/share/doc/vlc-lirc

	# Package: vlc-plugin-aa
	ln -s vlc debian/vlc-plugin-aa/usr/share/doc/vlc-plugin-aa
	mv debian/vlc/usr/lib/vlc/video_output/libaa_plugin.so \
		debian/vlc-plugin-aa/usr/lib/vlc/video_output/

	mkdir -p debian/vlc-aa/usr/share/doc/
	ln -s vlc debian/vlc-aa/usr/share/doc/vlc-aa

	# Package: vlc-plugin-xosd
	ln -s vlc debian/vlc-plugin-xosd/usr/share/doc/vlc-plugin-xosd
	mv debian/vlc/usr/lib/vlc/visualization/libxosd_plugin.so \
		debian/vlc-plugin-xosd/usr/lib/vlc/visualization/

	# 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

	# 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/usr/share/vlc/ui.rc \
		debian/kvlc/usr/share/vlc
	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
	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

	# Package: vlc-plugin-dv
	ln -s vlc debian/vlc-plugin-dv/usr/share/doc/vlc-plugin-dv
	mv debian/vlc/usr/lib/vlc/codec/libdv_plugin.so \
		debian/vlc-plugin-dv/usr/lib/vlc/codec

	# Package: vlc-plugin-a52
	ln -s vlc debian/vlc-plugin-a52/usr/share/doc/vlc-plugin-a52
	mv debian/vlc/usr/lib/vlc/audio_filter/liba52tofloat32_plugin.so \
		debian/vlc-plugin-a52/usr/lib/vlc/audio_filter

	# Package: vlc-plugin-dvb
	ln -s vlc debian/vlc-plugin-dvb/usr/share/doc/vlc-plugin-dvb
	mv debian/vlc/usr/lib/vlc/access/libsatellite_plugin.so \
		debian/vlc-plugin-dvb/usr/lib/vlc/access

	# Package: vlc-plugin-ogg
	ln -s vlc debian/vlc-plugin-ogg/usr/share/doc/vlc-plugin-ogg
	mv debian/vlc/usr/lib/vlc/demux/libogg_plugin.so \
		debian/vlc-plugin-ogg/usr/lib/vlc/demux
	mv debian/vlc/usr/lib/vlc/codec/libvorbis_plugin.so \
		debian/vlc-plugin-ogg/usr/lib/vlc/codec

	# Package: wxvlc
	mv debian/vlc/usr/bin/wxvlc debian/wxvlc/usr/bin/
	ln -s vlc debian/wxvlc/usr/share/doc/wxvlc
	mv debian/vlc/usr/lib/vlc/gui/libwxwindows_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
# We have nothing to do by default.

# Build architecture-dependent files here.
binary-arch: build install
#	dh_testversion
	dh_testdir
	dh_testroot
#	dh_installdebconf	
	dh_installdocs -p vlc
#	dh_installexamples
	dh_installmenu
	dh_installman doc/vlc.1 -p vlc
	dh_installman doc/vlc-config.1 -p libvlc0-dev
#	dh_installchangelogs ChangeLog -p vlc
	cp ChangeLog debian/vlc/usr/share/doc/vlc/changelog
	cp debian/changelog debian/vlc/usr/share/doc/vlc/changelog.Debian
	dh_link
	dh_strip
	dh_compress
	dh_fixperms
	dh_makeshlibs
	dh_installdeb
#	dh_perl
	dh_shlibdeps $(ARCH_EXCLUDE)
	dh_gencontrol $(ARCH_EXCLUDE)
	dh_md5sums $(ARCH_EXCLUDE)
	dh_builddeb $(ARCH_EXCLUDE)

binary: binary-indep binary-arch
.PHONY: build clean binary-indep binary-arch binary install

