Consolidated toolchain selection
authorDavid Cock <david.cock@inf.ethz.ch>
Mon, 31 Aug 2015 12:39:43 +0000 (14:39 +0200)
committerDavid Cock <david.cock@inf.ethz.ch>
Mon, 31 Aug 2015 12:39:43 +0000 (14:39 +0200)
Signed-off-by: David Cock <david.cock@inf.ethz.ch>

hake/Config.hs.arm-gcc-4.9-2014q4 [deleted file]
hake/Config.hs.arm-gcc-4.9-2015q1 [deleted file]
hake/Config.hs.arm-gcc-4.9-2015q2 [deleted file]
hake/Config.hs.linaro-gcc-4.8-2015.06 [deleted file]
hake/Config.hs.linaro-gcc-4.9-2014.11 [deleted file]
hake/Config.hs.linaro-gcc-4.9-2015.02 [deleted file]
hake/Config.hs.linaro-gcc-4.9-2015.05 [deleted file]
hake/Config.hs.template [moved from hake/Config.hs.ubuntu with 91% similarity]
hake/Tools.hs [new file with mode: 0644]
hake/hake.sh

diff --git a/hake/Config.hs.arm-gcc-4.9-2014q4 b/hake/Config.hs.arm-gcc-4.9-2014q4
deleted file mode 100644 (file)
index cbbc047..0000000
+++ /dev/null
@@ -1,394 +0,0 @@
---------------------------------------------------------------------------
--- Copyright (c) 2007-2010, 2012, 2013, 2015 ETH Zurich.
--- Copyright (c) 2014, HP Labs.
--- All rights reserved.
---
--- This file is distributed under the terms in the attached LICENSE file.
--- If you do not find this file, copies can be found by writing to:
--- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
--- Attn: Systems Group.
---
--- Configuration options for Hake
--- 
---------------------------------------------------------------------------
-
-module Config where
-
-import HakeTypes
-import Data.Char
-import qualified Args
-import Data.List
-
---
--- Toolchain definitions.  By default, these rely on $PATH 
---
-
--- ARM toolchain
-arm_gnu_path = "/home/netos/tools/gcc-arm-embedded/" ++
-               "gcc-arm-none-eabi-4_9-2014q4" ++
-               "/bin/"
-arm_gnu_prefix = "arm-none-eabi-"
-arm_gnu_tool = findTool arm_gnu_path arm_gnu_prefix
-
-arm_cc       = arm_gnu_tool "gcc"
-arm_objcopy  = arm_gnu_tool "objcopy"
-arm_objdump  = arm_gnu_tool "objdump"
-arm_ar       = arm_gnu_tool "ar"
-arm_ranlib   = arm_gnu_tool "ranlib"
-arm_cxx      = arm_gnu_tool "g++"
-
-x86_cc       = "gcc"
-x86_cxx      = "g++"
-
-k1om_cc      = "k1om-mpss-linux-gcc"
-k1om_objcopy = "k1om-mpss-linux-objcopy"
-k1om_objdump = "k1om-mpss-linux-objdump"
-k1om_ar      = "k1om-mpss-linux-ar"
-k1om_ranlib  = "k1om-mpss-linux-anlib"
-k1om_cxx     = "k1om-mpss-linux-g++"
-
-gem5         = "gem5.fast"
-runghc      = "runghc"    -- run GHC interactively
-circo       = "circo"     -- from graphviz
-dot          = "dot"       --   "    "
-inkscape     = "inkscape"
-
-
--- path to source and install directories; these are automatically set by hake.sh at setup time 
-source_dir :: String
--- source_dir = undefined -- (set by hake.sh, see end of file)
-
-install_dir :: String
--- install_dir = undefined -- (set by hake.sh, see end of file)
-
--- Set of architectures for which to generate rules
-architectures :: [String]
--- architectures = undefined -- (set by hake.sh, see end of file)
-
--- Optimisation flags (-Ox -g etc.) passed to compiler
-cOptFlags :: [String]
-cOptFlags = ["-g", "-O2"]
-
--- Selects which libc to compile with, "oldc" or "newlib"
-libc :: String
---libc = "oldc"
-libc = "newlib"
-
-newlib_malloc :: String
---newlib_malloc = "sbrk"     -- use sbrk and newlib's malloc()
---newlib_malloc = "dlmalloc" -- use dlmalloc
-newlib_malloc = "oldmalloc"
-
--- Configure pagesize for libbarrelfish's morecore implementation
--- x86_64 accepts "small", "large", and "huge" for 4kB, 2MB and 1GB pages
--- respectively. x86_32 accepts "small" and "large" for 4kB and 2MB/4MB pages
--- respectively. All other architectures default to their default page size.
-morecore_pagesize :: String
-morecore_pagesize = "small"
-
--- Use a frame pointer
-use_fp :: Bool
-use_fp = True
-
--- Default timeslice duration in milliseconds
-timeslice :: Integer
-timeslice = 80
-
--- Put kernel into microbenchmarks mode
-microbenchmarks :: Bool
-microbenchmarks = False
-
--- Enable tracing
-trace :: Bool
-trace = False
-
--- Enable QEMU networking. (ie. make network work in small memory)
-support_qemu_networking :: Bool
-support_qemu_networking  = False
-
--- armv7 platform to build for
--- Currently available: gem5, pandaboard
-armv7_platform :: String
---armv7_platform = "gem5"
-armv7_platform = "pandaboard"
-
--- on pandaboard, build a heterogenous image and let the cortex-A9 set up and start the
--- cortex-M3 processor (build targets "heteropanda_slave" and "heteropanda_master_image")
-heteropanda :: Bool
-heteropanda = False
-
--- enable network tracing
-trace_network_subsystem :: Bool
-trace_network_subsystem = False
-
--- May want to disable LRPC to improve trace visuals
-trace_disable_lrpc :: Bool
-trace_disable_lrpc = False
-
--- use Kaluga
-use_kaluga_dvm :: Bool
-use_kaluga_dvm = True
-
--- Domain and driver debugging
-global_debug :: Bool
-global_debug = False
-
-e1000n_debug :: Bool
-e1000n_debug = False
-
-eMAC_debug :: Bool
-eMAC_debug = False
-
-rtl8029_debug :: Bool
-rtl8029_debug = False
-
-ahcid_debug :: Bool
-ahcid_debug = False
-
-libahci_debug :: Bool
-libahci_debug = False
-
-vfs_debug :: Bool
-vfs_debug = False
-
-ethersrv_debug :: Bool
-ethersrv_debug = False
-
-netd_debug :: Bool
-netd_debug = False
-
-libacpi_debug :: Bool 
-libacpi_debug = False
-
-acpi_interface_debug :: Bool
-acpi_interface_debug = False
-
-lpc_timer_debug :: Bool
-lpc_timer_debug = False
-
-lwip_debug :: Bool
-lwip_debug = False
-
-libpci_debug :: Bool
-libpci_debug = False
-
-usrpci_debug :: Bool
-usrpci_debug = False
-
-timer_debug :: Bool
-timer_debug = False
-
-eclipse_kernel_debug :: Bool
-eclipse_kernel_debug = False
-
-skb_debug :: Bool
-skb_debug = False
-
-skb_client_debug :: Bool
-skb_client_debug = False
-
-flounder_debug :: Bool
-flounder_debug = False
-
-flounder_failed_debug :: Bool
-flounder_failed_debug = False
-
-webserver_debug :: Bool
-webserver_debug = False
-
-sqlclient_debug :: Bool
-sqlclient_debug = False
-
-sqlite_debug :: Bool
-sqlite_debug = False
-
-sqlite_backend_debug :: Bool
-sqlite_backend_debug = False
-
-nfs_debug :: Bool
-nfs_debug = False
-
-rpc_debug :: Bool
-rpc_debug = False
-
-loopback_debug :: Bool
-loopback_debug = False
-
-octopus_debug :: Bool
-octopus_debug = False
-
-term_debug :: Bool
-term_debug = False
-
-serial_debug :: Bool
-serial_debug = False
-
--- Deadlock debugging
-debug_deadlocks :: Bool
-debug_deadlocks = False
-
--- Partitioned memory server
-memserv_percore :: Bool
-memserv_percore = False
-
--- Lazy THC implementation (requires use_fp = True)
-lazy_thc :: Bool
-lazy_thc | elem "armv7" architectures   = False
-        | elem "armv5" architectures   = False
-        | elem "xscale" architectures  = False
-         | otherwise                    = True
-
--- Enable capability tracing debug facility
-caps_trace :: Bool
-caps_trace = False
-
--- Mapping Database configuration options (this affects lib/mdb/)
--- enable extensive tracing of mapping db implementation
-mdb_trace :: Bool
-mdb_trace = False
-
--- enable tracing of top level mdb_insert, mdb_remove calls
-mdb_trace_no_recursive :: Bool
-mdb_trace_no_recursive = False
-
--- fail on invariant violations
-mdb_fail_invariants :: Bool
-mdb_fail_invariants = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants :: Bool
-mdb_check_invariants = False
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants :: Bool
-mdb_recheck_invariants = False
-
--- enable extensive tracing of mapping db implementation (userspace version)
-mdb_trace_user :: Bool
-mdb_trace_user = False
-
--- fail on invariant violations
-mdb_fail_invariants_user :: Bool
-mdb_fail_invariants_user = True
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants_user :: Bool
-mdb_recheck_invariants_user = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants_user :: Bool
-mdb_check_invariants_user = True
-
--- Select scheduler
-data Scheduler = RBED | RR deriving (Show,Eq)
-scheduler :: Scheduler
-scheduler = RBED
-
--- Physical Address Extensions (PAE)-enabled paging on x86-32
-pae_paging :: Bool
-pae_paging = False
-
--- Page Size Extensions (PSE)-enabled paging on x86-32
--- Always enabled when pae_paging == True, regardless of value
-pse_paging :: Bool
-pse_paging = False
-
--- No Execute Extensions (NXE)-enabled paging on x86-32
--- May not be True when pae_paging == False
-nxe_paging :: Bool
-nxe_paging = False
-
-oneshot_timer :: Bool
-oneshot_timer = False
-
-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 "",
-             if caps_trace then "TRACE_PMEM_CAPS" else ""
-             ], d /= "" ]
-
--- Sets the include path for the libc
-libcInc :: String
-libcInc = if libc == "oldc" then "/include/oldc"
-          else "/lib/newlib/newlib/libc/include"
-
--- Sets the include path for lwIP
-lwipInc :: String
-lwipInc = "/lib/lwip/src/include"
-lwipxxxInc :: String
-lwipxxxInc = "/lib/lwip/src/include/ipv4"
-
--- some defines depend on the architecture/compile options
-arch_defines :: Options -> [RuleToken]
-arch_defines opts
-    -- enable config flags for interconnect drivers in use for this arch
-    = [ Str ("-D" ++ d)
-       | d <- ["CONFIG_INTERCONNECT_DRIVER_" ++ (map toUpper n)
-               | n <- optInterconnectDrivers opts]
-      ]
-    -- enable config flags for flounder backends in use for this arch
-    ++ [ Str ("-D" ++ d)
-       | d <- ["CONFIG_FLOUNDER_BACKEND_" ++ (map toUpper n)
-               | n <- optFlounderBackends opts]
-      ]
-
--- newlib common compile flags (maybe put these in a config.h file?)
-newlibAddCFlags :: [String]
-newlibAddCFlags = [ "-DPACKAGE_NAME=\"newlib\"" ,
-                    "-DPACKAGE_TARNAME=\"newlib\"",
-                    "-DPACKAGE_VERSION=\"1.19.0\"",
-                    "-DPACKAGE_BUGREPORT=\"\"",
-                    "-DPACKAGE_URL=\"\"",
-                    "-D_I386MACH_ALLOW_HW_INTERRUPTS",
-                    "-DMISSING_SYSCALL_NAMES",
-                    "-D_WANT_IO_C99_FORMATS",
-                    "-D_COMPILING_NEWLIB",
-                    "-D_WANT_IO_LONG_LONG",
-                    "-D_WANT_IO_LONG_DOUBLE",
-                    "-D_MB_CAPABLE",
-                    "-D__BSD_VISIBLE"]
diff --git a/hake/Config.hs.arm-gcc-4.9-2015q1 b/hake/Config.hs.arm-gcc-4.9-2015q1
deleted file mode 100644 (file)
index 6116ad9..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
---------------------------------------------------------------------------
--- Copyright (c) 2007-2010, 2012, 2013, 2015 ETH Zurich.
--- Copyright (c) 2014, HP Labs.
--- All rights reserved.
---
--- This file is distributed under the terms in the attached LICENSE file.
--- If you do not find this file, copies can be found by writing to:
--- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
--- Attn: Systems Group.
---
--- Configuration options for Hake
--- 
---------------------------------------------------------------------------
-
-module Config where
-
-import HakeTypes
-import Data.Char
-import qualified Args
-import Data.List
-
---
--- Toolchain definitions.  By default, these rely on $PATH 
---
-arm_gcc_path = "/home/netos/tools/gcc-arm-embedded/" ++
-               "gcc-arm-none-eabi-4_9-2015q1" ++
-               "/bin/"
-arm_gcc_prefix = "arm-none-eabi-"
-arm_cc       = arm_gcc_path ++ arm_gcc_prefix ++ "gcc"
-arm_objcopy  = arm_gcc_path ++ arm_gcc_prefix ++ "objcopy"
-arm_objdump  = arm_gcc_path ++ arm_gcc_prefix ++ "objdump"
-arm_ar       = arm_gcc_path ++ arm_gcc_prefix ++ "ar"
-arm_ranlib   = arm_gcc_path ++ arm_gcc_prefix ++ "ranlib"
-arm_cxx      = arm_gcc_path ++ arm_gcc_prefix ++ "g++"
-
-x86_cc       = "gcc"
-x86_cxx      = "g++"
-
-k1om_cc      = "k1om-mpss-linux-gcc"
-k1om_objcopy = "k1om-mpss-linux-objcopy"
-k1om_objdump = "k1om-mpss-linux-objdump"
-k1om_ar      = "k1om-mpss-linux-ar"
-k1om_ranlib  = "k1om-mpss-linux-anlib"
-k1om_cxx     = "k1om-mpss-linux-g++"
-
-gem5         = "gem5.fast"
-runghc      = "runghc"    -- run GHC interactively
-circo       = "circo"     -- from graphviz
-dot          = "dot"       --   "    "
-inkscape     = "inkscape"
-
-
--- path to source and install directories; these are automatically set by hake.sh at setup time 
-source_dir :: String
--- source_dir = undefined -- (set by hake.sh, see end of file)
-
-install_dir :: String
--- install_dir = undefined -- (set by hake.sh, see end of file)
-
--- Set of architectures for which to generate rules
-architectures :: [String]
--- architectures = undefined -- (set by hake.sh, see end of file)
-
--- Optimisation flags (-Ox -g etc.) passed to compiler
-cOptFlags :: [String]
-cOptFlags = ["-g", "-O2"]
-
--- Selects which libc to compile with, "oldc" or "newlib"
-libc :: String
---libc = "oldc"
-libc = "newlib"
-
-newlib_malloc :: String
---newlib_malloc = "sbrk"     -- use sbrk and newlib's malloc()
---newlib_malloc = "dlmalloc" -- use dlmalloc
-newlib_malloc = "oldmalloc"
-
--- Configure pagesize for libbarrelfish's morecore implementation
--- x86_64 accepts "small", "large", and "huge" for 4kB, 2MB and 1GB pages
--- respectively. x86_32 accepts "small" and "large" for 4kB and 2MB/4MB pages
--- respectively. All other architectures default to their default page size.
-morecore_pagesize :: String
-morecore_pagesize = "small"
-
--- Use a frame pointer
-use_fp :: Bool
-use_fp = True
-
--- Default timeslice duration in milliseconds
-timeslice :: Integer
-timeslice = 80
-
--- Put kernel into microbenchmarks mode
-microbenchmarks :: Bool
-microbenchmarks = False
-
--- Enable tracing
-trace :: Bool
-trace = False
-
--- Enable QEMU networking. (ie. make network work in small memory)
-support_qemu_networking :: Bool
-support_qemu_networking  = False
-
--- armv7 platform to build for
--- Currently available: gem5, pandaboard
-armv7_platform :: String
---armv7_platform = "gem5"
-armv7_platform = "pandaboard"
-
--- on pandaboard, build a heterogenous image and let the cortex-A9 set up and start the
--- cortex-M3 processor (build targets "heteropanda_slave" and "heteropanda_master_image")
-heteropanda :: Bool
-heteropanda = False
-
--- enable network tracing
-trace_network_subsystem :: Bool
-trace_network_subsystem = False
-
--- May want to disable LRPC to improve trace visuals
-trace_disable_lrpc :: Bool
-trace_disable_lrpc = False
-
--- use Kaluga
-use_kaluga_dvm :: Bool
-use_kaluga_dvm = True
-
--- Domain and driver debugging
-global_debug :: Bool
-global_debug = False
-
-e1000n_debug :: Bool
-e1000n_debug = False
-
-eMAC_debug :: Bool
-eMAC_debug = False
-
-rtl8029_debug :: Bool
-rtl8029_debug = False
-
-ahcid_debug :: Bool
-ahcid_debug = False
-
-libahci_debug :: Bool
-libahci_debug = False
-
-vfs_debug :: Bool
-vfs_debug = False
-
-ethersrv_debug :: Bool
-ethersrv_debug = False
-
-netd_debug :: Bool
-netd_debug = False
-
-libacpi_debug :: Bool 
-libacpi_debug = False
-
-acpi_interface_debug :: Bool
-acpi_interface_debug = False
-
-lpc_timer_debug :: Bool
-lpc_timer_debug = False
-
-lwip_debug :: Bool
-lwip_debug = False
-
-libpci_debug :: Bool
-libpci_debug = False
-
-usrpci_debug :: Bool
-usrpci_debug = False
-
-timer_debug :: Bool
-timer_debug = False
-
-eclipse_kernel_debug :: Bool
-eclipse_kernel_debug = False
-
-skb_debug :: Bool
-skb_debug = False
-
-skb_client_debug :: Bool
-skb_client_debug = False
-
-flounder_debug :: Bool
-flounder_debug = False
-
-flounder_failed_debug :: Bool
-flounder_failed_debug = False
-
-webserver_debug :: Bool
-webserver_debug = False
-
-sqlclient_debug :: Bool
-sqlclient_debug = False
-
-sqlite_debug :: Bool
-sqlite_debug = False
-
-sqlite_backend_debug :: Bool
-sqlite_backend_debug = False
-
-nfs_debug :: Bool
-nfs_debug = False
-
-rpc_debug :: Bool
-rpc_debug = False
-
-loopback_debug :: Bool
-loopback_debug = False
-
-octopus_debug :: Bool
-octopus_debug = False
-
-term_debug :: Bool
-term_debug = False
-
-serial_debug :: Bool
-serial_debug = False
-
--- Deadlock debugging
-debug_deadlocks :: Bool
-debug_deadlocks = False
-
--- Partitioned memory server
-memserv_percore :: Bool
-memserv_percore = False
-
--- Lazy THC implementation (requires use_fp = True)
-lazy_thc :: Bool
-lazy_thc | elem "armv7" architectures   = False
-        | elem "armv5" architectures   = False
-        | elem "xscale" architectures  = False
-         | otherwise                    = True
-
--- Enable capability tracing debug facility
-caps_trace :: Bool
-caps_trace = False
-
--- Mapping Database configuration options (this affects lib/mdb/)
--- enable extensive tracing of mapping db implementation
-mdb_trace :: Bool
-mdb_trace = False
-
--- enable tracing of top level mdb_insert, mdb_remove calls
-mdb_trace_no_recursive :: Bool
-mdb_trace_no_recursive = False
-
--- fail on invariant violations
-mdb_fail_invariants :: Bool
-mdb_fail_invariants = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants :: Bool
-mdb_check_invariants = False
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants :: Bool
-mdb_recheck_invariants = False
-
--- enable extensive tracing of mapping db implementation (userspace version)
-mdb_trace_user :: Bool
-mdb_trace_user = False
-
--- fail on invariant violations
-mdb_fail_invariants_user :: Bool
-mdb_fail_invariants_user = True
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants_user :: Bool
-mdb_recheck_invariants_user = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants_user :: Bool
-mdb_check_invariants_user = True
-
--- Select scheduler
-data Scheduler = RBED | RR deriving (Show,Eq)
-scheduler :: Scheduler
-scheduler = RBED
-
--- Physical Address Extensions (PAE)-enabled paging on x86-32
-pae_paging :: Bool
-pae_paging = False
-
--- Page Size Extensions (PSE)-enabled paging on x86-32
--- Always enabled when pae_paging == True, regardless of value
-pse_paging :: Bool
-pse_paging = False
-
--- No Execute Extensions (NXE)-enabled paging on x86-32
--- May not be True when pae_paging == False
-nxe_paging :: Bool
-nxe_paging = False
-
-oneshot_timer :: Bool
-oneshot_timer = False
-
-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 "",
-             if caps_trace then "TRACE_PMEM_CAPS" else ""
-             ], d /= "" ]
-
--- Sets the include path for the libc
-libcInc :: String
-libcInc = if libc == "oldc" then "/include/oldc"
-          else "/lib/newlib/newlib/libc/include"
-
--- Sets the include path for lwIP
-lwipInc :: String
-lwipInc = "/lib/lwip/src/include"
-lwipxxxInc :: String
-lwipxxxInc = "/lib/lwip/src/include/ipv4"
-
--- some defines depend on the architecture/compile options
-arch_defines :: Options -> [RuleToken]
-arch_defines opts
-    -- enable config flags for interconnect drivers in use for this arch
-    = [ Str ("-D" ++ d)
-       | d <- ["CONFIG_INTERCONNECT_DRIVER_" ++ (map toUpper n)
-               | n <- optInterconnectDrivers opts]
-      ]
-    -- enable config flags for flounder backends in use for this arch
-    ++ [ Str ("-D" ++ d)
-       | d <- ["CONFIG_FLOUNDER_BACKEND_" ++ (map toUpper n)
-               | n <- optFlounderBackends opts]
-      ]
-
--- newlib common compile flags (maybe put these in a config.h file?)
-newlibAddCFlags :: [String]
-newlibAddCFlags = [ "-DPACKAGE_NAME=\"newlib\"" ,
-                    "-DPACKAGE_TARNAME=\"newlib\"",
-                    "-DPACKAGE_VERSION=\"1.19.0\"",
-                    "-DPACKAGE_BUGREPORT=\"\"",
-                    "-DPACKAGE_URL=\"\"",
-                    "-D_I386MACH_ALLOW_HW_INTERRUPTS",
-                    "-DMISSING_SYSCALL_NAMES",
-                    "-D_WANT_IO_C99_FORMATS",
-                    "-D_COMPILING_NEWLIB",
-                    "-D_WANT_IO_LONG_LONG",
-                    "-D_WANT_IO_LONG_DOUBLE",
-                    "-D_MB_CAPABLE",
-                    "-D__BSD_VISIBLE"]
diff --git a/hake/Config.hs.arm-gcc-4.9-2015q2 b/hake/Config.hs.arm-gcc-4.9-2015q2
deleted file mode 100644 (file)
index 361c957..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
---------------------------------------------------------------------------
--- Copyright (c) 2007-2010, 2012, 2013, 2015 ETH Zurich.
--- Copyright (c) 2014, HP Labs.
--- All rights reserved.
---
--- This file is distributed under the terms in the attached LICENSE file.
--- If you do not find this file, copies can be found by writing to:
--- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
--- Attn: Systems Group.
---
--- Configuration options for Hake
--- 
---------------------------------------------------------------------------
-
-module Config where
-
-import HakeTypes
-import Data.Char
-import qualified Args
-import Data.List
-
---
--- Toolchain definitions.  By default, these rely on $PATH 
---
-arm_gcc_path = "/home/netos/tools/gcc-arm-embedded/" ++
-               "gcc-arm-none-eabi-4_9-2015q2" ++
-               "/bin/"
-arm_gcc_prefix = "arm-none-eabi-"
-arm_cc       = arm_gcc_path ++ arm_gcc_prefix ++ "gcc"
-arm_objcopy  = arm_gcc_path ++ arm_gcc_prefix ++ "objcopy"
-arm_objdump  = arm_gcc_path ++ arm_gcc_prefix ++ "objdump"
-arm_ar       = arm_gcc_path ++ arm_gcc_prefix ++ "ar"
-arm_ranlib   = arm_gcc_path ++ arm_gcc_prefix ++ "ranlib"
-arm_cxx      = arm_gcc_path ++ arm_gcc_prefix ++ "g++"
-
-x86_cc       = "gcc"
-x86_cxx      = "g++"
-
-k1om_cc      = "k1om-mpss-linux-gcc"
-k1om_objcopy = "k1om-mpss-linux-objcopy"
-k1om_objdump = "k1om-mpss-linux-objdump"
-k1om_ar      = "k1om-mpss-linux-ar"
-k1om_ranlib  = "k1om-mpss-linux-anlib"
-k1om_cxx     = "k1om-mpss-linux-g++"
-
-gem5         = "gem5.fast"
-runghc      = "runghc"    -- run GHC interactively
-circo       = "circo"     -- from graphviz
-dot          = "dot"       --   "    "
-inkscape     = "inkscape"
-
-
--- path to source and install directories; these are automatically set by hake.sh at setup time 
-source_dir :: String
--- source_dir = undefined -- (set by hake.sh, see end of file)
-
-install_dir :: String
--- install_dir = undefined -- (set by hake.sh, see end of file)
-
--- Set of architectures for which to generate rules
-architectures :: [String]
--- architectures = undefined -- (set by hake.sh, see end of file)
-
--- Optimisation flags (-Ox -g etc.) passed to compiler
-cOptFlags :: [String]
-cOptFlags = ["-g", "-O2"]
-
--- Selects which libc to compile with, "oldc" or "newlib"
-libc :: String
---libc = "oldc"
-libc = "newlib"
-
-newlib_malloc :: String
---newlib_malloc = "sbrk"     -- use sbrk and newlib's malloc()
---newlib_malloc = "dlmalloc" -- use dlmalloc
-newlib_malloc = "oldmalloc"
-
--- Configure pagesize for libbarrelfish's morecore implementation
--- x86_64 accepts "small", "large", and "huge" for 4kB, 2MB and 1GB pages
--- respectively. x86_32 accepts "small" and "large" for 4kB and 2MB/4MB pages
--- respectively. All other architectures default to their default page size.
-morecore_pagesize :: String
-morecore_pagesize = "small"
-
--- Use a frame pointer
-use_fp :: Bool
-use_fp = True
-
--- Default timeslice duration in milliseconds
-timeslice :: Integer
-timeslice = 80
-
--- Put kernel into microbenchmarks mode
-microbenchmarks :: Bool
-microbenchmarks = False
-
--- Enable tracing
-trace :: Bool
-trace = False
-
--- Enable QEMU networking. (ie. make network work in small memory)
-support_qemu_networking :: Bool
-support_qemu_networking  = False
-
--- armv7 platform to build for
--- Currently available: gem5, pandaboard
-armv7_platform :: String
---armv7_platform = "gem5"
-armv7_platform = "pandaboard"
-
--- on pandaboard, build a heterogenous image and let the cortex-A9 set up and start the
--- cortex-M3 processor (build targets "heteropanda_slave" and "heteropanda_master_image")
-heteropanda :: Bool
-heteropanda = False
-
--- enable network tracing
-trace_network_subsystem :: Bool
-trace_network_subsystem = False
-
--- May want to disable LRPC to improve trace visuals
-trace_disable_lrpc :: Bool
-trace_disable_lrpc = False
-
--- use Kaluga
-use_kaluga_dvm :: Bool
-use_kaluga_dvm = True
-
--- Domain and driver debugging
-global_debug :: Bool
-global_debug = False
-
-e1000n_debug :: Bool
-e1000n_debug = False
-
-eMAC_debug :: Bool
-eMAC_debug = False
-
-rtl8029_debug :: Bool
-rtl8029_debug = False
-
-ahcid_debug :: Bool
-ahcid_debug = False
-
-libahci_debug :: Bool
-libahci_debug = False
-
-vfs_debug :: Bool
-vfs_debug = False
-
-ethersrv_debug :: Bool
-ethersrv_debug = False
-
-netd_debug :: Bool
-netd_debug = False
-
-libacpi_debug :: Bool 
-libacpi_debug = False
-
-acpi_interface_debug :: Bool
-acpi_interface_debug = False
-
-lpc_timer_debug :: Bool
-lpc_timer_debug = False
-
-lwip_debug :: Bool
-lwip_debug = False
-
-libpci_debug :: Bool
-libpci_debug = False
-
-usrpci_debug :: Bool
-usrpci_debug = False
-
-timer_debug :: Bool
-timer_debug = False
-
-eclipse_kernel_debug :: Bool
-eclipse_kernel_debug = False
-
-skb_debug :: Bool
-skb_debug = False
-
-skb_client_debug :: Bool
-skb_client_debug = False
-
-flounder_debug :: Bool
-flounder_debug = False
-
-flounder_failed_debug :: Bool
-flounder_failed_debug = False
-
-webserver_debug :: Bool
-webserver_debug = False
-
-sqlclient_debug :: Bool
-sqlclient_debug = False
-
-sqlite_debug :: Bool
-sqlite_debug = False
-
-sqlite_backend_debug :: Bool
-sqlite_backend_debug = False
-
-nfs_debug :: Bool
-nfs_debug = False
-
-rpc_debug :: Bool
-rpc_debug = False
-
-loopback_debug :: Bool
-loopback_debug = False
-
-octopus_debug :: Bool
-octopus_debug = False
-
-term_debug :: Bool
-term_debug = False
-
-serial_debug :: Bool
-serial_debug = False
-
--- Deadlock debugging
-debug_deadlocks :: Bool
-debug_deadlocks = False
-
--- Partitioned memory server
-memserv_percore :: Bool
-memserv_percore = False
-
--- Lazy THC implementation (requires use_fp = True)
-lazy_thc :: Bool
-lazy_thc | elem "armv7" architectures   = False
-        | elem "armv5" architectures   = False
-        | elem "xscale" architectures  = False
-         | otherwise                    = True
-
--- Enable capability tracing debug facility
-caps_trace :: Bool
-caps_trace = False
-
--- Mapping Database configuration options (this affects lib/mdb/)
--- enable extensive tracing of mapping db implementation
-mdb_trace :: Bool
-mdb_trace = False
-
--- enable tracing of top level mdb_insert, mdb_remove calls
-mdb_trace_no_recursive :: Bool
-mdb_trace_no_recursive = False
-
--- fail on invariant violations
-mdb_fail_invariants :: Bool
-mdb_fail_invariants = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants :: Bool
-mdb_check_invariants = False
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants :: Bool
-mdb_recheck_invariants = False
-
--- enable extensive tracing of mapping db implementation (userspace version)
-mdb_trace_user :: Bool
-mdb_trace_user = False
-
--- fail on invariant violations
-mdb_fail_invariants_user :: Bool
-mdb_fail_invariants_user = True
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants_user :: Bool
-mdb_recheck_invariants_user = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants_user :: Bool
-mdb_check_invariants_user = True
-
--- Select scheduler
-data Scheduler = RBED | RR deriving (Show,Eq)
-scheduler :: Scheduler
-scheduler = RBED
-
--- Physical Address Extensions (PAE)-enabled paging on x86-32
-pae_paging :: Bool
-pae_paging = False
-
--- Page Size Extensions (PSE)-enabled paging on x86-32
--- Always enabled when pae_paging == True, regardless of value
-pse_paging :: Bool
-pse_paging = False
-
--- No Execute Extensions (NXE)-enabled paging on x86-32
--- May not be True when pae_paging == False
-nxe_paging :: Bool
-nxe_paging = False
-
-oneshot_timer :: Bool
-oneshot_timer = False
-
-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 "",
-             if caps_trace then "TRACE_PMEM_CAPS" else ""
-             ], d /= "" ]
-
--- Sets the include path for the libc
-libcInc :: String
-libcInc = if libc == "oldc" then "/include/oldc"
-          else "/lib/newlib/newlib/libc/include"
-
--- Sets the include path for lwIP
-lwipInc :: String
-lwipInc = "/lib/lwip/src/include"
-lwipxxxInc :: String
-lwipxxxInc = "/lib/lwip/src/include/ipv4"
-
--- some defines depend on the architecture/compile options
-arch_defines :: Options -> [RuleToken]
-arch_defines opts
-    -- enable config flags for interconnect drivers in use for this arch
-    = [ Str ("-D" ++ d)
-       | d <- ["CONFIG_INTERCONNECT_DRIVER_" ++ (map toUpper n)
-               | n <- optInterconnectDrivers opts]
-      ]
-    -- enable config flags for flounder backends in use for this arch
-    ++ [ Str ("-D" ++ d)
-       | d <- ["CONFIG_FLOUNDER_BACKEND_" ++ (map toUpper n)
-               | n <- optFlounderBackends opts]
-      ]
-
--- newlib common compile flags (maybe put these in a config.h file?)
-newlibAddCFlags :: [String]
-newlibAddCFlags = [ "-DPACKAGE_NAME=\"newlib\"" ,
-                    "-DPACKAGE_TARNAME=\"newlib\"",
-                    "-DPACKAGE_VERSION=\"1.19.0\"",
-                    "-DPACKAGE_BUGREPORT=\"\"",
-                    "-DPACKAGE_URL=\"\"",
-                    "-D_I386MACH_ALLOW_HW_INTERRUPTS",
-                    "-DMISSING_SYSCALL_NAMES",
-                    "-D_WANT_IO_C99_FORMATS",
-                    "-D_COMPILING_NEWLIB",
-                    "-D_WANT_IO_LONG_LONG",
-                    "-D_WANT_IO_LONG_DOUBLE",
-                    "-D_MB_CAPABLE",
-                    "-D__BSD_VISIBLE"]
diff --git a/hake/Config.hs.linaro-gcc-4.8-2015.06 b/hake/Config.hs.linaro-gcc-4.8-2015.06
deleted file mode 100644 (file)
index 82f23b8..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
---------------------------------------------------------------------------
--- Copyright (c) 2007-2010, 2012, 2013, 2015 ETH Zurich.
--- Copyright (c) 2014, HP Labs.
--- All rights reserved.
---
--- This file is distributed under the terms in the attached LICENSE file.
--- If you do not find this file, copies can be found by writing to:
--- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
--- Attn: Systems Group.
---
--- Configuration options for Hake
--- 
---------------------------------------------------------------------------
-
-module Config where
-
-import HakeTypes
-import Data.Char
-import qualified Args
-import Data.List
-
---
--- Toolchain definitions.  By default, these rely on $PATH 
---
-arm_gcc_path = "/home/netos/tools/linaro/" ++
-               "gcc-linaro-4.8-2015.06-x86_64_arm-eabi" ++
-               "/bin/"
-arm_gcc_prefix = "arm-eabi-"
-arm_cc       = arm_gcc_path ++ arm_gcc_prefix ++ "gcc"
-arm_objcopy  = arm_gcc_path ++ arm_gcc_prefix ++ "objcopy"
-arm_objdump  = arm_gcc_path ++ arm_gcc_prefix ++ "objdump"
-arm_ar       = arm_gcc_path ++ arm_gcc_prefix ++ "ar"
-arm_ranlib   = arm_gcc_path ++ arm_gcc_prefix ++ "ranlib"
-arm_cxx      = arm_gcc_path ++ arm_gcc_prefix ++ "g++"
-
-x86_cc       = "gcc"
-x86_cxx      = "g++"
-
-k1om_cc      = "k1om-mpss-linux-gcc"
-k1om_objcopy = "k1om-mpss-linux-objcopy"
-k1om_objdump = "k1om-mpss-linux-objdump"
-k1om_ar      = "k1om-mpss-linux-ar"
-k1om_ranlib  = "k1om-mpss-linux-anlib"
-k1om_cxx     = "k1om-mpss-linux-g++"
-
-gem5         = "gem5.fast"
-runghc      = "runghc"    -- run GHC interactively
-circo       = "circo"     -- from graphviz
-dot          = "dot"       --   "    "
-inkscape     = "inkscape"
-
-
--- path to source and install directories; these are automatically set by hake.sh at setup time 
-source_dir :: String
--- source_dir = undefined -- (set by hake.sh, see end of file)
-
-install_dir :: String
--- install_dir = undefined -- (set by hake.sh, see end of file)
-
--- Set of architectures for which to generate rules
-architectures :: [String]
--- architectures = undefined -- (set by hake.sh, see end of file)
-
--- Optimisation flags (-Ox -g etc.) passed to compiler
-cOptFlags :: [String]
-cOptFlags = ["-g", "-O2"]
-
--- Selects which libc to compile with, "oldc" or "newlib"
-libc :: String
---libc = "oldc"
-libc = "newlib"
-
-newlib_malloc :: String
---newlib_malloc = "sbrk"     -- use sbrk and newlib's malloc()
---newlib_malloc = "dlmalloc" -- use dlmalloc
-newlib_malloc = "oldmalloc"
-
--- Configure pagesize for libbarrelfish's morecore implementation
--- x86_64 accepts "small", "large", and "huge" for 4kB, 2MB and 1GB pages
--- respectively. x86_32 accepts "small" and "large" for 4kB and 2MB/4MB pages
--- respectively. All other architectures default to their default page size.
-morecore_pagesize :: String
-morecore_pagesize = "small"
-
--- Use a frame pointer
-use_fp :: Bool
-use_fp = True
-
--- Default timeslice duration in milliseconds
-timeslice :: Integer
-timeslice = 80
-
--- Put kernel into microbenchmarks mode
-microbenchmarks :: Bool
-microbenchmarks = False
-
--- Enable tracing
-trace :: Bool
-trace = False
-
--- Enable QEMU networking. (ie. make network work in small memory)
-support_qemu_networking :: Bool
-support_qemu_networking  = False
-
--- armv7 platform to build for
--- Currently available: gem5, pandaboard
-armv7_platform :: String
---armv7_platform = "gem5"
-armv7_platform = "pandaboard"
-
--- on pandaboard, build a heterogenous image and let the cortex-A9 set up and start the
--- cortex-M3 processor (build targets "heteropanda_slave" and "heteropanda_master_image")
-heteropanda :: Bool
-heteropanda = False
-
--- enable network tracing
-trace_network_subsystem :: Bool
-trace_network_subsystem = False
-
--- May want to disable LRPC to improve trace visuals
-trace_disable_lrpc :: Bool
-trace_disable_lrpc = False
-
--- use Kaluga
-use_kaluga_dvm :: Bool
-use_kaluga_dvm = True
-
--- Domain and driver debugging
-global_debug :: Bool
-global_debug = False
-
-e1000n_debug :: Bool
-e1000n_debug = False
-
-eMAC_debug :: Bool
-eMAC_debug = False
-
-rtl8029_debug :: Bool
-rtl8029_debug = False
-
-ahcid_debug :: Bool
-ahcid_debug = False
-
-libahci_debug :: Bool
-libahci_debug = False
-
-vfs_debug :: Bool
-vfs_debug = False
-
-ethersrv_debug :: Bool
-ethersrv_debug = False
-
-netd_debug :: Bool
-netd_debug = False
-
-libacpi_debug :: Bool 
-libacpi_debug = False
-
-acpi_interface_debug :: Bool
-acpi_interface_debug = False
-
-lpc_timer_debug :: Bool
-lpc_timer_debug = False
-
-lwip_debug :: Bool
-lwip_debug = False
-
-libpci_debug :: Bool
-libpci_debug = False
-
-usrpci_debug :: Bool
-usrpci_debug = False
-
-timer_debug :: Bool
-timer_debug = False
-
-eclipse_kernel_debug :: Bool
-eclipse_kernel_debug = False
-
-skb_debug :: Bool
-skb_debug = False
-
-skb_client_debug :: Bool
-skb_client_debug = False
-
-flounder_debug :: Bool
-flounder_debug = False
-
-flounder_failed_debug :: Bool
-flounder_failed_debug = False
-
-webserver_debug :: Bool
-webserver_debug = False
-
-sqlclient_debug :: Bool
-sqlclient_debug = False
-
-sqlite_debug :: Bool
-sqlite_debug = False
-
-sqlite_backend_debug :: Bool
-sqlite_backend_debug = False
-
-nfs_debug :: Bool
-nfs_debug = False
-
-rpc_debug :: Bool
-rpc_debug = False
-
-loopback_debug :: Bool
-loopback_debug = False
-
-octopus_debug :: Bool
-octopus_debug = False
-
-term_debug :: Bool
-term_debug = False
-
-serial_debug :: Bool
-serial_debug = False
-
--- Deadlock debugging
-debug_deadlocks :: Bool
-debug_deadlocks = False
-
--- Partitioned memory server
-memserv_percore :: Bool
-memserv_percore = False
-
--- Lazy THC implementation (requires use_fp = True)
-lazy_thc :: Bool
-lazy_thc | elem "armv7" architectures   = False
-        | elem "armv5" architectures   = False
-        | elem "xscale" architectures  = False
-         | otherwise                    = True
-
--- Enable capability tracing debug facility
-caps_trace :: Bool
-caps_trace = False
-
--- Mapping Database configuration options (this affects lib/mdb/)
--- enable extensive tracing of mapping db implementation
-mdb_trace :: Bool
-mdb_trace = False
-
--- enable tracing of top level mdb_insert, mdb_remove calls
-mdb_trace_no_recursive :: Bool
-mdb_trace_no_recursive = False
-
--- fail on invariant violations
-mdb_fail_invariants :: Bool
-mdb_fail_invariants = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants :: Bool
-mdb_check_invariants = False
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants :: Bool
-mdb_recheck_invariants = False
-
--- enable extensive tracing of mapping db implementation (userspace version)
-mdb_trace_user :: Bool
-mdb_trace_user = False
-
--- fail on invariant violations
-mdb_fail_invariants_user :: Bool
-mdb_fail_invariants_user = True
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants_user :: Bool
-mdb_recheck_invariants_user = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants_user :: Bool
-mdb_check_invariants_user = True
-
--- Select scheduler
-data Scheduler = RBED | RR deriving (Show,Eq)
-scheduler :: Scheduler
-scheduler = RBED
-
--- Physical Address Extensions (PAE)-enabled paging on x86-32
-pae_paging :: Bool
-pae_paging = False
-
--- Page Size Extensions (PSE)-enabled paging on x86-32
--- Always enabled when pae_paging == True, regardless of value
-pse_paging :: Bool
-pse_paging = False
-
--- No Execute Extensions (NXE)-enabled paging on x86-32
--- May not be True when pae_paging == False
-nxe_paging :: Bool
-nxe_paging = False
-
-oneshot_timer :: Bool
-oneshot_timer = False
-
-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 "",
-             if caps_trace then "TRACE_PMEM_CAPS" else ""
-             ], d /= "" ]
-
--- Sets the include path for the libc
-libcInc :: String
-libcInc = if libc == "oldc" then "/include/oldc"
-          else "/lib/newlib/newlib/libc/include"
-
--- Sets the include path for lwIP
-lwipInc :: String
-lwipInc = "/lib/lwip/src/include"
-lwipxxxInc :: String
-lwipxxxInc = "/lib/lwip/src/include/ipv4"
-
--- some defines depend on the architecture/compile options
-arch_defines :: Options -> [RuleToken]
-arch_defines opts
-    -- enable config flags for interconnect drivers in use for this arch
-    = [ Str ("-D" ++ d)
-       | d <- ["CONFIG_INTERCONNECT_DRIVER_" ++ (map toUpper n)
-               | n <- optInterconnectDrivers opts]
-      ]
-    -- enable config flags for flounder backends in use for this arch
-    ++ [ Str ("-D" ++ d)
-       | d <- ["CONFIG_FLOUNDER_BACKEND_" ++ (map toUpper n)
-               | n <- optFlounderBackends opts]
-      ]
-
--- newlib common compile flags (maybe put these in a config.h file?)
-newlibAddCFlags :: [String]
-newlibAddCFlags = [ "-DPACKAGE_NAME=\"newlib\"" ,
-                    "-DPACKAGE_TARNAME=\"newlib\"",
-                    "-DPACKAGE_VERSION=\"1.19.0\"",
-                    "-DPACKAGE_BUGREPORT=\"\"",
-                    "-DPACKAGE_URL=\"\"",
-                    "-D_I386MACH_ALLOW_HW_INTERRUPTS",
-                    "-DMISSING_SYSCALL_NAMES",
-                    "-D_WANT_IO_C99_FORMATS",
-                    "-D_COMPILING_NEWLIB",
-                    "-D_WANT_IO_LONG_LONG",
-                    "-D_WANT_IO_LONG_DOUBLE",
-                    "-D_MB_CAPABLE",
-                    "-D__BSD_VISIBLE"]
diff --git a/hake/Config.hs.linaro-gcc-4.9-2014.11 b/hake/Config.hs.linaro-gcc-4.9-2014.11
deleted file mode 100644 (file)
index 8ef08b5..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
---------------------------------------------------------------------------
--- Copyright (c) 2007-2010, 2012, 2013, 2015 ETH Zurich.
--- Copyright (c) 2014, HP Labs.
--- All rights reserved.
---
--- This file is distributed under the terms in the attached LICENSE file.
--- If you do not find this file, copies can be found by writing to:
--- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
--- Attn: Systems Group.
---
--- Configuration options for Hake
--- 
---------------------------------------------------------------------------
-
-module Config where
-
-import HakeTypes
-import Data.Char
-import qualified Args
-import Data.List
-
---
--- Toolchain definitions.  By default, these rely on $PATH 
---
-arm_gcc_path = "/home/netos/tools/linaro/" ++
-               "gcc-linaro-4.9-2014.11-x86_64_arm-eabi" ++
-               "/bin/"
-arm_gcc_prefix = "arm-none-eabi-"
-arm_cc       = arm_gcc_path ++ arm_gcc_prefix ++ "gcc"
-arm_objcopy  = arm_gcc_path ++ arm_gcc_prefix ++ "objcopy"
-arm_objdump  = arm_gcc_path ++ arm_gcc_prefix ++ "objdump"
-arm_ar       = arm_gcc_path ++ arm_gcc_prefix ++ "ar"
-arm_ranlib   = arm_gcc_path ++ arm_gcc_prefix ++ "ranlib"
-arm_cxx      = arm_gcc_path ++ arm_gcc_prefix ++ "g++"
-
-x86_cc       = "gcc"
-x86_cxx      = "g++"
-
-k1om_cc      = "k1om-mpss-linux-gcc"
-k1om_objcopy = "k1om-mpss-linux-objcopy"
-k1om_objdump = "k1om-mpss-linux-objdump"
-k1om_ar      = "k1om-mpss-linux-ar"
-k1om_ranlib  = "k1om-mpss-linux-anlib"
-k1om_cxx     = "k1om-mpss-linux-g++"
-
-gem5         = "gem5.fast"
-runghc      = "runghc"    -- run GHC interactively
-circo       = "circo"     -- from graphviz
-dot          = "dot"       --   "    "
-inkscape     = "inkscape"
-
-
--- path to source and install directories; these are automatically set by hake.sh at setup time 
-source_dir :: String
--- source_dir = undefined -- (set by hake.sh, see end of file)
-
-install_dir :: String
--- install_dir = undefined -- (set by hake.sh, see end of file)
-
--- Set of architectures for which to generate rules
-architectures :: [String]
--- architectures = undefined -- (set by hake.sh, see end of file)
-
--- Optimisation flags (-Ox -g etc.) passed to compiler
-cOptFlags :: [String]
-cOptFlags = ["-g", "-O2"]
-
--- Selects which libc to compile with, "oldc" or "newlib"
-libc :: String
---libc = "oldc"
-libc = "newlib"
-
-newlib_malloc :: String
---newlib_malloc = "sbrk"     -- use sbrk and newlib's malloc()
---newlib_malloc = "dlmalloc" -- use dlmalloc
-newlib_malloc = "oldmalloc"
-
--- Configure pagesize for libbarrelfish's morecore implementation
--- x86_64 accepts "small", "large", and "huge" for 4kB, 2MB and 1GB pages
--- respectively. x86_32 accepts "small" and "large" for 4kB and 2MB/4MB pages
--- respectively. All other architectures default to their default page size.
-morecore_pagesize :: String
-morecore_pagesize = "small"
-
--- Use a frame pointer
-use_fp :: Bool
-use_fp = True
-
--- Default timeslice duration in milliseconds
-timeslice :: Integer
-timeslice = 80
-
--- Put kernel into microbenchmarks mode
-microbenchmarks :: Bool
-microbenchmarks = False
-
--- Enable tracing
-trace :: Bool
-trace = False
-
--- Enable QEMU networking. (ie. make network work in small memory)
-support_qemu_networking :: Bool
-support_qemu_networking  = False
-
--- armv7 platform to build for
--- Currently available: gem5, pandaboard
-armv7_platform :: String
---armv7_platform = "gem5"
-armv7_platform = "pandaboard"
-
--- on pandaboard, build a heterogenous image and let the cortex-A9 set up and start the
--- cortex-M3 processor (build targets "heteropanda_slave" and "heteropanda_master_image")
-heteropanda :: Bool
-heteropanda = False
-
--- enable network tracing
-trace_network_subsystem :: Bool
-trace_network_subsystem = False
-
--- May want to disable LRPC to improve trace visuals
-trace_disable_lrpc :: Bool
-trace_disable_lrpc = False
-
--- use Kaluga
-use_kaluga_dvm :: Bool
-use_kaluga_dvm = True
-
--- Domain and driver debugging
-global_debug :: Bool
-global_debug = False
-
-e1000n_debug :: Bool
-e1000n_debug = False
-
-eMAC_debug :: Bool
-eMAC_debug = False
-
-rtl8029_debug :: Bool
-rtl8029_debug = False
-
-ahcid_debug :: Bool
-ahcid_debug = False
-
-libahci_debug :: Bool
-libahci_debug = False
-
-vfs_debug :: Bool
-vfs_debug = False
-
-ethersrv_debug :: Bool
-ethersrv_debug = False
-
-netd_debug :: Bool
-netd_debug = False
-
-libacpi_debug :: Bool 
-libacpi_debug = False
-
-acpi_interface_debug :: Bool
-acpi_interface_debug = False
-
-lpc_timer_debug :: Bool
-lpc_timer_debug = False
-
-lwip_debug :: Bool
-lwip_debug = False
-
-libpci_debug :: Bool
-libpci_debug = False
-
-usrpci_debug :: Bool
-usrpci_debug = False
-
-timer_debug :: Bool
-timer_debug = False
-
-eclipse_kernel_debug :: Bool
-eclipse_kernel_debug = False
-
-skb_debug :: Bool
-skb_debug = False
-
-skb_client_debug :: Bool
-skb_client_debug = False
-
-flounder_debug :: Bool
-flounder_debug = False
-
-flounder_failed_debug :: Bool
-flounder_failed_debug = False
-
-webserver_debug :: Bool
-webserver_debug = False
-
-sqlclient_debug :: Bool
-sqlclient_debug = False
-
-sqlite_debug :: Bool
-sqlite_debug = False
-
-sqlite_backend_debug :: Bool
-sqlite_backend_debug = False
-
-nfs_debug :: Bool
-nfs_debug = False
-
-rpc_debug :: Bool
-rpc_debug = False
-
-loopback_debug :: Bool
-loopback_debug = False
-
-octopus_debug :: Bool
-octopus_debug = False
-
-term_debug :: Bool
-term_debug = False
-
-serial_debug :: Bool
-serial_debug = False
-
--- Deadlock debugging
-debug_deadlocks :: Bool
-debug_deadlocks = False
-
--- Partitioned memory server
-memserv_percore :: Bool
-memserv_percore = False
-
--- Lazy THC implementation (requires use_fp = True)
-lazy_thc :: Bool
-lazy_thc | elem "armv7" architectures   = False
-        | elem "armv5" architectures   = False
-        | elem "xscale" architectures  = False
-         | otherwise                    = True
-
--- Enable capability tracing debug facility
-caps_trace :: Bool
-caps_trace = False
-
--- Mapping Database configuration options (this affects lib/mdb/)
--- enable extensive tracing of mapping db implementation
-mdb_trace :: Bool
-mdb_trace = False
-
--- enable tracing of top level mdb_insert, mdb_remove calls
-mdb_trace_no_recursive :: Bool
-mdb_trace_no_recursive = False
-
--- fail on invariant violations
-mdb_fail_invariants :: Bool
-mdb_fail_invariants = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants :: Bool
-mdb_check_invariants = False
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants :: Bool
-mdb_recheck_invariants = False
-
--- enable extensive tracing of mapping db implementation (userspace version)
-mdb_trace_user :: Bool
-mdb_trace_user = False
-
--- fail on invariant violations
-mdb_fail_invariants_user :: Bool
-mdb_fail_invariants_user = True
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants_user :: Bool
-mdb_recheck_invariants_user = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants_user :: Bool
-mdb_check_invariants_user = True
-
--- Select scheduler
-data Scheduler = RBED | RR deriving (Show,Eq)
-scheduler :: Scheduler
-scheduler = RBED
-
--- Physical Address Extensions (PAE)-enabled paging on x86-32
-pae_paging :: Bool
-pae_paging = False
-
--- Page Size Extensions (PSE)-enabled paging on x86-32
--- Always enabled when pae_paging == True, regardless of value
-pse_paging :: Bool
-pse_paging = False
-
--- No Execute Extensions (NXE)-enabled paging on x86-32
--- May not be True when pae_paging == False
-nxe_paging :: Bool
-nxe_paging = False
-
-oneshot_timer :: Bool
-oneshot_timer = False
-
-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 "",
-             if caps_trace then "TRACE_PMEM_CAPS" else ""
-             ], d /= "" ]
-
--- Sets the include path for the libc
-libcInc :: String
-libcInc = if libc == "oldc" then "/include/oldc"
-          else "/lib/newlib/newlib/libc/include"
-
--- Sets the include path for lwIP
-lwipInc :: String
-lwipInc = "/lib/lwip/src/include"
-lwipxxxInc :: String
-lwipxxxInc = "/lib/lwip/src/include/ipv4"
-
--- some defines depend on the architecture/compile options
-arch_defines :: Options -> [RuleToken]
-arch_defines opts
-    -- enable config flags for interconnect drivers in use for this arch
-    = [ Str ("-D" ++ d)
-       | d <- ["CONFIG_INTERCONNECT_DRIVER_" ++ (map toUpper n)
-               | n <- optInterconnectDrivers opts]
-      ]
-    -- enable config flags for flounder backends in use for this arch
-    ++ [ Str ("-D" ++ d)
-       | d <- ["CONFIG_FLOUNDER_BACKEND_" ++ (map toUpper n)
-               | n <- optFlounderBackends opts]
-      ]
-
--- newlib common compile flags (maybe put these in a config.h file?)
-newlibAddCFlags :: [String]
-newlibAddCFlags = [ "-DPACKAGE_NAME=\"newlib\"" ,
-                    "-DPACKAGE_TARNAME=\"newlib\"",
-                    "-DPACKAGE_VERSION=\"1.19.0\"",
-                    "-DPACKAGE_BUGREPORT=\"\"",
-                    "-DPACKAGE_URL=\"\"",
-                    "-D_I386MACH_ALLOW_HW_INTERRUPTS",
-                    "-DMISSING_SYSCALL_NAMES",
-                    "-D_WANT_IO_C99_FORMATS",
-                    "-D_COMPILING_NEWLIB",
-                    "-D_WANT_IO_LONG_LONG",
-                    "-D_WANT_IO_LONG_DOUBLE",
-                    "-D_MB_CAPABLE",
-                    "-D__BSD_VISIBLE"]
diff --git a/hake/Config.hs.linaro-gcc-4.9-2015.02 b/hake/Config.hs.linaro-gcc-4.9-2015.02
deleted file mode 100644 (file)
index de3983b..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
---------------------------------------------------------------------------
--- Copyright (c) 2007-2010, 2012, 2013, 2015 ETH Zurich.
--- Copyright (c) 2014, HP Labs.
--- All rights reserved.
---
--- This file is distributed under the terms in the attached LICENSE file.
--- If you do not find this file, copies can be found by writing to:
--- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
--- Attn: Systems Group.
---
--- Configuration options for Hake
--- 
---------------------------------------------------------------------------
-
-module Config where
-
-import HakeTypes
-import Data.Char
-import qualified Args
-import Data.List
-
---
--- Toolchain definitions.  By default, these rely on $PATH 
---
-arm_gcc_path = "/home/netos/tools/linaro/" ++
-               "gcc-linaro-4.9-2015.02-3-x86_64_arm-eabi" ++
-               "/bin/"
-arm_gcc_prefix = "arm-eabi-"
-arm_cc       = arm_gcc_path ++ arm_gcc_prefix ++ "gcc"
-arm_objcopy  = arm_gcc_path ++ arm_gcc_prefix ++ "objcopy"
-arm_objdump  = arm_gcc_path ++ arm_gcc_prefix ++ "objdump"
-arm_ar       = arm_gcc_path ++ arm_gcc_prefix ++ "ar"
-arm_ranlib   = arm_gcc_path ++ arm_gcc_prefix ++ "ranlib"
-arm_cxx      = arm_gcc_path ++ arm_gcc_prefix ++ "g++"
-
-x86_cc       = "gcc"
-x86_cxx      = "g++"
-
-k1om_cc      = "k1om-mpss-linux-gcc"
-k1om_objcopy = "k1om-mpss-linux-objcopy"
-k1om_objdump = "k1om-mpss-linux-objdump"
-k1om_ar      = "k1om-mpss-linux-ar"
-k1om_ranlib  = "k1om-mpss-linux-anlib"
-k1om_cxx     = "k1om-mpss-linux-g++"
-
-gem5         = "gem5.fast"
-runghc      = "runghc"    -- run GHC interactively
-circo       = "circo"     -- from graphviz
-dot          = "dot"       --   "    "
-inkscape     = "inkscape"
-
-
--- path to source and install directories; these are automatically set by hake.sh at setup time 
-source_dir :: String
--- source_dir = undefined -- (set by hake.sh, see end of file)
-
-install_dir :: String
--- install_dir = undefined -- (set by hake.sh, see end of file)
-
--- Set of architectures for which to generate rules
-architectures :: [String]
--- architectures = undefined -- (set by hake.sh, see end of file)
-
--- Optimisation flags (-Ox -g etc.) passed to compiler
-cOptFlags :: [String]
-cOptFlags = ["-g", "-O2"]
-
--- Selects which libc to compile with, "oldc" or "newlib"
-libc :: String
---libc = "oldc"
-libc = "newlib"
-
-newlib_malloc :: String
---newlib_malloc = "sbrk"     -- use sbrk and newlib's malloc()
---newlib_malloc = "dlmalloc" -- use dlmalloc
-newlib_malloc = "oldmalloc"
-
--- Configure pagesize for libbarrelfish's morecore implementation
--- x86_64 accepts "small", "large", and "huge" for 4kB, 2MB and 1GB pages
--- respectively. x86_32 accepts "small" and "large" for 4kB and 2MB/4MB pages
--- respectively. All other architectures default to their default page size.
-morecore_pagesize :: String
-morecore_pagesize = "small"
-
--- Use a frame pointer
-use_fp :: Bool
-use_fp = True
-
--- Default timeslice duration in milliseconds
-timeslice :: Integer
-timeslice = 80
-
--- Put kernel into microbenchmarks mode
-microbenchmarks :: Bool
-microbenchmarks = False
-
--- Enable tracing
-trace :: Bool
-trace = False
-
--- Enable QEMU networking. (ie. make network work in small memory)
-support_qemu_networking :: Bool
-support_qemu_networking  = False
-
--- armv7 platform to build for
--- Currently available: gem5, pandaboard
-armv7_platform :: String
---armv7_platform = "gem5"
-armv7_platform = "pandaboard"
-
--- on pandaboard, build a heterogenous image and let the cortex-A9 set up and start the
--- cortex-M3 processor (build targets "heteropanda_slave" and "heteropanda_master_image")
-heteropanda :: Bool
-heteropanda = False
-
--- enable network tracing
-trace_network_subsystem :: Bool
-trace_network_subsystem = False
-
--- May want to disable LRPC to improve trace visuals
-trace_disable_lrpc :: Bool
-trace_disable_lrpc = False
-
--- use Kaluga
-use_kaluga_dvm :: Bool
-use_kaluga_dvm = True
-
--- Domain and driver debugging
-global_debug :: Bool
-global_debug = False
-
-e1000n_debug :: Bool
-e1000n_debug = False
-
-eMAC_debug :: Bool
-eMAC_debug = False
-
-rtl8029_debug :: Bool
-rtl8029_debug = False
-
-ahcid_debug :: Bool
-ahcid_debug = False
-
-libahci_debug :: Bool
-libahci_debug = False
-
-vfs_debug :: Bool
-vfs_debug = False
-
-ethersrv_debug :: Bool
-ethersrv_debug = False
-
-netd_debug :: Bool
-netd_debug = False
-
-libacpi_debug :: Bool 
-libacpi_debug = False
-
-acpi_interface_debug :: Bool
-acpi_interface_debug = False
-
-lpc_timer_debug :: Bool
-lpc_timer_debug = False
-
-lwip_debug :: Bool
-lwip_debug = False
-
-libpci_debug :: Bool
-libpci_debug = False
-
-usrpci_debug :: Bool
-usrpci_debug = False
-
-timer_debug :: Bool
-timer_debug = False
-
-eclipse_kernel_debug :: Bool
-eclipse_kernel_debug = False
-
-skb_debug :: Bool
-skb_debug = False
-
-skb_client_debug :: Bool
-skb_client_debug = False
-
-flounder_debug :: Bool
-flounder_debug = False
-
-flounder_failed_debug :: Bool
-flounder_failed_debug = False
-
-webserver_debug :: Bool
-webserver_debug = False
-
-sqlclient_debug :: Bool
-sqlclient_debug = False
-
-sqlite_debug :: Bool
-sqlite_debug = False
-
-sqlite_backend_debug :: Bool
-sqlite_backend_debug = False
-
-nfs_debug :: Bool
-nfs_debug = False
-
-rpc_debug :: Bool
-rpc_debug = False
-
-loopback_debug :: Bool
-loopback_debug = False
-
-octopus_debug :: Bool
-octopus_debug = False
-
-term_debug :: Bool
-term_debug = False
-
-serial_debug :: Bool
-serial_debug = False
-
--- Deadlock debugging
-debug_deadlocks :: Bool
-debug_deadlocks = False
-
--- Partitioned memory server
-memserv_percore :: Bool
-memserv_percore = False
-
--- Lazy THC implementation (requires use_fp = True)
-lazy_thc :: Bool
-lazy_thc | elem "armv7" architectures   = False
-        | elem "armv5" architectures   = False
-        | elem "xscale" architectures  = False
-         | otherwise                    = True
-
--- Enable capability tracing debug facility
-caps_trace :: Bool
-caps_trace = False
-
--- Mapping Database configuration options (this affects lib/mdb/)
--- enable extensive tracing of mapping db implementation
-mdb_trace :: Bool
-mdb_trace = False
-
--- enable tracing of top level mdb_insert, mdb_remove calls
-mdb_trace_no_recursive :: Bool
-mdb_trace_no_recursive = False
-
--- fail on invariant violations
-mdb_fail_invariants :: Bool
-mdb_fail_invariants = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants :: Bool
-mdb_check_invariants = False
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants :: Bool
-mdb_recheck_invariants = False
-
--- enable extensive tracing of mapping db implementation (userspace version)
-mdb_trace_user :: Bool
-mdb_trace_user = False
-
--- fail on invariant violations
-mdb_fail_invariants_user :: Bool
-mdb_fail_invariants_user = True
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants_user :: Bool
-mdb_recheck_invariants_user = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants_user :: Bool
-mdb_check_invariants_user = True
-
--- Select scheduler
-data Scheduler = RBED | RR deriving (Show,Eq)
-scheduler :: Scheduler
-scheduler = RBED
-
--- Physical Address Extensions (PAE)-enabled paging on x86-32
-pae_paging :: Bool
-pae_paging = False
-
--- Page Size Extensions (PSE)-enabled paging on x86-32
--- Always enabled when pae_paging == True, regardless of value
-pse_paging :: Bool
-pse_paging = False
-
--- No Execute Extensions (NXE)-enabled paging on x86-32
--- May not be True when pae_paging == False
-nxe_paging :: Bool
-nxe_paging = False
-
-oneshot_timer :: Bool
-oneshot_timer = False
-
-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 "",
-             if caps_trace then "TRACE_PMEM_CAPS" else ""
-             ], d /= "" ]
-
--- Sets the include path for the libc
-libcInc :: String
-libcInc = if libc == "oldc" then "/include/oldc"
-          else "/lib/newlib/newlib/libc/include"
-
--- Sets the include path for lwIP
-lwipInc :: String
-lwipInc = "/lib/lwip/src/include"
-lwipxxxInc :: String
-lwipxxxInc = "/lib/lwip/src/include/ipv4"
-
--- some defines depend on the architecture/compile options
-arch_defines :: Options -> [RuleToken]
-arch_defines opts
-    -- enable config flags for interconnect drivers in use for this arch
-    = [ Str ("-D" ++ d)
-       | d <- ["CONFIG_INTERCONNECT_DRIVER_" ++ (map toUpper n)
-               | n <- optInterconnectDrivers opts]
-      ]
-    -- enable config flags for flounder backends in use for this arch
-    ++ [ Str ("-D" ++ d)
-       | d <- ["CONFIG_FLOUNDER_BACKEND_" ++ (map toUpper n)
-               | n <- optFlounderBackends opts]
-      ]
-
--- newlib common compile flags (maybe put these in a config.h file?)
-newlibAddCFlags :: [String]
-newlibAddCFlags = [ "-DPACKAGE_NAME=\"newlib\"" ,
-                    "-DPACKAGE_TARNAME=\"newlib\"",
-                    "-DPACKAGE_VERSION=\"1.19.0\"",
-                    "-DPACKAGE_BUGREPORT=\"\"",
-                    "-DPACKAGE_URL=\"\"",
-                    "-D_I386MACH_ALLOW_HW_INTERRUPTS",
-                    "-DMISSING_SYSCALL_NAMES",
-                    "-D_WANT_IO_C99_FORMATS",
-                    "-D_COMPILING_NEWLIB",
-                    "-D_WANT_IO_LONG_LONG",
-                    "-D_WANT_IO_LONG_DOUBLE",
-                    "-D_MB_CAPABLE",
-                    "-D__BSD_VISIBLE"]
diff --git a/hake/Config.hs.linaro-gcc-4.9-2015.05 b/hake/Config.hs.linaro-gcc-4.9-2015.05
deleted file mode 100644 (file)
index 57b5ff0..0000000
+++ /dev/null
@@ -1,390 +0,0 @@
---------------------------------------------------------------------------
--- Copyright (c) 2007-2010, 2012, 2013, 2015 ETH Zurich.
--- Copyright (c) 2014, HP Labs.
--- All rights reserved.
---
--- This file is distributed under the terms in the attached LICENSE file.
--- If you do not find this file, copies can be found by writing to:
--- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
--- Attn: Systems Group.
---
--- Configuration options for Hake
--- 
---------------------------------------------------------------------------
-
-module Config where
-
-import HakeTypes
-import Data.Char
-import qualified Args
-import Data.List
-
---
--- Toolchain definitions.  By default, these rely on $PATH 
---
-arm_gcc_path = "/home/netos/tools/linaro/" ++
-               "gcc-linaro-4.9-2015.05-x86_64_arm-eabi" ++
-               "/bin/"
-arm_gcc_prefix = "arm-eabi-"
-arm_cc       = arm_gcc_path ++ arm_gcc_prefix ++ "gcc"
-arm_objcopy  = arm_gcc_path ++ arm_gcc_prefix ++ "objcopy"
-arm_objdump  = arm_gcc_path ++ arm_gcc_prefix ++ "objdump"
-arm_ar       = arm_gcc_path ++ arm_gcc_prefix ++ "ar"
-arm_ranlib   = arm_gcc_path ++ arm_gcc_prefix ++ "ranlib"
-arm_cxx      = arm_gcc_path ++ arm_gcc_prefix ++ "g++"
-
-x86_cc       = "gcc"
-x86_cxx      = "g++"
-
-k1om_cc      = "k1om-mpss-linux-gcc"
-k1om_objcopy = "k1om-mpss-linux-objcopy"
-k1om_objdump = "k1om-mpss-linux-objdump"
-k1om_ar      = "k1om-mpss-linux-ar"
-k1om_ranlib  = "k1om-mpss-linux-anlib"
-k1om_cxx     = "k1om-mpss-linux-g++"
-
-gem5         = "gem5.fast"
-runghc      = "runghc"    -- run GHC interactively
-circo       = "circo"     -- from graphviz
-dot          = "dot"       --   "    "
-inkscape     = "inkscape"
-
-
--- path to source and install directories; these are automatically set by hake.sh at setup time 
-source_dir :: String
--- source_dir = undefined -- (set by hake.sh, see end of file)
-
-install_dir :: String
--- install_dir = undefined -- (set by hake.sh, see end of file)
-
--- Set of architectures for which to generate rules
-architectures :: [String]
--- architectures = undefined -- (set by hake.sh, see end of file)
-
--- Optimisation flags (-Ox -g etc.) passed to compiler
-cOptFlags :: [String]
-cOptFlags = ["-g", "-O2"]
-
--- Selects which libc to compile with, "oldc" or "newlib"
-libc :: String
---libc = "oldc"
-libc = "newlib"
-
-newlib_malloc :: String
---newlib_malloc = "sbrk"     -- use sbrk and newlib's malloc()
---newlib_malloc = "dlmalloc" -- use dlmalloc
-newlib_malloc = "oldmalloc"
-
--- Configure pagesize for libbarrelfish's morecore implementation
--- x86_64 accepts "small", "large", and "huge" for 4kB, 2MB and 1GB pages
--- respectively. x86_32 accepts "small" and "large" for 4kB and 2MB/4MB pages
--- respectively. All other architectures default to their default page size.
-morecore_pagesize :: String
-morecore_pagesize = "small"
-
--- Use a frame pointer
-use_fp :: Bool
-use_fp = True
-
--- Default timeslice duration in milliseconds
-timeslice :: Integer
-timeslice = 80
-
--- Put kernel into microbenchmarks mode
-microbenchmarks :: Bool
-microbenchmarks = False
-
--- Enable tracing
-trace :: Bool
-trace = False
-
--- Enable QEMU networking. (ie. make network work in small memory)
-support_qemu_networking :: Bool
-support_qemu_networking  = False
-
--- armv7 platform to build for
--- Currently available: gem5, pandaboard
-armv7_platform :: String
---armv7_platform = "gem5"
-armv7_platform = "pandaboard"
-
--- on pandaboard, build a heterogenous image and let the cortex-A9 set up and start the
--- cortex-M3 processor (build targets "heteropanda_slave" and "heteropanda_master_image")
-heteropanda :: Bool
-heteropanda = False
-
--- enable network tracing
-trace_network_subsystem :: Bool
-trace_network_subsystem = False
-
--- May want to disable LRPC to improve trace visuals
-trace_disable_lrpc :: Bool
-trace_disable_lrpc = False
-
--- use Kaluga
-use_kaluga_dvm :: Bool
-use_kaluga_dvm = True
-
--- Domain and driver debugging
-global_debug :: Bool
-global_debug = False
-
-e1000n_debug :: Bool
-e1000n_debug = False
-
-eMAC_debug :: Bool
-eMAC_debug = False
-
-rtl8029_debug :: Bool
-rtl8029_debug = False
-
-ahcid_debug :: Bool
-ahcid_debug = False
-
-libahci_debug :: Bool
-libahci_debug = False
-
-vfs_debug :: Bool
-vfs_debug = False
-
-ethersrv_debug :: Bool
-ethersrv_debug = False
-
-netd_debug :: Bool
-netd_debug = False
-
-libacpi_debug :: Bool 
-libacpi_debug = False
-
-acpi_interface_debug :: Bool
-acpi_interface_debug = False
-
-lpc_timer_debug :: Bool
-lpc_timer_debug = False
-
-lwip_debug :: Bool
-lwip_debug = False
-
-libpci_debug :: Bool
-libpci_debug = False
-
-usrpci_debug :: Bool
-usrpci_debug = False
-
-timer_debug :: Bool
-timer_debug = False
-
-eclipse_kernel_debug :: Bool
-eclipse_kernel_debug = False
-
-skb_debug :: Bool
-skb_debug = False
-
-skb_client_debug :: Bool
-skb_client_debug = False
-
-flounder_debug :: Bool
-flounder_debug = False
-
-flounder_failed_debug :: Bool
-flounder_failed_debug = False
-
-webserver_debug :: Bool
-webserver_debug = False
-
-sqlclient_debug :: Bool
-sqlclient_debug = False
-
-sqlite_debug :: Bool
-sqlite_debug = False
-
-sqlite_backend_debug :: Bool
-sqlite_backend_debug = False
-
-nfs_debug :: Bool
-nfs_debug = False
-
-rpc_debug :: Bool
-rpc_debug = False
-
-loopback_debug :: Bool
-loopback_debug = False
-
-octopus_debug :: Bool
-octopus_debug = False
-
-term_debug :: Bool
-term_debug = False
-
-serial_debug :: Bool
-serial_debug = False
-
--- Deadlock debugging
-debug_deadlocks :: Bool
-debug_deadlocks = False
-
--- Partitioned memory server
-memserv_percore :: Bool
-memserv_percore = False
-
--- Lazy THC implementation (requires use_fp = True)
-lazy_thc :: Bool
-lazy_thc | elem "armv7" architectures   = False
-        | elem "armv5" architectures   = False
-        | elem "xscale" architectures  = False
-         | otherwise                    = True
-
--- Enable capability tracing debug facility
-caps_trace :: Bool
-caps_trace = False
-
--- Mapping Database configuration options (this affects lib/mdb/)
--- enable extensive tracing of mapping db implementation
-mdb_trace :: Bool
-mdb_trace = False
-
--- enable tracing of top level mdb_insert, mdb_remove calls
-mdb_trace_no_recursive :: Bool
-mdb_trace_no_recursive = False
-
--- fail on invariant violations
-mdb_fail_invariants :: Bool
-mdb_fail_invariants = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants :: Bool
-mdb_check_invariants = False
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants :: Bool
-mdb_recheck_invariants = False
-
--- enable extensive tracing of mapping db implementation (userspace version)
-mdb_trace_user :: Bool
-mdb_trace_user = False
-
--- fail on invariant violations
-mdb_fail_invariants_user :: Bool
-mdb_fail_invariants_user = True
-
--- recheck invariants at each tracing point
-mdb_recheck_invariants_user :: Bool
-mdb_recheck_invariants_user = True
-
--- check invariants before/after mdb_insert/mdb_remove.
-mdb_check_invariants_user :: Bool
-mdb_check_invariants_user = True
-
--- Select scheduler
-data Scheduler = RBED | RR deriving (Show,Eq)
-scheduler :: Scheduler
-scheduler = RBED
-
--- Physical Address Extensions (PAE)-enabled paging on x86-32
-pae_paging :: Bool
-pae_paging = False
-
--- Page Size Extensions (PSE)-enabled paging on x86-32
--- Always enabled when pae_paging == True, regardless of value
-pse_paging :: Bool
-pse_paging = False
-
--- No Execute Extensions (NXE)-enabled paging on x86-32
--- May not be True when pae_paging == False
-nxe_paging :: Bool
-nxe_paging = False
-
-oneshot_timer :: Bool
-oneshot_timer = False
-
-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 "",
-             if caps_trace then "TRACE_PMEM_CAPS" else ""
-             ], d /= "" ]
-
--- Sets the include path for the libc
-libcInc :: String
-libcInc = if libc == "oldc" then "/include/oldc"
-          else "/lib/newlib/newlib/libc/include"
-
--- Sets the include path for lwIP
-lwipInc :: String
-lwipInc = "/lib/lwip/src/include"
-lwipxxxInc :: String
-lwipxxxInc = "/lib/lwip/src/include/ipv4"
-
--- some defines depend on the architecture/compile options
-arch_defines :: Options -> [RuleToken]
-arch_defines opts
-    -- enable config flags for interconnect drivers in use for this arch
-    = [ Str ("-D" ++ d)
-       | d <- ["CONFIG_INTERCONNECT_DRIVER_" ++ (map toUpper n)
-               | n <- optInterconnectDrivers opts]
-      ]
-    -- enable config flags for flounder backends in use for this arch
-    ++ [ Str ("-D" ++ d)
-       | d <- ["CONFIG_FLOUNDER_BACKEND_" ++ (map toUpper n)
-               | n <- optFlounderBackends opts]
-      ]
-
--- newlib common compile flags (maybe put these in a config.h file?)
-newlibAddCFlags :: [String]
-newlibAddCFlags = [ "-DPACKAGE_NAME=\"newlib\"" ,
-                    "-DPACKAGE_TARNAME=\"newlib\"",
-                    "-DPACKAGE_VERSION=\"1.19.0\"",
-                    "-DPACKAGE_BUGREPORT=\"\"",
-                    "-DPACKAGE_URL=\"\"",
-                    "-D_I386MACH_ALLOW_HW_INTERRUPTS",
-                    "-DMISSING_SYSCALL_NAMES",
-                    "-D_WANT_IO_C99_FORMATS",
-                    "-D_COMPILING_NEWLIB",
-                    "-D_WANT_IO_LONG_LONG",
-                    "-D_WANT_IO_LONG_DOUBLE",
-                    "-D_MB_CAPABLE",
-                    "-D__BSD_VISIBLE"]
similarity index 91%
rename from hake/Config.hs.ubuntu
rename to hake/Config.hs.template
index ce6240a..618da14 100644 (file)
@@ -18,18 +18,27 @@ import HakeTypes
 import Data.Char
 import qualified Args
 import Data.List
+import Data.Maybe
 import System.FilePath
-
---
--- Toolchain definitions.  By default, these rely on $PATH 
---
-findTool path prefix tool = path </> (prefix ++ tool)
+import Tools (findTool, ToolDetails, toolPath, toolPrefix)
+import qualified Tools
+
+-- Set by hake.sh
+arm_toolspec   :: Maybe ToolDetails
+thumb_toolspec :: Maybe ToolDetails
+armeb_toolspec :: Maybe ToolDetails
+x86_toolspec   :: Maybe ToolDetails
+k1om_toolspec  :: Maybe ToolDetails
+
+-- Default toolchains
+arm_tools   = fromMaybe Tools.arm_system                     arm_toolspec
+thumb_tools = fromMaybe Tools.arm_netos_arm_2015q2         thumb_toolspec
+armeb_tools = fromMaybe Tools.arm_netos_linaro_be_2015_02  armeb_toolspec
+x86_tools   = fromMaybe Tools.x86_system                     x86_toolspec
+k1om_tools  = fromMaybe Tools.k1om_netos_mpss_3_4           k1om_toolspec
 
 -- ARM toolchain
-arm_gnu_path = ""
-arm_gnu_prefix = "arm-linux-gnueabi-"
-arm_gnu_tool = findTool arm_gnu_path arm_gnu_prefix
-
+arm_gnu_tool = findTool (toolPath arm_tools) (toolPrefix arm_tools)
 arm_cc       = arm_gnu_tool "gcc"
 arm_objcopy  = arm_gnu_tool "objcopy"
 arm_objdump  = arm_gnu_tool "objdump"
