diff options
Diffstat (limited to 'sextractor/sextractor-mkl-gcc.patch')
-rw-r--r-- | sextractor/sextractor-mkl-gcc.patch | 283 |
1 files changed, 283 insertions, 0 deletions
diff --git a/sextractor/sextractor-mkl-gcc.patch b/sextractor/sextractor-mkl-gcc.patch new file mode 100644 index 0000000..10f07e3 --- /dev/null +++ b/sextractor/sextractor-mkl-gcc.patch @@ -0,0 +1,283 @@ +diff -u -p --recursive -N a/sextractor-2.19.5/acx_mkl_gcc.m4 b/sextractor-2.19.5/acx_mkl_gcc.m4 +--- a/sextractor-2.19.5/acx_mkl_gcc.m4 1969-12-31 19:00:00.000000000 -0500 ++++ b/sextractor-2.19.5/acx_mkl_gcc.m4 2017-12-30 17:54:54.000000000 -0500 +@@ -0,0 +1,210 @@ ++dnl ++dnl acx_mkl_gcc.m4 ++dnl ++dnl Set up options for using the INTEL MKL library. ++dnl ++dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++dnl ++dnl This file part of: AstrOmatic software ++dnl ++dnl Copyright: (C) 2003-2013 Emmanuel Bertin -- IAP/CNRS/UPMC ++dnl ++dnl License: GNU General Public License ++dnl ++dnl AstrOmatic software is free software: you can redistribute it and/or ++dnl modify it under the terms of the GNU General Public License as ++dnl published by the Free Software Foundation, either version 3 of the ++dnl License, or (at your option) any later version. ++dnl AstrOmatic software is distributed in the hope that it will be useful, ++dnl but WITHOUT ANY WARRANTY; without even the implied warranty of ++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++dnl GNU General Public License for more details. ++dnl You should have received a copy of the GNU General Public License ++dnl along with AstrOmatic software. ++dnl If not, see <http://www.gnu.org/licenses/>. ++dnl ++dnl Last modified: 17/04/2013 ++dnl ++dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ++dnl ++dnl @synopsis ACX_MKL_GCC([MKL_DIR, ILP64_FLAG, STATIC_FLAG, CONV_LIBS]) ++dnl ++dnl This macro sets the MKL_CFLAGS, MKL_LDFLAGS and MKL_LIBS variables to ++dnl for compiling and linking with INTEL's MKL. A coma-separated list of ++dnl convenience libraries may be included in the linked group for static linking. ++dnl You may wish to use these variables in your default CFLAGS: ++dnl ++dnl CFLAGS="$CFLAGS $MKL_CFLAGS" ++dnl ++dnl You may wish to use these variables in your default LDFLAGS: ++dnl ++dnl LDFLAGS="$LDFLAGS $MKL_LDLAGS" ++dnl ++dnl You may wish to use these variables in your default LIBS: ++dnl ++dnl LIBS="$LIBS $MKL_LIBS" ++dnl ++ ++AC_DEFUN([ACX_MKL_GCC], [ ++AC_REQUIRE([AC_CANONICAL_HOST]) ++ ++dnl ------------------------ ++dnl Set MKL's root directory ++dnl ------------------------ ++ ++if test x$1 = x; then ++ mklroot=${MKLROOT} ++else ++ mklroot=$1 ++fi ++ ++dnl ----------------------------- ++dnl Include convenience libraries ++dnl ----------------------------- ++ ++if test x$4 = x; then ++ startgroup="-Wl,--start-group" ++else ++ startgroup="-Wl,--start-group,$4" ++fi ++ ++dnl ---------------------- ++dnl Set architecture flags ++dnl ---------------------- ++ ++dnl check if GCC (or clang... it doesn't matter here) compiler is present ++gcc --version 2>&1 | egrep -i "gcc|clang" > /dev/null 2>&1 && flaggcc=yes ++ ++# Meh. ++flag64=yes ++ ++dnl check if the platform is OSX ++sw_vers 2>&1 | grep -i "ProductVersion" > /dev/null 2>&1 && flagosx=yes ++ ++dnl ---------------------- ++dnl Exit if INTEL compiler is not found ++dnl ---------------------- ++if test x$flaggcc = x; then ++ AC_SUBST(MKL_CFLAGS, "") ++ AC_SUBST(MKL_LDFLAGS, "") ++ AC_SUBST(MKL_LIBS, "") ++ MKL_WARN="GCC compiler not detected" ++ AC_SUBST(MKL_WARN) ++ exit ++fi ++ ++if test x$flagosx = xyes; then ++dnl MacOSX ++ if test x$flag64 = xyes; then ++dnl INTEL compiler uses Intel64 architecture ++ if test x$2 = xyes; then ++dnl 64 bit pointers ++ AC_SUBST(MKL_CFLAGS, "-fopenmp -DMKL_ILP64 -I$mklroot/include") ++ if test x$3 = xyes; then ++dnl Static linking ++ AC_SUBST(MKL_LIBS, ["$mklroot/lib/libmkl_intel_ilp64.a \ ++ $mklroot/lib/libmkl_intel_thread.a \ ++ $mklroot/lib/libmkl_core.a -lpthread -lm"]) ++ else ++dnl Dynamic linking ++ AC_SUBST(MKL_LIBS, "-L$mklroot/lib -lmkl_intel_ilp64 \ ++ -lmkl_intel_thread -lmkl_core -lpthread -lm") ++ fi ++ else ++dnl 32 bit pointers ++ AC_SUBST(MKL_CFLAGS, "-fopenmp -I$mklroot/include") ++ if test x$3 = xyes; then ++dnl Static linking ++ AC_SUBST(MKL_LIBS, ["$mklroot/lib/libmkl_intel_lp64.a \ ++ $mklroot/lib/libmkl_intel_thread.a \ ++ $mklroot/lib/libmkl_core.a -lpthread -lm"]) ++ else ++dnl Dynamic linking ++ AC_SUBST(MKL_LIBS, "-L$mklroot/lib -lmkl_intel_lp64 \ ++ -lmkl_intel_thread -lmkl_core -lpthread -lm") ++ fi ++ fi ++ else ++dnl INTEL compiler uses IA32 architecture ++ AC_SUBST(MKL_CFLAGS, "-fopenmp -I$mklroot/include") ++ if test x$3 = xyes; then ++dnl Static linking ++ AC_SUBST(MKL_LIBS, ["$mklroot/lib/libmkl_intel.a \ ++ $mklroot/lib/libmkl_intel_thread.a \ ++ $mklroot/lib/libmkl_core.a -lpthread -lm"]) ++ else ++dnl Dynamic linking ++ AC_SUBST(MKL_LIBS, "-L$mklroot/lib -lmkl_intel -lmkl_intel_thread \ ++ -lmkl_core -lpthread -lm") ++ fi ++ fi ++else ++dnl Linux ++ if test x$flag64 = xyes; then ++dnl INTEL compiler uses Intel64 architecture ++ if test x$2 = xyes; then ++dnl 64 bit pointers ++ AC_SUBST(MKL_CFLAGS, "-fopenmp -DMKL_ILP64 -I$mklroot/include") ++ if test x$3 = xyes; then ++dnl Static linking ++ AC_SUBST(MKL_LIBS, ++ ["$startgroup,$mklroot/lib/intel64/libmkl_intel_ilp64.a,\ ++$mklroot/lib/intel64/libmkl_intel_thread.a,\ ++$mklroot/lib/intel64/libmkl_core.a,-end-group -lpthread -lm"]) ++ else ++dnl Dynamic linking ++ AC_SUBST(MKL_LIBS, "-L$mklroot/lib/intel64 -lmkl_intel_ilp64 \ ++ -lmkl_intel_thread -lmkl_core -lpthread -lm") ++ fi ++ else ++dnl 32 bit pointers ++ AC_SUBST(MKL_CFLAGS, "-fopenmp -I$mklroot/include") ++ if test x$3 = xyes; then ++dnl Static linking ++ AC_SUBST(MKL_LIBS, ++ ["$startgroup,$mklroot/lib/intel64/libmkl_intel_lp64.a,\ ++$mklroot/lib/intel64/libmkl_intel_thread.a,\ ++$mklroot/lib/intel64/libmkl_core.a,--end-group -lpthread -lm"]) ++ else ++dnl Dynamic linking ++ AC_SUBST(MKL_LIBS, "-L$mklroot/lib/intel64 -lmkl_intel_lp64 \ ++ -lmkl_intel_thread -lmkl_core -lpthread -lm") ++ fi ++ fi ++ else ++dnl INTEL compiler uses IA32 architecture ++ AC_SUBST(MKL_CFLAGS, "-fopenmp -I$mklroot/include") ++ if test x$3 = xyes; then ++dnl Static linking ++ AC_SUBST(MKL_LIBS, ["$startgroup,$mklroot/lib/ia32/libmkl_intel.a,\ ++$mklroot/lib/ia32/libmkl_intel_thread.a,\ ++$mklroot/lib/ia32/libmkl_core.a,--end-group -lpthread -lm"]) ++ else ++dnl Dynamic linking ++ AC_SUBST(MKL_LIBS, "-L$mklroot/lib/ia32 -lmkl_intel -lmkl_intel_thread \ ++ -lmkl_core -lpthread -lm") ++ fi ++ fi ++fi ++ ++AC_SUBST(MKL_LDFLAGS, "") ++ ++dnl -------------------- ++dnl Set internal flags ++dnl -------------------- ++ ++AC_DEFINE(HAVE_MKL,1, [Define if you have the MKL libraries.]) ++AC_DEFINE(HAVE_FFTW,1, [Define if you have the FFTW libraries.]) ++AC_DEFINE(HAVE_LAPACK,1, [Define if you have the LAPACK libraries.]) ++AC_DEFINE(HAVE_LAPACKE,1, [Define if you have the LAPACKe libraries.]) ++ ++dnl -------------------- ++dnl Set include files ++dnl -------------------- ++ ++AC_DEFINE_UNQUOTED(MKL_H, "mkl.h", [MKL header filename.]) ++AC_DEFINE_UNQUOTED(FFTW_H, "fftw/fftw3_mkl.h", [FFTW header filename.]) ++AC_DEFINE_UNQUOTED(LAPACK_H, "mkl_lapack.h", [LAPACK header filename.]) ++AC_DEFINE_UNQUOTED(LAPACKE_H, "mkl_lapacke.h", [LAPACKe header filename.]) ++ ++])dnl ACX_MKL_GCC +diff -u -p --recursive -N a/sextractor-2.19.5/configure.ac b/sextractor-2.19.5/configure.ac +--- a/sextractor-2.19.5/configure.ac 2013-12-14 12:12:32.000000000 -0500 ++++ b/sextractor-2.19.5/configure.ac 2017-12-30 16:37:44.000000000 -0500 +@@ -48,6 +48,7 @@ AC_SUBST(DATE3, "$date3") + sinclude(acx_atlas.m4) + sinclude(acx_fftw.m4) + sinclude(acx_mkl.m4) ++sinclude(acx_mkl_gcc.m4) + sinclude(acx_prog_cc_optim.m4) + sinclude(acx_pthread.m4) + sinclude(acx_urbi_resolve_dir.m4) +@@ -79,12 +80,21 @@ AC_ARG_ENABLE(icc, + AC_MSG_CHECKING([whether we should use INTEL's MKL]) + AC_ARG_ENABLE(mkl, + [AS_HELP_STRING([--enable-mkl], +- [Use INTEL's MKL for solvers and FFTs (off by default)])], ++ [Use INTEL MKL for solvers and FFTs (off by default)])], + enable_icc="yes" + CC="icc" + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no])) + ++AC_MSG_CHECKING([whether we should use INTEL MKL with gcc]) ++AC_ARG_ENABLE(mkl_gcc, ++ [AS_HELP_STRING([--enable-mkl-gcc], ++ [Use INTEL MKL for solvers and FFTs (off by default)])], ++ enable_mkl_gcc="yes" ++ CC="gcc" ++ AC_MSG_RESULT([yes]), ++ AC_MSG_RESULT([no])) ++ + # Checks for programs. + AC_LANG(C) + +@@ -105,7 +115,7 @@ AC_HEADER_STDC + AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdlib.h string.h sys/mman.h \ + sys/types.h unistd.h]) + # Checks for INTEL math header files. +-if test x$enable_icc = xyes; then ++if test x$enable_icc = xyes || test x$enable_mkl_gcc = xyes; then + AC_CHECK_HEADERS(mathimf.h) + fi + +@@ -226,9 +236,14 @@ AM_CONDITIONAL(USE_THREADS, [test x$use_ + if test x$enable_model_fitting != xno; then + AC_DEFINE(USE_MODEL, 1, [Triggers model-fitting]) + ############ handle the INTEL MKL library (FFTW + LAPACK) ########### +- if test x$enable_mkl = xyes; then ++ if test x$enable_mkl = xyes || test x$enable_mkl_gcc = xyes; then + convlibs="${srcdir}/wcs/libwcs_c.a,${srcdir}/levmar/liblevmar.a" +- ACX_MKL($with_mkl_dir,,$enable_best_link,$convlibs) ++ if test x$enable_mkl_gcc = xyes; then ++ ACX_MKL_GCC($with_mkl_dir,,$enable_best_link,$convlibs) ++ else ++ ACX_MKL($with_mkl_dir,,$enable_best_link,$convlibs) ++ fi ++ + if test x$MKL_WARN != x; then + AC_MSG_WARN([$MKL_WARN]) + fi +@@ -256,7 +271,7 @@ AM_CONDITIONAL(USE_MODEL, [test x$enable + + # Compile with profiling option + if test x$enable_profiling = xyes; then +- if test x$enable_icc = xyes; then ++ if test x$enable_icc = xyes || test x$enable_mkl_gcc = xyes; then + AM_CFLAGS="$AM_CFLAGS -pq" + else + AM_CFLAGS="$AM_CFLAGS -pg" |