#!/usr/bin/make -f
# debian/rules for the VLC media player - uses debhelper.
# $Id: rules 12681 2005-09-25 23:47:23Z sam $
# based on Joey Hess's one.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
include /usr/share/dpatch/dpatch.make

# 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
#
vlc_confflags = --enable-release --prefix=/usr

#CONFIG_FLAGS += \
	--prefix=$(pwd)/debian/tmp \
	--enable-release \
	--enable-gtk \
	--disable-livedotcom \
	--disable-plugins \
	--disable-gnome \
	--disable-qt \
	--disable-kde \
	--disable-qte \
	--disable-xosd \
	--disable-arts \
	--disable-libxml2\
	--disable-libmpeg2\
	--enable-fb \
	--disable-sdl \
	--enable-esd \
	--disable-oss \
	--disable-alsa \
	--enable-x11 \
	--disable-xvideo \
	--disable-dvd \
	--disable-dvdread \
	--disable-vcd \
	--disable-maxosx \
	--disable-xosd \
	--disable-freetype \
	--disable-flac \
	--disable-skins2 \
	--enable-ffmpeg  \
	--with-ffmpeg-tree=../maemo-ffmpeg-20041113  \
	--enable-libmpeg2 \
	--with-libmpeg2-tree=../mpeg2dec-0.4.0 \
	--enable-dvbpsi \
	--with-dvbpsi-tree=../libdvbpsi-20041028 \
	--enable-mad \
	--with-mad-tree=../libmad-0.15.1b \
	--disable-shared \
	--enable-v4l \
	--with-v4l=~/kernel/linux-2.6 \
	$(NULL)

CONFIG_FLAGS += \
	--prefix=/var/lib/install/usr \
	--enable-plugins \
	--disable-gnome \
	--enable-gtk \
	--disable-familiar \
	--enable-fb \
	--disable-ggi \
	--disable-sdl \
	--enable-esd \
	--disable-qt \
	--disable-arts \
	--disable-alsa \
	--disable-lirc \
	--disable-a52 \
	--disable-aa \
	--disable-dvbpsi \
	--disable-xosd \
	--disable-mozilla \
	--disable-kde \
	--disable-mp4 \
	--disable-dvb \
	--disable-dv \
	--disable-satellite \
	--disable-ogg \
	--disable-vorbis \
	--disable-wxwidgets \
	--disable-slp \
	--disable-flac \
	--disable-skins \
	--disable-basic-skins \
	--disable-skins2 \
	--disable-freetype \
	--disable-mkv \
	--disable-pvr \
	--disable-speex \
	--disable-caca \
	--disable-livedotcom \
	--disable-libmpeg2 \
	--disable-dts \
	--disable-fribidi \
	--disable-cdio \
	--disable-mod \
	--disable-theora \
	--disable-modplug \
	--disable-dvdnav \
	--disable-gnutls \
	--disable-ffmpeg \
	--disable-ncurses \
	--disable-smb \
	--disable-gnomevfs \
	--disable-xvideo \
	--enable-ffmpeg  \
	--with-ffmpeg-tree=../maemo-ffmpeg-20041113 \
	--enable-libmpeg2 \
	--with-libmpeg2-tree=../mpeg2dec-0.4.0 \
	--enable-dvbpsi \
	--with-dvbpsi-tree=../libdvbpsi-20041028 \
	--enable-mad \
	--with-mad-tree=../libmad-0.15.1b \
	--disable-shared \
	--enable-v4l \
	--with-v4l=~/kernel/linux-2.6 \
	$(NULL)


#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-xosd \
	--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 \
	$(NULL)

# 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

# We need this hack for i386 and amd64
ifeq ($(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU),i386)
CC = $(shell pwd)/debian/gcc-snapshot
export CC
endif
ifeq ($(shell dpkg-architecture -qDEB_BUILD_ARCH_CPU),amd64)
CC = $(shell pwd)/debian/gcc-snapshot
export CC
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 $(CONFIG_FLAGS)

	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: unpatch
	dh_testdir
	dh_testroot
	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

	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

	install -d debian/vlc/usr/share/applications/hildon/
#	install $(CURDIR)/desktop/vlc.desktop debian/vlc/usr/share/applications/hildon/
	install -m 755 $(CURDIR)/desktop/vlc_startup debian/vlc/usr/bin/

	# hackety hack - fix this!
	install $(CURDIR)/../libdvbpsi-20041028/src/.libs/libdvbpsi.so.3 debian/vlc/usr/lib/
	install $(CURDIR)/../libmad-0.15.1b/.libs/libmad.so.0.2.1 debian/vlc/usr/lib/

#	cp debian/gvlc.desktop debian/gvlc/$(APPDIR)
#	cp debian/gnome-vlc.desktop debian/gnome-vlc/$(APPDIR)

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

	# 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
# 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_buildinfo -p vlc
#	dh_installexamples
#	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
#	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

