#!/usr/bin/make -f

#export DH_VERBOSE=1
CFLAGS ?= $(shell dpkg-buildflags --get CFLAGS)
LDFLAGS ?= $(shell dpkg-buildflags --get LDFLAGS)
WITH_HTTP2 := $(shell printf \
	"Source: nginx\nBuild-Depends: libssl-dev (>= 1.0.1)\n" | \
	dpkg-checkbuilddeps - >/dev/null 2>&1 && \
	echo "--with-http_v2_module")
PKGS = nginx nginx-dbg \
	nginx-module-xslt nginx-module-geoip nginx-module-image-filter \
	nginx-module-perl nginx-module-njs
COMMON_CONFIGURE_ARGS := \
	--prefix=/etc/nginx \
	--sbin-path=/usr/sbin/nginx \
	--modules-path=/usr/lib/nginx/modules \
	--conf-path=/etc/nginx/nginx.conf \
	--error-log-path=/var/log/nginx/error.log \
	--http-log-path=/var/log/nginx/access.log \
	--pid-path=/var/run/nginx.pid \
	--lock-path=/var/run/nginx.lock \
	--http-client-body-temp-path=/var/cache/nginx/client_temp \
	--http-proxy-temp-path=/var/cache/nginx/proxy_temp \
	--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
	--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
	--http-scgi-temp-path=/var/cache/nginx/scgi_temp \
	--user=nginx \
	--group=nginx \
	--with-http_ssl_module \
	--with-http_realip_module \
	--with-http_addition_module \
	--with-http_sub_module \
	--with-http_dav_module \
	--with-http_flv_module \
	--with-http_mp4_module \
	--with-http_gunzip_module \
	--with-http_gzip_static_module \
	--with-http_random_index_module \
	--with-http_secure_link_module \
	--with-http_stub_status_module \
	--with-http_auth_request_module \
	--with-http_xslt_module=dynamic \
	--with-http_image_filter_module=dynamic \
	--with-http_geoip_module=dynamic \
	--with-http_perl_module=dynamic \
	--add-dynamic-module=debian/extra/njs-0.1.2/nginx \
	--with-threads \
	--with-stream \
	--with-stream_ssl_module \
	--with-stream_realip_module \
	--with-stream_geoip_module=dynamic \
	--with-http_slice_module \
	--with-mail \
	--with-mail_ssl_module \
	--with-file-aio \
	--with-ipv6 \
	$(WITH_HTTP2) \
	--with-cc-opt="$(CFLAGS)" \
	--with-ld-opt="$(LDFLAGS)"

%:
	dh $@ 

override_dh_auto_configure: configure_debug

override_dh_strip:
	dh_strip --dbg-package=nginx-dbg

override_dh_auto_build:
	dh_auto_build
	mv objs/nginx objs/nginx-debug
	mv objs/ngx_http_xslt_filter_module.so objs/ngx_http_xslt_filter_module-debug.so
	mv objs/ngx_http_image_filter_module.so objs/ngx_http_image_filter_module-debug.so
	mv objs/ngx_http_geoip_module.so objs/ngx_http_geoip_module-debug.so
	mv objs/ngx_http_perl_module.so objs/ngx_http_perl_module-debug.so
	mv objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.so objs/src/http/modules/perl/blib/arch/auto/nginx/nginx-debug.so
	mv objs/ngx_http_js_module.so objs/ngx_http_js_module-debug.so
	mv objs/ngx_stream_js_module.so objs/ngx_stream_js_module-debug.so
	mv objs/ngx_stream_geoip_module.so objs/ngx_stream_geoip_module-debug.so
	CFLAGS="" ./configure $(COMMON_CONFIGURE_ARGS)
	dh_auto_build

configure_debug:
	CFLAGS="" ./configure $(COMMON_CONFIGURE_ARGS) \
		--with-debug

override_dh_auto_install:
	sed -e 's/%%PROVIDES%%/nginx/g' \
		-e 's/%%DEFAULTSTART%%/2 3 4 5/g' \
		-e 's/%%DEFAULTSTOP%%/0 1 6/g' \
		< debian/init.d.in > debian/init.d
	dh_auto_install
	mkdir -p debian/nginx/etc/init.d debian/nginx/etc/default \
		debian/nginx/usr/lib/nginx/modules
	sed -e 's/%%PROVIDES%%/nginx-debug/g' \
		-e 's/%%DEFAULTSTART%%//g' \
		-e 's/%%DEFAULTSTOP%%/0 1 2 3 4 5 6/g' \
		< debian/init.d.in > debian/debug.init.d
	/usr/bin/install -m 755 debian/debug.init.d \
		debian/nginx/etc/init.d/nginx-debug
	/usr/bin/install -m 644 debian/nginx-debug.default \
		debian/nginx/etc/default/nginx-debug
	/usr/bin/install -m 644 debian/nginx.conf debian/nginx/etc/nginx/
	/usr/bin/install -m 644 conf/win-utf debian/nginx/etc/nginx/
	/usr/bin/install -m 644 conf/koi-utf debian/nginx/etc/nginx/
	/usr/bin/install -m 644 conf/koi-win debian/nginx/etc/nginx/
	/usr/bin/install -m 644 conf/mime.types debian/nginx/etc/nginx/
	/usr/bin/install -m 644 conf/scgi_params debian/nginx/etc/nginx/
	/usr/bin/install -m 644 conf/fastcgi_params debian/nginx/etc/nginx/
	/usr/bin/install -m 644 conf/uwsgi_params debian/nginx/etc/nginx/
	/usr/bin/install -m 644 html/index.html \
		debian/nginx/usr/share/nginx/html/
	/usr/bin/install -m 644 html/50x.html \
		debian/nginx/usr/share/nginx/html/
	/usr/bin/install -m 644 debian/nginx.vh.default.conf \
		debian/nginx/etc/nginx/conf.d/default.conf
	/usr/bin/install -m 755 objs/nginx  debian/nginx/usr/sbin/
	/usr/bin/install -m 755 objs/nginx-debug  debian/nginx/usr/sbin/
	cd debian/nginx/etc/nginx && /bin/ln -s \
		../../usr/lib/nginx/modules modules && cd -

override_dh_gencontrol:
	for p in $(PKGS); do \
		if [ -e debian/$$p.version ]; then \
			dpkg-gencontrol -p$$p -ldebian/changelog -Tdebian/$$p.substvars -Pdebian/$$p -v`cat debian/$$p.version`~`lsb_release -cs`; \
		else \
			dpkg-gencontrol -p$$p -ldebian/changelog -Tdebian/$$p.substvars -Pdebian/$$p ; \
		fi ; \
	done

override_dh_clean:
	dh_clean
	rm -f debian/*init.d
