-static_flags :: [Flag IO]
--- All the static flags should appear in this list. It describes how each
--- static flag should be processed. Two main purposes:
--- (a) if a command-line flag doesn't appear in the list, GHC can complain
--- (b) a command-line flag may remove, or add, other flags; e.g. the "-fno-X" things
---
--- The common (PassFlag addOpt) action puts the static flag into the bunch of
--- things that are searched up by the top-level definitions like
--- opt_foo = lookUp (fsLit "-dfoo")
-
--- Note that ordering is important in the following list: any flag which
--- is a prefix flag (i.e. HasArg, Prefix, OptPrefix, AnySuffix) will override
--- flags further down the list with the same prefix.
-
-static_flags = [
- ------- GHCi -------------------------------------------------------
- Flag "ignore-dot-ghci" (PassFlag addOpt)
- , Flag "read-dot-ghci" (NoArg (removeOpt "-ignore-dot-ghci"))
-
- ------- ways --------------------------------------------------------
- , Flag "prof" (NoArg (addWay WayProf))
- , Flag "ticky" (NoArg (addWay WayTicky))
- , Flag "parallel" (NoArg (addWay WayPar))
- , Flag "gransim" (NoArg (addWay WayGran))
- , Flag "smp" (NoArg (addWay WayThreaded)) -- backwards compat.
- , Flag "debug" (NoArg (addWay WayDebug))
- , Flag "ndp" (NoArg (addWay WayNDP))
- , Flag "threaded" (NoArg (addWay WayThreaded))
- -- ToDo: user ways
-
- ------ Debugging ----------------------------------------------------
- , Flag "dppr-debug" (PassFlag addOpt)
- , Flag "dsuppress-uniques" (PassFlag addOpt)
- , Flag "dppr-user-length" (AnySuffix addOpt)
- , Flag "dopt-fuel" (AnySuffix addOpt)
- , Flag "dno-debug-output" (PassFlag addOpt)
- -- rest of the debugging flags are dynamic
-
- --------- Profiling --------------------------------------------------
- , Flag "auto-all" (NoArg (addOpt "-fauto-sccs-on-all-toplevs"))
- , Flag "auto" (NoArg (addOpt "-fauto-sccs-on-exported-toplevs"))
- , Flag "caf-all" (NoArg (addOpt "-fauto-sccs-on-individual-cafs"))
- -- "ignore-sccs" doesn't work (ToDo)
-
- , Flag "no-auto-all" (NoArg (removeOpt "-fauto-sccs-on-all-toplevs"))
- , Flag "no-auto" (NoArg (removeOpt "-fauto-sccs-on-exported-toplevs"))
- , Flag "no-caf-all" (NoArg (removeOpt "-fauto-sccs-on-individual-cafs"))
-
- ----- Linker --------------------------------------------------------
- , Flag "static" (PassFlag addOpt)
- , Flag "dynamic" (NoArg (removeOpt "-static"))
- , Flag "rdynamic" (NoArg (return ())) -- ignored for compat w/ gcc
-
- ----- RTS opts ------------------------------------------------------
- , Flag "H" (HasArg (setHeapSize . fromIntegral . decodeSize))
- , Flag "Rghc-timing" (NoArg (enableTimingStats))
-
- ------ Compiler flags -----------------------------------------------
- -- All other "-fno-<blah>" options cancel out "-f<blah>" on the hsc cmdline
- , Flag "fno-"
- (PrefixPred (\s -> isStaticFlag ("f"++s)) (\s -> removeOpt ("-f"++s)))
-
- -- Pass all remaining "-f<blah>" options to hsc
- , Flag "f" (AnySuffixPred (isStaticFlag) addOpt)
- ]
-