#!/usr/bin/make -f

include /usr/share/quilt/quilt.make

ifneq (,$(findstring parallel=,$(DEB_BUILD_OPTIONS)))
	NCPUS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
else
	NCPUS := $(shell getconf _NPROCESSORS_ONLN 2>/dev/null || echo 1)
	ifeq ($(NCPUS),-1)
		NCPUS:=1
	endif
	ifeq ($(NCPUS),0)
		NCPUS:=1
	endif
endif

CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
CPPFLAGS := $(shell dpkg-buildflags --get CPPFLAGS)
LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)

ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
	CFLAGS += -O0
else
	CFLAGS +=
endif

devi := $(shell lsb_release -r -s | cut -d '.'  -f1)
ifeq ($(shell if [ $(devi) -gt 7 ] ; then echo gt ; else echo lt ; fi),gt)
   DEBVE2=yes
else
   DEBVE2=no
endif

ifeq ($(DEBVE2),yes)
    OPTI_FLAGS_LIBONLY = -march=i686 -mtune=generic -mmmx -msse -mfpmath=sse -fexcess-precision=fast 
else
    OPTI_FLAGS_LIBONLY = -march=i586 -mtune=generic -mmmx -fexcess-precision=fast 
endif

CONFIG_ALL = --prefix=/usr --extra-cflags="$(CFLAGS)" --extra-ldflags="$(LDFLAGS)" \
	--enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis \
	--enable-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab \
	--enable-libgsm --enable-libtheora --enable-libopencore-amrnb --enable-libopencore-amrwb \
	--enable-libx264 --enable-libspeex --enable-nonfree --disable-stripping --enable-libvpx \
	--enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 \
	--enable-libopenjpeg --enable-librtmp --enable-avfilter --enable-libfreetype \
	--enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo-amrwbenc --enable-libaacplus \
	--libdir=/usr/lib/$(DEB_HOST_MULTIARCH) --disable-vda --enable-libbluray \
	--enable-libcdio --enable-gnutls --enable-frei0r --enable-openssl --enable-libass \
	--enable-libopus --enable-fontconfig --enable-libpulse --disable-mips32r2 \
	--disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi \
	--enable-avresample --disable-htmlpages --disable-podpages --disable-libutvideo \
	--enable-libfdk-aac --enable-libx265

##--disable-manpages --disable-podpages --disable-txtpages

ifeq ($(DEB_HOST_ARCH_OS),linux)	
	CONFIG_ALL += --enable-libiec61883
endif

ifeq "$(DEB_BUILD_ARCH)" "amd64"
	CONFIG_ALL += --enable-vaapi
	CFLAGS += -msse -msse2 -mfpmath=sse -fexcess-precision=fast
else
ifeq "$(DEB_BUILD_ARCH)" "armel" 
	CFLAGS += -fPIC -DPIC
else
ifeq "$(DEB_BUILD_ARCH)" "i386"
	CONFIG_ALL += --enable-vaapi
	CFLAGS += -msse $(OPTI_FLAGS_LIBONLY)
else
ifeq "$(DEB_BUILD_ARCH)" "kfreebsd-amd64"
	CONFIG_ALL += --enable-vaapi
else
ifeq "$(DEB_BUILD_ARCH)" "kfreebsd-i386"
	CONFIG_ALL += --enable-vaapi

endif
endif
endif
endif
endif

ifeq (,$(findstring kfreebsd,$(DEB_BUILD_ARCH)))
	CONFIG_ALL += --enable-libdc1394
endif

CONFIG_NOOPT=--disable-altivec --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)

ifeq "$(DEB_BUILD_ARCH)" "i386"
	CONFIG_OPT += --cpu='i686' --enable-libfdk-aac --disable-static --disable-ffprobe --disable-ffmpeg --disable-ffplay --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/i686/cmov
else
ifeq "$(DEB_BUILD_ARCH)" "powerpc"
	CONFIG_OPT += --cpu='g4' --enable-libfdk-aac --disable-static --disable-ffprobe --disable-ffmpeg --disable-ffplay --shlibdir=/usr/lib/$(DEB_HOST_MULTIARCH)/altivec
	CFLAGS += -fPIC -DPIC
endif
endif

%:
	dh $@ --with quilt

override_dh_auto_configure:
	./configure $(CONFIG_ALL) $(CONFIG_NOOPT)

