Commit f77229e3 authored by Alp Mestanogullari's avatar Alp Mestanogullari Committed by Marge Bot

detect 'autoreconf' path during configure, and use it in hadrian

parent 1285d6b9
Pipeline #3065 passed with stages
in 404 minutes
......@@ -817,6 +817,9 @@ dnl ** check for patch
dnl if GNU patch is named gpatch, look for it first
AC_PATH_PROGS(PatchCmd,gpatch patch, patch)
dnl ** check for autoreconf
AC_PATH_PROG(AutoreconfCmd, autoreconf, autoreconf)
dnl ** check for dtrace (currently only implemented for Mac OS X)
AC_ARG_ENABLE(dtrace,
[AC_HELP_STRING([--enable-dtrace],
......
......@@ -7,7 +7,7 @@
alex = @AlexCmd@
ar = @ArCmd@
autoreconf = autoreconf
autoreconf = @AutoreconfCmd@
cc = @CC@
happy = @HappyCmd@
hs-cpp = @HaskellCPPCmd@
......
......@@ -288,7 +288,7 @@ systemBuilderPath builder = case builder of
Alex -> fromKey "alex"
Ar _ Stage0 -> fromKey "system-ar"
Ar _ _ -> fromKey "ar"
Autoreconf _ -> fromKey "autoreconf"
Autoreconf _ -> stripExe =<< fromKey "autoreconf"
Cc _ Stage0 -> fromKey "system-cc"
Cc _ _ -> fromKey "cc"
-- We can't ask configure for the path to configure!
......@@ -329,6 +329,18 @@ systemBuilderPath builder = case builder of
(True , True ) -> fixAbsolutePathOnWindows fullPath
(True , False) -> fixAbsolutePathOnWindows fullPath <&> (<.> exe)
-- Without this function, on Windows we can observe a bad builder path
-- for 'autoreconf'. If the relevant system.config field is set to
-- /usr/bin/autoreconf in the file, the path that we read
-- is C:/msys64/usr/bin/autoreconf.exe. A standard msys2 set up happens
-- to have an executable named 'autoreconf' there, without the 'exe'
-- extension. Hence this function.
stripExe s = do
let sNoExt = dropExtension s
exists <- doesFileExist s
if exists then return s else return sNoExt
-- | Was the path to a given system 'Builder' specified in configuration files?
isSpecified :: Builder -> Action Bool
isSpecified = fmap (not . null) . systemBuilderPath
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment