{-# OPTIONS -#include "hschooks.h" #-}
-----------------------------------------------------------------------------
--- $Id: DriverFlags.hs,v 1.58 2001/06/14 12:50:06 simonpj Exp $
+-- $Id: DriverFlags.hs,v 1.63 2001/07/24 04:47:06 ken Exp $
--
-- Driver flags
--
) where
#include "HsVersions.h"
+#include "../includes/config.h"
import DriverState
import DriverUtil
, ( "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) )
machdepCCOpts
| prefixMatch "alpha" cTARGETPLATFORM
- = return ( ["-static"], [] )
+ = return ( ["-static", "-Xlinker -noprefix_recognition"], [] )
| prefixMatch "hppa" cTARGETPLATFORM
-- ___HPUX_SOURCE, not _HPUX_SOURCE, is #defined if -ansi!
)
| prefixMatch "mips" cTARGETPLATFORM
- = return ( ["static"], [] )
+ = return ( ["-static"], [] )
| prefixMatch "powerpc" cTARGETPLATFORM || prefixMatch "rs6000" cTARGETPLATFORM
- = return ( ["static"], ["-finhibit-size-directive"] )
+ = return ( ["-static"], ["-finhibit-size-directive"] )
| otherwise
= return ( [], [] )