configure.ac 9.38 KB
Newer Older
1
2
3
4
5
6
7
8
9
#
#				configure.ac
#
# Process this file with autoconf to generate a configure script.
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#
#	This file part of:	SExtractor
#
10
#	Copyright:		(C) 2002-2013 Emmanuel Bertin -- IAP/CNRS/UPMC
11
#
Emmanuel Bertin's avatar
Emmanuel Bertin committed
12
#	License:		GNU General Public License
13
14
15
16
17
18
19
20
21
22
23
24
#
#	SExtractor is free software: you can redistribute it and/or modify
#	it under the terms of the GNU General Public License as published by
#	the Free Software Foundation, either version 3 of the License, or
# 	(at your option) any later version.
#	SExtractor is distributed in the hope that it will be useful,
#	but WITHOUT ANY WARRANTY; without even the implied warranty of
#	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#	GNU General Public License for more details.
#	You should have received a copy of the GNU General Public License
#	along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
#
25
#	Last modified:		03/04/2013
26
27
28
#
#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Emmanuel Bertin's avatar
Emmanuel Bertin committed
29
30
31
32
33
# First, disable the annoying config.cache
define([AC_CACHE_LOAD],)
define([AC_CACHE_SAVE],)

# This is your standard Bertin source code...
34
AC_INIT(sextractor, 2.18.8, [bertin@iap.fr])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
35
36
AC_CONFIG_SRCDIR(src/makeit.c)
AC_CONFIG_AUX_DIR(autoconf)
37
AC_CONFIG_HEADERS(config.h)
Emmanuel Bertin's avatar
Emmanuel Bertin committed
38
39
40
41
42
43
44
45
46
47
AM_INIT_AUTOMAKE
date=`date +%Y-%m-%d`
date2=`date +"%a %b %d %Y"`
date3=`date +"%B %Y"`
AC_DEFINE_UNQUOTED(DATE, "$date", [Archive creation date])
AC_SUBST(PACKAGER, "Emmanuel Bertin")
AC_SUBST(DATE2, "$date2")
AC_SUBST(DATE3, "$date3")

# Include macros
Emmanuel Bertin's avatar
Emmanuel Bertin committed
48
49
sinclude(acx_atlas.m4)
sinclude(acx_fftw.m4)
50
sinclude(acx_mkl.m4)
Emmanuel Bertin's avatar
Emmanuel Bertin committed
51
sinclude(acx_prog_cc_optim.m4)
Emmanuel Bertin's avatar
Emmanuel Bertin committed
52
53
sinclude(acx_pthread.m4)
sinclude(acx_urbi_resolve_dir.m4)
Emmanuel Bertin's avatar
Emmanuel Bertin committed
54
55
56
57

# Display pakage and version number
AC_MSG_RESULT([*********** Configuring:  $PACKAGE $VERSION ($date) **********])

58
# Provide special option for choosing automatically the compilation flags.
59
AC_MSG_CHECKING([if compilation flags should be set automatically])
60
AC_ARG_ENABLE(auto-flags,
61
	[AS_HELP_STRING([--enable-auto-flags],
62
63
64
65
	[Let the configure script choose the compilation flags \
(off by default)])],
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([no]))
Emmanuel Bertin's avatar
Emmanuel Bertin committed
66
67

# Provide special option for the Linux Intel C compiler
68
AC_MSG_CHECKING([whether we should use the INTEL compiler])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
69
AC_ARG_ENABLE(icc,
70
	[AS_HELP_STRING([--enable-icc],
Emmanuel Bertin's avatar
Emmanuel Bertin committed
71
72
	[Enable special mode for compilation with the Intel compiler \
(off by default)])],
73
74
75
76
77
78
79
80
81
82
83
84
        CC="icc"
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([no]))

# Provide special options for INTEL MKL
# We force the use of 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)])],
        enable_icc="yes"
        CC="icc"
Emmanuel Bertin's avatar
Emmanuel Bertin committed
85
86
87
88
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([no]))

# Checks for programs.
Emmanuel Bertin's avatar
Emmanuel Bertin committed
89
AC_LANG(C)
90
91

AC_SEARCH_LIBS([strerror],[cposix])
92
if test "$enable_auto_flags" = "yes"; then
93
  CFLAGS=""
94
  LDFLAGS=""
95
96
  ACX_PROG_CC_OPTIM
fi
97
LT_INIT
Emmanuel Bertin's avatar
Emmanuel Bertin committed
98
99
100
101
102
103
104
AC_PROG_INSTALL

# Checks for libraries.
AC_CHECK_LIB(m, sin)

# Checks for header files.
AC_HEADER_STDC
Emmanuel Bertin's avatar
Emmanuel Bertin committed
105
106
AC_CHECK_HEADERS([fcntl.h limits.h malloc.h stdlib.h string.h sys/mman.h \
		sys/types.h unistd.h])
107
# Checks for INTEL math header files.
108
if test "$enable_icc" = "yes"; then
109
110
  AC_CHECK_HEADERS(mathimf.h)
fi
Emmanuel Bertin's avatar
Emmanuel Bertin committed
111
112
113
114
115

# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_OFF_T
AC_TYPE_SIZE_T
116
117
AC_TYPE_LONG_LONG_INT
AC_TYPE_UNSIGNED_LONG_LONG_INT
Emmanuel Bertin's avatar
Emmanuel Bertin committed
118
119
120
121
122
123
124
125
126
AC_STRUCT_TM
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
127
128
129
130
AC_CHECK_FUNCS([atexit logf getenv gettimeofday memcpy memmove memset mkdir \
		munmap posix_memalign setlinebuf sincosf strstr sysconf])
AC_CHECK_FUNC([isnan], AC_DEFINE_UNQUOTED([HAVE_ISNAN2], 1,
		[Second isnan check]))
Emmanuel Bertin's avatar
Emmanuel Bertin committed
131
132
133
134
135

# Check support for large files
AC_SYS_LARGEFILE
AC_FUNC_FSEEKO

Emmanuel Bertin's avatar
Emmanuel Bertin committed
136
# Provide special options for ATLAS
137
138
AC_ARG_WITH(atlas-libdir,
        [AS_HELP_STRING([--with-atlas-libdir=<ATLAS library path>],
139
        [Provide an alternative path to the ATLAS library])])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
140
AC_ARG_WITH(atlas-incdir,
141
        [AS_HELP_STRING([--with-atlas-incdir=<ATLAS include dir>],
142
        [Provide an alternative path to the ATLAS include directory])])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
143
144

# Provide special options for FFTW
145
AC_ARG_WITH(fftw-libdir,
146
        [AS_HELP_STRING([--with-fftw-libdir=<FFTW library path>],
147
        [Provide an alternative path to the FFTW library])])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
148
AC_ARG_WITH(fftw-incdir,
149
        [AS_HELP_STRING([--with-fftw-incdir=<FFTW include dir>],
150
        [Provide an alternative path to the FFTW include directory])])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
151
152

# Provide a special option for the default XSLT URL
153
with_xsl_url="file://"$(URBI_RESOLVE_DIR([$datadir]))"/$PACKAGE_NAME/$PACKAGE_NAME.xsl"
Emmanuel Bertin's avatar
Emmanuel Bertin committed
154
AC_ARG_WITH(xsl_url,
155
	[AS_HELP_STRING([--with-xsl_url=<default URL for XSLT filter>],
156
	[Provide an alternative default URL of the XSLT filter])])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
157

158
AC_DEFINE_UNQUOTED([XSL_URL], "$with_xsl_url",[Default URL of the XSLT filter])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
159

