import DriverMkDepend
import DriverPhases
import DriverFlags
-import SysTools ( newTempName, addFilesToClean, getSysMan, unDosifyPath )
+import SysTools ( newTempName, addFilesToClean, getSysMan )
import qualified SysTools
import HscMain
import Finder
stop_phase = case todo of
StopBefore As | split -> SplitAs
+#ifdef ILX
| real_lang == HscILX -> Ilasm
+#endif
StopBefore phase -> phase
DoMkDependHS -> Ln
DoLink -> Ln
Mangle | keep_raw_s -> Persistent
As | keep_s -> Persistent
HCc | keep_hc -> Persistent
+#ifdef ILX
Ilasm | keep_il -> Persistent
+#endif
_other -> Temporary
-- add information about output files to the pipeline
run_phase Unlit _basename _suff input_fn output_fn
= do unlit_flags <- getOpts opt_L
- -- The -h option passes the file name for unlit to put in a #line directive;
- -- we undosify it so that it doesn't contain backslashes in Windows, which
- -- would disappear in error messages
+ -- The -h option passes the file name for unlit to put in a #line directive
SysTools.runUnlit (map SysTools.Option unlit_flags ++
[ SysTools.Option "-h"
, SysTools.Option input_fn
++ map SysTools.Option md_c_flags
++ [ SysTools.Option "-x"
, SysTools.Option "c"
- , SysTools.FileOption "" input_fn
+ , SysTools.Option input_fn
+ -- We hackily use Option instead of FileOption here, so that the file
+ -- name is not back-slashed on Windows. cpp is capable of
+ -- dealing with / in filenames, so it works fine. Furthermore
+ -- if we put in backslashes, cpp outputs #line directives
+ -- with *double* backslashes. And that in turn means that
+ -- our error messages get double backslashes in them.
+ -- In due course we should arrange that the lexer deals
+ -- with these \\ escapes properly.
, SysTools.Option "-o"
, SysTools.FileOption "" output_fn
])