at 17.09-beta 4.7 kB view raw
1diff --git a/src-bin/Boot.hs b/src-bin/Boot.hs 2index db8b12e..7b815c5 100644 3--- a/src-bin/Boot.hs 4+++ b/src-bin/Boot.hs 5@@ -540,9 +540,7 @@ initPackageDB :: B () 6 initPackageDB = do 7 msg info "creating package databases" 8 initDB "--global" <^> beLocations . blGlobalDB 9- traverseOf_ _Just initUser <^> beLocations . blUserDBDir 10 where 11- initUser dir = rm_f (dir </> "package.conf") >> initDB "--user" (dir </> "package.conf.d") 12 initDB dbName db = do 13 rm_rf db >> mkdir_p db 14 ghcjs_pkg_ ["init", toTextI db] `catchAny_` return () 15@@ -566,29 +564,22 @@ installDevelopmentTree = subTop $ do 16 msgD info $ "preparing development boot tree" 17 checkpoint' "ghcjs-boot-git" "ghcjs-boot repository already cloned and prepared" $ do 18 testGit "ghcjs-boot" >>= \case 19- Just False -> failWith "ghcjs-boot already exists and is not a git repository" 20- Just True -> do 21- msg info "ghcjs-boot repository already exists but checkpoint not reached, cleaning first, then cloning" 22- rm_rf "ghcjs-boot" 23+ Just _ -> do 24+ msg info "ghcjs-boot repository already exists; initializing ghcjs-boot" 25 initGhcjsBoot 26 Nothing -> do 27 msgD info "cloning ghcjs-boot git repository" 28 initGhcjsBoot 29 checkpoint' "shims-git" "shims repository already cloned" $ do 30 testGit "shims" >>= \case 31- Just False -> failWith "shims already exists and is not a git repository" 32- Just True -> do 33- msgD info "shims repository already exists but checkpoint not reached, cleaning first, then cloning" 34- rm_rf "shims" 35- cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev 36+ Just _ -> do 37+ msgD info "shims repository already exists; moving on" 38 Nothing -> do 39 msgD info "cloning shims git repository" 40 cloneGit shimsDescr "shims" bsrcShimsDevBranch bsrcShimsDev 41 where 42 initGhcjsBoot = sub $ do 43- cloneGit bootDescr "ghcjs-boot" bsrcBootDevBranch bsrcBootDev 44 cd "ghcjs-boot" 45- git_ ["submodule", "update", "--init", "--recursive"] 46 mapM_ patchPackage =<< allPackages 47 preparePrimops 48 buildGenPrim 49@@ -1141,7 +1132,7 @@ cabalStage1 pkgs = sub $ do 50 globalFlags <- cabalGlobalFlags 51 flags <- cabalInstallFlags (length pkgs == 1) 52 let args = globalFlags ++ ("install" : pkgs) ++ 53- [ "--solver=topdown" -- the modular solver refuses to install stage1 packages 54+ [ "--allow-boot-library-installs" 55 ] ++ map ("--configure-option="<>) configureOpts ++ flags 56 checkInstallPlan pkgs args 57 cabal_ args 58@@ -1162,7 +1153,7 @@ cabalInstall pkgs = do 59 -- uses somewhat fragile parsing of --dry-run output, find a better way 60 checkInstallPlan :: [Package] -> [Text] -> B () 61 checkInstallPlan pkgs opts = do 62- plan <- cabal (opts ++ ["-v2", "--dry-run"]) 63+ plan <- cabal (opts ++ ["-vverbose+nowrap", "--dry-run"]) 64 when (hasReinstalls plan || hasUnexpectedInstalls plan || hasNewVersion plan) (err plan) 65 where 66 hasReinstalls = T.isInfixOf "(reinstall)" -- reject reinstalls 67@@ -1201,14 +1192,14 @@ cabalInstallFlags parmakeGhcjs = do 68 , "--avoid-reinstalls" 69 , "--builddir", "dist" 70 , "--with-compiler", ghcjs ^. pgmLocText 71+ , "--with-gcc", "@CC@" 72 , "--with-hc-pkg", ghcjsPkg ^. pgmLocText 73- , "--prefix", toTextI instDir 74+ , "--prefix", "@PREFIX@" 75+ , "--libdir", "$prefix/lib/$compiler" 76+ , "--libsubdir", "$pkgid" 77 , bool haddock "--enable-documentation" "--disable-documentation" 78 , "--haddock-html" 79--- workaround for hoogle support being broken in haddock for GHC 7.10RC1 80-#if !(__GLASGOW_HASKELL__ >= 709) 81 , "--haddock-hoogle" 82-#endif 83 , "--haddock-hyperlink-source" 84 -- don't slow down Windows builds too much, on other platforms we get this more 85 -- or less for free, thanks to dynamic-too 86diff --git a/src/Compiler/Info.hs b/src/Compiler/Info.hs 87index 33a401f..e2405a7 100644 88--- a/src/Compiler/Info.hs 89+++ b/src/Compiler/Info.hs 90@@ -48,13 +48,7 @@ compilerInfo nativeToo dflags = do 91 92 -- | the directory to use if started without -B flag 93 getDefaultTopDir :: IO FilePath 94-getDefaultTopDir = do 95- appdir <- getAppUserDataDirectory "ghcjs" 96- return (appdir </> subdir </> "ghcjs") 97- where 98- targetARCH = arch 99- targetOS = os 100- subdir = targetARCH ++ '-':targetOS ++ '-':getFullCompilerVersion 101+getDefaultTopDir = return "@PREFIX@/lib/ghcjs-@VERSION@" 102 103 getDefaultLibDir :: IO FilePath 104 getDefaultLibDir = getDefaultTopDir