diff --git a/INSTALL b/INSTALL
index 43c1ed1a01aadb4ea8e870158512a8bf90d5831b..9657c9b242a6b0c69a04a5b6e6e1c44f6694b0c9 100644
--- a/INSTALL
+++ b/INSTALL
@@ -4,7 +4,7 @@ Installing the software
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.
When it comes to memory usage, the amount required by SExtractor depends
@@ -75,18 +75,19 @@ locations:
$ ./configure
Compared to "gcc" and the librairies above, the combination of the
-Intel compiler ("icc") and the MKL (Math Kernel Library) libraries
-can give the SExtractor executable a significant boost in performance,
-thanks to better vectorized code, and reduced memory usage. If "icc"
-and the MKL (Math Kernel Library) are installed on your system [4],
-you can take advantage of those using instead
+Intel compiler ("icc" or "icx") and the MKL (Math Kernel Library)
+libraries can give the SExtractor executable a significant boost in
+performance, thanks to better vectorized code, and reduced memory
+usage. If "icc" (or "icx") and the MKL (Math Kernel Library) are
+installed on your system [4], you can take advantage of those using
+instead
$ ./configure --enable-mkl
Additionally, if the SExtractor binary is to be run on a different
-machine that does not have "icc" and the MKL (Math Kernel Library)
-installed (e.g., a cluster computing node), you must configure a
-partially statically linked executable using
+machine that does not have "icc" (or "icx") and the MKL installed
+(e.g., a cluster computing node), you must configure a partially
+statically linked executable using
$ ./configure --enable-mkl --enable-auto-flags --enable-best-link
diff --git a/configure.ac b/configure.ac
index 848f6fca9ee9c6cba1500f8b9fdef9a700cff6ac..6a20f5bcb8dbe129cdac5bdf9bb3aee82405f9d9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -22,7 +22,7 @@
# You should have received a copy of the GNU General Public License
# along with SExtractor. If not, see .
#
-# Last modified: 11/03/2022
+# Last modified: 16/09/2022
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -31,8 +31,8 @@ define([AC_CACHE_LOAD],)
define([AC_CACHE_SAVE],)
# This is your standard AstrOmatic source code...
-AC_INIT(SExtractor, 2.27.0, [astromatic@astromatic.net],
- sextractor, [http://astromatic.net/software/sextractor])
+AC_INIT([SExtractor],[2.27.0],[astromatic@astromatic.iap.fr],
+ [sextractor],[http://astromatic.net/software/sextractor])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR(autoconf)
AC_CONFIG_SRCDIR(src/makeit.c)
@@ -80,24 +80,38 @@ AC_ARG_ENABLE(auto-flags,
AC_MSG_RESULT([yes]),
AC_MSG_RESULT([no]))
+# Provide special option for the Linux Intel C "classic" compiler
+AC_MSG_CHECKING([whether the classic INTEL compiler is enabled])
+AC_ARG_ENABLE(icc,
+ [AS_HELP_STRING([--enable-icc],
+ [Use the Intel compiler (default = no)])],
+ 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([no]))
# Provide special options for INTEL MKL
-# We force the use of icx
+# 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_ARG_ENABLE(mkl,
[AS_HELP_STRING([--enable-mkl],
[Use INTEL's MKL for solvers and FFTs (default = no)])],
- enable_icx="yes"
- CC="icx"
- AC_MSG_RESULT([yes]),
+ AC_MSG_RESULT([yes])
+ CC=""
+ [AC_CHECK_PROGS(CC, [icc icx cc])]
+ enable_iccx="yes",
AC_MSG_RESULT([no]))
# Checks for programs.
@@ -116,11 +130,10 @@ AC_PROG_INSTALL
AC_CHECK_LIB(m, sin)
# Checks for header files.
-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 "$enable_icx" = "yes"; then
+if test "$enable_iccx" = "yes"; then
AC_CHECK_HEADERS(mathimf.h)
fi
@@ -136,7 +149,6 @@ AC_TYPE_UID_T
# Checks for library functions.
AC_FUNC_ERROR_AT_LINE
AC_FUNC_MMAP
-AC_TYPE_SIGNAL
AC_FUNC_STAT
AC_FUNC_STRFTIME
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_ARG_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([no]))
@@ -275,10 +287,7 @@ if test "$enable_model_fitting" != "no"; then
if test "$enable_mkl" = "yes"; then
convlibs="${srcdir}/wcs/libwcs_c.a,${srcdir}/levmar/liblevmar.a"
ACX_MKL($with_mkl_dir,,$enable_best_link,$convlibs)
- if test "$MKL_WARN" == ""; then
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
+ if test "$MKL_WARN" != ""; then
AC_MSG_WARN([$MKL_WARN])
fi
AM_CFLAGS="$AM_CFLAGS $MKL_CFLAGS "
@@ -338,7 +347,7 @@ AM_CONDITIONAL(USE_MODEL, [test "$enable_model_fitting" != "no"])
# Compile with profiling option
if test "$enable_profiling" = "yes"; then
- if test "$enable_icx" = "yes"; then
+ if test "$enable_iccx" = "yes"; then
AM_CFLAGS="$AM_CFLAGS -pq"
else
AM_CFLAGS="$AM_CFLAGS -pg"
@@ -348,7 +357,7 @@ fi
# "Best" linking option
if test "$enable_best_link" = "yes"; then
- if test "$enable_icx" = "yes"; then
+ if test "$enable_iccx" = "yes"; then
AM_LDFLAGS="-static-intel -qopenmp-link=static -shared-libgcc \
-static-libtool-libs -avoid-version $AM_LDFLAGS"
else
diff --git a/doc/src/conf.py b/doc/src/conf.py
index 3968f50b3cb399670fd82a26a5372b5a691c4dc4..0dbc503f1f7ca83cb651f9b79f4537539813273a 100644
--- a/doc/src/conf.py
+++ b/doc/src/conf.py
@@ -81,7 +81,7 @@ language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
#
-today = 'Wed Sep 07 2022'
+today = 'Fri Sep 16 2022'
#
# Else, today_fmt is used as the format for a strftime call.
#
diff --git a/m4/acx_mkl.m4 b/m4/acx_mkl.m4
index 68c016a97f2a5fad20dac88cce25d72bc8df7118..9ae81e80e750781f7f44fd105724f4a17b4cef81 100644
--- a/m4/acx_mkl.m4
+++ b/m4/acx_mkl.m4
@@ -7,7 +7,7 @@ dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dnl
dnl This file part of: AstrOmatic software
dnl
-dnl Copyright: (C) 2003-2016 IAP/CNRS/UPMC
+dnl Copyright: (C) 2003-2022 IAP/CNRS/SorbonneU
dnl
dnl License: GNU General Public License
dnl
@@ -23,7 +23,7 @@ dnl You should have received a copy of the GNU General Public License
dnl along with AstrOmatic software.
dnl If not, see .
dnl
-dnl Last modified: 16/03/2016
+dnl Last modified: 15/09/2022
dnl
dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dnl
@@ -73,11 +73,11 @@ dnl Set architecture flags
dnl ----------------------
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
-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
-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 Exit if INTEL compiler is not found
diff --git a/m4/acx_pthread.m4 b/m4/acx_pthread.m4
index 4d6003127549197bc4c1c59e1f8bd82910472144..0f8695ff15f8dfd6d9fd3b00dd4080ad8919d03e 100644
--- a/m4/acx_pthread.m4
+++ b/m4/acx_pthread.m4
@@ -7,7 +7,7 @@ dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dnl
dnl This file part of: AstrOmatic software
dnl
-dnl Copyright: (C) 2002-2010 Emmanuel Bertin -- IAP/CNRS/UPMC
+dnl Copyright: (C) 2002-2022 Emmanuel Bertin -- IAP/CNRS/SorbonneU
dnl (C) 2001 Steven G. Johnson (original version)
dnl
dnl Licenses: GPL (this version)
@@ -25,7 +25,7 @@ dnl You should have received a copy of the GNU General Public License
dnl along with AstrOmatic software.
dnl If not, see .
dnl
-dnl Last modified: 09/10/2010
+dnl Last modified: 15/09/2022
dnl
dnl %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
dnl
@@ -88,7 +88,7 @@ if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
- AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
+ AC_LINK_IFELSE([AC_LANG_CALL([], pthread_join)], acx_pthread_ok=yes)
AC_MSG_RESULT($acx_pthread_ok)
if test x"$acx_pthread_ok" = xno; then
PTHREAD_LIBS=""
@@ -170,10 +170,10 @@ for flag in $acx_pthread_flags; do
# pthread_cleanup_push because it is one of the few pthread
# functions on Solaris that doesn't have a non-functional libc stub.
# We try pthread_create on general principles.
- AC_TRY_LINK([#include ],
+ AC_LINK_IFELSE([AC_LANG_CALL([#include ],
[pthread_t th; pthread_join(th, 0);
pthread_attr_init(0); pthread_cleanup_push(0, 0);
- pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ])],
[acx_pthread_ok=yes])
LIBS="$save_LIBS"
@@ -199,12 +199,12 @@ if test "x$acx_pthread_ok" = xyes; then
# Detect AIX lossage: threads are created detached by default
# and the JOINABLE attribute has a nonstandard name (UNDETACHED).
AC_MSG_CHECKING([for joinable pthread attribute])
- AC_TRY_LINK([#include ],
- [int attr=PTHREAD_CREATE_JOINABLE;],
+ AC_LINK_IFELSE([AC_LANG_CALL([#include ],
+ [int attr=PTHREAD_CREATE_JOINABLE;])],
ok=PTHREAD_CREATE_JOINABLE, ok=unknown)
if test x"$ok" = xunknown; then
- AC_TRY_LINK([#include ],
- [int attr=PTHREAD_CREATE_UNDETACHED;],
+ AC_LINK_IFELSE([AC_LANG_CALL([#include ],
+ [int attr=PTHREAD_CREATE_UNDETACHED;])],
ok=PTHREAD_CREATE_UNDETACHED, ok=unknown)
fi
if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then
diff --git a/sextractor.spec.in b/sextractor.spec.in
index de2b5bd63710e621204139dd62337ebfc7305a53..aee6ced04b936d9f28ae6d6175f49e1a175b737b 100644
--- a/sextractor.spec.in
+++ b/sextractor.spec.in
@@ -7,7 +7,7 @@
#
# This file part of: SExtractor
#
-# Copyright: (C) 2002-2020 IAP/CNRS/SorbonneU
+# Copyright: (C) 2002-2022 IAP/CNRS/SorbonneU
#
# License: GNU General Public License
#
@@ -22,7 +22,7 @@
# You should have received a copy of the GNU General Public License
# along with SExtractor. If not, see .
#
-# Last modified: 02/01/2020
+# Last modified: 15/09/2022
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -44,6 +44,7 @@ BuildRoot: %{_tmppath}/%{name}-buildroot
BuildRequires: pkgconfig
BuildRequires: fftw-devel >= 3.1
BuildRequires: atlas-devel >= 3.6.0
+BuildRequires: cfitsio-devel >= 3.30
%description
Extract catalogs of sources from astronomical images