source: rtems-tools/tester/covoar/wscript @ 3e187ba

Last change on this file since 3e187ba was 3e187ba, checked in by Cillian O'Donnell <cpodonnell8@…>, on Apr 25, 2018 at 8:33:58 PM

covoar: Add symbol set reader and ELF data parser to covoar.

Add ability to organize symbol sets of libraries in INI file
and then read them with covoar and load the symbols directly from the
libraries.

rtems-tools/../testing: Add configuration files for coverage analysis.

A number of covoar options are not required and are defaulted.

Co-author: Krzysztof Miesowicz <krzysztof.miesowicz@…>
Co-author: Vijay Kumar Banerjee <vijaykumar9597@…>
Co-author: Chris Johns <chrisj@…>

  • Property mode set to 100644
File size: 4.7 KB
Line 
1#
2# RTEMS Tools Project (http://www.rtems.org/)
3# Copyright 2014 Chris Johns (chrisj@rtems.org)
4# All rights reserved.
5#
6# This file is part of the RTEMS Tools package in 'rtems-tools'.
7#
8# Redistribution and use in source and binary forms, with or without
9# modification, are permitted provided that the following conditions are met:
10#
11# 1. Redistributions of source code must retain the above copyright notice,
12# this list of conditions and the following disclaimer.
13#
14# 2. Redistributions in binary form must reproduce the above copyright notice,
15# this list of conditions and the following disclaimer in the documentation
16# and/or other materials provided with the distribution.
17#
18# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
22# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28# POSSIBILITY OF SUCH DAMAGE.
29#
30
31#
32# Build the covoar application.
33#
34# Taken from the waf C++ demo.
35#
36
37#
38# The following two variables are used by the target "waf dist".
39#
40VERSION='0.0.1'
41APPNAME='covoar'
42
43#
44# These variables are mandatory ('/' are converted automatically)
45#
46top = '.'
47out = 'build'
48
49def init(ctx):
50    pass
51
52def options(opt):
53    opt.load('compiler_cxx')
54
55def configure(conf):
56    conf.load('compiler_cxx')
57    conf.check_cc(function_name='open64', header_name="stdlib.h", mandatory = False)
58    conf.check_cc(function_name='stat64', header_name="stdlib.h", mandatory = False)
59    conf.write_config_header('covoar-config.h')
60
61def build(bld):
62    rtemstoolkit = '../../rtemstoolkit'
63    rtl_includes = [rtemstoolkit,
64                    rtemstoolkit + '/elftoolchain/libelf',
65                    rtemstoolkit + '/elftoolchain/common',
66                    rtemstoolkit + '/libiberty']
67    if bld.env.DEST_OS == 'win32':
68        rtl_includes += [rtemstoolkit + '/win32']
69
70    #
71    # The list of modules.
72    #
73    modules = ['rld', 'elf', 'iberty']
74
75    bld.stlib(target = 'ccovoar',
76              source = ['app_common.cc',
77                        'CoverageFactory.cc',
78                        'CoverageMap.cc',
79                        'CoverageMapBase.cc',
80                        'CoverageRanges.cc',
81                        'CoverageReaderBase.cc',
82                        'CoverageReaderQEMU.cc',
83                        'CoverageReaderRTEMS.cc',
84                        'CoverageReaderSkyeye.cc',
85                        'CoverageReaderTSIM.cc',
86                        'CoverageWriterBase.cc',
87                        'CoverageWriterRTEMS.cc',
88                        'CoverageWriterSkyeye.cc',
89                        'CoverageWriterTSIM.cc',
90                        'DesiredSymbols.cc',
91                        'ExecutableInfo.cc',
92                        'Explanations.cc',
93                        'GcovData.cc',
94                        'GcovFunctionData.cc',
95                        'ObjdumpProcessor.cc',
96                        'ReportsBase.cc',
97                        'ReportsText.cc',
98                        'ReportsHtml.cc',
99                        'SymbolTable.cc',
100                        'Target_arm.cc',
101                        'TargetBase.cc',
102                        'TargetFactory.cc',
103                        'Target_i386.cc',
104                        'Target_lm32.cc',
105                        'Target_m68k.cc',
106                        'Target_powerpc.cc',
107                        'Target_sparc.cc'],
108              cflags = ['-O2', '-g'],
109              cxxflags = ['-std=c++11', '-O2', '-g'],
110              includes = ['.'] + rtl_includes)
111
112    bld.program(target = 'trace-converter',
113                source = ['TraceConverter.cc',
114                          'TraceList.cc',
115                          'TraceReaderBase.cc',
116                          'TraceReaderLogQEMU.cc',
117                          'TraceWriterBase.cc',
118                          'TraceWriterQEMU.cc'],
119                use = ['ccovoar'] + modules,
120                cflags = ['-O2', '-g'],
121                cxxflags = ['-std=c++11', '-O2', '-g'],
122                includes = ['.'] + rtl_includes)
123
124    bld.program(target = 'covoar',
125                source = ['covoar.cc'],
126                use = ['ccovoar'] + modules,
127                cflags = ['-O2', '-g'],
128                cxxflags = ['-std=c++11', '-O2', '-g'],
129                includes = ['.'] + rtl_includes)
Note: See TracBrowser for help on using the repository browser.