forked from jonashaag/bjoern
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
56 lines (50 loc) · 2.28 KB
/
setup.py
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
import os
import glob
from setuptools import setup, Extension
WANT_SIGINT_HANDLING = os.environ.get('BJOERN_WANT_SIGINT_HANDLING', True)
WANT_SIGNAL_HANDLING = os.environ.get('BJOERN_WANT_SIGNAL_HANDLING', True)
SIGNAL_CHECK_INTERVAL = os.environ.get('BJOERN_SIGNAL_CHECK_INTERVAL', '0.1')
WANT_STATSD = os.environ.get('BJOERN_WANT_STATSD', False)
WANT_STATSD_TAGS = os.environ.get('BJOERN_WANT_STATSD_TAGS', False)
compile_flags = [('SIGNAL_CHECK_INTERVAL', SIGNAL_CHECK_INTERVAL)]
if WANT_SIGNAL_HANDLING:
compile_flags.append(('WANT_SIGNAL_HANDLING', 'yes'))
if WANT_SIGINT_HANDLING:
compile_flags.append(('WANT_SIGINT_HANDLING', 'yes'))
if WANT_STATSD:
compile_flags.append(('WANT_STATSD', 'yes'))
if WANT_STATSD_TAGS:
compile_flags.append(('WANT_STATSD_TAGS', 'yes'))
SOURCE_FILES = [os.path.join('http-parser', 'http_parser.c')] + \
[os.path.join('statsd-c-client', 'statsd-client.c')] + \
sorted(glob.glob(os.path.join('bjoern', '*.c')))
if not WANT_STATSD:
SOURCE_FILES.remove('statsd-c-client/statsd-client.c')
SOURCE_FILES.remove('bjoern/statsd_tags.c')
bjoern_extension = Extension(
'_bjoern',
sources = SOURCE_FILES,
libraries = ['ev'],
include_dirs = ['http-parser', 'statsd-c-client', '/usr/include/libev', '/opt/local/include'],
define_macros = compile_flags,
extra_compile_args = ['-std=c99', '-fno-strict-aliasing', '-fcommon',
'-fPIC', '-Wall', '-Wextra', '-Wno-unused-parameter',
'-Wno-missing-field-initializers', '-g']
)
setup(
name = 'bjoern',
author = 'Jonas Haag',
author_email = '[email protected]',
license = '2-clause BSD',
url = 'https://github.com/jonashaag/bjoern',
description = 'A screamingly fast Python 2 + 3 WSGI server written in C.',
version = '3.1.0',
classifiers = ['Development Status :: 4 - Beta',
'License :: OSI Approved :: BSD License',
'Programming Language :: C',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 3',
'Topic :: Internet :: WWW/HTTP :: WSGI :: Server'],
py_modules = ['bjoern'],
ext_modules = [bjoern_extension]
)