#!/usr/bin/make -f debian_cflags:=$(shell dpkg-buildflags --get CFLAGS | sed 's/-O3/-O2/') $(shell dpkg-buildflags --get CPPFLAGS) debian_ldflags:=$(shell dpkg-buildflags --get LDFLAGS) # export necessary for (hardening) flags for perl # (src/http/modules/perl/Makefile.PL). DEBIAN_NGINX_PERL_LDFLAGS:= $(debian_ldflags) export DEBIAN_NGINX_PERL_LDFLAGS FLAVOURS:=core full light extras naxsi BUILDDIR_core = $(CURDIR)/debian/build-core BUILDDIR_full = $(CURDIR)/debian/build-full BUILDDIR_light = $(CURDIR)/debian/build-light BUILDDIR_extras = $(CURDIR)/debian/build-extras BUILDDIR_naxsi = $(CURDIR)/debian/build-naxsi MODULESDIR = $(CURDIR)/debian/modules BASEDIR = $(CURDIR) DEB_BUILD_ARCH ?=$(shell dpkg-architecture -qDEB_BUILD_ARCH) ifeq ($(DEB_BUILD_ARCH),sparc) debian_cflags += -m32 -mcpu=ultrasparc endif ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS))) ifeq (${NUMJOBS}, 0) NUMJOBS = 1 endif else NUMJOBS = 1 endif # configure flags common_configure_flags := \ --with-cc-opt="$(debian_cflags)" \ --with-ld-opt="$(debian_ldflags)" \ --prefix=/usr/share/nginx \ --conf-path=/etc/nginx/nginx.conf \ --http-log-path=/var/log/nginx/access.log \ --error-log-path=/var/log/nginx/error.log \ --lock-path=/var/lock/nginx.lock \ --pid-path=/run/nginx.pid \ --http-client-body-temp-path=/var/lib/nginx/body \ --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \ --http-proxy-temp-path=/var/lib/nginx/proxy \ --http-scgi-temp-path=/var/lib/nginx/scgi \ --http-uwsgi-temp-path=/var/lib/nginx/uwsgi \ --with-debug \ --with-pcre-jit \ --with-ipv6 \ --with-http_ssl_module \ --with-http_stub_status_module \ --with-http_realip_module \ config.env.%: dh_testdir mkdir -p $(BUILDDIR_$*) cp -Pa $(CURDIR)/auto $(BUILDDIR_$*)/ cp -Pa $(CURDIR)/conf $(BUILDDIR_$*)/ cp -Pa $(CURDIR)/configure $(BUILDDIR_$*)/ cp -Pa $(CURDIR)/contrib $(BUILDDIR_$*)/ cp -Pa $(CURDIR)/src $(BUILDDIR_$*)/ cp -Pa $(CURDIR)/man $(BUILDDIR_$*)/ config.status.core: config.env.core cd $(BUILDDIR_core) && ./configure \ $(common_configure_flags) \ --with-http_addition_module \ --with-http_dav_module \ --with-http_geoip_module \ --with-http_gzip_static_module \ --with-http_image_filter_module \ --with-http_spdy_module \ --with-http_sub_module \ --with-http_xslt_module \ --with-mail \ --with-mail_ssl_module \ >$@ touch $@ config.status.full: config.env.full cd $(BUILDDIR_full) && ./configure \ $(common_configure_flags) \ --with-http_addition_module \ --with-http_dav_module \ --with-http_geoip_module \ --with-http_gzip_static_module \ --with-http_image_filter_module \ --with-http_spdy_module \ --with-http_sub_module \ --with-http_xslt_module \ --with-mail \ --with-mail_ssl_module \ --add-module=$(MODULESDIR)/nginx-auth-pam \ --add-module=$(MODULESDIR)/nginx-dav-ext-module \ --add-module=$(MODULESDIR)/nginx-echo \ --add-module=$(MODULESDIR)/nginx-upstream-fair \ --add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \ --add-module=$(MODULESDIR)/ngx_pagespeed \ >$@ touch $@ config.status.light: config.env.light cd $(BUILDDIR_light) && ./configure \ $(common_configure_flags) \ --with-http_gzip_static_module \ --without-http_browser_module \ --without-http_geo_module \ --without-http_limit_req_module \ --without-http_limit_zone_module \ --without-http_memcached_module \ --without-http_referer_module \ --without-http_scgi_module \ --without-http_split_clients_module \ --without-http_ssi_module \ --without-http_userid_module \ --without-http_uwsgi_module \ --add-module=$(MODULESDIR)/nginx-echo \ --add-module=$(MODULESDIR)/ngx_pagespeed \ >$@ touch $@ config.status.extras: config.env.extras cd $(BUILDDIR_extras) && ./configure \ $(common_configure_flags) \ --with-http_addition_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_geoip_module \ --with-http_gzip_static_module \ --with-http_image_filter_module \ --with-http_mp4_module \ --with-http_perl_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_spdy_module \ --with-http_sub_module \ --with-http_xslt_module \ --with-mail \ --with-mail_ssl_module \ --add-module=$(MODULESDIR)/headers-more-nginx-module \ --add-module=$(MODULESDIR)/nginx-auth-pam \ --add-module=$(MODULESDIR)/nginx-cache-purge \ --add-module=$(MODULESDIR)/nginx-dav-ext-module \ --add-module=$(MODULESDIR)/nginx-development-kit \ --add-module=$(MODULESDIR)/nginx-echo \ --add-module=$(MODULESDIR)/ngx-fancyindex \ --add-module=$(MODULESDIR)/nginx-http-push \ --add-module=$(MODULESDIR)/nginx-lua \ --add-module=$(MODULESDIR)/nginx-upload-progress \ --add-module=$(MODULESDIR)/nginx-upstream-fair \ --add-module=$(MODULESDIR)/ngx_http_substitutions_filter_module \ --add-module=$(MODULESDIR)/ngx_pagespeed \ >$@ touch $@ config.status.naxsi: config.env.naxsi cd $(BUILDDIR_naxsi) && ./configure \ $(common_configure_flags) \ --without-mail_pop3_module \ --without-mail_smtp_module \ --without-mail_imap_module \ --without-http_uwsgi_module \ --without-http_scgi_module \ --add-module=$(MODULESDIR)/naxsi/naxsi_src \ --add-module=$(MODULESDIR)/nginx-cache-purge \ --add-module=$(MODULESDIR)/nginx-upstream-fair \ --add-module=$(MODULESDIR)/ngx_pagespeed \ >$@ touch $@ config.status.%: echo "configuration for flavour $* not yet defined." build-arch.%: config.status.% dh_testdir dh_prep $(MAKE) -j$(NUMJOBS) -C $(BUILDDIR_$*) build build-arch: $(foreach flavour,$(FLAVOURS),build-arch.$(flavour)) dh_testdir touch $@ build-dbg.%: install dh_testdir dh_strip --package=nginx-$(*) --dbg-package=nginx-$(*)-dbg build-dbg: $(foreach flavour,$(FLAVOURS),build-dbg.$(flavour)) dh_testdir touch $@ build-indep: build: build-indep build-arch dh_testdir touch $@ clean: dh_testdir dh_testroot dh_clean rm -rf $(CURDIR)/debian/build-* install: dh_testdir dh_testroot dh_prep dh_installdirs dh_install binary-indep: build install dh_testdir dh_testroot dh_installman -i dh_installchangelogs -i -k CHANGES dh_installdocs -i dh_installdebconf dh_installexamples -i dh_systemd_enable --name=nginx dh_installinit -i --no-restart-on-upgrade --no-start --name=nginx dh_installinit -i --no-restart-on-upgrade --no-start --name=nginx-naxsi-ui dh_systemd_start dh_installlogrotate -i -pnginx-common --name=nginx dh_link -i dh_compress -i dh_fixperms -i dh_installdeb -i dh_gencontrol -i dh_md5sums -i dh_builddeb -i binary-arch: install build-dbg dh_testdir dh_testroot dh_installchangelogs -a -k CHANGES dh_installdocs -a dh_lintian -a dh_link -aA dh_compress -a dh_perl -a dh_fixperms -a dh_installdeb -a dh_shlibdeps -a dh_gencontrol -a dh_md5sums -a dh_builddeb -a binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install