ifeq "$(DEB_BUILD_ARCH)" "mips"
	perl -i -pe 's,HAVE_MIPSFPU=yes,!HAVE_MIPSFPU=yes,' config.mak
	perl -i -pe 's,HAVE_MIPS32R2=yes,!HAVE_MIPS32R2=yes,' config.mak
	perl -i -pe 's,HAVE_MIPSDSPR1=yes,!HAVE_MIPSDSPR1=yes,' config.mak
	perl -i -pe 's,HAVE_MIPSDSPR2=yes,!HAVE_MIPSDSPR2=yes,' config.mak

	perl -i -pe 's,#define HAVE_MIPSFPU 1,#define HAVE_MIPSFPU 0,' config.h
	perl -i -pe 's,#define HAVE_MIPS32R2 1,#define HAVE_MIPS32R2 0,' config.h
	perl -i -pe 's,#define HAVE_MIPSDSPR1 1,#define HAVE_MIPSDSPR1 0,' config.h
	perl -i -pe 's,#define HAVE_MIPSDSPR2 1,#define HAVE_MIPSDSPR2 0,' config.h
endif

#	exit 1

override_dh_auto_build-arch:
# Add V=1 for verbose build
	$(MAKE) -j $(NCPUS)
	$(MAKE) tools/qt-faststart
	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp

	dh_install

ifneq "$(CONFIG_OPT)"""
	[ ! -f config.mak ] || $(MAKE) distclean
	./configure $(CONFIG_ALL) $(CONFIG_OPT)

endif

# Add V=1 for verbose build
	$(MAKE) -j $(NCPUS)
	$(MAKE) tools/qt-faststart

#	exit 1

	$(MAKE) install DESTDIR=$(CURDIR)/debian/tmp

	dh_install

	[ ! -d debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/i686/cmov ] || rm debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/i686/cmov/*.so
	[ ! -d debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/altivec ] || rm debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/altivec/*.so

	rm -rf debian/tmp/usr/share/ffmpeg/examples

override_dh_clean:
	[ ! -f config.mak ] || $(MAKE) distclean
	[ ! -f doc/Makefile ] || $(MAKE) -C doc clean

	dh_clean output_example qt-faststart libavformat/libavformat.so \
	libavcodec/amrwb_float/*.o config.log *.pc libavcodec/amr_float/*.o \
	libavutil/libavutil.so.49 libavcodec/libavcodec.so.51 config.err \
	libpostproc/libpostproc.so.51 *.o tools/qt-faststart.d \
	libavutil/avconfig.h doc/*.d tools/qt-faststart \
	libavcodec/codec_names.h doc/print_options .config config.fate \
	doc/examples/pc-uninstalled/*.pc

	find -name *.o |xargs -r rm
	find -name *.d |xargs -r rm

	-rm -rf doc/doxy

override_dh_auto_build-indep:
	doxygen doc/Doxyfile

	perl -i -pe 's,#define CONFIG_HTMLPAGES 0,#define CONFIG_HTMLPAGES 1,' config.h
	perl -i -pe 's,#define CONFIG_FFMPEG 0,#define CONFIG_FFMPEG 1,' config.h
	perl -i -pe 's,#define CONFIG_FFPLAY 0,#define CONFIG_FFPLAY 1,' config.h
	perl -i -pe 's,#define CONFIG_FFPROBE 0,#define CONFIG_FFPROBE 1,' config.h
	perl -i -pe 's,#define CONFIG_FFSERVER 0,#define CONFIG_FFSERVER 1,' config.h
	perl -i -pe 's,!CONFIG_HTMLPAGES=yes,CONFIG_HTMLPAGES=yes,' config.mak

override_dh_install-indep:
	dh_install -i -Xpc-uninstalled

override_dh_installdocs:
	dh_installdocs -A RELEASE_NOTES MAINTAINERS

override_dh_makeshlibs:
	dh_makeshlibs -V

override_dh_builddeb:
ifneq ($(filter $(DEB_HOST_ARCH), mips mipsel),)
	dh_builddeb -- -Zxz -z3
else
	dh_builddeb -- -Zxz
endif

override_dh_strip:
	dh_strip --dbg-package=ffmpeg-dbg

override_dh_auto_clean override_dh_auto_test override_dh_prep:
