diff -Nur gsl-1.15.orig/acx_cblas.m4 gsl-1.15/acx_cblas.m4
--- gsl-1.15.orig/acx_cblas.m4	1970-01-01 01:00:00.000000000 +0100
+++ gsl-1.15/acx_cblas.m4	2011-07-28 22:16:03.000000000 +0100
@@ -0,0 +1,60 @@
+AC_DEFUN([ACX_CBLAS],[
+  use_cblas=no
+  use_cblas_libs="-lcblas -lblas"
+  use_cblas_cflags=""
+
+  AC_ARG_WITH(cblas,
+	[AS_HELP_STRING([--with-cblas], [use external CBLAS library (default is no)])])
+
+  case $with_cblas in
+	yes) use_cblas=yes ;;
+	no | "" ) use_cblas=no ;;
+	-* | */* | *.a | *.so | *.so.* | *.o) use_cblas_libs="$with_cblas" ;;
+	*) use_cblas_libs="-l$with_cblas" ;;
+  esac
+
+  AC_ARG_WITH(cblas-libs,
+	[AS_HELP_STRING([--with-cblas-libs=<libs>],
+	 [external cblas libraries to link with (default is "$use_cblas_libs")])],
+	[use_cblas_libs=$withval], [])
+
+  AC_ARG_WITH(cblas-cflags,
+	[AS_HELP_STRING([--with-cblas-cflags=<flags>],
+	 [extra cflags to compile with external cblas ("-I<dir>")])],
+	[use_cblas_cflags=$withval], [])
+
+  if test x$use_cblas != xno; then
+	if test "x$CBLAS_LIBS" = x; then
+		CBLAS_LIBS="$use_cblas_libs"
+     	fi
+     	if test "x$CBLAS_FLAGS" = x; then
+       		CBLAS_CFLAGS="$use_cblas_cflags"
+   	fi
+
+   	CFLAGS_sav="$CFLAGS"
+   	CFLAGS="$CFLAGS $CBLAS_CFLAGS"
+   	AC_CHECK_HEADER(cblas.h, ,
+		[AC_MSG_ERROR([
+	   	*** Header file cblas.h not found.
+	   	*** If you installed cblas header in a non standard place,
+	   	*** specify its install prefix using the following option
+	   	***  --with-cblas-cflags="-I<include_dir>"])
+	 	])
+   	CFLAGS="$CFLAGS_sav"
+
+   	LIBS_sav="$LIBS"
+   	LIBS="$LIBS $CBLAS_LIBS -lm"
+   	AC_MSG_CHECKING([for cblas_sgemm in $CBLAS_LIBS])
+   	AC_TRY_LINK_FUNC(cblas_sgemm, [use_cblas=yes],
+    		[AC_MSG_ERROR([
+	    	*** Linking with cblas with $LIBS failed.
+       	    	*** If you installed cblas library in a non standard place,
+   	    	*** specify its install prefix using the following option
+	    	***  --with-cblas-libs="-L<lib_dir> -l<lib>"])
+	 	])
+   	AC_MSG_RESULT($use_cblas)
+   	LIBS="$LIBS_sav"
+	AC_SUBST(CBLAS_CFLAGS)
+	AC_SUBST(CBLAS_LIBS)
+ fi
+])
diff -Nur gsl-1.15.orig/bspline/Makefile.am gsl-1.15/bspline/Makefile.am
--- gsl-1.15.orig/bspline/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/bspline/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -12,6 +12,6 @@
 
 TESTS = $(check_PROGRAMS)
 
-test_LDADD = libgslbspline.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../cblas/libgslcblas.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../statistics/libgslstatistics.la
+test_LDADD = libgslbspline.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la @CBLAS_LINK_LIBS@ ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la ../statistics/libgslstatistics.la
 
 test_SOURCES = test.c
diff -Nur gsl-1.15.orig/configure.ac gsl-1.15/configure.ac
--- gsl-1.15.orig/configure.ac	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/configure.ac	2011-07-28 22:16:03.000000000 +0100
@@ -190,6 +190,16 @@
   AC_CHECK_LIB(m, cos)
 fi
 
+sinclude(acx_cblas.m4)
+ACX_CBLAS
+if test "x$CBLAS_LIBS" != "x"; then
+   CBLAS_LINK_LIBS="$CBLAS_LIBS"
+else
+   CBLAS_LINK_LIBS="\$(top_builddir)/cblas/libgslcblas.la"
+   CBLAS_LIBS="-lgslcblas"
+fi
+AC_SUBST(CBLAS_LINK_LIBS)
+
 dnl Remember to put a definition in acconfig.h for each of these
 AC_CHECK_DECLS(feenableexcept,,,[#define _GNU_SOURCE 1
 #include <fenv.h>]) 
diff -Nur gsl-1.15.orig/eigen/Makefile.am gsl-1.15/eigen/Makefile.am
--- gsl-1.15.orig/eigen/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/eigen/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -11,7 +11,7 @@
 
 TESTS = $(check_PROGRAMS)
 
-test_LDADD = libgsleigen.la  ../test/libgsltest.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la  ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../sys/libgslsys.la ../err/libgslerr.la ../utils/libutils.la ../rng/libgslrng.la ../sort/libgslsort.la
+test_LDADD = libgsleigen.la  ../test/libgsltest.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la  ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../sys/libgslsys.la ../err/libgslerr.la ../utils/libutils.la ../rng/libgslrng.la ../sort/libgslsort.la
 
 test_SOURCES = test.c
 
diff -Nur gsl-1.15.orig/gsl-config.in gsl-1.15/gsl-config.in
--- gsl-1.15.orig/gsl-config.in	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/gsl-config.in	2011-07-28 22:16:03.000000000 +0100
@@ -58,11 +58,11 @@
 	;;
 
     --cflags)
-       	echo @GSL_CFLAGS@ 
+       	echo @GSL_CFLAGS@ @CBLAS_CFLAGS@ 
        	;;
 
     --libs)
-        : ${GSL_CBLAS_LIB=-lgslcblas}
+        : ${GSL_CBLAS_LIB=@CBLAS_LIBS@}
 	echo @GSL_LIBS@ $GSL_CBLAS_LIB @GSL_LIBM@
        	;;
 
diff -Nur gsl-1.15.orig/gsl.pc.in gsl-1.15/gsl.pc.in
--- gsl-1.15.orig/gsl.pc.in	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/gsl.pc.in	2011-07-28 22:20:14.000000000 +0100
@@ -2,7 +2,7 @@
 exec_prefix=@exec_prefix@
 libdir=@libdir@
 includedir=@includedir@
-GSL_CBLAS_LIB=-lgslcblas
+GSL_CBLAS_LIB=@CBLAS_LIBS@
 
 Name: GSL
 Description: GNU Scientific Library
diff -Nur gsl-1.15.orig/interpolation/Makefile.am gsl-1.15/interpolation/Makefile.am
--- gsl-1.15.orig/interpolation/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/interpolation/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -10,7 +10,7 @@
 
 TESTS = $(check_PROGRAMS)
 
-test_LDADD = libgslinterpolation.la ../poly/libgslpoly.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../cblas/libgslcblas.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+test_LDADD = libgslinterpolation.la ../poly/libgslpoly.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la @CBLAS_LINK_LIBS@ ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
 
 test_SOURCES = test.c
 
diff -Nur gsl-1.15.orig/linalg/Makefile.am gsl-1.15/linalg/Makefile.am
--- gsl-1.15.orig/linalg/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/linalg/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -12,7 +12,7 @@
 
 check_PROGRAMS = test
 
-test_LDADD = libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+test_LDADD = libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
 
 test_SOURCES = test.c
 
diff -Nur gsl-1.15.orig/Makefile.am gsl-1.15/Makefile.am
--- gsl-1.15.orig/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -19,13 +19,12 @@
 
 lib_LTLIBRARIES = libgsl.la
 libgsl_la_SOURCES = version.c
-libgsl_la_LIBADD = $(SUBLIBS)
+libgsl_la_LIBADD = $(SUBLIBS) @CBLAS_LINK_LIBS@
 libgsl_la_LDFLAGS = -version-info $(GSL_LT_VERSION)
 noinst_HEADERS = templates_on.h templates_off.h build.h
 
 MINGW32_HOST = @MINGW32_HOST@
 if MINGW32_HOST
-libgsl_la_LIBADD += cblas/libgslcblas.la
 libgsl_la_LDFLAGS += -no-undefined
 endif
 
@@ -35,10 +34,10 @@
 bin_PROGRAMS = gsl-randist gsl-histogram
 
 gsl_randist_SOURCES = gsl-randist.c
-gsl_randist_LDADD = libgsl.la cblas/libgslcblas.la
+gsl_randist_LDADD = libgsl.la
 
 gsl_histogram_SOURCES = gsl-histogram.c
-gsl_histogram_LDADD = libgsl.la cblas/libgslcblas.la
+gsl_histogram_LDADD = libgsl.la
 
 check_SCRIPTS = test_gsl_histogram.sh pkgconfig.test
 TESTS = test_gsl_histogram.sh pkgconfig.test
@@ -57,6 +56,8 @@
 	-e 's|@GSL_CFLAGS[@]|$(GSL_CFLAGS)|g' \
 	-e 's|@GSL_LIBM[@]|$(GSL_LIBM)|g' \
 	-e 's|@GSL_LIBS[@]|$(GSL_LIBS)|g' \
+	-e 's|@CBLAS_CFLAGS[@]|$(CBLAS_CFLAGS)|g' \
+	-e 's|@CBLAS_LIBS[@]|$(CBLAS_LIBS)|g' \
 	-e 's|@LIBS[@]|$(LIBS)|g' \
 	-e 's|@VERSION[@]|$(VERSION)|g'
 
diff -Nur gsl-1.15.orig/multifit/Makefile.am gsl-1.15/multifit/Makefile.am
--- gsl-1.15.orig/multifit/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/multifit/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -13,8 +13,8 @@
 TESTS = $(check_PROGRAMS)
 
 test_SOURCES = test.c
-test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la  ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la
+test_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la  ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la
 
 #demo_SOURCES = demo.c
-#demo_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../randist/libgslrandist.la ../rng/libgslrng.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la
+#demo_LDADD = libgslmultifit.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../randist/libgslrandist.la ../rng/libgslrng.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../utils/libutils.la ../sys/libgslsys.la
 
diff -Nur gsl-1.15.orig/multimin/Makefile.am gsl-1.15/multimin/Makefile.am
--- gsl-1.15.orig/multimin/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/multimin/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -13,8 +13,8 @@
 TESTS = $(check_PROGRAMS) 
 
 test_SOURCES = test.c test_funcs.c test_funcs.h
-test_LDADD = libgslmultimin.la ../min/libgslmin.la ../poly/libgslpoly.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+test_LDADD = libgslmultimin.la ../min/libgslmin.la ../poly/libgslpoly.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../linalg/libgsllinalg.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
 
 #demo_SOURCES = demo.c 
-#demo_LDADD = libgslmultimin.la ../min/libgslmin.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../linalg/libgsllinalg.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+#demo_LDADD = libgslmultimin.la ../min/libgslmin.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../linalg/libgsllinalg.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
 
diff -Nur gsl-1.15.orig/multiroots/Makefile.am gsl-1.15/multiroots/Makefile.am
--- gsl-1.15.orig/multiroots/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/multiroots/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -15,5 +15,5 @@
 TESTS = $(check_PROGRAMS)
 
 test_SOURCES = test.c test_funcs.c test_funcs.h
-test_LDADD = libgslmultiroots.la ../linalg/libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+test_LDADD = libgslmultiroots.la ../linalg/libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../permutation/libgslpermutation.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
 
diff -Nur gsl-1.15.orig/ode-initval/Makefile.am gsl-1.15/ode-initval/Makefile.am
--- gsl-1.15.orig/ode-initval/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/ode-initval/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -12,7 +12,7 @@
 
 TESTS = $(check_PROGRAMS)
 
-test_LDADD = libgslodeiv.la ../linalg/libgsllinalg.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../permutation/libgslpermutation.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la 
+test_LDADD = libgslodeiv.la ../linalg/libgsllinalg.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../permutation/libgslpermutation.la ../vector/libgslvector.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la 
 
 test_SOURCES = test.c
 
diff -Nur gsl-1.15.orig/poly/Makefile.am gsl-1.15/poly/Makefile.am
--- gsl-1.15.orig/poly/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/poly/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -10,7 +10,7 @@
 
 TESTS = $(check_PROGRAMS)
 
-check_PROGRAMS = test
+#check_PROGRAMS = test
 
 test_SOURCES = test.c
 test_LDADD = libgslpoly.la ../ieee-utils/libgslieeeutils.la ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
diff -Nur gsl-1.15.orig/specfunc/Makefile.am gsl-1.15/specfunc/Makefile.am
--- gsl-1.15.orig/specfunc/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/specfunc/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -12,7 +12,7 @@
 
 check_PROGRAMS = test
 
-test_LDADD = libgslspecfunc.la ../eigen/libgsleigen.la ../linalg/libgsllinalg.la  ../sort/libgslsort.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+test_LDADD = libgslspecfunc.la ../eigen/libgsleigen.la ../linalg/libgsllinalg.la  ../sort/libgslsort.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../block/libgslblock.la ../complex/libgslcomplex.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
 
 test_SOURCES = test_sf.c test_sf.h test_airy.c test_bessel.c test_coulomb.c test_dilog.c test_gamma.c test_hyperg.c test_legendre.c test_mathieu.c
   
diff -Nur gsl-1.15.orig/wavelet/Makefile.am gsl-1.15/wavelet/Makefile.am
--- gsl-1.15.orig/wavelet/Makefile.am	2011-07-28 22:15:49.000000000 +0100
+++ gsl-1.15/wavelet/Makefile.am	2011-07-28 22:16:03.000000000 +0100
@@ -10,7 +10,7 @@
 
 TESTS = $(check_PROGRAMS)
 
-test_LDADD = libgslwavelet.la ../blas/libgslblas.la ../cblas/libgslcblas.la ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
+test_LDADD = libgslwavelet.la ../blas/libgslblas.la @CBLAS_LINK_LIBS@ ../matrix/libgslmatrix.la ../vector/libgslvector.la ../block/libgslblock.la ../ieee-utils/libgslieeeutils.la  ../err/libgslerr.la ../test/libgsltest.la ../sys/libgslsys.la ../utils/libutils.la
 
 test_SOURCES = test.c