Merge pull request #329823 from ExpidusOS/fix/pkgsllvm/elfutils
[NixPkgs.git] / pkgs / by-name / fl / flashprog / package.nix
blobfe04a6586cd840289a7d080355c57215811eed41
1 { fetchgit
2 , installShellFiles
3 , lib
4 , libftdi1
5 , libgpiod
6 , libjaylink
7 , libusb1
8 , pciutils
9 , pkg-config
10 , stdenv
11 , withJlink ? true
12 , withGpio ? stdenv.isLinux
15 stdenv.mkDerivation (finalAttrs: {
16   pname = "flashprog";
17   version = "1.1";
19   src = fetchgit {
20     url = "https://review.sourcearcade.org/flashprog";
21     rev = "v${finalAttrs.version}";
22     hash = "sha256-CLwaGxVOo8FJaWfvrJ2hAm7XonP5nHT6YTsaw7scKCM=";
23   };
25   nativeBuildInputs = [
26     installShellFiles
27     pkg-config
28   ];
29   buildInputs = [
30     libftdi1
31     libusb1
32   ] ++ lib.optionals (!stdenv.isDarwin) [
33     pciutils
34   ] ++ lib.optionals (withJlink) [
35     libjaylink
36   ] ++ lib.optionals (withGpio) [
37     libgpiod
38   ];
40   makeFlags =
41     let
42       yesNo = flag: if flag then "yes" else "no";
43     in
44     [
45       "libinstall"
46       "PREFIX=$(out)"
47       "CONFIG_JLINK_SPI=${yesNo withJlink}"
48       "CONFIG_LINUX_GPIO_SPI=${yesNo withGpio}"
49       "CONFIG_ENABLE_LIBPCI_PROGRAMMERS=${yesNo (!stdenv.isDarwin)}"
50       "CONFIG_INTERNAL_X86=${yesNo (!(stdenv.isDarwin) && stdenv.isx86_64)}"
51       "CONFIG_INTERNAL_DMI=${yesNo (!(stdenv.isDarwin) && stdenv.isx86_64)}"
52       "CONFIG_RAYER_SPI=${yesNo (!(stdenv.isDarwin) && stdenv.isx86_64)}"
53     ];
55   meta = with lib; {
56     homepage = "https://flashprog.org";
57     description = "Utility for reading, writing, erasing and verifying flash ROM chips";
58     license = with licenses; [ gpl2Plus ];
59     maintainers = with maintainers; [ felixsinger ];
60     platforms = platforms.all;
61     mainProgram = "flashprog";
62   };