{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; devkitNix.url = "github:bandithedoge/devkitNix"; makerom = { flake = false; url = "github:/3DSGuy/Project_CTR"; }; }; outputs = { self, nixpkgs, flake-utils, devkitNix, makerom, ... }: flake-utils.lib.eachDefaultSystem ( system: let pkgs = import nixpkgs { inherit system; overlays = [devkitNix.overlays.default]; }; in { devShells.default = pkgs.mkShell.override { stdenv = pkgs.devkitNix.stdenvARM; } { packages = [self.packages.${pkgs.system}.makerom]; }; packages = { default = pkgs.devkitNix.stdenvARM.mkDerivation { name = "print3d"; src = ./.; buildInputs = [pkgs.imagemagick pkgs.which]; # makeFlags = ["TARGET=example"]; installPhase = '' mkdir $out cp 3ds.3dsx $out ''; }; makerom = pkgs.stdenv.mkDerivation { name = "makerom"; src = "${makerom}/makerom"; buildInputs = let pkgDep = name: pkgs.stdenv.mkDerivation { inherit name; src = "${makerom}/makerom/deps/${name}"; installPhase = '' mkdir -p $out/lib cp bin/${name}.a $out/lib ''; }; in [ (pkgDep "libblz") (pkgDep "libmbedtls") (pkgDep "libyaml") ]; installPhase = '' mkdir -p $out/bin cp bin/makerom $out/bin ''; }; }; } ); }