From: sewardj Date: Thu, 5 Jul 2001 13:31:10 +0000 (+0000) Subject: [project @ 2001-07-05 13:31:09 by sewardj] X-Git-Tag: Approximately_9120_patches~1609 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=d65574ab3852a0d5b66358f71ae1e34dfcc606c9;hp=90fdf6fe22eebb4140f0b26bf138be6fdad43198;p=ghc-hetmet.git [project @ 2001-07-05 13:31:09 by sewardj] Changes to nuke RAWCPP. --- diff --git a/ghc/compiler/Makefile b/ghc/compiler/Makefile index 4d3e4b4..4edc80b 100644 --- a/ghc/compiler/Makefile +++ b/ghc/compiler/Makefile @@ -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) diff --git a/ghc/compiler/main/SysTools.lhs b/ghc/compiler/main/SysTools.lhs index b3ea84f..33ac91c 100644 --- a/ghc/compiler/main/SysTools.lhs +++ b/ghc/compiler/main/SysTools.lhs @@ -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 diff --git a/ghc/mk/paths.mk b/ghc/mk/paths.mk index 5012d8a..f9dd98b 100644 --- a/ghc/mk/paths.mk +++ b/ghc/mk/paths.mk @@ -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 diff --git a/mk/config.mk.in b/mk/config.mk.in index ad80fee..822cd2f 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -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@ #