@@ -137,17 +137,33 @@ generateTargetModule verbosity dir targetDir = do
137137 ++ " dir <- getDataDir\n"
138138 ++ " return (dir ++ \"/\" ++ name)"
139139
140+-- a module that has info about existence and location of a bundled toolchain
141+generateToolchainModule verbosity srcDir toolDir = do
142+ let commonContent = "module Tools_idris where\n\n"
143+ let toolContent = case toolDir of
144+ Just dir -> "hasBundledToolchain = True\n" ++
145+ "getToolchainDir = \"" ++ dir ++ "\"\n"
146+ Nothing -> "hasBundledToolchain = False\n" ++
147+ "getToolchainDir = \"\""
148+ let toolPath = srcDir </> "Tools_idris" Px.<.> "hs"
149+ createDirectoryIfMissingVerbose verbosity True srcDir
150+ rewriteFile toolPath (commonContent ++ toolContent)
140151
141152idrisConfigure _ flags _ local = do
142− configureRTS
143− generateVersionModule verbosity (autogenModulesDir local) (isRelease (configFlags local))
144− when (isFreestanding $ configFlags local) (do
145− targetDir <- lookupEnv "IDRIS_INSTALL_DIR"
153+ configureRTS
154+ generateVersionModule verbosity (autogenModulesDir local) (isRelease (configFlags local))
155+ if (isFreestanding $ configFlags local)
156+ then (do
157+ toolDir <- lookupEnv "IDRIS_TOOLCHAIN_DIR"
158+ generateToolchainModule verbosity (autogenModulesDir local) toolDir
159+ targetDir <- lookupEnv "IDRIS_LIB_DIR"
146160 case targetDir of
147161 Just d -> generateTargetModule verbosity (autogenModulesDir local) d
148162 Nothing -> error $ "Trying to build freestanding without a target directory."
149− ++ " Set it by defining IDRIS_INSTALL_DIR.")
150− where
163+ ++ " Set it by defining IDRIS_LIB_DIR.")
164+ else
165+ generateToolchainModule verbosity (autogenModulesDir local) Nothing
166+ where
151167 verbosity = S.fromFlag $ S.configVerbosity flags
152168 version = pkgVersion . package $ localPkgDescr local
153169
@@ -162,6 +178,7 @@ idrisPreSDist args flags = do
162178 let verb = S.fromFlag (S.sDistVerbosity flags)
163179 generateVersionModule verb ("src") True
164180 generateTargetModule verb "src" "./libs"
181+ generateToolchainModule verb "src" Nothing
165182 preSDist simpleUserHooks args flags
166183
167184idrisPostSDist args flags desc lbi = do