This repository has been archived on 2025-02-01. You can view files and clone it, but cannot push or open issues or pull requests.
alock/SConstruct
mathias 8e97bc35c0 * minor change to buildsystem to handle imlib2 propperly
--HG--
extra : convert_revision : svn%3Aeebe1cee-a9af-4fe4-bd26-ad572b19c5ab/trunk%4016
2005-05-18 09:58:04 +00:00

154 lines
4.3 KiB
Python

#!/bin/env python
##########################################################
#
# scons - buildsystem for alock
#
##########################################################
import sys
alock_version = '0.9'
alock_optfile = [ 'scons.opts', 'user.opts' ]
alock_target = 'src/alock'
Default(alock_target)
alock_options = Options(alock_optfile)
alock_options.AddOptions(
BoolOption('debug', 'build debug version', 0),
BoolOption('passwd', 'support for classic passwd', 0),
BoolOption('shadow', 'support for shadowpasswords', 0),
BoolOption('pam', 'support for pam', 1),
BoolOption('hash', 'support for hashs(sha1,md5)', 1),
BoolOption('imlib2', 'support imagereading via imlib2', 1),
BoolOption('xcursor', 'support xcursor-themes', 1),
BoolOption('amd5', 'build a little md5-helper', 0),
BoolOption('asha1', 'build a little sha1-helper', 0),
PathOption('prefix', 'install-path base', '/usr/local')
)
alock_env = Environment(options = alock_options,
TARFLAGS = '-c -z',
TARSUFFIX = '.tgz')
alock_options.Update(alock_env)
Help(alock_options.GenerateHelpText(alock_env))
###########################################################
#
#
if sys.platform == "linux2" or sys.platform == "linux-i386":
alock_env.AppendUnique(
CPPDEFINES = [ 'LINUX' ])
alock_env.AppendUnique(
CPPDEFINES = [ 'VERSION=\\"'+alock_version+'\\"' ],
CPPFLAGS = [ '-Wall' ],
CPPPATH = [ '/usr/X11R6/include' ],
LIBPATH = ['/usr/X11R6/lib'],
LIBS = [ 'X11' ])
conf = alock_env.Configure()
if not conf.CheckLibWithHeader('X11', 'X11/Xlib.h', 'C', 'XOpenDisplay(0);', 1):
print "sorry, no headers or libs for X11 found, cant build alock."
Exit(1)
conf.Finish()
if alock_env['debug']:
alock_env.AppendUnique(
CPPDEFINES = [ 'DEBUG' ],
LINKFLAGS = [ '-g' ],
CPPFLAGS = [ '-g' ])
if alock_env['passwd']:
alock_env.AppendUnique(
CPPDEFINES = [ 'PASSWD_PWD' ],
LIBS = [ 'crypt' ])
if alock_env['pam']:
alock_env.AppendUnique(
CPPDEFINES = [ 'PAM_PWD' ],
LIBS = [ 'pam', 'crypt' ])
if sys.platform == 'linux2' or sys.platform == 'linux-i386':
alock_env.AppendUnique(LIBS = ['pam_misc'])
if alock_env['shadow']:
alock_env.AppendUnique(
CPPDEFINES = [ 'SHADOW_PWD' ])
if alock_env['hash']:
alock_env.AppendUnique(
CPPDEFINES = [ 'HASH_PWD' ])
if alock_env['xcursor']:
conf = alock_env.Configure()
if conf.CheckLib('Xcursor', 'XcursorSupportsARGB', 1):
alock_env.AppendUnique(
CPPDEFINES = [ 'HAVE_XCURSOR' ],
LIBS = [ 'Xcursor' ])
else:
alock_env['xcursor'] = 0
print "sorry, no xcursor-support found."
conf.Finish()
if alock_env['imlib2']:
conf = alock_env.Configure()
if not conf.env.WhereIs('imlib2-config'):
print "cant find 'imlib2-config."
alock_env['imlib2'] = 0
else:
imlib2_env = Environment()
imlib2_env.ParseConfig('imlib2-config --cflags --libs')
if not imlib2_env.Dictionary()['LIBS']:
print "missing imlib2, install it."
alock_env['imlib2'] = 0
else:
alock_env.AppendUnique(
CPPDEFINES = [ 'HAVE_IMLIB2' ],
LIBPATH = imlib2_env.Dictionary()['LIBPATH'],
CPPAPTH = imlib2_env.Dictionary()['CPPPATH'],
LIBS = imlib2_env.Dictionary()['LIBS']
)
############################################################################
#
#
default_targets = [ alock_target ]
if alock_env['amd5']:
default_targets += [ 'src/amd5' ]
if alock_env['asha1']:
default_targets += [ 'src/asha1' ]
Default(default_targets)
alock_options.Save('scons.opts', alock_env)
alock_program = SConscript(
'src/SConscript',
exports = ['alock_env']
)
alock_env.Install(
alock_env['prefix']+'/bin',
alock_program
)
alock_env.Alias(
'install',
alock_env['prefix']+'/bin'
)
# TODO: add a "scons dist" command which builds a propper tarball
#alock_env.Alias('dist', alock_env.Tar(alock_target + '-' + alock_version,
# alock_distfiles))
# vim:ft=python