@@ -38,10 +47,7 @@ arm_ranlib   = arm_gnu_tool "ranlib"
 arm_cxx      = arm_gnu_tool "g++"
 
 -- ARM thumb (e.g. -M profile) toolchain
-thumb_gnu_path = "/opt/gcc-arm-none-eabi-4_6-2012q4/bin"
-thumb_gnu_prefix = "arm-none-eabi-"
-thumb_gnu_tool = findTool thumb_gnu_path thumb_gnu_prefix
-
+thumb_gnu_tool = findTool (toolPath thumb_tools) (toolPrefix thumb_tools)
 thumb_cc       = thumb_gnu_tool "gcc"
 thumb_objcopy  = thumb_gnu_tool "objcopy"
 thumb_objdump  = thumb_gnu_tool "objdump"
@@ -50,10 +56,7 @@ thumb_ranlib   = thumb_gnu_tool "ranlib"
 thumb_cxx      = thumb_gnu_tool "g++"
 
 -- ARM big-endian (e.g. XScale) toolchain
-armeb_gnu_path = "/opt/gcc-linaro-4.9-2015.02-3-x86_64_armeb-eabi/bin"
-armeb_gnu_prefix = "armeb-eabi-"
-armeb_gnu_tool = findTool armeb_gnu_path armeb_gnu_prefix
-
+armeb_gnu_tool = findTool (toolPath armeb_tools) (toolPrefix armeb_tools)
 armeb_cc       = armeb_gnu_tool "gcc"
 armeb_objcopy  = armeb_gnu_tool "objcopy"
 armeb_objdump  = armeb_gnu_tool "objdump"
