1Overview 2======== 3 4This repository is a redistribution of the Accellera SystemC 2.3.1 library 5[[1]][sysc]. This distribution replaces Accellera's Autoconf build system with 6a SCons build system, which is very useful for integration of SystemC in other 7SCons based projects, e.g., gem5 [[2]][gem5]. 8 9The repository contains all the source files from the Accellera distribution, 10but strips down the boost dependencies. All references to the boost library 11are replaced by calls to the C++11 STL. This repository also contains the 12TLM 2.0 protocl checker from Doulos [[3]][doulos]. 13 14Build 15===== 16 17To build libsystemc-2.3.1.so, simply type scons. Optionally you can specify the 18number of jobs. 19 20``` 21scons -j N 22``` 23 24To build and link to SystemC from another SCons project, simply call the 25SConscript located in `src/`. Be sure to add `-std=c++11` to the `CXXFLAGS` of 26your environment and to export the environment as `'env'`. In case you build on 27OS X, you will need to add `-undefined dynamic lookup` to your `LINKFLAGS`. 28This is how a minimal SConstruct for your SystemC project could look: 29 30```python 31env = Environment() 32 33env.Append(CXXFLAGS=['-std=c++11']) 34if env['PLATFORM'] == 'darwin': 35 env.Append(LINKFLAGS=['-undefined', 'dynamic_lookup']) 36 37systemc = env.SConscript('<path_to_systemc>/src/SConscript', exports=['env']) 38env.Program('example', ['example.cc', systemc]) 39``` 40 41[sysc]: http://accellera.org/downloads/standards/systemc 42[gem5]: http://www.gem5.org/Main_Page 43[doulos]: https://www.doulos.com/knowhow/systemc/tlm2/base_protocol_checker/ 44