source: trunk/SConstruct @ 238

Last change on this file since 238 was 238, checked in by tim, 13 years ago

moved development documentation back to old location, adjusted build scripts accordingly

misc documentation fixes

File size: 3.3 KB
RevLine 
[211]1import sys
[212]2import os
[234]3sys.dont_write_bytecode = True
[232]4from regfi_version import REGFI_VERSION
[211]5
[225]6cflags = '-std=gnu99 -pedantic -Wall -D_FILE_OFFSET_BITS=64 -fvisibility=hidden'
[232]7cflags += ' -DREGFI_VERSION=\'"%s"\'' % REGFI_VERSION
[225]8cflags += ' -ggdb'
[187]9
10lib_src = ['lib/regfi.c',
11           'lib/winsec.c',
12           'lib/range_list.c',
13           'lib/lru_cache.c',
14           'lib/void_stack.c']
15
[191]16env = Environment(CFLAGS=cflags,
17                  CPPPATH=['include', '/usr/local/include'],
18                  LIBPATH=['lib', '/usr/local/lib'],
[195]19                  LIBS=['m', 'pthread', 'regfi', 'talloc'])
[191]20
[194]21
[187]22# Libraries
23libregfi_static = env.Library(lib_src)
[203]24libregfi = env.SharedLibrary(lib_src, LIBS=['m','pthread', 'talloc'])
[187]25
[189]26
[187]27# Executables
[191]28reglookup = env.Program(['src/reglookup.c'])
29reglookup_recover = env.Program(['src/reglookup-recover.c'])
[187]30
[189]31
[187]32# Documentation
33#  This only needs to be run during the release/packaging process
34man_fixup = "|sed 's/.SH DESCRIPTION/\\n.SH DESCRIPTION/'"
35man_builder = Builder(action='docbook2x-man --to-stdout $SOURCE'
36                      + man_fixup + '| gzip -9 > $TARGET',
37                      suffix = '.gz',
[189]38                      src_suffix = '.docbook')
[187]39env['BUILDERS']['ManPage'] = man_builder
40
41man_reglookup = env.ManPage('doc/reglookup.1.docbook')
42man_reglookup_recover = env.ManPage('doc/reglookup-recover.1.docbook')
43man_reglookup_timeline = env.ManPage('doc/reglookup-timeline.1.docbook')
44
[189]45# Installation
46prefix='/usr/local/'
[212]47install_items = [prefix+'bin',
48                 prefix+'lib',
49                 prefix+'include/regfi',
50                 prefix+'man']
51
[189]52env.Install(prefix+'bin', [reglookup, reglookup_recover, 'bin/reglookup-timeline'])
53env.Install(prefix+'lib', [libregfi, libregfi_static])
[193]54env.Install(prefix+'include/regfi', Glob('include/*.h'))
[189]55env.Install(prefix+'man/man1', [man_reglookup, man_reglookup_recover,
56                                man_reglookup_timeline])
57
[212]58if sys.version_info[0] == 2:
59   install_items.append('pyregfi2-install.log')
60   env.Command('pyregfi2-install.log', ['python/pyregfi/__init__.py', 'python/pyregfi/structures.py'],
61               "python pyregfi-distutils.py install | tee pyregfi2-install.log")
[189]62
[212]63python_path = os.popen('which python3').read()
64if python_path != '':
65   install_items.append('pyregfi3-install.log')
66   env.Command('pyregfi3-install.log', ['python/pyregfi/__init__.py', 'python/pyregfi/structures.py'],
67               "python3 pyregfi-distutils.py install | tee pyregfi3-install.log")
68
[238]69# API documentation
70regfi_doc = env.Command('doc/devel/regfi/index.html',
71                        Glob('lib/*.c')+Glob('include/*.h')+['doc/devel/Doxyfile.regfi'],
72                        'doxygen doc/devel/Doxyfile.regfi')
73pyregfi_doc = env.Command('doc/devel/pyregfi/index.html',
74                          Glob('python/pyregfi/*.py')+['doc/devel/Doxyfile.pyregfi', regfi_doc],
75                          'doxygen doc/devel/Doxyfile.pyregfi')
[212]76
[238]77
[187]78# User Friendly Targets
79env.Alias('libregfi', libregfi)
80env.Alias('reglookup', reglookup)
81env.Alias('reglookup-recover', reglookup_recover)
82env.Alias('bin', [reglookup_recover, reglookup])
83env.Alias('doc', [man_reglookup,man_reglookup_recover,man_reglookup_timeline])
[238]84env.Alias('doc-devel', [regfi_doc, pyregfi_doc])
[212]85env.Alias('install', install_items)
[187]86
87Default('bin', libregfi)
Note: See TracBrowser for help on using the repository browser.