Difference between revisions of "Dependencies"
Revision as of 19:30, 17 December 2011
Like most software, gem5 depends on a number of packages and tools to build and to run. It's very likely that you'll have to modify gem5 in some way to get it to do what you need, so practically speaking a working build environment is required. The following tools are needed to build gem5:
To build M5, you will need the following software:
- g++ version 4.2 or newer.
- Python, version 2.4 - 2.7 (we don't support Python 3.X). gem5 links in the Python interpreter, so you need the Python header files and shared library (e.g., /usr/lib/libpython2.4.so) in addition to the interpreter executable. These may or may not be installed by default. For example, on Debian/Ubuntu, you need the "python-dev" package in addition to the "python" package. If you need a newer or different Python installation but can't or don't want to upgrade the default Python on your system, see our page on using a non-default Python installation.
- SCons, version 0.98.1 or newer. SCons is a powerful replacement for make. See here to download SCons. If you don't have administrator privileges on your machine, you can use the "scons-local" package to install scons in your m5 directory, or install SCons in your home directory using the '--prefix=' option.
- SWIG, version 1.3.31 or newer; There are some bugs with swig 2.0.0 - 2.0.2 & 2.0.4 that prevent it from working with gem5.
- zlib, any recent version. For Debian/Ubuntu, you will need the "zlib-dev" or "zlib1g-dev" package to get the zlib.h header file as well as the library itself.
- m4, the macro processor.
Things in ext
Some packages which might be difficult to find or which were modified for us in gem5 are included in the ext directory.
- dnet -- dnet provides a simplified, portable interface to several low-level networking routines.
- gzstream -- Gzstream is a small C++ library, basically just a wrapper, that provides the functionality of the zlib C-library in a C++ iostream.
- libelf -- ELF object file access library.
- PLY -- PLY is an implementation of lex and yacc parsing tools for Python.
- x11ksyms -- Keycodes from X11 for VNC support.