160
# Provide special option to disable model-fitting (enabled by default)
161
enable_model_fitting="yes"
162
163
AC_MSG_CHECKING([if model-fitting should be disabled])
AC_ARG_ENABLE([model-fitting],
164
	[AS_HELP_STRING([--disable-model-fitting],
165
166
167
168
169
170
	[Disable model-fitting and library dependencies (enabled by default)])],
	if test "$enable_model_fitting" = "no"; then
	  AC_MSG_RESULT([yes])
	else
	  AC_MSG_RESULT([no])
	fi)
171

Emmanuel Bertin's avatar
Emmanuel Bertin committed
172
173
174
# Set flags for multithreading
n_pthreads=16
AC_ARG_ENABLE(threads,
175
        [AS_HELP_STRING([--enable-threads@<:@=<max_number_of_threads>@:>@],
176
	[Enable multhreading (on with up to 16 threads by default)])],
Emmanuel Bertin's avatar
Emmanuel Bertin committed
177
178
179
180
181
182
183
184
185
186
    if test "$enableval" = "no"; then
      use_pthreads="no"
    else
      use_pthreads="yes"
      if test "$enableval" != "yes"; then
        n_pthreads=$enableval
      fi
    fi,
    use_pthreads=yes
    )
187
188
# Deactivate multithreading for now
use_pthreads="no"
Emmanuel Bertin's avatar
Emmanuel Bertin committed
189

190
191
192
193
194
# Provide special option for profiling
AC_MSG_CHECKING([for profiler mode])
AC_ARG_ENABLE(profiling,
	[AS_HELP_STRING([--enable-profiling],
	[Enable special mode for profiling (off by default)])],
Emmanuel Bertin's avatar
Emmanuel Bertin committed
195
196
197
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([no]))

198
199
200
# Enable linking options for making the executable as portable as possible.
AC_MSG_CHECKING([best linking option])
AC_ARG_ENABLE(best-link,
201
	[AS_HELP_STRING([--enable-best-link],
202
203
	[Choose the right combination of static and dynamic linking to make \
the executable as portable as possible (off by default)])],
Emmanuel Bertin's avatar
Emmanuel Bertin committed
204
205
	AC_MSG_RESULT([yes]),
	AC_MSG_RESULT([no]))
Emmanuel Bertin's avatar
Emmanuel Bertin committed
206

207
208
############# Actions to complete if model-fitting is activated ##############
AC_MSG_CHECKING([for model-fitting configure option])
209
if test "$enable_model_fitting" = "yes"; then
210
211
212
213
214
  AC_MSG_RESULT([enabled])
  AC_DEFINE(USE_MODEL, 1, [Triggers model-fitting and linking with ATLAS/FFTW])
else
  AC_MSG_RESULT([disabled])
fi
215
AM_CONDITIONAL(USE_MODEL, [test $enable_model_fitting = "yes"])
216

Emmanuel Bertin's avatar
Emmanuel Bertin committed
217
218
219
220
221
222
223
224
225
################# Actions to complete in case of multhreading ################
AC_DEFINE_UNQUOTED(THREADS_NMAX, $n_pthreads,[Maximum number of POSIX threads])
if test "$use_pthreads" = "yes"; then
  AC_MSG_CHECKING([for multithreading])
  AC_MSG_RESULT([maximum of $n_pthreads thread(s)])
  AC_DEFINE(USE_THREADS, 1, [Triggers multhreading])
# CC, CFLAGS and LIBS are system and compiler-dependent
  ACX_PTHREAD
  CC="$PTHREAD_CC"
226
  [AM_CFLAGS="$AM_CFLAGS $PTHREAD_CFLAGS -D_REENTRANT"]
Emmanuel Bertin's avatar
Emmanuel Bertin committed
227
228
  LIBS="$PTHREAD_LIBS $LIBS"
fi
229
AM_CONDITIONAL(USE_THREADS, [test $use_pthreads = "yes"])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
230

231
232
233
if test "$enable_model_fitting" = "yes"; then
############ handle the INTEL MKL library (FFTW + LAPACK) ###########
  if test "$enable_mkl" = "yes"; then
