Changes between Version 6 and Version 7 of Soclib Cc/Design Guide
- Timestamp:
- Mar 25, 2010, 3:54:05 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Soclib Cc/Design Guide
v6 v7 2 2 = SoCLib's compilation helper = 3 3 4 == What do we want ? == 5 6 We want a tool which can build a complete virtual prototype (aka SystemC simulator) from: 7 * a topcell provided by user 8 * a list of parametrable components, and their parameters 9 10 Therefore we need the following features: 11 * Component indexation in the library tree 12 * Parametrization of source files 13 * Build of all these files 14 15 We also want to be able to compile all these with different SystemC implementation 16 and different compilation modes (debug, release, profiling, …) without having 17 to change build files. 18 19 As virtual prototypes 20 may be huge but users always use the same parameters, we would like the 21 following additional features: 22 * Parallel compilation 23 * Object caching (ccache could be an option) 24 25 As we speak about C++, parametrization of source files uses templated code. 26 4 27 == Why ? == 5 28 6 We use a lot of tricky things like:29 Reworded, we need: 7 30 8 31 * Different SystemC backends (SystemC-OSCI, SystemCASS, SoCView) … … 32 55 == Why not reuse existing tools ? == 33 56 34 This could be seen as reimplementing make, or even SCons, and this is 35 not totally false. But we added other features: 36 * Template instantiation 37 * Separate source enumeration 38 * Object caching 39 40 There is no build tool known out the which does object caching and 57 There is no build tool known out there which does object caching and 41 58 template instantiation at the same time. Even if current build tools 42 59 may be enhanced to do the job, this is not an easy task. 43 60 Moreover, resulting code would be a kludge. 44 61 This is all about flexibility, and user-input readability. 62 63 This could be seen as reimplementing make, or even SCons, and this is 64 not totally wrong. But we added other features: 65 * Template instantiation 66 * Separate source enumeration 67 * Object caching 45 68 46 69 Soclib-cc has been implemented as a `make` wrapper before,