#!/usr/bin/make -f

SOVERSION := $(shell awk '/\#define X264_BUILD/{print $$3}' x264.h)
libx264N := libx264-$(SOVERSION)

DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
DEB_HOST_GNU_CPU   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)

include debian/confflags

instdir   = $(CURDIR)/debian/install
libdir    = /usr/lib/$(DEB_HOST_MULTIARCH)
libdir10b = $(libdir)/x264-10bit
help2man  = \
	help2man -n "fast h264 encoder" \
	-N -s1 -S "Videolan project" \
	-h '--fullhelp' \
	$(CURDIR)/debian/install/shared/usr/bin/x264


%:
	dh $@ --parallel --with autotools_dev

override_dh_auto_clean:
	rm -rf debian/install
	$(MAKE) -o config.mak distclean || true
	dh_clean config.mak2 debian/*.1 \
	debian/$(libx264N).install \
	debian/$(libx264N).lintian-overrides

override_dh_auto_configure:
	sed -e 's/@libx264N@/$(libx264N)/g' debian/control.in > debian/control
	cp -f debian/libx264N.install debian/$(libx264N).install
ifeq ($(DEB_HOST_MULTIARCH),i386-linux-gnu)
	cp -f debian/libx264N.lintian-overrides debian/$(libx264N).lintian-overrides
endif

override_dh_auto_build:
	# Build static lib
	LDFLAGS="$(LDFLAGS)" ./configure $(static_confflags) \
	   || ( tail -v -n +0 config.log config.log ; exit 1 )
	$(MAKE)
	$(MAKE) install DESTDIR=$(instdir)/static
	$(MAKE) distclean
	# Build shared lib
	CFLAGS="$(shared_extra_cflags)" \
	LDFLAGS="$(LDFLAGS)" ./configure $(shared_confflags) \
	   || ( tail -v -n +0 config.log config.log ; exit 1 )
	$(MAKE)
	$(MAKE) install DESTDIR=$(instdir)/shared
	install -m644 libx264.a $(instdir)/static$(libdir)/libx264_pic.a
ifeq ($(do_opt),yes)
	$(MAKE) distclean
	# Build opt lib
	LDFLAGS="$(LDFLAGS)" ./configure $(opt_confflags) \
	   || ( tail -v -n +0 config.log config.log ; exit 1 )
	$(MAKE)
	$(MAKE) install DESTDIR=$(instdir)/opt
endif
	# now do the 10 bit builds
	$(MAKE) distclean
	CFLAGS="$(shared_extra_cflags)" \
	LDFLAGS="$(LDFLAGS)" ./configure $(shared_confflags) --bit-depth=10 \
	   || ( tail -v -n +0 config.log config.log ; exit 1 )
	$(MAKE)
	install -d -m755 $(instdir)/shared$(libdir10b)
	install -d -m755 $(instdir)/static$(libdir10b)
	install -d -m755 $(instdir)/static/usr/include/x264-10bit
	install -m755 x264 $(instdir)/shared$(libdir10b)
	install -m644 libx264.so.* $(instdir)/shared$(libdir10b)
	install -m644 libx264.a $(instdir)/static$(libdir10b)/libx264_pic.a
	install -m644 x264_config.h $(instdir)/static/usr/include/x264-10bit
	sed -e 's/@DEB_HOST_MULTIARCH@/$(DEB_HOST_MULTIARCH)/g' \
		debian/x264-10bit.in > $(instdir)/shared/usr/bin/x264-10bit
	chmod a+x $(instdir)/shared/usr/bin/x264-10bit
	ln -s libx264.so.$(SOVERSION) $(instdir)/static$(libdir10b)/libx264.so
	ln -s libx264.so.$(SOVERSION) $(instdir)/static$(libdir)/libx264.so
ifeq ($(do_opt),yes)
	$(MAKE) distclean
	# Build opt lib
	LDFLAGS="$(LDFLAGS)" ./configure $(opt_confflags) --bit-depth=10 \
	   || ( tail -v -n +0 config.log config.log ; exit 1 )
	$(MAKE)
	install -d -m755 $(instdir)/opt$(libdir10b)
	install -m644 libx264.so.* $(instdir)/opt$(libdir10b)
endif
	# Build 10 bit static lib
	$(MAKE) distclean
	LDFLAGS="$(LDFLAGS)" ./configure $(static_confflags) --bit-depth=10 \
	   || ( tail -v -n +0 config.log config.log ; exit 1 )
	$(MAKE)
	install -m644 libx264.a $(instdir)/static$(libdir10b)
	# Generate manpages
	env LD_LIBRARY_PATH="$(instdir)/shared$(libdir):$(LD_LIBRARY_PATH)" \
	$(help2man) > debian/x264.1
	env LD_LIBRARY_PATH="$(instdir)/shared$(libdir10b):$(LD_LIBRARY_PATH)" \
	$(help2man) > debian/x264-10bit.1

override_dh_auto_install:
	# dh_auto_install phase handled via dh_auto_build.

override_dh_install:
	dh_install -plibx264-dev --list-missing --sourcedir=$(instdir)/static
	dh_install -px264 -p$(libx264N) --list-missing --sourcedir=$(instdir)/shared
ifeq ($(do_opt),yes)
	mkdir -p debian/$(libx264N)$(opt_libdir)
	cp -a debian/install/opt$(opt_libdir)/*.so.* debian/$(libx264N)$(opt_libdir)
endif

