Use the package name to infer module location. This will make it easier to script our maintaining tasks.
196 lines
6.3 KiB
Makefile
Executable file
196 lines
6.3 KiB
Makefile
Executable file
#!/usr/bin/make -f
|
|
export DH_VERBOSE=1
|
|
|
|
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
|
|
debian_cflags:=$(shell dpkg-buildflags --get CFLAGS) -fPIC $(shell dpkg-buildflags --get CPPFLAGS)
|
|
debian_ldflags:=$(shell dpkg-buildflags --get LDFLAGS) -fPIC
|
|
|
|
FLAVOURS := full light extras
|
|
DYN_MODS := \
|
|
http-auth-pam \
|
|
http-cache-purge \
|
|
http-dav-ext \
|
|
http-echo \
|
|
http-fancyindex \
|
|
http-geoip \
|
|
http-headers-more-filter \
|
|
http-image-filter \
|
|
http-lua \
|
|
http-ndk \
|
|
http-perl \
|
|
http-subs-filter \
|
|
http-uploadprogress \
|
|
http-upstream-fair \
|
|
http-xslt-filter \
|
|
mail \
|
|
nchan \
|
|
rtmp \
|
|
stream
|
|
|
|
MODULESDIR = $(CURDIR)/debian/modules
|
|
BASEDIR = $(CURDIR)
|
|
$(foreach flavour,$(FLAVOURS),$(eval BUILDDIR_$(flavour) = $(CURDIR)/debian/build-$(flavour)))
|
|
|
|
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)))
|
|
MAKEFLAGS += -j$(NUMJOBS)
|
|
endif
|
|
|
|
MODULESPATCHDIR = $(CURDIR)/debian/modules/patches
|
|
modules_with_patches := $(notdir $(wildcard $(CURDIR)/debian/modules/patches/*))
|
|
|
|
# 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 \
|
|
--modules-path=/usr/lib/nginx/modules \
|
|
--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-http_ssl_module \
|
|
--with-http_stub_status_module \
|
|
--with-http_realip_module \
|
|
--with-http_auth_request_module \
|
|
--with-http_v2_module \
|
|
--with-http_dav_module \
|
|
--with-http_slice_module \
|
|
--with-threads
|
|
|
|
light_configure_flags := \
|
|
$(common_configure_flags) \
|
|
--with-http_gzip_static_module \
|
|
--without-http_browser_module \
|
|
--without-http_geo_module \
|
|
--without-http_limit_req_module \
|
|
--without-http_limit_conn_module \
|
|
--without-http_memcached_module \
|
|
--without-http_referer_module \
|
|
--without-http_split_clients_module \
|
|
--without-http_userid_module \
|
|
--add-dynamic-module=$(MODULESDIR)/http-echo
|
|
|
|
full_configure_flags := \
|
|
$(common_configure_flags) \
|
|
--with-http_addition_module \
|
|
--with-http_geoip_module=dynamic \
|
|
--with-http_gunzip_module \
|
|
--with-http_gzip_static_module \
|
|
--with-http_image_filter_module=dynamic \
|
|
--with-http_sub_module \
|
|
--with-http_xslt_module=dynamic \
|
|
--with-stream=dynamic \
|
|
--with-stream_ssl_module \
|
|
--with-stream_ssl_preread_module \
|
|
--with-mail=dynamic \
|
|
--with-mail_ssl_module \
|
|
--add-dynamic-module=$(MODULESDIR)/http-auth-pam \
|
|
--add-dynamic-module=$(MODULESDIR)/http-dav-ext \
|
|
--add-dynamic-module=$(MODULESDIR)/http-echo \
|
|
--add-dynamic-module=$(MODULESDIR)/http-upstream-fair \
|
|
--add-dynamic-module=$(MODULESDIR)/http-subs-filter
|
|
|
|
extras_configure_flags := \
|
|
$(common_configure_flags) \
|
|
--with-http_addition_module \
|
|
--with-http_flv_module \
|
|
--with-http_geoip_module=dynamic \
|
|
--with-http_gunzip_module \
|
|
--with-http_gzip_static_module \
|
|
--with-http_image_filter_module=dynamic \
|
|
--with-http_mp4_module \
|
|
--with-http_perl_module=dynamic \
|
|
--with-http_random_index_module \
|
|
--with-http_secure_link_module \
|
|
--with-http_sub_module \
|
|
--with-http_xslt_module=dynamic \
|
|
--with-mail=dynamic \
|
|
--with-mail_ssl_module \
|
|
--with-stream=dynamic \
|
|
--with-stream_ssl_module \
|
|
--with-stream_ssl_preread_module \
|
|
--add-dynamic-module=$(MODULESDIR)/http-headers-more-filter \
|
|
--add-dynamic-module=$(MODULESDIR)/http-auth-pam \
|
|
--add-dynamic-module=$(MODULESDIR)/http-cache-purge \
|
|
--add-dynamic-module=$(MODULESDIR)/http-dav-ext \
|
|
--add-dynamic-module=$(MODULESDIR)/http-ndk \
|
|
--add-dynamic-module=$(MODULESDIR)/http-echo \
|
|
--add-dynamic-module=$(MODULESDIR)/http-fancyindex \
|
|
--add-dynamic-module=$(MODULESDIR)/nchan \
|
|
--add-dynamic-module=$(MODULESDIR)/http-lua \
|
|
--add-dynamic-module=$(MODULESDIR)/rtmp \
|
|
--add-dynamic-module=$(MODULESDIR)/http-uploadprogress \
|
|
--add-dynamic-module=$(MODULESDIR)/http-upstream-fair \
|
|
--add-dynamic-module=$(MODULESDIR)/http-subs-filter
|
|
|
|
%:
|
|
dh $@ --without autoreconf
|
|
|
|
override_dh_auto_configure: config_patch_modules $(foreach flavour,$(FLAVOURS),config.arch.$(flavour))
|
|
override_dh_auto_build: $(foreach flavour,$(FLAVOURS),build.arch.$(flavour))
|
|
override_dh_strip: $(foreach flavour,$(FLAVOURS),strip.arch.$(flavour)) $(foreach mod,$(DYN_MODS),strip.mods.$(mod))
|
|
override_dh_clean: clean_patch_modules $(foreach flavour,$(FLAVOURS),clean.$(flavour))
|
|
dh_clean
|
|
|
|
override_dh_install:
|
|
dh_install
|
|
DH_AUTOSCRIPTDIR=$(CURDIR)/debian/autoscripts debian/dh_nginx
|
|
|
|
override_dh_installinit:
|
|
dh_installinit --no-restart-on-upgrade --no-start --name=nginx
|
|
|
|
override_dh_systemd_enable:
|
|
dh_systemd_enable --name=nginx
|
|
|
|
override_dh_installlogrotate:
|
|
dh_installlogrotate --package nginx-common --name=nginx
|
|
|
|
build.arch.%:
|
|
$(MAKE) -C $(BUILDDIR_$*) build
|
|
|
|
strip.arch.%:
|
|
dh_strip --package=nginx-$(*) -O--dbgsym-migration='nginx-$(*)-dbg (<< 1.10.1-3~)'
|
|
|
|
strip.mods.%:
|
|
dh_strip --package=libnginx-mod-$(*) -O--automatic-dbgsym
|
|
|
|
config_patch_modules: $(foreach mod,$(modules_with_patches),config.patch.$(mod))
|
|
config.patch.%:
|
|
cd $(MODULESDIR)/$* && QUILT_PATCHES=$(MODULESPATCHDIR)/$* quilt push -a
|
|
|
|
clean_patch_modules: $(foreach mod,$(modules_with_patches),clean.patch.$(mod))
|
|
clean.patch.%:
|
|
if [ -s $(MODULESDIR)/$*/.pc/applied-patches ]; then \
|
|
cd $(MODULESDIR)/$* && QUILT_PATCHES=$(MODULESPATCHDIR)/$* quilt pop -q -a; \
|
|
rm -rf $(MODULESDIR)/$*/.pc; \
|
|
fi
|
|
|
|
config.arch.%:
|
|
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_$*)/
|
|
cd $(BUILDDIR_$*) && ./configure $($*_configure_flags)
|
|
|
|
clean.%:
|
|
rm -rf $(BUILDDIR_$*)
|
|
|
|
.PHONY: config_patch_modules clean_patch_modules
|