-- 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]
      ]
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]
      ]
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]
      ]