[project @ 2001-07-03 16:45:15 by rrt]
[ghc-hetmet.git] / ghc / compiler / main / DriverFlags.hs
index 739e760..9f04044 100644 (file)
@@ -1,7 +1,7 @@
 {-# OPTIONS -#include "hschooks.h" #-}
 
 -----------------------------------------------------------------------------
--- $Id: DriverFlags.hs,v 1.59 2001/06/15 08:29:58 simonpj Exp $
+-- $Id: DriverFlags.hs,v 1.61 2001/07/03 16:45:15 rrt Exp $
 --
 -- Driver flags
 --
@@ -302,8 +302,19 @@ dynamic_flags = [
   ,  ( "opta",         HasArg (addOpt_a) )
 
        ------ HsCpp opts ---------------------------------------------------
+       -- With a C compiler whose system() doesn't use a UNIX shell (i.e.
+       -- mingwin gcc), -D and -U args must *not* be quoted, as the quotes
+       -- will be interpreted as part of the arguments, and not stripped;
+       -- on all other systems, quoting is necessary, to avoid interpretation
+       -- of shell metacharacters in the arguments (e.g. green-card's
+       -- -DBEGIN_GHC_ONLY='}-' trick).
+#ifndef mingw32_TARGET_OS
   ,  ( "D",            Prefix (\s -> addOpt_P ("-D'"++s++"'") ) )
   ,  ( "U",            Prefix (\s -> addOpt_P ("-U'"++s++"'") ) )
+#else
+  ,  ( "D",            Prefix (\s -> addOpt_P ("-D"++s) ) )
+  ,  ( "U",            Prefix (\s -> addOpt_P ("-U"++s) ) )
+#endif
 
        ------ Debugging ----------------------------------------------------
   ,  ( "dstg-stats",   NoArg (writeIORef v_StgStats True) )