@@ -62,18 +65,16 @@ armeb_ranlib   = armeb_gnu_tool "ranlib"
 armeb_cxx      = armeb_gnu_tool "g++"
 
 -- X86 (32/64) toolchain
-x86_gnu_path = ""
-x86_gnu_prefix = ""
-x86_gnu_tool = findTool x86_gnu_path x86_gnu_prefix
-
+x86_gnu_tool = findTool (toolPath x86_tools) (toolPrefix x86_tools)
 x86_cc       = x86_gnu_tool "gcc"
+x86_objcopy  = x86_gnu_tool "objcopy"
+x86_objdump  = x86_gnu_tool "objdump"
+x86_ar       = x86_gnu_tool "ar"
+x86_ranlib   = x86_gnu_tool "ranlib"
 x86_cxx      = x86_gnu_tool "g++"
 
 -- Xeon Phi toolchain
-k1om_gnu_path = ""
-k1om_gnu_prefix = "k1om-mpss-linux-"
-k1om_gnu_tool = findTool k1om_gnu_path k1om_gnu_prefix
-
+k1om_gnu_tool = findTool (toolPath k1om_tools) (toolPrefix k1om_tools)
 k1om_cc      = k1om_gnu_tool "gcc"
 k1om_objcopy = k1om_gnu_tool "objcopy"
 k1om_objdump = k1om_gnu_tool "objdump"
