Skip to content

Commit 99b20e7

Browse files
committed
Merge pull request #495 from alexischr/mono-binary-resolution-fix-el-capitan
Do not depend on Mono executables being in the PATH, but use prefix a…
2 parents c3d4eb8 + eef6635 commit 99b20e7

File tree

13 files changed

+32
-27
lines changed

13 files changed

+32
-27
lines changed

config.make.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ topdir := @abs_top_srcdir@/
44
builddir := @abs_top_builddir@/
55
libdir := ${prefix}/lib/
66
bindir := ${prefix}/bin/
7+
monobindir := @MONOBINDIR@
78
monolibdir := @MONOLIBDIR@
89
monogacdir := @MONOGACDIR@
910

configure.ac

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,13 @@ AC_PROG_MAKE_SET
99

1010
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
1111

12-
# On OSX use Mono's private copy of pkg-config if it exists, see https://github.com/fsharp/fsharp/issues/107
12+
# pkg-config precedence: 1) our prefix 2) the system Mono location 3) the PATH
13+
prefix_pkg_config="$prefix"/bin/pkg-config
1314
osx_pkg_config=/Library/Frameworks/Mono.framework/Versions/Current/bin/pkg-config
14-
if test -e $osx_pkg_config; then
15+
16+
if test -e $prefix_pkg_config; then
17+
PKG_CONFIG=$prefix_pkg_config
18+
elif test -e $osx_pkg_config; then
1519
PKG_CONFIG=$osx_pkg_config
1620
elif test "x$PKG_CONFIG" = "xno"; then
1721
AC_MSG_ERROR([You need to install pkg-config])
@@ -20,18 +24,6 @@ fi
2024
AC_MSG_NOTICE("pkg-config: $PKG_CONFIG")
2125
AC_MSG_NOTICE("PKG_CONFIG_LIBDIR: $PKG_CONFIG_LIBDIR")
2226

23-
# On OSX El Capitan, xbuild is no longer in PATH, so we need to use the full path.
24-
AC_PATH_PROG(XBUILD, xbuild, no)
25-
osx_xbuild=/Library/Frameworks/Mono.framework/Versions/Current/bin/xbuild
26-
if test "x$XBUILD" == "xno"; then
27-
if test -e $osx_xbuild; then
28-
XBUILD=$osx_xbuild
29-
else
30-
AC_MSG_ERROR([Could not find xbuild])
31-
fi
32-
fi
33-
AC_MSG_NOTICE(xbuild: $XBUILD)
34-
3527
MONO_REQUIRED_VERSION=3.0
3628
MONO_RECOMMENDED_VERSION=3.2
3729

@@ -64,7 +56,18 @@ AC_ARG_WITH([gacdir],
6456
)
6557

6658
MONOPREFIX=$(cd `$PKG_CONFIG --variable=prefix mono` && pwd)
59+
MONOBINDIR="$MONOPREFIX"/bin
6760
MONOLIBDIR="$MONOPREFIX"/lib
61+
62+
AC_PATH_PROG(XBUILD, xbuild, no)
63+
xbuild_from_pkg_config="$MONOBINDIR"/xbuild
64+
if test -e $xbuild_from_pkg_config; then
65+
XBUILD=$xbuild_from_pkg_config
66+
elif test "x$XBUILD" == "xno"; then
67+
AC_MSG_ERROR([Could not find xbuild])
68+
fi
69+
AC_MSG_NOTICE(xbuild: $XBUILD)
70+
6871
MONOGACDIR="$MONOLIBDIR"/mono
6972
if ! test "x$with_gacdir" = "xno"; then
7073
MONOGACDIR=$(cd "$with_gacdir/.." && pwd)
@@ -138,6 +141,7 @@ AC_SUBST(MONOTOUCHENABLED)
138141
AC_SUBST(MONODROIDENABLED)
139142
AC_SUBST(XAMARINMACENABLED)
140143

144+
AC_SUBST(MONOBINDIR)
141145
AC_SUBST(MONOLIBDIR)
142146
AC_SUBST(MONOGACDIR)
143147

launcher.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,4 @@ fi
2121
# location of the default FSharp install in order to find the FSharp compiler binaries (see
2222
# fsharpbinding/MonoDevelop.FSharpBinding/Services/CompilerLocationUtils.fs). That's a pretty unfortunate
2323
# way of finding those binaries. And really should be changed.
24-
$EXEC mono $DEBUG $MONO_OPTIONS @DIR@/@TOOL@ --exename:$(basename "$0") "$@"
24+
$EXEC @MONOBINDIR@/mono $DEBUG $MONO_OPTIONS @DIR@/@TOOL@ --exename:$(basename "$0") "$@"

src/fsharp/policy.2.0.FSharp.Core/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include $(topdir)/src/fsharp/targets.make
1414
$(outdir)/$(NAME).dll: $(NAME).dll.config
1515
@mkdir -p $(@D)
1616
cp $(NAME).dll.config $(@D)
17-
al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
17+
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
1818

1919
build:
2020
$(MAKE) $(outdir)/$(NAME).dll

src/fsharp/policy.2.3.FSharp.Core/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include $(topdir)/src/fsharp/targets.make
1414
$(outdir)/$(NAME).dll: $(NAME).dll.config
1515
@mkdir -p $(@D)
1616
cp $(NAME).dll.config $(@D)
17-
al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
17+
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
1818

1919
build:
2020
$(MAKE) $(outdir)/$(NAME).dll

src/fsharp/policy.3.259.FSharp.Core/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include $(topdir)/src/fsharp/targets.make
1414
$(outdir)/$(NAME).dll: $(NAME).dll.config
1515
@mkdir -p $(@D)
1616
cp $(NAME).dll.config $(@D)
17-
al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
17+
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
1818

1919
build:
2020
$(MAKE) $(outdir)/$(NAME).dll

src/fsharp/policy.3.3.FSharp.Core/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include $(topdir)/src/fsharp/targets.make
1414
$(outdir)/$(NAME).dll: $(NAME).dll.config
1515
@mkdir -p $(@D)
1616
cp $(NAME).dll.config $(@D)
17-
al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
17+
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
1818

1919
build:
2020
$(MAKE) $(outdir)/$(NAME).dll

src/fsharp/policy.3.47.FSharp.Core/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include $(topdir)/src/fsharp/targets.make
1414
$(outdir)/$(NAME).dll: $(NAME).dll.config
1515
@mkdir -p $(@D)
1616
cp $(NAME).dll.config $(@D)
17-
al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
17+
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
1818

1919
build:
2020
$(MAKE) $(outdir)/$(NAME).dll

src/fsharp/policy.3.7.FSharp.Core/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include $(topdir)/src/fsharp/targets.make
1414
$(outdir)/$(NAME).dll: $(NAME).dll.config
1515
@mkdir -p $(@D)
1616
cp $(NAME).dll.config $(@D)
17-
al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
17+
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
1818

1919
build:
2020
$(MAKE) $(outdir)/$(NAME).dll

src/fsharp/policy.3.78.FSharp.Core/Makefile.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ include $(topdir)/src/fsharp/targets.make
1414
$(outdir)/$(NAME).dll: $(NAME).dll.config
1515
@mkdir -p $(@D)
1616
cp $(NAME).dll.config $(@D)
17-
al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
17+
$(monobindir)/al /link:$(NAME).dll.config /out:$@ /delaysign /keyfile:$(topdir)msfinal.pub
1818

1919
build:
2020
$(MAKE) $(outdir)/$(NAME).dll

0 commit comments

Comments
 (0)