defines :: [RuleToken]
defines = [ Str ("-D" ++ d) | d <- [  
             if microbenchmarks then "CONFIG_MICROBENCHMARKS" else "",
             if trace then "CONFIG_TRACE" else "",
             if support_qemu_networking then "CONFIG_QEMU_NETWORK" else "",
             if trace_network_subsystem then "NETWORK_STACK_TRACE" else "",
             if trace_disable_lrpc then "TRACE_DISABLE_LRPC" else "",
             if global_debug then "GLOBAL_DEBUG" else "",
             if e1000n_debug then "E1000N_SERVICE_DEBUG" else "",
             if ahcid_debug then "AHCI_SERVICE_DEBUG" else "",
             if libahci_debug then "AHCI_LIB_DEBUG" else "",
             if vfs_debug then "VFS_DEBUG" else "",
             if eMAC_debug then "EMAC_SERVICE_DEBUG" else "",
             if rtl8029_debug then "RTL8029_SERVICE_DEBUG" else "",
             if ethersrv_debug then "ETHERSRV_SERVICE_DEBUG" else "",
             if netd_debug then "NETD_SERVICE_DEBUG" else "",
             if libacpi_debug then "ACPI_DEBUG_OUTPUT" else "",
             if acpi_interface_debug then "ACPI_BF_DEBUG" else "",
             if lpc_timer_debug then "LPC_TIMER_DEBUG" else "",
             if lwip_debug then "LWIP_BARRELFISH_DEBUG" else "",
             if libpci_debug then "PCI_CLIENT_DEBUG" else "",
             if usrpci_debug then "PCI_SERVICE_DEBUG" else "",
             if timer_debug then "TIMER_CLIENT_DEBUG" else "",
             if eclipse_kernel_debug then "ECLIPSE_KERNEL_DEBUG" else "",
             if skb_debug then "SKB_SERVICE_DEBUG" else "",
             if skb_client_debug then "SKB_CLIENT_DEBUG" else "",
             if flounder_debug then "FLOUNDER_DEBUG" else "",
             if flounder_failed_debug then "FLOUNDER_FAILED_DEBUG" else "",
             if webserver_debug then "WEBSERVER_DEBUG" else "",
             if sqlclient_debug then "SQL_CLIENT_DEBUG" else "",
             if sqlite_debug then "SQL_SERVICE_DEBUG" else "",
             if sqlite_backend_debug then "SQL_BACKEND_DEBUG" else "",
             if nfs_debug then "NFS_CLIENT_DEBUG" else "",
             if rpc_debug then "RPC_DEBUG" else "",
             if loopback_debug then "LOOPBACK_DEBUG" else "",
             if octopus_debug then "DIST_SERVICE_DEBUG" else "",
             if term_debug then "TERMINAL_LIBRARY_DEBUG" else "",
             if serial_debug then "SERIAL_DRIVER_DEBUG" else "",
             if debug_deadlocks then "CONFIG_DEBUG_DEADLOCKS" else "",
             if memserv_percore then "CONFIG_MEMSERV_PERCORE" else "",
             if lazy_thc then "CONFIG_LAZY_THC" else "",
             if pae_paging then "CONFIG_PAE" else "",
             if pse_paging then "CONFIG_PSE" else "",
             if nxe_paging then "CONFIG_NXE" else "",
             if libc == "oldc" then "CONFIG_OLDC" else "CONFIG_NEWLIB",
             if oneshot_timer then "CONFIG_ONESHOT_TIMER" else "",
             if use_kaluga_dvm then "USE_KALUGA_DVM" else "",
             if heteropanda then "HETEROPANDA" else ""
             ], d /= "" ]
