summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2010-03-24 13:29:07 +0000
committerIan Lynagh <igloo@earth.li>2010-03-24 13:29:07 +0000
commit9377b2d902d10df32596cd28f9814abb1a619262 (patch)
tree861f05b004721a4171d8c30c46ad9fbeae69a2c6
parent64c64a6e9b30e7c089cddfce23a8eb92d644d2eb (diff)
downloadhaskell-9377b2d902d10df32596cd28f9814abb1a619262.tar.gz
Fix the build for non-GNU-ar
-rw-r--r--aclocal.m41
-rw-r--r--configure.ac1
-rw-r--r--mk/config.mk.in1
-rw-r--r--rules/build-package-way.mk4
4 files changed, 7 insertions, 0 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index 816e1f5b24..42b8ed50c9 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -395,6 +395,7 @@ else
fp_cv_prog_ar_is_gnu=no
fi])
fp_prog_ar_is_gnu=$fp_cv_prog_ar_is_gnu
+AC_SUBST([ArIsGNUAr], [`echo $fp_prog_ar_is_gnu | tr 'a-z' 'A-Z'`])
])# FP_PROG_AR_IS_GNU
diff --git a/configure.ac b/configure.ac
index 849b185905..236c881b0c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -576,6 +576,7 @@ dnl If you can run configure, you certainly have /bin/sh
AC_DEFINE([HAVE_BIN_SH], [1], [Define to 1 if you have /bin/sh.])
dnl ** how to invoke `ar' and `ranlib'
+FP_PROG_AR_IS_GNU
FP_PROG_AR_NEEDS_RANLIB
FP_PROG_AR_SUPPORTS_INPUT
diff --git a/mk/config.mk.in b/mk/config.mk.in
index a640c3e2ad..db21b1482f 100644
--- a/mk/config.mk.in
+++ b/mk/config.mk.in
@@ -563,6 +563,7 @@ DLLTOOL = inplace/mingw/bin/dlltool.exe
AR = @ArCmd@
AR_OPTS = @ArArgs@
ArSupportsInput = @ArSupportsInput@
+ArIsGNUAr = @ArIsGNUAr@
# Yuckage: for ghc/utils/parallel -- todo: nuke this dependency!!
BASH = /usr/local/bin/bash
diff --git a/rules/build-package-way.mk b/rules/build-package-way.mk
index 735527c235..d66ed7c520 100644
--- a/rules/build-package-way.mk
+++ b/rules/build-package-way.mk
@@ -81,7 +81,11 @@ ifeq "$$($1_$2_SplitObjs)" "YES"
else
echo $$($1_$2_$3_ALL_OBJS) `$$($1_$2_$3_MKSTUBOBJS)` >> $$@.contents
endif
+ifeq "$$(ArIsGNUAr)" "YES"
"$$(AR)" $$(AR_OPTS) $$(EXTRA_AR_ARGS) $$@ @$$@.contents
+else
+ "$$(XARGS)" $$(XARGS_OPTS) "$$(AR)" $$(AR_OPTS) $$(EXTRA_AR_ARGS) $$@ < $$@.contents
+endif
"$$(RM)" $$(RM_OPTS) $$@.contents
endif