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