#!/usr/bin/make -f

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

REVISION="1.5 r38680"

DEBIAN_VERSION=\#define VERSION \"$(REVISION)\"
DEBIAN_TITLE=\#define MP_TITLE \"MPlayer $(REVISION) (C) 2000-2025 MPlayer Team\\\n\"

DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)

ifneq (,$(findstring marillat,$(DEB_BUILD_OPTIONS)))
	CONTROL=control.marillat
else
ifeq "$(DEB_HOST_ARCH)" "powerpc"
	CONTROL=control.powerpc
	FLAVOURS=-g4
else
	CONTROL=control.$(DEB_HOST_ARCH)
endif
endif

# Split up config options
CONFIG_DIRS=--prefix=/usr --confdir=/etc/mplayer --datadir=/usr/share/mplayer
CONFIG_MGA=--disable-xmga --disable-mga
CONFIG_3DFX=--enable-tdfxfb --enable-s3fb
#CONFIG_ZR=--enable-zr
CONFIG_CONTROL=--enable-joystick
CONFIG_AUDIO=--enable-libopencore_amrnb --enable-libopencore_amrwb \
	--disable-openal --disable-decoder=amrnb

CONFIG_MISC=--language=all --enable-menu \
	--enable-radio --enable-radio-capture --disable-sndio \
	--extra-libs="-ldl -lvorbisenc -lvorbis"

# Doesn't work 01/06/2012
#CONFIG_HARD=CFLAGS="$(shell dpkg-buildflags --get CFLAGS)" \
#	CPPFLAGS="$(shell dpkg-buildflags --get CPPFLAGS)" \
#	CXXFLAGS="$(shell dpkg-buildflags --get CXXFLAGS)" \
#	LDFLAGS="$(shell dpkg-buildflags --get LDFLAGS)"

CONFIG_HARD=--extra-ldflags="$(shell dpkg-buildflags --get LDFLAGS)"

CONFIG_WIN32=--disable-win32dll

# Options common to all architectures
CONFIG_ARCH_INDEP=$(CONFIG_DIRS) $(CONFIG_MGA) $(CONFIG_CONTROL) \
	$(CONFIG_AUDIO) $(CONFIG_MISC) --disable-png --disable-directfb

# Options common to all amd64 configurations
CONFIG_AMD64_ALL=$(CONFIG_ARCH_INDEP) $(CONFIG_3DFX) $(CONFIG_ZR)

# Options common to all i386 configurations
CONFIG_I386_ALL=$(CONFIG_ARCH_INDEP) $(CONFIG_WIN32) $(CONFIG_3DFX) $(CONFIG_ZR)

# Options common to all armel configurations
CONFIG_ARMEL_ALL=$(CONFIG_ARCH_INDEP) --disable-win32dll --disable-gui

# Options common to all armhf configurations
CONFIG_ARMHF_ALL=$(CONFIG_ARCH_INDEP) --disable-win32dll --disable-gui

# Options common to all arm64 configurations
CONFIG_ARM64_ALL=$(CONFIG_ARCH_INDEP) --disable-win32dll --disable-gui

# Options common to all riscv64 configurations
CONFIG_RISCV64_ALL=$(CONFIG_ARCH_INDEP) --disable-win32dll --disable-gui

# Options common to all powerpc configurations
CONFIG_PPC_ALL=$(CONFIG_ARCH_INDEP) --disable-gui --disable-win32dll

# Options common to all ppc64 configurations
CONFIG_PPC64_ALL=$(CONFIG_ARCH_INDEP) --disable-gui --disable-win32dll

CONFIGURE_MPLAYER=$(CONFIG_AMD64_ALL) --disable-gui --enable-runtime-cpudetection

# Doesn't work (10/07/08)
#CONFIGURE_PPC=$(CONFIG_PPC_ALL) --enable-runtime-cpudetection
CONFIGURE_PPC=$(CONFIG_PPC_ALL) --disable-altivec

CONFIGURE_G4=$(CONFIG_PPC_ALL) --enable-altivec

CONFIGURE_I386=$(CONFIG_I386_ALL) --disable-gui --enable-runtime-cpudetection --target=i586-linux --disable-ffmpeg_a

CONFIGURE_PPC64=$(CONFIG_PPC64_ALL) --disable-gui

CONFIGURE_ARMEL=$(CONFIG_ARMEL_ALL) --disable-ffmpeg_a

CONFIGURE_ARMHF=$(CONFIG_ARMHF_ALL) --disable-ffmpeg_a

CONFIGURE_ARM64=$(CONFIG_ARMHF_ALL) --disable-ffmpeg_a

