summaryrefslogtreecommitdiff
path: root/src/ns3/nix/default.nix
diff options
context:
space:
mode:
authorLoic Guegan <manzerberdes@gmx.com>2019-05-22 11:24:17 +0200
committerLoic Guegan <manzerberdes@gmx.com>2019-05-22 11:24:17 +0200
commit8bdcd37ac44fe96d2c59424a24752f87f0444e36 (patch)
treee31a0fe38c01bc6814a0b35474875fe538ea87c2 /src/ns3/nix/default.nix
parent5a77b67d6baae0414310d29cab6f240963866062 (diff)
Update paper
Diffstat (limited to 'src/ns3/nix/default.nix')
-rw-r--r--src/ns3/nix/default.nix58
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
+ '';
+
+ };
+}