BoolOption ('static', 'build static libraries',
1),
BoolOption ('gui', 'build with GNOME backend (EXPERIMENTAL)',
- 1),
+ 0),
BoolOption ('verbose', 'run commands with verbose flag',
0),
BoolOption ('checksums', 'use checksums instead of timestamps',
def configure (target, source, env):
- vre = re.compile ('^.*[^-.0-9]([0-9][0-9]*\.[0-9]([.0-9]*[0-9])*).*$',
+ dre = re.compile ('\n(200[0-9]{5})')
+ vre = re.compile ('.*?\n[^-.0-9]*([0-9][0-9]*\.[0-9]([.0-9]*[0-9])*)',
re.DOTALL)
def get_version (program):
command = '(pkg-config --modversion %(program)s || %(program)s --version || %(program)s -V) 2>&1' % vars ()
output = pipe.read ()
if pipe.close ():
return None
- v = re.sub (vre, '\\1', output)
+ splits = re.sub ('^|\s', '\n', output)
+ date_hack = re.sub (dre, '\n0.0.\\1', splits)
+ m = re.match (vre, date_hack)
+ v = m.group (1)
if v[-1] == '\n':
v = v[:-1]
return string.split (v, '.')
test_program (optional, 'bison', '1.25', 'Bison -- parser generator',
'bison')
test_program (optional, 'dvips', '0.0', 'Dvips', 'tetex-bin')
-# test_program (optional, 'fontforge', '0.0.20041224', 'FontForge',
-# 'fontforge')
+ test_program (optional, 'fontforge', '0.0.20050624', 'FontForge',
+ 'fontforge')
test_program (optional, 'flex', '0.0', 'Flex -- lexer generator',
'flex')
test_program (optional, 'guile', '1.6', 'GUILE scheme', 'guile')
- test_program (optional, 'gs', '8.14',
+ test_program (optional, 'gs', '8.15',
'Ghostscript PostScript interpreter',
'gs or gs-afpl or gs-esp or gs-gpl')
- test_program (optional, 'mftrace', '1.1.0', 'Metafont tracing Type1',
+ test_program (optional, 'mftrace', '1.1.19', 'Metafont tracing Type1',
'mftrace')
test_program (optional, 'makeinfo', '4.7', 'Makeinfo tool', 'texinfo')
test_program (optional, 'perl', '4.0',
context.Result (ret)
return ret
- def CheckLibkpathseaSo (context):
- saveCFLAGS = []
- if context.env.has_key ('CFLAGS'):
- saveCFLAGS = context.env['CFLAGS']
- CFLAGS_shared_no_debugging = filter (lambda x: x != '-g',
- saveCFLAGS)\
- + ['-shared']
- # FIXME: how does this work, with scons
- context.env.Replace (CFLAGS = CFLAGS_shared_no_debugging)
- #context.env.Replace (CFLAGS = '')
- #context.env.Append (CFLAGS = ['-shared'])
- context.Message ('Checking for libkpathsea... ')
- ret = conf.TryLink ('''#include <kpathsea/kpathsea.h>
- int main ()
- {
- kpse_var_expand ("\$TEXMF");
- return 0;
- }
- ''', '.c')
- context.env.Replace (CFLAGS = saveCFLAGS)
- # FIXME: this prints 'ok' already
- context.Result (ret)
- if not ret:
- return 0
-
- sys.stdout.write ('Checking for libkpathsea.so... ')
- testfile = str (context.sconf.lastTarget)
- shared_size = os.path.getsize (testfile)
- ret = shared_size < 40000
- if ret:
- print 'ok'
- else:
- print 'no'
- return ret
-
conf = Configure (env, custom_tests = { 'CheckYYCurrentBuffer'
- : CheckYYCurrentBuffer,
- 'CheckLibkpathseaSo'
- : CheckLibkpathseaSo })
+ : CheckYYCurrentBuffer })
defines = {
'DIRSEP' : "'%s'" % os.sep,
else:
env.Append (CPPPATH = [PYTHON_INCLUDE])
- headers = ('sys/stat.h', 'assert.h', 'kpathsea/kpathsea.h', 'libio.h',
- 'Python.h')
+ headers = ('assert.h', 'grp.h', 'libio.h', 'pwd.h',
+ 'sys/stat.h', 'utf8/wchar.h', 'wchar.h', 'Python.h')
for i in headers:
if conf.CheckCHeader (i):
key = re.sub ('[./]', '_', 'HAVE_' + string.upper (i))
key = re.sub ('[./]', '_', 'HAVE_' + string.upper (i))
conf.env['DEFINES'][key] = 1
- functions = ('fopencookie', 'funopen',
- 'gettext', 'isinf', 'memmem', 'snprintf', 'vsnprintf')
+ functions = ('chroot', 'fopencookie', 'funopen',
+ 'gettext', 'isinf',
+ 'mbrtowc', 'memmem', 'snprintf', 'vsnprintf', 'wcrtomb')
for i in functions:
if 0 or conf.CheckFunc (i):
key = re.sub ('[./]', '_', 'HAVE_' + string.upper (i))
if conf.CheckYYCurrentBuffer ():
conf.env['DEFINES']['HAVE_FLEXLEXER_YY_CURRENT_BUFFER'] = 1
- if conf.CheckLibkpathseaSo ():
- conf.env['DEFINES']['HAVE_LIBKPATHSEA_SO'] = '1'
-
if conf.CheckLib ('dl'):
pass
- if conf.CheckLib ('kpathsea'):
- conf.env['DEFINES']['KPATHSEA'] = 1
-
- # huh?
- if conf.CheckLib ('kpathsea', 'kpse_find_file'):
- conf.env['DEFINES']['HAVE_KPSE_FIND_FILE'] = '1'
- if conf.CheckLib ('kpathsea', 'kpse_find_tfm'):
- conf.env['DEFINES']['HAVE_KPSE_FIND_TFM'] = '1'
-
if env['fast']:
cpppath = []
if env.has_key ('CPPPATH'):
'Development files for pango, with FreeType2',
'pango1.0'):
conf.env['DEFINES']['HAVE_PANGO_FT2'] = '1'
- conf.env['DEFINES']['HAVE_PANGO16'] = '1'
if test_lib (optional, 'fontconfig', '2.2.0',
'Development files for fontconfig', 'fontconfig1'):
if env['gui']:
test_lib (required, 'gtk+-2.0', '2.4.0',
'Development files for GTK+', 'gtk2.0')
- if test_lib (required, 'pango', '1.6.0',
- 'Development files for pango', 'pango1.0'):
- conf.env['DEFINES']['HAVE_PANGO16'] = '1'
- if conf.CheckCHeader ('pango/pangofc-fontmap.h'):
- conf.env['DEFINES']['HAVE_PANGO_PANGOFC_FONTMAP_H'] = '1'
if env['fast']:
# Using CCFLAGS = -I<system-dir> rather than CPPPATH = [
# <system-dir>] speeds up SCons
LILYPONDPREFIX = os.path.join (run_prefix, 'share/lilypond/', version)
env.Append (ENV = {
- #'LILYPONDPREFIX' : os.path.join (run_prefix, 'share/lilypond/', version),
'LILYPONDPREFIX' : LILYPONDPREFIX,
- # ugh, can't use LILYPONDPREFIX here
- #'TEXMF' : '{' + os.path.join (run_prefix, 'share/lilypond/', version)\
- #+ ',' \
'TEXMF' : '{$LILYPONDPREFIX,'
+ os.popen ('kpsexpand \$TEXMF').read ()[:-1] + '}',
})
env.Append (CCFLAGS = ['-g'])
if env['optimising']:
env.Append (CCFLAGS = '-O2')
- env.Append (CXXFLAGS = ['-DSTRING_UTILS_INLINED'])
if env['warnings']:
env.Append (CCFLAGS = ['-W', '-Wall'])
env.Append (CXXFLAGS = ['-Wconversion'])
# Declare SConscript phonies
env.Alias ('minimal', config_cache)
-env.Alias ('mf-essential', config_cache)
-env.Alias ('minimal', ['lily', 'mf-essential'])
-env.Alias ('all', ['minimal', 'mf', '.'])
+if 0:
+ env.Alias ('mf-essential', config_cache)
+ env.Alias ('minimal', ['python', 'lily', 'mf-essential'])
+ env.Alias ('all', ['minimal', 'mf', '.'])
+
+else:
+ env.Alias ('minimal', ['python', 'mf', 'lily'])
+ env.Alias ('all', ['minimal', '.'])
+
+
# Do we want the doc/web separation?
env.Alias ('doc',
- ['Documentation',
+ ['minimal',
+ 'Documentation',
'Documentation/user',
'Documentation/topdocs',
'Documentation/bibliography',
LILYPONDPREFIX = LILYPONDPREFIX,
# FIXME: move to lily/SConscript?
- LIBPATH = [os.path.join (absbuild, 'flower', env['out']),
- os.path.join (absbuild, 'kpath-guile', env['out']),],
+ LIBPATH = [os.path.join (absbuild, 'flower', env['out'])],
CPPPATH = [outdir, ],
LILYPOND_PATH = ['.',
'$srcdir/input',
% vars ())
os.chdir (srcdir)
-if 1: #env['debugging']:
- stamp = os.path.join (run_prefix, 'stamp')
- env.Command (stamp, ['#/SConstruct', '#/VERSION'],
- [symlink_tree, 'touch $TARGET'])
- env.Depends ('lily', stamp)
-
+env.Command (LILYPONDPREFIX, ['#/SConstruct', '#/VERSION'], symlink_tree)
+env.Depends ('lily', LILYPONDPREFIX)
+env.Depends ('doc', LILYPONDPREFIX)
+
#### dist, tar
def plus (a, b):
a + b
and 'web' not in COMMAND_LINE_TARGETS\
and 'install' not in COMMAND_LINE_TARGETS\
and 'clean' not in COMMAND_LINE_TARGETS:
- subdirs = ['lily',
+ subdirs = [ 'python',
+ 'lily',
'flower',
- 'kpath-guile',
'mf',
- 'python',
]
if os.path.isdir ('%(srcdir)s/CVS' % vars ()):