@@ -81,13 +82,15 @@ k1om_ar      = k1om_gnu_tool "ar"
 k1om_ranlib  = k1om_gnu_tool "ranlib"
 k1om_cxx     = k1om_gnu_tool "g++"
 
+-- Miscellaneous tools
 gem5         = "gem5.fast"
 runghc      = "runghc"    -- run GHC interactively
 circo       = "circo"     -- from graphviz
 dot          = "dot"       --   "    "
 inkscape     = "inkscape"
 
--- path to source and install directories; these are automatically set by hake.sh at setup time 
+-- path to source and install directories; these are automatically set by
+-- hake.sh at setup time 
 source_dir :: String
 -- source_dir = undefined -- (set by hake.sh, see end of file)
 
diff --git a/hake/Tools.hs b/hake/Tools.hs
new file mode 100644 (file)
index 0000000..e05c7a3
--- /dev/null
@@ -0,0 +1,139 @@
+--------------------------------------------------------------------------
+-- Copyright (c) 2015 ETH Zurich.
+-- All rights reserved.
+--
+-- This file is distributed under the terms in the attached LICENSE file.
+-- If you do not find this file, copies can be found by writing to:
+-- ETH Zurich D-INFK, CAB F.78, Universitaetstr. 6, CH-8092 Zurich,
+-- Attn: Systems Group.
+--
+-- Toolchain definitions for Hake
+-- 
+--------------------------------------------------------------------------
+
+module Tools where
+
+import System.FilePath
+
+findTool path prefix tool = path </> (prefix ++ tool)
+
+data ToolDetails =
+    ToolDetails {
+        toolPath :: FilePath,
+        toolPrefix :: String
+    }
+
+--
+-- ARM Cortex-A little-endian toolchains (armv7,armv5)
+--
+
+-- System (Ubuntu) ARM toolchain
+arm_system
+    = ToolDetails {
+        toolPath = "",
+        toolPrefix = "arm-linux-gnueabi-"
+      }
+
+-- Linaro 2015.06 (GCC 4.8)
+arm_netos_linaro_2015_06
+    = ToolDetails {
+        toolPath = "/home/netos/tools/linaro" </>
+                   "gcc-linaro-4.8-2015.06-x86_64_arm-eabi" </>
+                   "bin",
+        toolPrefix = "arm-eabi-"
+      }
+
+-- Linaro 2015.05 (GCC 4.9)
+arm_netos_linaro_2015_05
+    = ToolDetails {
+        toolPath = "/home/netos/tools/linaro" </>
+                   "gcc-linaro-4.9-2015.05-x86_64_arm-eabi" </>
+                   "bin",
+        toolPrefix = "arm-eabi-"
+      }
+
+-- Linaro 2015.02 (GCC 4.9)
+arm_netos_linaro_2015_02
+    = ToolDetails {
+        toolPath = "/home/netos/tools/linaro" </>
+                   "gcc-linaro-4.9-2015.02-3-x86_64_arm-eabi" </>
+                   "bin",
+        toolPrefix = "arm-eabi-"
+      }
+
+-- Linaro 2014.11 (GCC 4.9)
+arm_netos_linaro_2014_11
+    = ToolDetails {
+        toolPath = "/home/netos/tools/linaro" </>
+                   "gcc-linaro-4.9-2014.11-x86_64_arm-eabi" </>
+                   "bin",
+        toolPrefix = "arm-eabi-"
+      }
+
+--
+-- ARM Cortex-M little-endian toolchains (armv7m)
+--
+
+-- ARM-GCC 2014q4 (GCC 4.9)
+arm_netos_arm_2014q4
+    = ToolDetails {
+        toolPath = "/home/netos/tools/gcc-arm-embedded" </>
+                   "gcc-arm-none-eabi-4_9-2014q4" </>
+                   "bin",
+        toolPrefix = "arm-eabi-"
+      }
+
+-- ARM-GCC 2015q1 (GCC 4.9)
+arm_netos_arm_2015q1
+    = ToolDetails {
+        toolPath = "/home/netos/tools/gcc-arm-embedded" </>
+                   "gcc-arm-none-eabi-4_9-2015q1" </>
+                   "bin",
+        toolPrefix = "arm-eabi-"
+      }
+
+-- ARM-GCC 2015q2 (GCC 4.9)
+arm_netos_arm_2015q2
+    = ToolDetails {
+        toolPath = "/home/netos/tools/gcc-arm-embedded" </>
+                   "gcc-arm-none-eabi-4_9-2015q2" </>
+                   "bin",
+        toolPrefix = "arm-eabi-"
+      }
+
+--
+-- ARM big-endian toolchains (xscale)
+--
+
+-- Linaro 2015.02 (GCC 4.9)
+arm_netos_linaro_be_2015_02
+    = ToolDetails {
+        toolPath = "/home/netos/tools/linaro" </>
+                   "gcc-linaro-4.9-2015.02-3-x86_64_armeb-eabi" </>
+                   "bin",
+        toolPrefix = "armeb-eabi-"
+      }
+
+--
+-- X86 (32/64) toolchains (x86_32,x86_64)
+--
+
+-- System (Ubuntu) ARM toolchain
+x86_system
+    = ToolDetails {
+        toolPath = "",
+        toolPrefix = "x86_64-linux-gnu-"
+      }
+
+--
+-- Xeon Phi toolchains (k1om)
+--
+
+-- Intel MPSS 3.4 (GCC 4.7)
+k1om_netos_mpss_3_4
+    = ToolDetails {
+        toolPath = "/home/netos/tools" </>
+                   "mpss-3.4/x86_64-mpsssdk-linux" </> 
+                   "usr/bin/k1om-mpss-linux",
+        toolPrefix = "k1om-mpss-linux-"
+      }
index 7e23892..306ad4b 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 ##########################################################################
-# Copyright (c) 2009, 2011, 2013, ETH Zurich.
+# Copyright (c) 2009, 2011, 2013, 2015, ETH Zurich.
 # All rights reserved.
 #
 # This file is distributed under the terms in the attached LICENSE file.
 
 DFLTARCHS="\"x86_64\""
 RUN_HAKE="Yes"