CONFIGURE_RISCV64=$(CONFIG_RISCV64_ALL) --disable-ffmpeg_a

CONFIGURE_CUSTOM=$(CONFIG_I386_ALL)

%:
	dh $@ --with quilt

override_dh_auto_configure:
	cp debian/$(CONTROL) debian/control

	ln -s ffmpeg-7-1-2 ffmpeg
	-mkdir ffmpeg/ffbuild

	cp /usr/include/*/ffmpeg-7/libavutil/avconfig.h ffmpeg/libavutil/

ifneq (,$(findstring marillat,$(DEB_BUILD_OPTIONS)))
ifeq "$(DEB_HOST_ARCH)" "amd64"
	############################ amd64 ###############################

	./configure $(CONFIGURE_MPLAYER) $(CONFIG_HARD)

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

#	exit 1

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin

endif	# amd64
endif	# marillat

ifeq (,$(findstring marillat,$(DEB_BUILD_OPTIONS)))
ifeq "$(DEB_HOST_ARCH)" "powerpc"
	########################## generic powerpc #######################

	./configure $(CONFIGURE_PPC) $(CONFIG_HARD) 

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

#	perl -i -pe 's,-mtune=(\w+),-mtune=powerpc,' config.mak
#	perl -i -pe 's,-mcpu=(\w+),-mcpu=powerpc,' config.mak
#	perl -i -pe 's,-maltivec,-mno-altivec,' config.mak
#	perl -i -pe 's,-mabi=altivec,-mabi=no-altivec,' config.mak

#	perl -i -pe 's,#define HAVE_ALTIVEC 1,#undef HAVE_ALTIVEC,' config.h
#	perl -i -pe 's,#define HAVE_ALTIVEC_H 1,#undef HAVE_ALTIVEC_H,' config.h
#	perl -i -pe 's,HAVE_ALTIVEC   = yes,HAVE_ALTIVEC = no,' config.mak

#	perl -i -pe 's,#define CONFIG_MOVIE_FILTER 0,#define CONFIG_MOVIE_FILTER 0\n#define HAVE_VSX 0,' config.h

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin

	dh_installdirs -pmencoder usr/bin usr/share/man/man1

	mv debian/mplayer/usr/bin/mencoder debian/mencoder/usr/bin

	[ ! -f Makefile ] || $(MAKE) distclean

	######################## powerpc-g4  ###############################

	./configure $(CONFIGURE_G4) $(CONFIG_HARD) 

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

#	perl -i -pe 's,-mtune=(\w+),-mtune=7450,' config.mak
#	perl -i -pe 's,-mcpu=(\w+),-mcpu=7450,' config.mak

#	perl -i -pe 's,#define CONFIG_MOVIE_FILTER 0,#define CONFIG_MOVIE_FILTER 0\n#define HAVE_VSX 0,' config.h

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer-g4/usr \
	CONFDIR=$(CURDIR)/debian/mplayer-g4/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer-g4/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer-g4/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer-g4/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer-g4/usr/bin

	dh_installdirs -pmencoder-g4 usr/bin usr/share/man/man1

	mv debian/mplayer-g4/usr/bin/mencoder debian/mencoder-g4/usr/bin

#	exit 1

else	# powerpc
ifeq "$(DEB_HOST_ARCH)" "ppc64"
	############################ ppc64 ###############################

	./configure $(CONFIGURE_PPC64) $(CONFIG_HARD)

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

	perl -i -pe 's,-mtune=(\w+),-mtune=G5,' config.mak
	perl -i -pe 's,-mcpu=(\w+),-mcpu=G5 -falign-loops=16,' config.mak

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin

else	# ppc64
ifeq "$(DEB_HOST_ARCH)" "i386"
	############################ i386 ###############################

	./configure $(CONFIGURE_I386) $(CONFIG_HARD) 



#	exit 1

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin

	dh_installdirs -pmencoder usr/bin usr/share/man/man1

else	# i386
ifeq "$(DEB_HOST_ARCH)" "armel"
	######################### armel ############################

	./configure $(CONFIGURE_ARMEL) $(CONFIG_HARD) 

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin

else	# armel

ifeq "$(DEB_HOST_ARCH)" "arm64"
	######################### arm64 ############################

	./configure $(CONFIGURE_ARM64) $(CONFIG_HARD) 

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin

else	# arm64
ifeq "$(DEB_HOST_ARCH)" "riscv64"
	######################### riscv64 ############################

	./configure $(CONFIGURE_RISCV64) $(CONFIG_HARD) 

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin

else	# riscv64
ifeq "$(DEB_HOST_ARCH)" "armhf"
	######################### armhf ############################

	./configure $(CONFIGURE_ARMHF) $(CONFIG_HARD) 

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin

else	# armhf
	############################ Custom ##############################

	./configure $(CONFIGURE_CUSTOM) $(CONFIG_HARD) 

	echo "$(DEBIAN_VERSION)"  >> version.h
	echo "$(DEBIAN_TITLE)" >> version.h

	$(MAKE) -j $(NCPUS)

	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin
endif
endif
endif
endif
endif
endif
endif
endif

# Remove mencode.1 in mplayer-* packages
	find debian/mplayer* -name mencoder.1 | xargs -r rm

	find debian -type d | xargs rmdir -p --ignore-fail-on-non-empty

override_dh_clean:
	dh_clean build codec-cfg loader/DirectShow/test.divx \
	debian/README.debian debian/dirs debian/templates config.h \
	debian/postinst.templates debian/config debian/TODO.Debian \
	TOOLS/cpuinfo build-stamp configure-stamp libdha/libdha.so.0.1 \
	debian/mplayer-*.mime ffmpeg debian/mplayer-*.postinst \
	debian/mplayer-*.preinst debian/mplayer-*.postrm \
	debian/mplayer-*.examples libavcodec/libavcodec.a version.h \
	libswscale/x86/yuv2rgb_mmx.o ffmpeg ffmpeg-*/config.mak .config \
	config.log

	find DOCS/xml -name main.xml | xargs -r rm
	find -name *.d | xargs -r rm
	find -name *.o | xargs -r rm

	cp debian/$(CONTROL) debian/control

