[project @ 2003-08-19 22:03:04 by krc]
authorkrc <unknown>
Tue, 19 Aug 2003 22:03:04 +0000 (22:03 +0000)
committerkrc <unknown>
Tue, 19 Aug 2003 22:03:04 +0000 (22:03 +0000)
Changed outputForeignStubs to check whether stub files from a previous
compilation still exist (in the case where no new stubs exist). This is
necessary to compile External Core programs that require these stubs.

ghc/compiler/main/CodeOutput.lhs

index 14fbb0b..5e9e7e5 100644 (file)
@@ -37,6 +37,7 @@ import Pretty         ( Mode(..), printDoc )
 import Module          ( Module )
 import ListSetOps      ( removeDupsEq )
 
+import System.Directory ( doesFileExist )
 import Monad           ( when )
 import IO
 \end{code}
@@ -220,7 +221,12 @@ outputIlx dflags filename mod tycons stg_binds
 outputForeignStubs :: DynFlags -> ForeignStubs
                   -> IO (Bool,         -- Header file created
                          Bool)         -- C file created
-outputForeignStubs dflags NoStubs = return (False, False)
+outputForeignStubs dflags NoStubs = do
+-- When compiling External Core files, may need to use stub files from a 
+-- previous compilation
+   hFileExists <- doesFileExist (hscStubHOutName dflags)
+   cFileExists <- doesFileExist (hscStubCOutName dflags)
+   return (hFileExists, cFileExists)
 outputForeignStubs dflags (ForeignStubs h_code c_code _ _)
   = do
        dumpIfSet_dyn dflags Opt_D_dump_foreign