File: rules

package info (click to toggle)
uwsgi 2.0.31-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 6,624 kB
  • sloc: ansic: 87,072; python: 7,010; cpp: 1,133; java: 708; perl: 678; sh: 585; ruby: 555; makefile: 148; xml: 130; cs: 121; objc: 37; php: 28; erlang: 20; javascript: 11
file content (144 lines) | stat: -rwxr-xr-x 4,870 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!/usr/bin/make -f

# the equivalent of "uwsgi-core --dot-h | md5sum" at runtime
abi = $(firstword $(shell echo | cat uwsgi.h - | md5sum))

# encode list items for use in long description (see deb-substvars(5) )
substvars-list-encode = perl -0 -F'/\s+/' -ane 'print " * ", join("\$${Newline} * ",@F)'

UWSGI_ENV = CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)"

UWSGI_BUILDER = python3 uwsgiconfig.py -v

UWSGI_SRCPLUGINS_AVAILABLE := $(sort $(notdir $(wildcard plugins/*)))
# plugins not yet ready for production use
UWSGI_SRCPLUGINS_EXPERIMENTAL = libffi libtcc router_spnego
# plugins irrelevant/unusable for Debian or built separately (by another
# dedicated source package.
UWSGI_SRCPLUGINS_ALIEN = airbrake alarm_speech matheval mongodb \
    stackless emperor_mongodb gridfs mongodblog mono php \
	stats_pusher_mongodb v8 gccgo jvm ring servlet jwsgi \
	glusterfs rados rack fiber rbthreads lua \
	python tornado asyncio greenlet gevent psgi coroae \
	pypy
UWSGI_SRCPLUGINS_DEMO = cplusplus dumbloop dummy example exception_log
UWSGI_SRCPLUGINS_UNKNOWN = legion_cache_fetch objc_gc pyuwsgi ruby19
UWSGI_SRCPLUGINS_EXCLUDE = $(UWSGI_SRCPLUGINS_ALIEN) \
	$(UWSGI_SRCPLUGINS_DEMO) $(UWSGI_SRCPLUGINS_EXPERIMENTAL) \
	$(UWSGI_SRCPLUGINS_UNKNOWN)
UWSGI_SRCPLUGINS_WANTED = $(filter-out $(UWSGI_SRCPLUGINS_EXCLUDE),\
	$(UWSGI_SRCPLUGINS_AVAILABLE))
UWSGI_SRCPLUGINS_ADDON = alarm_curl alarm_xmpp curl_cron \
	emperor_pg geoip graylog2 ldap \
	router_access sqlite3 xslt
# tun/tap is unavailable on the Hurd
# systemd is available only on linux
# tuntap plugin broken on kFreeBSD: https://github.com/unbit/uwsgi/issues/695
UWSGI_SRCPLUGINS_SKIP = \
	$(if $(filter hurd,$(DEB_HOST_ARCH_OS)),\
		tuntap) \
	$(if $(filter kfreebsd,$(DEB_HOST_ARCH_OS)),\
		tuntap) \
	$(if $(filter-out linux,$(DEB_HOST_ARCH_OS)),\
		systemd_logger)
UWSGI_SRCPLUGINS_CORE = $(filter-out \
	$(UWSGI_SRCPLUGINS_ADDON) \
	$(UWSGI_SRCPLUGINS_SKIP),\
	$(UWSGI_SRCPLUGINS_WANTED))

# generate documentation unless nodoc requested
ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
MANPAGES = $(patsubst %,debian/uwsgi_%.1,$(UWSGI_SRCPLUGINS_ADDON)) \
 debian/uwsgi-core.1 \
 debian/debhelper/dh_uwsgi.1
endif

%:
	dh $@ --buildsystem=none

bin/uwsgi-%: debian/buildconf/uwsgi-%.ini
	$(UWSGI_ENV) $(UWSGI_BUILDER) --build $<

bin/uwsgi_%:
	ln -sf uwsgi-core bin/uwsgi_$*

%_plugin.so:
	$(UWSGI_ENV) $(UWSGI_BUILDER) \
		--plugin plugins/`basename $*` \
		debian/buildconf/uwsgi-plugin.ini
	if [ `dirname $@` != "." ]; then \
		mkdir -p `dirname $@` && mv `basename $@` $@; \
	fi

debian/%.1: bin/%
	help2man \
		--name 'fast (pure C), self-healing, developer-friendly WSGI server' \
		--section 1 \
		--no-info \
		$< > $@

debian/debhelper/%.1: debian/debhelper/%
	pod2man $< > $@

override_dh_auto_build-arch: \
 bin/uwsgi-core \
 $(addsuffix _plugin.so,\
  $(addprefix build/plugins-core/,$(UWSGI_SRCPLUGINS_CORE)) \
  $(UWSGI_SRCPLUGINS_ADDON))

execute_after_dh_auto_build-arch: $(MANPAGES)

override_dh_auto_test:
	find debian \
		-type f -not -empty -regextype egrep \
		-regex '.*(postinst|prerm|rtupdate|init\.d).*' \
		-exec shellcheck -e SC1090,SC1091,SC2034,SC2043 -s sh {} +
	shellcheck -e SC1091,SC2001,SC2034,SC2162 -s bash debian/uwsgi-files/init/*

override_dh_auto_clean:
	$(UWSGI_BUILDER) --clean

execute_after_dh_auto_clean:
	find -type f -name '*.pyc' -delete
	find -type d -name __pycache__ -delete

override_dh_install:
	dh_install -p uwsgi-src -X.key -X.dll -X.gitignore
	dh_install --remaining-packages

override_dh_installdocs:
	dh_installdocs --all README CONTRIBUTORS

# move installed examples into subdirs by type
ex_types = conffile psgi rack router wsapi wsgi
ex_conffile = mega.xml multi.* sites.xml uwsgi.xml vassals werkzeug_strict.yml werkzeug.*
ex_rack = config.ru config2.ru fibers.*
ex_router = router.lua uwsgirouter*
ex_psgi = mojoapp.pl
ex_wsapi = *.ws
ex_wsgi = mjpeg_stream.py multiapp.py simple_app.py simple_app_wsgi2.py taskqueue.py
ex_drop = bootstrap* config*.lua config??.ru corostream.pl debug.ini
ex_drop += flaskpost.py heavytest.* info_uwsgi.php logic.ini
ex_drop += protected.ini welcome.ini welcome3.py
execute_after_dh_installexamples-arch:
	set -e; \
	cd debian/uwsgi-core/usr/share/doc/uwsgi-core/examples; \
	$(foreach type, $(ex_types),mkdir $(type); mv -t $(type) $(ex_$(type));) \
	rm $(ex_drop)

override_dh_compress:
	dh_compress -p uwsgi-core \
	 $(addprefix -X,.ini .lua .pl .png .psgi .py .ru .ws .xml .yml)
	dh_compress -p uwsgi-extra \
	 $(addprefix -X,.class .java .rb .c)
	dh_compress --remaining-packages

override_dh_strip:
	dh_strip --dbgsym-migration='uwsgi-dbg (<< 2.0.26-3~)'

override_dh_gencontrol:
	dh_gencontrol -p uwsgi-core -- \
	 -V'uwsgi:Provides=uwsgi-abi-$(abi)' \
	 -V'uwsgi:corepluginlist=$(shell \
	  echo $(UWSGI_SRCPLUGINS_CORE) | $(substvars-list-encode))'
	dh_gencontrol --remaining-packages