234
235
    convlibs="${srcdir}/wcs/libwcs_c.a,${srcdir}/levmar/liblevmar.a"
    ACX_MKL(,,$enable_best_link,$convlibs)
236
237
    if test "$MKL_WARN" != ""; then
      AC_MSG_WARN([$MKL_WARN])
238
    fi
239
    AM_CFLAGS="$AM_CFLAGS $MKL_CFLAGS "
240
241
    AM_LDFLAGS="$AM_LDFLAGS $MKL_LDFLAGS"
    LIBS="$LIBS $MKL_LIBS"
242
  else
243
244
245
246
247
248
249
################ handle the FFTW library (Fourier transforms) ################
    ACX_FFTW($with_fftw_libdir,$with_fftw_incdir,$use_pthreads,yes,
	LIBS="$FFTW_LIBS $LIBS"
	if test "$FFTW_WARN" != ""; then
	  AC_MSG_WARN([$FFTW_WARN])
	fi,
	AC_MSG_ERROR([$FFTW_ERROR Exiting.]))
Emmanuel Bertin's avatar
Emmanuel Bertin committed
250
################## handle the ATLAS library(linear algebra) ##################
251
252
253
254
255
256
    ACX_ATLAS($with_atlas_libdir,$with_atlas_incdir,$use_pthreads,
	LIBS="$ATLAS_LIBS $LIBS"
	if test "$ATLAS_WARN" != ""; then
	  AC_MSG_WARN([$ATLAS_WARN])
	fi,
	AC_MSG_ERROR([$ATLAS_ERROR Exiting.]))
257
  fi
Emmanuel Bertin's avatar
Emmanuel Bertin committed
258
259
fi

260
261
# Compile with profiling option
if test "$enable_profiling" = "yes"; then
262
  if test "$enable_icc" = "yes"; then
263
    AM_CFLAGS="$AM_CFLAGS -pq"
Emmanuel Bertin's avatar
Emmanuel Bertin committed
264
  else
265
    AM_CFLAGS="$AM_CFLAGS -pg"
Emmanuel Bertin's avatar
Emmanuel Bertin committed
266
  fi
267
  enable_best_link="no"
Emmanuel Bertin's avatar
Emmanuel Bertin committed
268
269
fi

270
# "Best" linking option
271
if test "$enable_best_link" = "yes"; then
272
273
  if test "$enable_icc" = "yes"; then
    AM_LDFLAGS="-static-intel -openmp-link static -shared-libgcc \
274
	-static-libtool-libs -no-intel-extensions -avoid-version $AM_LDFLAGS"
275
276
277
  else
    AM_LDFLAGS="-shared-libgcc -static-libtool-libs -avoid-version $AM_LDFLAGS"
  fi
Emmanuel Bertin's avatar
Emmanuel Bertin committed
278
279
fi

280
281
282
AC_SUBST(AM_CFLAGS)
AC_SUBST(AM_CPPFLAGS)
AC_SUBST(AM_LDFLAGS)
Emmanuel Bertin's avatar
Emmanuel Bertin committed
283
284

# Display compiler and linker flags
Emmanuel Bertin's avatar
Emmanuel Bertin committed
285
AC_MSG_RESULT([***************************************************************])
286
287
AC_MSG_RESULT([Compile cmdline:  $CC $AM_CPPFLAGS $CPPFLAGS $AM_CFLAGS $CFLAGS])
AC_MSG_RESULT([Link    cmdline:  $CC $AM_LDFLAGS $LDFLAGS $LIBS])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
288
289
290
291
292
293
294
295
296
297
298
299
300
AC_MSG_RESULT([Default XSLT URL: $xsl_url])
AC_MSG_RESULT([***************************************************************])

AC_CONFIG_FILES([
Makefile
src/Makefile
src/fits/Makefile
src/levmar/Makefile
src/wcs/Makefile
man/Makefile
tests/Makefile
sextractor.spec
man/sex.1])
Emmanuel Bertin's avatar
Emmanuel Bertin committed
301
AC_OUTPUT