[add '-I' and '-D' flags to pass options to preproccessors, respect the 'NOPRELUDE' pragma
John Meacham <john@repetae.net>**20080222020134] hunk ./Ho/Build.hs 62
+import Version.Config(revision)
hunk ./Ho/Build.hs 525
-            opts = concat [ words as | (x,as) <- parseOptions s', x `elem` ["OPTIONS","JHC_OPTIONS","OPTIONS_JHC"]]
-    let fopts s = s `member` optFOptsSet opt where opt = f (take 1024 txt)
-        incFlags =  [ "-I" ++ d | d <- optIncdirs options]
+            opts' = concat [ words as | (x,as) <- parseOptions s', x `elem` ["OPTIONS","JHC_OPTIONS","OPTIONS_JHC"]]
+            opts = opts' ++ [ "--noprelude" | ("NOPRELUDE",_) <- parseOptions s']
+            langs = concat [ words as | ("LANGUAGE",as) <- parseOptions s' ]
+    let fopts s = s `member` optFOptsSet initialOpts
+        initialOpts = f (take 4096 txt)
+        incFlags = [ "-I" ++ d | d <- optIncdirs options ++ optIncs initialOpts]
+        defFlags = ("-D__JHC__=" ++ revision):[ "-D" ++ d | d <- optDefs initialOpts]
+
hunk ./Ho/Build.hs 534
-        _ | fopts FO.Cpp -> readSystem "cpp" ["-D__JHC__","-CC","-traditional", "--", fn]
+        _ | fopts FO.Cpp -> readSystem "cpp" $ ["-CC","-traditional"] ++ incFlags ++ defFlags ++ [fn]
hunk ./Ho/Build.hs 537
-            readSystem "m4" $ ["-D__JHC__", "-s", "-P"] ++ incFlags ++ [m4p,fn]
+            readSystem "m4" $ ["-s", "-P"] ++ incFlags ++ defFlags ++ [m4p,fn]
hunk ./Options.hs 69
+    optIncs        ::  [String],
+    optDefs        ::  [String],
hunk ./Options.hs 98
+    optIncs        = [],
+    optDefs        = [],
hunk ./Options.hs 138
-    , Option ['i'] ["include"]   (ReqArg (optIncdirs_u . idu) "DIR")   "library directory"
+    , Option ['i'] ["include"]   (ReqArg (optIncdirs_u . idu) "DIR")   "where to look for source files"
+    , Option ['I'] []            (ReqArg (optIncs_u . idu) "DIR")       "add to preprocessor include path"
+    , Option ['D'] []            (ReqArg (\d -> optDefs_u (d:)) "NAME=VALUE") "add new definitions to set in preprocessor"
hunk ./Options.hs 147
-    , Option ['I'] ["interpret"] (NoArg  (optMode_s Interpret))        "interpret."
+    , Option []    ["interpret"] (NoArg  (optMode_s Interpret))        "interpret."
hunk ./Version/Config.hs.in 9
+revision = "@REVISION@"
hunk ./docs/pragmas.mkd 43
+
+NOPRELUDE
+: do not load the 'Prelude' automatically. equivalent to passing --noprelude on
+the command line.