Difference between revisions of "Dependencies"

From gem5
Jump to: navigation, search
(Created page with "==External Dependencies== Like most software gem5 requires a number of packages and tools to be able to build itself. Since it's highly likely that any user will be required to m…")
 
Line 1: Line 1:
 
==External Dependencies==
 
==External Dependencies==
Like most software gem5 requires a number of packages and tools to be able to build itself. Since it's highly likely that any user will be required to make some changes to gem5 to use it unlike most software having an environment capable of building gem5 is require. The following tools are needed to build gem5:  
+
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:  
 +
 
 
===Required versions===
 
===Required versions===
 
To build M5, you will need the following software:
 
To build M5, you will need the following software:
Line 12: Line 13:
  
 
===Things in ext===
 
===Things in ext===
There are a number of libraries that are in the ext directory under the source tree. This is done primarily so that users don't need to install rarely used packages. These include:
+
Some packages which might be difficult to find or which were modified for us in gem5 are included in the ext directory.
 +
 
 
* [http://libdnet.sourceforge.net/ dnet] -- dnet provides a simplified, portable interface to several low-level networking routines.
 
* [http://libdnet.sourceforge.net/ dnet] -- dnet provides a simplified, portable interface to several low-level networking routines.
 
* [http://www.cs.unc.edu/Research/compgeom/gzstream/ gzstream] -- Gzstream is a small C++ library, basically just a wrapper, that provides the functionality of the zlib C-library in a C++ iostream.
 
* [http://www.cs.unc.edu/Research/compgeom/gzstream/ gzstream] -- Gzstream is a small C++ library, basically just a wrapper, that provides the functionality of the zlib C-library in a C++ iostream.

Revision as of 17:01, 10 April 2011

External Dependencies

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:

Required versions

To build M5, you will need the following software:

  • g++ version 3.4.6 or newer. < 3.4 seems to have some issues with templates or internal compiler errors prevent compilation.
  • Python, version 2.4 or newer. M5 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.
  • 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.