defines :: [RuleToken]
defines = [ Str ("-D" ++ d) | d <- [  
             if microbenchmarks then "CONFIG_MICROBENCHMARKS" else "",
             if trace then "CONFIG_TRACE" else "",
             if support_qemu_networking then "CONFIG_QEMU_NETWORK" else "",
             if trace_network_subsystem then "NETWORK_STACK_TRACE" else "",
             if trace_disable_lrpc then "TRACE_DISABLE_LRPC" else "",
             if global_debug then "GLOBAL_DEBUG" else "",
             if e1000n_debug then "E1000N_SERVICE_DEBUG" else "",
             if ahcid_debug then "AHCI_SERVICE_DEBUG" else "",
             if libahci_debug then "AHCI_LIB_DEBUG" else "",
             if vfs_debug then "VFS_DEBUG" else "",
             if eMAC_debug then "EMAC_SERVICE_DEBUG" else "",
             if rtl8029_debug then "RTL8029_SERVICE_DEBUG" else "",
             if ethersrv_debug then "ETHERSRV_SERVICE_DEBUG" else "",
             if netd_debug then "NETD_SERVICE_DEBUG" else "",
             if libacpi_debug then "ACPI_DEBUG_OUTPUT" else "",
             if acpi_interface_debug then "ACPI_BF_DEBUG" else "",
             if lpc_timer_debug then "LPC_TIMER_DEBUG" else "",
             if lwip_debug then "LWIP_BARRELFISH_DEBUG" else "",
             if libpci_debug then "PCI_CLIENT_DEBUG" else "",
             if usrpci_debug then "PCI_SERVICE_DEBUG" else "",
             if timer_debug then "TIMER_CLIENT_DEBUG" else "",
             if eclipse_kernel_debug then "ECLIPSE_KERNEL_DEBUG" else "",
             if skb_debug then "SKB_SERVICE_DEBUG" else "",
             if skb_client_debug then "SKB_CLIENT_DEBUG" else "",
             if flounder_debug then "FLOUNDER_DEBUG" else "",
             if flounder_failed_debug then "FLOUNDER_FAILED_DEBUG" else "",
             if webserver_debug then "WEBSERVER_DEBUG" else "",
             if sqlclient_debug then "SQL_CLIENT_DEBUG" else "",
             if sqlite_debug then "SQL_SERVICE_DEBUG" else "",
             if sqlite_backend_debug then "SQL_BACKEND_DEBUG" else "",
             if nfs_debug then "NFS_CLIENT_DEBUG" else "",
             if rpc_debug then "RPC_DEBUG" else "",
             if loopback_debug then "LOOPBACK_DEBUG" else "",
             if octopus_debug then "DIST_SERVICE_DEBUG" else "",
             if term_debug then "TERMINAL_LIBRARY_DEBUG" else "",
             if serial_debug then "SERIAL_DRIVER_DEBUG" else "",
             if debug_deadlocks then "CONFIG_DEBUG_DEADLOCKS" else "",
             if memserv_percore then "CONFIG_MEMSERV_PERCORE" else "",
             if lazy_thc then "CONFIG_LAZY_THC" else "",
             if pae_paging then "CONFIG_PAE" else "",
             if pse_paging then "CONFIG_PSE" else "",
             if nxe_paging then "CONFIG_NXE" else "",
             if libc == "oldc" then "CONFIG_OLDC" else "CONFIG_NEWLIB",
             if oneshot_timer then "CONFIG_ONESHOT_TIMER" else "",
             if use_kaluga_dvm then "USE_KALUGA_DVM" else "",
             if heteropanda then "HETEROPANDA" else ""
             ], d /= "" ]
defines = [ Str ("-D" ++ d) | d <- [  
             if microbenchmarks then "CONFIG_MICROBENCHMARKS" else "",
             if trace then "CONFIG_TRACE" else "",
             if support_qemu_networking then "CONFIG_QEMU_NETWORK" else "",
             if trace_network_subsystem then "NETWORK_STACK_TRACE" else "",
             if trace_disable_lrpc then "TRACE_DISABLE_LRPC" else "",
             if global_debug then "GLOBAL_DEBUG" else "",
             if e1000n_debug then "E1000N_SERVICE_DEBUG" else "",
             if ahcid_debug then "AHCI_SERVICE_DEBUG" else "",
             if libahci_debug then "AHCI_LIB_DEBUG" else "",
             if vfs_debug then "VFS_DEBUG" else "",
             if eMAC_debug then "EMAC_SERVICE_DEBUG" else "",
             if rtl8029_debug then "RTL8029_SERVICE_DEBUG" else "",
             if ethersrv_debug then "ETHERSRV_SERVICE_DEBUG" else "",
             if netd_debug then "NETD_SERVICE_DEBUG" else "",
             if libacpi_debug then "ACPI_DEBUG_OUTPUT" else "",
             if acpi_interface_debug then "ACPI_BF_DEBUG" else "",
             if lpc_timer_debug then "LPC_TIMER_DEBUG" else "",
             if lwip_debug then "LWIP_BARRELFISH_DEBUG" else "",
             if libpci_debug then "PCI_CLIENT_DEBUG" else "",
             if usrpci_debug then "PCI_SERVICE_DEBUG" else "",
             if timer_debug then "TIMER_CLIENT_DEBUG" else "",
             if eclipse_kernel_debug then "ECLIPSE_KERNEL_DEBUG" else "",
             if skb_debug then "SKB_SERVICE_DEBUG" else "",
             if skb_client_debug then "SKB_CLIENT_DEBUG" else "",
             if flounder_debug then "FLOUNDER_DEBUG" else "",
             if flounder_failed_debug then "FLOUNDER_FAILED_DEBUG" else "",
             if webserver_debug then "WEBSERVER_DEBUG" else "",
             if sqlclient_debug then "SQL_CLIENT_DEBUG" else "",
             if sqlite_debug then "SQL_SERVICE_DEBUG" else "",
             if sqlite_backend_debug then "SQL_BACKEND_DEBUG" else "",
             if nfs_debug then "NFS_CLIENT_DEBUG" else "",
             if rpc_debug then "RPC_DEBUG" else "",
             if loopback_debug then "LOOPBACK_DEBUG" else "",
             if octopus_debug then "DIST_SERVICE_DEBUG" else "",
             if term_debug then "TERMINAL_LIBRARY_DEBUG" else "",
             if serial_debug then "SERIAL_DRIVER_DEBUG" else "",
             if debug_deadlocks then "CONFIG_DEBUG_DEADLOCKS" else "",
             if memserv_percore then "CONFIG_MEMSERV_PERCORE" else "",
             if lazy_thc then "CONFIG_LAZY_THC" else "",
             if pae_paging then "CONFIG_PAE" else "",
             if pse_paging then "CONFIG_PSE" else "",
             if nxe_paging then "CONFIG_NXE" else "",
             if libc == "oldc" then "CONFIG_OLDC" else "CONFIG_NEWLIB",
             if oneshot_timer then "CONFIG_ONESHOT_TIMER" else "",
             if use_kaluga_dvm then "USE_KALUGA_DVM" else "",
             if heteropanda then "HETEROPANDA" else ""
             ], d /= "" ]