Unverified Commit f579530e authored by Emmanuel Bertin's avatar Emmanuel Bertin Committed by GitHub
Browse files

Merge pull request #43 from astromatic/develop

Develop
parents 37680dba 572b27d7
Loading
Loading
Loading
Loading
+11 −11
Original line number Original line Diff line number Diff line
@@ -4,7 +4,7 @@ Installing the software
Hardware requirements
Hardware requirements
=====================
=====================


PSFEx runs in (ANSI) text-mode from a shell. A window system is
SExtractor runs in (ANSI) text-mode from a shell. A window system is
not necessary for basic operation.
not necessary for basic operation.


When it comes to memory usage, the amount required by SExtractor depends
When it comes to memory usage, the amount required by SExtractor depends
@@ -75,18 +75,19 @@ locations:
   $ ./configure
   $ ./configure


Compared to "gcc" and the librairies above, the combination of the
Compared to "gcc" and the librairies above, the combination of the
Intel compiler ("icc") and the MKL (Math Kernel Library) libraries
Intel compiler ("icc" or "icx") and the MKL (Math Kernel Library)
can give the SExtractor executable a significant boost in performance,
libraries can give the SExtractor executable a significant boost in
thanks to better vectorized code, and reduced memory usage. If "icc"
performance, thanks to better vectorized code, and reduced memory
and the MKL (Math Kernel Library) are installed on your system [4],
usage. If "icc" (or "icx") and the MKL (Math Kernel Library) are
you can take advantage of those using instead
installed on your system [4], you can take advantage of those using
instead


   $ ./configure --enable-mkl
   $ ./configure --enable-mkl


Additionally, if the SExtractor binary is to be run on a different
Additionally, if the SExtractor binary is to be run on a different
machine that does not have "icc" and the MKL (Math Kernel Library)
machine that does not have "icc" (or "icx") and the MKL installed
installed (e.g., a cluster computing node), you must configure a
(e.g., a cluster computing node), you must configure a partially
partially statically linked executable using
statically linked executable using


   $ ./configure --enable-mkl --enable-auto-flags --enable-best-link
   $ ./configure --enable-mkl --enable-auto-flags --enable-best-link


@@ -118,6 +119,5 @@ path).
    options "--enable-threads --enable-float".
    options "--enable-threads --enable-float".


[4] The Linux versions of the Intel compiler and MKL (Math
[4] The Linux versions of the Intel compiler and MKL (Math
    Kernel Library) are available for free to academic researchers,
    Kernel Library) are now available for free on Intel's website.
    students, educators and open source contributors.
+31 −22
Original line number Original line Diff line number Diff line
@@ -7,7 +7,7 @@
#
#
#	This file part of:	SExtractor
#	This file part of:	SExtractor
#
#
#	Copyright:		(C) 2002-2020 IAP/CNRS/SorbonneU
#	Copyright:		(C) 2002-2022 IAP/CNRS/SorbonneU
#
#
#	License:		GNU General Public License
#	License:		GNU General Public License
#
#
@@ -22,7 +22,7 @@
#	You should have received a copy of the GNU General Public License
#	You should have received a copy of the GNU General Public License
#	along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
#	along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
#
#
#	Last modified:		23/09/2020
#	Last modified:		16/09/2022
#
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


@@ -31,8 +31,8 @@ define([AC_CACHE_LOAD],)
define([AC_CACHE_SAVE],)
define([AC_CACHE_SAVE],)


