mirror of
https://git.rtems.org/rtems-docs/
synced 2025-05-15 03:17:09 +08:00

Due to RTEMS 6 no longer using the Make build system and instead using Waf (Eclipse does not offer Waf support), this guide is being removed.
138 lines
3.5 KiB
Python
138 lines
3.5 KiB
Python
#
|
|
# RTEMS Project Documentation
|
|
#
|
|
|
|
import sys
|
|
import os.path
|
|
|
|
import waflib
|
|
|
|
#
|
|
# Set Python's system path to `common` from the top level so the
|
|
# conf.py modules in subdirectories can be found. See xml_catalogue in
|
|
# common/waf.py.
|
|
#
|
|
sys.path.append(os.path.abspath('common'))
|
|
|
|
from common import waf as docs_waf
|
|
from common import version
|
|
|
|
#
|
|
# Branch version
|
|
#
|
|
rtems_major_version = '6'
|
|
|
|
#
|
|
# The documents to build.
|
|
#
|
|
build_all = ['user',
|
|
'c-user',
|
|
'bsp-howto',
|
|
'posix-users',
|
|
'posix-compliance',
|
|
'eng',
|
|
'filesystem',
|
|
'shell',
|
|
'cpu-supplement',
|
|
'develenv',
|
|
'legacy-networking']
|
|
|
|
building = build_all
|
|
|
|
def options(opt):
|
|
docs_waf.cmd_options(opt)
|
|
|
|
def configure(conf):
|
|
conf.find_program('git')
|
|
for b in building:
|
|
conf.recurse(b)
|
|
conf.env['BUILD_FROM_TOP'] = 'yes'
|
|
|
|
def catalogue(ctx):
|
|
docs_waf.xml_catalogue(ctx, building)
|
|
|
|
def coverpage_js(ctx):
|
|
js = None
|
|
xml = None
|
|
for f in ctx.inputs:
|
|
if f.abspath().endswith('.js'):
|
|
with open(f.abspath()) as i:
|
|
js = i.read()
|
|
elif f.abspath().endswith('.xml'):
|
|
with open(f.abspath()) as i:
|
|
xml = i.read()
|
|
xml = xml.replace('\n', ' \\\n');
|
|
with open(ctx.outputs[0].abspath(), 'w') as o:
|
|
o.write(js.replace('@CATALOGUE', xml))
|
|
|
|
def index_html(ctx):
|
|
html = ''
|
|
year = ctx.env.DATE.split()[2]
|
|
for f in ctx.inputs:
|
|
if f.abspath().endswith('.html'):
|
|
with open(f.abspath()) as i:
|
|
html += i.read()
|
|
with open(ctx.outputs[0].abspath(), 'w') as o:
|
|
html = html.replace('@COPYRIGHT_YEAR@', year)
|
|
html = html.replace('@VER_DATE@', ctx.env.DATE)
|
|
o.write(html)
|
|
|
|
def build(ctx):
|
|
#
|
|
# Get the version.
|
|
#
|
|
ver_version, ver_date, ver_released = version.get(ctx, rtems_major_version)
|
|
ctx.env.DATE = ver_date
|
|
ctx.env.RELEASE = ver_version + ' (' + ver_date + ')'
|
|
ctx.env.VERSION = ver_version
|
|
ctx.env.RTEMS_MAJOR = version.major()
|
|
ctx.env.RTEMS_MINOR = version.minor()
|
|
ctx.env.RTEMS_REVISION = version.revision()
|
|
ctx.to_log('Build: %s%s' % (ctx.env.RELEASE, os.linesep))
|
|
|
|
#
|
|
#
|
|
# Generate any PlantUML images if enabled.
|
|
#
|
|
ctx.recurse('images')
|
|
ctx.add_group('images')
|
|
|
|
for b in building:
|
|
ctx.recurse(b)
|
|
|
|
#
|
|
# Build the catalogue, coverpage.js, index.html and install.
|
|
#
|
|
ctx(rule = catalogue,
|
|
target = 'catalogue.xml',
|
|
source = ['wscript', 'common/waf.py'] + ['%s/conf.py' % x for x in building])
|
|
ctx.install_files('${PREFIX}', 'catalogue.xml')
|
|
ctx(rule = coverpage_js,
|
|
target = 'coverpage.js',
|
|
source = ['wscript', 'catalogue.xml', 'common/coverpage/coverpage.js'])
|
|
ctx.install_as('${PREFIX}/coverpage.js', 'coverpage.js')
|
|
ctx(rule = index_html,
|
|
target = 'coverpage.html',
|
|
source = ['wscript', 'common/coverpage/coverpage.html'])
|
|
ctx.install_as('${PREFIX}/index.html', 'coverpage.html')
|
|
#
|
|
# Install the static content.
|
|
#
|
|
static_dir = ctx.path.find_dir('common/coverpage/static')
|
|
ctx.install_files('${PREFIX}/static',
|
|
static_dir.ant_glob('**'),
|
|
cwd = static_dir,
|
|
relative_trick = True)
|
|
|
|
def install(ctx):
|
|
for b in building:
|
|
ctx.recurse(b)
|
|
|
|
def cmd_spell(ctx):
|
|
for b in building:
|
|
ctx.recurse(b)
|
|
|
|
def cmd_linkcheck(ctx):
|
|
for b in building:
|
|
ctx.recurse(b)
|