about summary refs log tree commit diff
path: root/pkgs/by-name/bo/bochs/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/bo/bochs/package.nix')
-rw-r--r--pkgs/by-name/bo/bochs/package.nix232
1 files changed, 123 insertions, 109 deletions
diff --git a/pkgs/by-name/bo/bochs/package.nix b/pkgs/by-name/bo/bochs/package.nix
index 963f242d1ed7..2bb8d36f3edb 100644
--- a/pkgs/by-name/bo/bochs/package.nix
+++ b/pkgs/by-name/bo/bochs/package.nix
@@ -1,26 +1,28 @@
-{ lib
-, stdenv
-, fetchurl
-, SDL2
-, curl
-, darwin
-, docbook_xml_dtd_45
-, docbook_xsl
-, gtk3
-, libGL
-, libGLU
-, libX11
-, libXpm
-, libtool
-, ncurses
-, pkg-config
-, readline
-, wget
-, wxGTK32
-, enableSDL2 ? true
-, enableTerm ? true
-, enableWx ? !stdenv.isDarwin
-, enableX11 ? !stdenv.isDarwin
+{
+  lib,
+  SDL2,
+  curl,
+  darwin,
+  docbook_xml_dtd_45,
+  docbook_xsl,
+  fetchurl,
+  gtk3,
+  libGL,
+  libGLU,
+  libX11,
+  libXpm,
+  libtool,
+  ncurses,
+  pkg-config,
+  readline,
+  stdenv,
+  wget,
+  wxGTK32,
+  # Boolean flags
+  enableSDL2 ? true,
+  enableTerm ? true,
+  enableWx ? !stdenv.hostPlatform.isDarwin,
+  enableX11 ? !stdenv.hostPlatform.isDarwin,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -39,98 +41,110 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
   ];
 
-  buildInputs = [
-    curl
-    readline
-    wget
-  ] ++ lib.optionals enableSDL2 [
-    SDL2
-  ] ++ lib.optionals enableTerm [
-    ncurses
-  ] ++ lib.optionals enableWx [
-    gtk3
-    wxGTK32
-  ] ++ lib.optionals enableX11 [
-    libGL
-    libGLU
-    libX11
-    libXpm
-  ] ++ lib.optionals stdenv.isDarwin [
-    darwin.libobjc
-  ];
+  buildInputs =
+    [
+      curl
+      readline
+      wget
+    ]
+    ++ lib.optionals enableSDL2 [
+      SDL2
+    ]
+    ++ lib.optionals enableTerm [
+      ncurses
+    ]
+    ++ lib.optionals enableWx [
+      gtk3
+      wxGTK32
+    ]
+    ++ lib.optionals enableX11 [
+      libGL
+      libGLU
+      libX11
+      libXpm
+    ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [
+      darwin.libobjc
+    ];
 
-  configureFlags = [
-    "--with-rfb=no"
-    "--with-vncsrv=no"
-    "--with-nogui"
+  configureFlags =
+    [
+      (lib.withFeature false "rfb")
+      (lib.withFeature false "vncsrv")
+      (lib.withFeature true "nogui")
 
-    # These will always be "yes" on NixOS
-    "--enable-ltdl-install=yes"
-    "--enable-readline=yes"
-    "--enable-all-optimizations=yes"
-    "--enable-logging=yes"
-    "--enable-xpm=yes"
+      # These will always be "yes" on NixOS
+      (lib.enableFeature true "ltdl-install")
+      (lib.enableFeature true "readline")
+      (lib.enableFeature true "all-optimizations")
+      (lib.enableFeature true "logging")
+      (lib.enableFeature true "xpm")
 
-    # ... whereas these, always "no"!
-    "--enable-cpp=no"
-    "--enable-instrumentation=no"
+      # ... whereas these, always "no"!
+      (lib.enableFeature false "cpp")
+      (lib.enableFeature false "instrumentation")
 
-    "--enable-docbook=no" # Broken - it requires docbook2html
+      (lib.enableFeature false "docbook") # Broken - it requires docbook2html
 
-    # Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
-    "--enable-3dnow=no"
-    "--enable-monitor-mwait=no"
-    "--enable-raw-serial=no"
+      # Dangerous options - they are marked as "incomplete/experimental" on Bochs documentation
+      (lib.enableFeature false "3dnow")
+      (lib.enableFeature false "monitor-mwait")
+      (lib.enableFeature false "raw-serial")
 
-    # These are completely configurable, and they don't depend of external tools
-    "--enable-a20-pin"
-    "--enable-avx"
-    "--enable-busmouse"
-    "--enable-cdrom"
-    "--enable-clgd54xx"
-    "--enable-configurable-msrs"
-    "--enable-cpu-level=6" # from 3 to 6
-    "--enable-debugger" #conflicts with gdb-stub option
-    "--enable-debugger-gui"
-    "--enable-evex"
-    "--enable-fpu"
-    "--enable-gdb-stub=no" # conflicts with debugger option
-    "--enable-handlers-chaining"
-    "--enable-idle-hack"
-    "--enable-iodebug"
-    "--enable-large-ramfile"
-    "--enable-largefile"
-    "--enable-pci"
-    "--enable-repeat-speedups"
-    "--enable-show-ips"
-    "--enable-smp"
-    "--enable-vmx=2"
-    "--enable-svm"
-    "--enable-trace-linking"
-    "--enable-usb"
-    "--enable-usb-ehci"
-    "--enable-usb-ohci"
-    "--enable-usb-xhci"
-    "--enable-voodoo"
-    "--enable-x86-64"
-    "--enable-x86-debugger"
-  ] ++ lib.optionals enableSDL2 [
-    "--with-sdl2"
-  ] ++ lib.optionals enableTerm [
-    "--with-term"
-  ] ++ lib.optionals enableWx [
-    "--with-wx"
-  ] ++ lib.optionals enableX11 [
-    "--with-x"
-    "--with-x11"
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    "--enable-e1000"
-    "--enable-es1370"
-    "--enable-ne2000"
-    "--enable-plugins"
-    "--enable-pnic"
-    "--enable-sb16"
-  ];
+      # These are completely configurable, and they don't depend of external tools
+      (lib.enableFeature true "a20-pin")
+      (lib.enableFeature true "avx")
+      (lib.enableFeature true "busmouse")
+      (lib.enableFeature true "cdrom")
+      (lib.enableFeature true "clgd54xx")
+      (lib.enableFeature true "configurable-msrs")
+      (lib.enableFeatureAs true "cpu-level" "6") # from 3 to 6
+      (lib.enableFeature true "debugger") # conflicts with gdb-stub option
+      (lib.enableFeature true "debugger-gui")
+      (lib.enableFeature true "evex")
+      (lib.enableFeature true "fpu")
+      (lib.enableFeature false "gdb-stub") # conflicts with debugger option
+      (lib.enableFeature true "handlers-chaining")
+      (lib.enableFeature true "idle-hack")
+      (lib.enableFeature true "iodebug")
+      (lib.enableFeature true "large-ramfile")
+      (lib.enableFeature true "largefile")
+      (lib.enableFeature true "pci")
+      (lib.enableFeature true "repeat-speedups")
+      (lib.enableFeature true "show-ips")
+      (lib.enableFeature true "smp")
+      (lib.enableFeatureAs true "vmx" "2")
+      (lib.enableFeature true "svm")
+      (lib.enableFeature true "trace-linking")
+      (lib.enableFeature true "usb")
+      (lib.enableFeature true "usb-ehci")
+      (lib.enableFeature true "usb-ohci")
+      (lib.enableFeature true "usb-xhci")
+      (lib.enableFeature true "voodoo")
+      (lib.enableFeature true "x86-64")
+      (lib.enableFeature true "x86-debugger")
+    ]
+    ++ lib.optionals enableSDL2 [
+      (lib.withFeature true "sdl2")
+    ]
+    ++ lib.optionals enableTerm [
+      (lib.withFeature true "term")
+    ]
+    ++ lib.optionals enableWx [
+      (lib.withFeature true "wx")
+    ]
+    ++ lib.optionals enableX11 [
+      (lib.withFeature true "x")
+      (lib.withFeature true "x11")
+    ]
+    ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
+      (lib.enableFeature true "e1000")
+      (lib.enableFeature true "es1370")
+      (lib.enableFeature true "ne2000")
+      (lib.enableFeature true "plugins")
+      (lib.enableFeature true "pnic")
+      (lib.enableFeature true "sb16")
+    ];
 
   enableParallelBuilding = true;