# This is your standard AstrOmatic source code...
# This is your standard AstrOmatic source code...
AC_INIT(SExtractor, 2.27.0, [astromatic@astromatic.net],
AC_INIT([SExtractor],[2.27.0],[astromatic@astromatic.iap.fr],
	sextractor, [http://astromatic.net/software/sextractor])
        [sextractor],[http://astromatic.net/software/sextractor])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR(autoconf)
AC_CONFIG_AUX_DIR(autoconf)
AC_CONFIG_SRCDIR(src/makeit.c)
AC_CONFIG_SRCDIR(src/makeit.c)
@@ -80,24 +80,38 @@ AC_ARG_ENABLE(auto-flags,
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([no]))
	AC_MSG_RESULT([no]))


# Provide special option for the Linux Intel C compiler
# Provide special option for the Linux Intel C "classic" compiler
AC_MSG_CHECKING([whether the INTEL compiler is enabled])
AC_MSG_CHECKING([whether the classic INTEL compiler is enabled])
AC_ARG_ENABLE(icc,
AC_ARG_ENABLE(icc,
	[AS_HELP_STRING([--enable-icc],
	[AS_HELP_STRING([--enable-icc],
	[Use the Intel compiler (default = no)])],
	[Use the Intel compiler (default = no)])],
        CC="icc"
        CC="icc"
        enable_iccx="yes"
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([no]))

# Provide special option for the Linux Intel OneAPI C compiler
AC_MSG_CHECKING([whether the INTEL compiler is enabled])
AC_ARG_ENABLE(icx,
	[AS_HELP_STRING([--enable-icx],
	[Use the Intel compiler (default = no)])],
        CC="icx"
        enable_iccx="yes"
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([no]))
	AC_MSG_RESULT([no]))


# Provide special options for INTEL MKL
# Provide special options for INTEL MKL
# We force the use of icc
# We use icc if available, if not Intel OneAPI's icx
# (we don't use AC_PROG_CC as it does not play nice
# in a conditional block)
AC_MSG_CHECKING([whether INTEL's MKL is enabled])
AC_MSG_CHECKING([whether INTEL's MKL is enabled])
AC_ARG_ENABLE(mkl,
AC_ARG_ENABLE(mkl,
	[AS_HELP_STRING([--enable-mkl],
	[AS_HELP_STRING([--enable-mkl],
	[Use INTEL's MKL for solvers and FFTs (default = no)])],
	[Use INTEL's MKL for solvers and FFTs (default = no)])],
        enable_icc="yes"
	    AC_MSG_RESULT([yes])
        CC="icc"
        CC=""
	AC_MSG_RESULT([yes]),
        [AC_CHECK_PROGS(CC, [icc icx cc])]
        enable_iccx="yes",
	AC_MSG_RESULT([no]))
	AC_MSG_RESULT([no]))


# Checks for programs.
# Checks for programs.
@@ -116,11 +130,10 @@ AC_PROG_INSTALL
AC_CHECK_LIB(m, sin)
AC_CHECK_LIB(m, sin)


# Checks for header files.
# Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdlib.h string.h sys/mman.h \
AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdlib.h string.h sys/mman.h \
		sys/types.h unistd.h])
		sys/types.h unistd.h])
# Checks for INTEL math header files.
# Checks for INTEL math header files.
if test "$enable_icc" = "yes"; then
if test "$enable_iccx" = "yes"; then
  AC_CHECK_HEADERS(mathimf.h)
  AC_CHECK_HEADERS(mathimf.h)
fi
fi


@@ -136,7 +149,6 @@ AC_TYPE_UID_T
# Checks for library functions.
# Checks for library functions.
AC_FUNC_ERROR_AT_LINE
AC_FUNC_ERROR_AT_LINE
AC_FUNC_MMAP
AC_FUNC_MMAP
AC_TYPE_SIGNAL
AC_FUNC_STAT
AC_FUNC_STAT
AC_FUNC_STRFTIME
AC_FUNC_STRFTIME
AC_CHECK_FUNCS([atexit getenv gettimeofday isinf isnan logf memcpy memmove \
AC_CHECK_FUNCS([atexit getenv gettimeofday isinf isnan logf memcpy memmove \
@@ -241,7 +253,7 @@ use_pthreads="no"
AC_MSG_CHECKING([for profiler mode])
AC_MSG_CHECKING([for profiler mode])
AC_ARG_ENABLE(profiling,
AC_ARG_ENABLE(profiling,
	[AS_HELP_STRING([--enable-profiling],
	[AS_HELP_STRING([--enable-profiling],
	[Enable special mode for profiling (default = no)])]
	[Enable special mode for profiling (default = no)])],
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([no]))
	AC_MSG_RESULT([no]))


@@ -275,10 +287,7 @@ if test "$enable_model_fitting" != "no"; then
  if test "$enable_mkl" = "yes"; then
  if test "$enable_mkl" = "yes"; then
    convlibs="${srcdir}/wcs/libwcs_c.a,${srcdir}/levmar/liblevmar.a"
    convlibs="${srcdir}/wcs/libwcs_c.a,${srcdir}/levmar/liblevmar.a"
    ACX_MKL($with_mkl_dir,,$enable_best_link,$convlibs)
    ACX_MKL($with_mkl_dir,,$enable_best_link,$convlibs)
    if test "$MKL_WARN" == ""; then
    if test "$MKL_WARN" != ""; then
      AC_MSG_RESULT([yes])
    else
      AC_MSG_RESULT([no])
      AC_MSG_WARN([$MKL_WARN])
      AC_MSG_WARN([$MKL_WARN])
    fi
    fi
    AM_CFLAGS="$AM_CFLAGS $MKL_CFLAGS "
    AM_CFLAGS="$AM_CFLAGS $MKL_CFLAGS "
@@ -338,7 +347,7 @@ AM_CONDITIONAL(USE_MODEL, [test "$enable_model_fitting" != "no"])


# Compile with profiling option
# Compile with profiling option
if test "$enable_profiling" = "yes"; then
if test "$enable_profiling" = "yes"; then
  if test "$enable_icc" = "yes"; then
  if test "$enable_iccx" = "yes"; then
    AM_CFLAGS="$AM_CFLAGS -pq"
    AM_CFLAGS="$AM_CFLAGS -pq"
  else
  else
    AM_CFLAGS="$AM_CFLAGS -pg"
    AM_CFLAGS="$AM_CFLAGS -pg"
@@ -348,9 +357,9 @@ fi


# "Best" linking option
# "Best" linking option
if test "$enable_best_link" = "yes"; then
if test "$enable_best_link" = "yes"; then
  if test "$enable_icc" = "yes"; then
  if test "$enable_iccx" = "yes"; then
    AM_LDFLAGS="-static-intel -qopenmp-link static -shared-libgcc \
    AM_LDFLAGS="-static-intel -qopenmp-link=static -shared-libgcc \
	-static-libtool-libs -no-intel-extensions -avoid-version $AM_LDFLAGS"
	-static-libtool-libs -avoid-version $AM_LDFLAGS"
  else
  else
    AM_LDFLAGS="-shared-libgcc -static-libtool-libs -avoid-version $AM_LDFLAGS"
    AM_LDFLAGS="-shared-libgcc -static-libtool-libs -avoid-version $AM_LDFLAGS"
  fi
  fi
+1 −1
Original line number Original line Diff line number Diff line
@@ -15,7 +15,7 @@ ifeq ($(USE_BEST),1)
	dh_auto_configure -- --host=$(DEB_HOST_GNU_TYPE) \
	dh_auto_configure -- --host=$(DEB_HOST_GNU_TYPE) \
			--build=$(DEB_BUILD_GNU_TYPE) \
			--build=$(DEB_BUILD_GNU_TYPE) \
			--prefix=/usr --mandir=\$${prefix}/share/man \
			--prefix=/usr --mandir=\$${prefix}/share/man \
			--enable-icc --enable-mkl \
			--enable-icx --enable-mkl \
			--enable-auto-flags --enable-best-link \
			--enable-auto-flags --enable-best-link \
			--with-release=$(PACKAGE_RELEASE)
			--with-release=$(PACKAGE_RELEASE)
else
else
+1 −1
Original line number Original line Diff line number Diff line
@@ -81,7 +81,7 @@ language = None
# There are two options for replacing |today|: either, you set today to some
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
# non-false value, then it is used:
#
#
today = 'Tue Sep 06 2022'
today = 'Fri Sep 16 2022'
#
#
# Else, today_fmt is used as the format for a strftime call.
# Else, today_fmt is used as the format for a strftime call.
#
#
+5 −5
Original line number Original line Diff line number Diff line
@@ -7,7 +7,7 @@ dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dnl
dnl
dnl	This file part of:	AstrOmatic software
dnl	This file part of:	AstrOmatic software
dnl
dnl
dnl	Copyright:		(C) 2003-2016 IAP/CNRS/UPMC
dnl	Copyright:		(C) 2003-2022 IAP/CNRS/SorbonneU
dnl
dnl
dnl	License:		GNU General Public License
dnl	License:		GNU General Public License
dnl
dnl
@@ -23,7 +23,7 @@ dnl You should have received a copy of the GNU General Public License
dnl	along with AstrOmatic software.
dnl	along with AstrOmatic software.
dnl	If not, see <http://www.gnu.org/licenses/>.
dnl	If not, see <http://www.gnu.org/licenses/>.
dnl
dnl
dnl	Last modified:		16/03/2016
dnl	Last modified:		15/09/2022
dnl
dnl
dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dnl
dnl
@@ -73,11 +73,11 @@ dnl Set architecture flags
dnl ----------------------
dnl ----------------------


dnl check if INTEL compiler is present
dnl check if INTEL compiler is present
icc -V 2>&1 | grep -i "Intel" > /dev/null 2>&1 && flagicc=yes
$CC -V 2>&1 | grep -i "Intel" > /dev/null 2>&1 && flagicc=yes
dnl check if INTEL compiler uses x86_64 architecture
dnl check if INTEL compiler uses x86_64 architecture
icc -V 2>&1 | grep -i "Intel(R) 64" > /dev/null 2>&1 && flag64=yes
$CC -V 2>&1 | grep -i "Intel(R) 64" > /dev/null 2>&1 && flag64=yes
dnl check if the platform is OSX
dnl check if the platform is OSX
icc -dumpmachine 2>&1 | grep -i "darwin" > /dev/null 2>&1 && flagosx=yes
$CC -dumpmachine 2>&1 | grep -i "darwin" > /dev/null 2>&1 && flagosx=yes


dnl ----------------------
dnl ----------------------
dnl Exit if INTEL compiler is not found
dnl Exit if INTEL compiler is not found
Loading