summaryrefslogtreecommitdiff
path: root/ns3-simulations/nix/default.nix
diff options
context:
space:
mode:
authorLoic Guegan <manzerberdes@gmx.com>2019-05-04 11:52:18 +0200
committerLoic Guegan <manzerberdes@gmx.com>2019-05-04 11:52:18 +0200
commitf9d8e59ebbd697948f718f295bafa492f2d0947c (patch)
tree48afa04c008a537476d3b70081385baa83cb952a /ns3-simulations/nix/default.nix
parentbc6b033b0b622234e9be24b45e25f70ef8f76829 (diff)
Simplify nix source code
Diffstat (limited to 'ns3-simulations/nix/default.nix')
-rw-r--r--ns3-simulations/nix/default.nix61
1 files changed, 57 insertions, 4 deletions
diff --git a/ns3-simulations/nix/default.nix b/ns3-simulations/nix/default.nix
index 04134fb..62dea05 100644
--- a/ns3-simulations/nix/default.nix
+++ b/ns3-simulations/nix/default.nix
@@ -1,5 +1,58 @@
-with (import (fetchTarball "https://github.com/NixOS/nixpkgs/archive/19.03.tar.gz") {});
-rec {
- ns3 = callPackage ./ns3 { inherit stdenv; inherit fetchurl; inherit python; inherit gsl; };
- simulator = callPackage ./simulator { inherit stdenv; inherit ns3; };
+{
+ 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
+ '';
+
+ };
}