{ description = "A very basic flake"; inputs = { nixpkgs.url = github:NixOS/nixpkgs; utils.url = github:numtide/flake-utils; }; outputs = { self, nixpkgs, utils }: utils.lib.eachDefaultSystem(system: let pkgs = nixpkgs.legacyPackages.${system}; lib = pkgs.lib; # FIXME: Lua is borked at the moment :( lua = pkgs.lua5_3.withPackages(ps: with ps; [ readline cjson http luarocks ]); fennel = pkgs.fennel.override { lua = lua; }; gambit = pkgs.callPackage "${nixpkgs.outPath}/pkgs/development/compilers/gambit/build.nix" rec { version = "4.9.4"; git-version = version; src = pkgs.fetchFromGitHub { owner = "gambit"; repo = "gambit"; rev = "3bbd8a2959670c145f73cd25740d99a6834ac787"; sha256 = "111hhqkmn9knqbyfzxxg81sshyh3p6n7ywp32vrhx1ckqdk7rcjf"; }; }; in { devShells.default = pkgs.mkShell rec { buildInputs = with pkgs; [ chicken openssl gcc ]; LD_LIBRARY_PATH = "${lib.makeLibraryPath buildInputs}"; }; packages.default = pkgs.stdenv.mkDerivation rec { name = "seizethemeans"; src = ./.; buildInputs = with pkgs; [ chicken openssl gcc ]; buildPhase = '' chicken ./main.scm -explicit-use gcc ''; installPhase = '' mkdir -p $out/bin cp main $out/bin/seize-the-means ''; LD_LIBRARY_PATH = "${lib.makeLibraryPath buildInputs}"; }; }); }