Skip to content
Steven Galgano edited this page Nov 17, 2022 · 27 revisions

The following instructions are for building distribution packages from EMANE source. The emane git repository master branch always contains the latest EMANE release. Older versions are available as tags. Use the develop branch for access to the latest non-stable source.

See the Install page for information on installing EMANE from pre-built packages.

Contents

General Build Instructions

The general steps to build EMANE are the same across all distributions.

  1. Install the required build dependencies. The following dependencies are available via your distribution package manager:

    1. libxml2
    2. libpcap
    3. pcre
    4. libuuid
    5. protobuf
    6. python-protobuf
    7. python-lxml

    Dependency package names vary slightly between distributions. Consult the below instructions for distribution specifics.

  2. Clone the EMANE repo:

    # git clone https://github.com/adjacentlink/emane.git
    
  3. Build and install EMANE:

    # cd emane
    # ./autogen.sh && ./configure --prefix=/usr && make install
    

RHEL/CentOS 7

  1. Install EMANE build dependencies and tools:

    # sudo yum install autoconf automake git libtool libxml2-devel libpcap-devel \
    pcre-devel libuuid-devel python-devel python-setuptools rpm-build make gcc-c++ 
    
  2. Enable the EPEL package repository and install Google Protocol Buffer dependencies:

    # sudo yum install epel-release
    # sudo yum install protobuf protobuf-devel protobuf-compiler protobuf-python
    
  3. C++17 support:

    # sudo yum install centos-release-scl
    # sudo yum install devtoolset-9
    
  4. Clone the EMANE repo:

    # git clone https://github.com/adjacentlink/emane.git
    
  5. Build RPMs using devtoolset:

    # scl enable devtoolset-9 bash
    # cd emane
    # ./autogen.sh && ./configure && make rpm
    
  6. Install RPMs:

    # cd .rpmbuild
    # sudo yum install $(ls RPMS/x86_64/*.rpm RPMS/noarch/*.rpm | grep -v debuginfo)
    

RHEL/Rocky/CentOS Stream 8

  1. Enable the EPEL package repository and powertools:

    # sudo dnf install epel-release
    # sudo dnf config-manager --set-enabled powertools
    
  2. Install EMANE build dependencies:

    # dnf install gcc-c++ autoconf automake libtool libxml2-devel protobuf-devel \
    python3-protobuf libpcap-devel pcre-devel libuuid-devel rpm-build \
    python3-setuptools python3-devel git make
    
  3. Clone the EMANE repo:

    # git clone https://github.com/adjacentlink/emane.git
    
  4. Build RPMs:

    # cd emane
    # ./autogen.sh && ./configure && make rpm
    
  5. Install RPMs:

    # cd .rpmbuild
    # sudo dnf install $(ls RPMS/x86_64/*.rpm RPMS/noarch/*.rpm | grep -v debuginfo)
    

Fedora 37

  1. Install EMANE build dependencies:

    # dnf install gcc-c++ autoconf automake libtool libxml2-devel protobuf-devel \
    python3-protobuf libpcap-devel pcre-devel libuuid-devel rpm-build \
    python3-setuptools python3-devel git make
    
  2. Clone the EMANE repo:

    # git clone https://github.com/adjacentlink/emane.git
    
  3. Build RPMs:

    # cd emane
    # ./autogen.sh && ./configure && make rpm
    
  4. Install RPMs:

    # cd .rpmbuild
    # sudo dnf install $(ls RPMS/x86_64/*.rpm RPMS/noarch/*.rpm | grep -v debuginfo)
    

Ubuntu 20.04 LTS

  1. Install EMANE build dependencies:

    # sudo apt-get install gcc g++ autoconf automake libtool libxml2-dev libprotobuf-dev \
    libpcap-dev libpcre3-dev uuid-dev debhelper pkg-config protobuf-compiler git dh-python \
    python3-protobuf python3-setuptools 
    
  2. Clone the EMANE repo:

    # git clone https://github.com/adjacentlink/emane.git
    
  3. Build debs:

    # cd emane
    # ./autogen.sh && ./configure && make deb
    
  4. Install debs:

    # cd .debbuild
    # sudo dpkg -i *.deb
    # sudo apt-get install -f