153 lines
3.5 KiB
Nix
153 lines
3.5 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
let
|
|
gnss-sdr = pkgs.stdenv.mkDerivation rec {
|
|
pname = "gnss-sdr";
|
|
version = "0.0.20";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "gnss-sdr";
|
|
repo = "gnss-sdr";
|
|
rev = "v${version}";
|
|
sha256 = "sha256-kQv8I4dcWeRuAfYtD5EAAMwvfnOTi+QWDogUZb4M/qQ=";
|
|
};
|
|
|
|
nativeBuildInputs = with pkgs; [ cmake pkg-config python3 git ];
|
|
buildInputs = with pkgs; [
|
|
volk boost fftw protobuf pugixml
|
|
gnuradio gnuradioPackages.osmosdr
|
|
armadillo glog gflags spdlog
|
|
python3Packages.mako blas lapack
|
|
gnutls openssl zlib hdf5 matio
|
|
libiio gtest orc
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DCMAKE_BUILD_TYPE=Release"
|
|
"-DCMAKE_INSTALL_LIBDIR=lib"
|
|
"-DENABLE_OSMOSDR=ON"
|
|
"-DENABLE_VOLK_GNSSSDR=ON"
|
|
"-DENABLE_UNIT_TESTING=OFF"
|
|
"-DENABLE_OWN_GLOG=OFF"
|
|
"-DENABLE_OWN_ARMADILLO=OFF"
|
|
];
|
|
enableParallelBuilding = true;
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
make volk_gnsssdr_module -j$NIX_BUILD_CORES
|
|
make volk_gnsssdr_module_install -j$NIX_BUILD_CORES || true
|
|
make -j$NIX_BUILD_CORES
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
make install
|
|
runHook postInstall
|
|
'';
|
|
};
|
|
|
|
satdump = pkgs.stdenv.mkDerivation rec {
|
|
pname = "satdump";
|
|
version = "1.2.2";
|
|
|
|
src = pkgs.fetchgit {
|
|
url = "https://github.com/SatDump/SatDump.git";
|
|
rev = version;
|
|
sha256 = "sha256-QGegi5/geL5U3/ecc3hsdW+gp25UE9fOYVLFJUo/N50=";
|
|
};
|
|
|
|
nativeBuildInputs = with pkgs; [ cmake pkg-config ];
|
|
buildInputs = with pkgs; [
|
|
fftwFloat libpng libtiff jemalloc volk
|
|
(nng.overrideAttrs (old: {
|
|
cmakeFlags = old.cmakeFlags or [] ++ [ "-DBUILD_SHARED_LIBS=ON" ];
|
|
}))
|
|
rtl-sdr-librtlsdr hackrf airspy airspyhf
|
|
glfw zenity zstd libad9361 libiio
|
|
];
|
|
|
|
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
|
|
};
|
|
|
|
gr-gsm = pkgs.stdenv.mkDerivation rec {
|
|
pname = "gr-gsm";
|
|
version = "porting_to_3.11";
|
|
|
|
src = pkgs.fetchFromGitHub {
|
|
owner = "ptrkrysik";
|
|
repo = "gr-gsm";
|
|
rev = "porting_to_3.11";
|
|
sha256 = "sha256-ILw1n0qdqcqJsuWQ3g1zNP+z2OlJ6sq+AY8LC1lTDJg=";
|
|
};
|
|
|
|
nativeBuildInputs = with pkgs; [
|
|
cmake pkg-config swig doxygen
|
|
python3 python3Packages.numpy python3Packages.pybind11 python3Packages.pygccxml
|
|
];
|
|
buildInputs = with pkgs; [
|
|
python3 python3Packages.numpy python3Packages.pybind11 python3Packages.pygccxml
|
|
gnuradio gnuradioPackages.osmosdr volk
|
|
fftw boost cppunit libpcap libosmocore
|
|
log4cpp gmpxx mpir spdlog
|
|
];
|
|
|
|
cmakeFlags = [
|
|
"-DCMAKE_BUILD_TYPE=Release"
|
|
"-DCMAKE_PREFIX_PATH=${pkgs.gnuradio}/lib/cmake"
|
|
];
|
|
enableParallelBuilding = true;
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
make
|
|
runHook postBuild
|
|
'';
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
make install
|
|
mkdir -p $out/bin
|
|
cp -v $src/apps/grgsm_* $out/bin/
|
|
runHook postInstall
|
|
'';
|
|
};
|
|
|
|
in
|
|
{
|
|
hardware = {
|
|
hackrf.enable = true;
|
|
rtl-sdr.enable = true;
|
|
};
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
gnuradio
|
|
gnuradioPackages.lora_sdr
|
|
gnuradioPackages.osmosdr
|
|
gnuradioPackages.bladeRF
|
|
multimon-ng
|
|
sdrpp
|
|
qsstv
|
|
wsjtx
|
|
osmo-hlr
|
|
osmo-bts
|
|
osmo-bsc
|
|
osmo-sgsn
|
|
osmo-ggsn
|
|
kalibrate-hackrf
|
|
srsran
|
|
hackrf
|
|
rtl-sdr
|
|
rtl_433
|
|
gsmlib
|
|
libsrs2
|
|
|
|
# build
|
|
gnss-sdr
|
|
satdump
|
|
gr-gsm
|
|
];
|
|
|
|
}
|