-TOOLCHAIN="ubuntu"
 HAKEDIR=$(dirname $0)
 DEFAULT_JOBS=4
 JOBS="$DEFAULT_JOBS"
 
+# Don't override the default toolchain unless asked to.
+ARM_TOOLSPEC=Nothing
+THUMB_TOOLSPEC=Nothing
+ARMEB_TOOLSPEC=Nothing
+X86_TOOLSPEC=Nothing
+K1OM_TOOLSPEC=Nothing
+
 usage() { 
     echo "Usage: $0 <options>"
     echo "   -s|--source-dir: path to source tree (required)"
@@ -25,8 +31,8 @@ usage() {
     echo "       $DFLTARCHS"
     echo "   -n|--no-hake: just rebuild hake itself, don't run it (only useful"
     echo "       for debugging hake)"
-    echo "   -t|--toolchain: toolchain to use when bootstrapping a new"
-    echo "       build tree (-t list for available options)."
+    echo "   -t|--toolchain <arch> <toolchain>: use <toolchain> to build for"
+    echo "       <arch>."
     echo "   -j|--jobs: Number of parallel jobs to run (default $DEFAULT_JOBS)."
     echo ""
     echo "  The way you use this script is to create a new directory for your"
@@ -38,15 +44,6 @@ usage() {
     exit 1;
 }
 
-toolchains() {
-    TOOLCHAINS=$(ls ${HAKEDIR}/Config.hs.* | sed s/.*Config\.hs\.//)
-    echo "Available toolchains:"
-    for tc in ${TOOLCHAINS}; do
-        echo "   $tc"
-    done
-    exit 1
-}
-
 #
 # Legacy compatibility to avoid breaking the harness...
 #
@@ -82,15 +79,31 @@ while [ $# -ne 0 ]; do
            RUN_HAKE="No"
            ;;
     "-t"|"--toolchain")
-        TOOLCHAIN="$2"
+        TC_ARCH="$2"
+        shift
+        TOOLSPEC="$2"
         shift
-        if [ "${TOOLCHAIN}" == "list" ]; then
-            toolchains
-        fi
-        if [ ! -f ${HAKEDIR}/Config.hs.${TOOLCHAIN} ]; then
-            echo "Unknown toolchain \"${TOOLCHAIN}\""
+        case ${TC_ARCH} in
+        "arm")
+            ARM_TOOLSPEC="Just Tools.$TOOLSPEC"
+            ;;
+        "thumb")
+            THUMB_TOOLSPEC="Just Tools.$TOOLSPEC"
+            ;;
+        "armeb")
+            ARMEB_TOOLSPEC="Just Tools.$TOOLSPEC"
+            ;;
+        "x86")
+            X86_TOOLSPEC="Just Tools.$TOOLSPEC"
+            ;;
+        "k1om")
+            K1OM_TOOLSPEC="Just Tools.$TOOLSPEC"
+            ;;
+           *) 
+            echo "Unknown toolchain architecture: $TC_ARCH"
             exit 1
-        fi
+            ;;
+        esac
         ;;
        "-j"|"--jobs")
            JOBS="$2"
@@ -137,14 +150,19 @@ fi
 
 echo "Setting up hake build directory..."
 if [ ! -f hake/Config.hs ]; then
-    echo "Bootstrapping with toolchain \"${TOOLCHAIN}\""
-    cp $SRCDIR/hake/Config.hs.${TOOLCHAIN} hake/Config.hs
+    echo "Bootstrapping Config.hs"
+    cp $SRCDIR/hake/Config.hs.template hake/Config.hs
     cat >> hake/Config.hs <<EOF
 
 -- Automatically added by hake.sh. Do NOT copy these definitions to the defaults
 source_dir = "$SRCDIR"
 architectures = [ $ARCHS ]
 install_dir = "$INSTALLDIR"
+arm_toolspec   = $ARM_TOOLSPEC
+thumb_toolspec = $THUMB_TOOLSPEC
+armeb_toolspec = $ARMEB_TOOLSPEC
+x86_toolspec   = $X86_TOOLSPEC
+k1om_toolspec  = $K1OM_TOOLSPEC
 EOF
 else
     echo "You already have Config.hs, leaving it as-is."