[project @ 2001-07-05 13:31:09 by sewardj]
authorsewardj <unknown>
Thu, 5 Jul 2001 13:31:10 +0000 (13:31 +0000)
committersewardj <unknown>
Thu, 5 Jul 2001 13:31:10 +0000 (13:31 +0000)
Changes to nuke RAWCPP.

ghc/compiler/Makefile
ghc/compiler/main/SysTools.lhs
ghc/mk/paths.mk
mk/config.mk.in

index 4d3e4b4..4edc80b 100644 (file)
@@ -1,5 +1,5 @@
 # -----------------------------------------------------------------------------
-# $Id: Makefile,v 1.169 2001/07/04 15:51:23 simonpj Exp $
+# $Id: Makefile,v 1.170 2001/07/05 13:31:09 sewardj Exp $
 
 TOP = ..
 include $(TOP)/mk/boilerplate.mk
@@ -46,7 +46,7 @@ $(CONFIG_HS) : $(FPTOOLS_TOP)/mk/config.mk Makefile
        @echo "cGhcWithNativeCodeGen = \"$(GhcWithNativeCodeGen)\"" >> $(CONFIG_HS)
        @echo "cGhcUnregisterised    = \"$(GhcUnregisterised)\"" >> $(CONFIG_HS)
        @echo "cLeadingUnderscore    = \"$(LeadingUnderscore)\"" >> $(CONFIG_HS)
-       @echo "cRAWCPP               = \"$(GHC_RAWCPP)\"" >> $(CONFIG_HS)
+       @echo "cRAWCPP_FLAGS         = \"$(RAWCPP_FLAGS)\"" >> $(CONFIG_HS)
        @echo "cGCC                  = \"$(WhatGccIsCalled)\"" >> $(CONFIG_HS)
        @echo "cMKDLL                = \"$(BLD_DLL)\"" >> $(CONFIG_HS)
        @echo "cGHC_DRIVER_DIR       = \"$(GHC_DRIVER_DIR)\"" >> $(CONFIG_HS)
index b3ea84f..33ac91c 100644 (file)
@@ -197,7 +197,8 @@ initSysTools minusB_args
                --      for "in-place" it is the root of the build tree
                -- NB: top_dir is assumed to be in standard Unix format '/' separated
 
-       ; let installed_bin pgm   =  pgmPath (top_dir `slash` "bin") pgm
+       ; let installed, installed_bin :: FilePath -> FilePath
+              installed_bin pgm   =  pgmPath (top_dir `slash` "extra-bin") pgm
              installed     file  =  pgmPath top_dir file
              inplace dir   pgm   =  pgmPath (top_dir `slash` dir) pgm
 
@@ -236,15 +237,23 @@ initSysTools minusB_args
        --      so when "installed" we look in TopDir/bin
        -- When "in-place" we look wherever the build-time configure 
        --      script found them
-       ; let cpp_path  | am_installed = installed cRAWCPP
-                       | otherwise    = cRAWCPP
-             gcc_path  | am_installed = installed cGCC
+       -- When "install" we tell gcc where its specs file + exes are (-B)
+       --      and also some places to pick up include files.  We need
+       --      to be careful to put all necessary exes in the -B place
+       --      (as, ld, cc1, etc) since if they don't get found there, gcc
+       --      then tries to run unadorned "as", "ld", etc, and will
+       --      pick up whatever happens to be lying around in the path,
+       --      possibly including those from a cygwin install on the target,
+       --      which is exactly what we're trying to avoid.
+       ; let gcc_path  | am_installed = installed_bin ("gcc -B" ++ installed "lib/gcc-lib/" 
+                                         ++ " -I" ++ installed "include/w32api:" 
+                                                  ++ installed "include/mingw")
                        | otherwise    = cGCC
-             perl_path | am_installed = installed cGHC_PERL
+             perl_path | am_installed = installed_bin cGHC_PERL
                        | otherwise    = cGHC_PERL
 
        -- 'touch' is a GHC util for Windows, and similarly unlit, mangle
-       ; let touch_path  | am_installed = installed cGHC_TOUCHY
+       ; let touch_path  | am_installed = installed_bin cGHC_TOUCHY
                          | otherwise    = inplace cGHC_TOUCHY_DIR cGHC_TOUCHY
 
        -- On Win32 we don't want to rely on #!/bin/perl, so we prepend 
@@ -258,8 +267,7 @@ initSysTools minusB_args
        -- On Unix, the "standard" tools are assumed to be
        -- in the same place whether we are running "in-place" or "installed"
        -- That place is wherever the build-time configure script found them.
-       ; let   cpp_path   = cRAWCPP
-               gcc_path   = cGCC
+       ; let   gcc_path   = cGCC
                touch_path = cGHC_TOUCHY
                mkdll_path = panic "Can't build DLLs on a non-Win32 system"
 
@@ -271,6 +279,9 @@ initSysTools minusB_args
              mangle_path = mangle_script
 #endif
 
+       -- cpp is derived from gcc on all platforms
+        ; let cpp_path  = gcc_path ++ " -E " ++ cRAWCPP_FLAGS
+
        -- For all systems, copy and remove are provided by the host
        -- system; architecture-specific stuff is done when building Config.hs
        ; let   cp_path = cGHC_CP
index 5012d8a..f9dd98b 100644 (file)
@@ -1,5 +1,5 @@
 # -----------------------------------------------------------------------------
-# $Id: paths.mk,v 1.34 2001/06/27 13:16:59 rrt Exp $
+# $Id: paths.mk,v 1.35 2001/07/05 13:31:09 sewardj Exp $
 #
 # ghc project specific make variables
 #
@@ -54,15 +54,12 @@ ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
 GHC_CP                 = "xcopy /y"
 GHC_PERL               = perl
 GHC_TOUCHY             = touchy$(EXE_SUFFIX)
-GHC_RAWCPP             = $(subst -mwin32,,$(RAWCPP))
-#      Don't know why we do this...
 
 else
 
 GHC_CP                 = $(CP)
 GHC_PERL               = $(PERL)
 GHC_TOUCHY             = touch
-GHC_RAWCPP             = $(RAWCPP)
 
 endif
 
index ad80fee..822cd2f 100644 (file)
@@ -663,7 +663,11 @@ CONTEXT_DIFF               = @ContextDiffCmd@
 CP                     = cp
 CPP                    = @CPP@
 CTAGS                  = $(ETAGS)
-RAWCPP                  = $(CPP) -undef -traditional
+#
+# RAWCPP_FLAGS are the flags to give to cpp (viz, gcc -E) to persuade it to
+# behave plausibly on Haskell sources.
+#
+RAWCPP_FLAGS            = -undef -traditional
 FIND                   = @FindCmd@
 INSTALL                        = @INSTALL@
 #