override_dh_auto_install:
	dh_installdirs -a -A etc/mplayer usr/share/man/man1 \
	usr/bin \
	usr/share/man/cs/man1 usr/share/man/de/man1 usr/share/man/es/man1 \
	usr/share/man/fr/man1 usr/share/man/hu/man1 usr/share/man/it/man1 \
	usr/share/man/pl/man1 usr/share/man/ru/man1 usr/share/man/zh_CN/man1 \
	usr/share/mime-info usr/share/application-registry \
	usr/share/icons/hicolor/32x32/apps usr/share/icons/hicolor/48x48/apps

ifneq "$(DEB_HOST_ARCH)" "powerpc"
	$(MAKE) install prefix=$(CURDIR)/debian/mplayer/usr \
	CONFDIR=$(CURDIR)/debian/mplayer/etc/mplayer \
	DATADIR=$(CURDIR)/debian/mplayer/usr/share/mplayer \
	LIBDIR=$(CURDIR)/debian/mplayer/usr/lib \
	MANDIR=$(CURDIR)/debian/mplayer/usr/share/man \
	BINDIR=$(CURDIR)/debian/mplayer/usr/bin
endif

	cp etc/example.conf debian/mplayer/etc/mplayer/mplayer.conf
	cp etc/input.conf debian/mplayer/etc/mplayer
	cp etc/menu.conf debian/mplayer/etc/mplayer
	cp debian/mplayer.applications debian/mplayer/usr/share/application-registry
	cp debian/mplayer.keys debian/mplayer/usr/share/mime-info

# Copy files
	for arch in $(FLAVOURS); do \
	cp debian/mime debian/mplayer$$arch.mime; \
	cp debian/preinst debian/mplayer$$arch.preinst; \
	cp debian/examples debian/mplayer$$arch.examples; \
	done

override_dh_install-arch:

ifneq "$(DEB_HOST_ARCH)" "powerpc"
	dh_install

# This suck
	for page in cs de es fr hu it pl ru zh_CN; do \
	cp debian/mplayer/usr/share/man/$$page/man1/mplayer.1 debian/mencoder/usr/share/man/$$page/man1/mencoder.1; \
	done

	mv debian/mplayer/usr/bin/mencoder debian/mencoder/usr/bin
	cp debian/mplayer/usr/share/man/man1/mplayer.1 debian/mencoder/usr/share/man/man1/mencoder.1
endif

override_dh_installdocs:
	dh_installdocs -pmplayer-doc --doc-main-package=mplayer-doc \
	-Nmplayer

	dh_installdocs -A

override_dh_compress-indep:
	dh_compress -i -X.txt

override_dh_installexamples-indep:
	dh_installexamples -A etc/codecs.conf

override_dh_auto_clean:
#	[ ! -f Makefile ] || $(MAKE) distclean
	-make distclean

override_dh_dwz override_dh_prep override_dh_auto_test override_dh_auto_build:
