2008-07-20 19:33:42 +00:00
|
|
|
#! /usr/bin/env python
|
|
|
|
# encoding: utf-8
|
|
|
|
|
|
|
|
import Options, types, sys, Runner
|
|
|
|
from time import gmtime, strftime, timezone
|
|
|
|
|
|
|
|
# the following two variables are used by the target "waf dist"
|
|
|
|
VERSION='1.0'
|
|
|
|
APPNAME='spawn-fcgi'
|
|
|
|
|
|
|
|
# these variables are mandatory ('/' are converted automatically)
|
|
|
|
srcdir = '.'
|
|
|
|
blddir = 'build'
|
|
|
|
|
|
|
|
def set_options(opt):
|
|
|
|
opt.tool_options('compiler_cc')
|
2008-07-21 15:23:09 +00:00
|
|
|
opt.add_option('--without-limits', action='store_false', help='without /etc/security/limits.conf support', dest = 'limits', default = True)
|
|
|
|
|
2008-07-20 19:33:42 +00:00
|
|
|
|
|
|
|
def tolist(x):
|
|
|
|
if type(x) is types.ListType:
|
|
|
|
return x
|
|
|
|
return [x]
|
|
|
|
|
|
|
|
def PKGCONFIG(conf, name, uselib = None, define = '', version = '', mandatory = 0):
|
|
|
|
if not uselib: uselib = name
|
|
|
|
hconf = conf.create_pkgconfig_configurator()
|
|
|
|
hconf.name = name
|
|
|
|
hconf.version = version
|
|
|
|
hconf.uselib_store = uselib
|
|
|
|
hconf.define = define
|
|
|
|
hconf.mandatory = mandatory
|
|
|
|
res = hconf.run()
|
|
|
|
return res
|
|
|
|
|
|
|
|
def configure(conf):
|
|
|
|
opts = Options.options
|
|
|
|
|
|
|
|
conf.check_tool('compiler_cc')
|
|
|
|
|
2008-07-21 15:23:09 +00:00
|
|
|
if opts.limits:
|
|
|
|
conf.define("USE_LIMITS", 1)
|
|
|
|
conf.env['USE_LIMITS'] = opts.limits
|
|
|
|
|
2008-07-20 19:33:42 +00:00
|
|
|
conf.define("PACKAGE_NAME", APPNAME)
|
|
|
|
conf.define("PACKAGE_VERSION", VERSION)
|
|
|
|
conf.define("PACKAGE_BUILD_DATE", strftime("%b %d %Y %H:%M:%S UTC", gmtime()));
|
|
|
|
|
|
|
|
common_ccflags = [
|
|
|
|
'-std=gnu99', '-Wall', '-g', '-Wshadow', '-W', '-pedantic',
|
|
|
|
'-fPIC',
|
|
|
|
'-DHAVE_CONFIG_H', '-D_GNU_SOURCE',
|
|
|
|
]
|
|
|
|
conf.env['CCFLAGS_spawnfcgi'] += common_ccflags
|
|
|
|
|
|
|
|
PKGCONFIG(conf, "glib-2.0", uselib = 'glib', mandatory = 1)
|
|
|
|
incdir = conf.env['CPPPATH_glib'][0]
|
|
|
|
conf.env['CPPPATH_glib'] += [ incdir+'/glib-2.0/', incdir + '/glib-2.0/include/' ]
|
|
|
|
# CHECK_INCLUDE_FILES(conf, "glib.h", "HAVE_GLIB_H", uselib = 'glib', use = ['glib'], mandatory = 1)
|
|
|
|
|
|
|
|
conf.write_config_header('config.h')
|
|
|
|
|
2008-07-21 15:23:09 +00:00
|
|
|
main_source = '''
|
|
|
|
spawn-fcgi.c
|
|
|
|
'''
|
|
|
|
|
|
|
|
limits_source = '''
|
|
|
|
pam_limits.c
|
|
|
|
'''
|
|
|
|
|
2008-07-20 19:33:42 +00:00
|
|
|
def build(bld):
|
2008-07-21 15:23:09 +00:00
|
|
|
env = bld.env
|
|
|
|
|
2008-07-20 19:33:42 +00:00
|
|
|
spawnfcgi = bld.new_task_gen('cc', 'program')
|
|
|
|
spawnfcgi.name = 'spawn-fcgi'
|
2008-07-21 15:23:09 +00:00
|
|
|
spawnfcgi.source = main_source
|
|
|
|
if env['USE_LIMITS']:
|
|
|
|
spawnfcgi.source += limits_source
|
2008-07-20 19:33:42 +00:00
|
|
|
spawnfcgi.target = 'spawn-fcgi'
|
|
|
|
spawnfcgi.uselib += 'glib spawnfcgi'
|
|
|
|
spawnfcgi.includes = '.'
|