diff options
Diffstat (limited to 'src/ns3/nix/default.nix')
| -rw-r--r-- | src/ns3/nix/default.nix | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/ns3/nix/default.nix b/src/ns3/nix/default.nix new file mode 100644 index 0000000..62dea05 --- /dev/null +++ b/src/ns3/nix/default.nix @@ -0,0 +1,58 @@ +{ + pkgs ? (import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/19.03.tar.gz") {}) +}: + +with pkgs; rec { + + ns3 = stdenv.mkDerivation rec { + ##### Configure NIX ##### + name="ns3"; + sourceRoot="ns-allinone-3.29/ns-3.29/"; # Since we have 2 source tarball (ns-3 & ECOFEN) nix need to know which one to use + + ##### Fetch ns-3 And ECOFEN ##### + src = [ + (fetchurl { + url = https://www.nsnam.org/releases/ns-allinone-3.29.tar.bz2; + sha256 = "0m9dpmby116qk1m4x645i1p92syn30yzn9dgxxji5i25g30abpsd"; + }) + + (fetchurl { + url = http://people.irisa.fr/Anne-Cecile.Orgerie/ECOFEN/ecofen-v2.tar.bz2; + sha256 = "1dnmm20ihas6hwwb8qbx8sr3h66nrg8h55x6f2aqpf3xima29dyh"; + }) + ]; + + ##### Configure Dependencies ##### + buildInputs= [ python gsl ]; + + ##### Configure Phases ##### + postUnpack=''mv ecofen-module-v2 ${sourceRoot}/contrib/ecofen''; + configurePhase='' + export CXXFLAGS="-Wall -g -O0" # Don't treat warning as error when compiling ns-3 + python2 waf configure + ''; + buildPhase=''python2 waf''; + installPhase='' + mkdir -p $out/include + cp -r ./build/lib $out/ + cp -r ./build/ns3 $out/include + ''; + }; + + simulator= stdenv.mkDerivation rec { + ##### Configure NIX ##### + name="simulator"; + src=./simulator; + + ##### Export ns3 location ##### + NS3_PATH=ns3; + + ##### Configure Phases ##### + buildPhase=''make''; + installPhase='' + mkdir -p $out/bin + install -D -t $out/bin simulator + ''; + + }; +} |
