[cpl-plugin-hawki] 08/39: New upstream version 1.8.10
Ole Streicher
olebole-guest at alioth.debian.org
Mon Sep 16 19:36:09 UTC 2013
This is an automated email from the git hooks/post-receive script.
olebole-guest pushed a commit to branch debian
in repository cpl-plugin-hawki.
commit 4d4f258cf8979b8c1b090878b7eb30e8dbd52ccb
Author: Ole Streicher <debian at liska.ath.cx>
Date: Tue Jan 15 10:22:03 2013 +0100
New upstream version 1.8.10
---
Makefile.in | 5 +
calib/dic/ESO-DFS-DIC.HAWKI_QC | 36 +-
calib/gasgano/config/HAWKI.prefs | 2 +-
configure |17748 +++++++++++++-------
configure.ac | 7 +-
hawki/Makefile.am | 6 +-
hawki/Makefile.in | 275 +-
hawki/hawki_alloc.c | 2 +-
hawki/hawki_alloc.h | 2 +-
hawki/{hawki_bkg.c => hawki_bkg.cc} | 275 +-
hawki/hawki_bkg.h | 55 +-
hawki/hawki_calib.c | 2 +-
hawki/hawki_calib.h | 2 +-
hawki/hawki_combine.c | 2 +-
hawki/hawki_combine.h | 2 +-
hawki/hawki_dfs.c | 61 +-
hawki/hawki_dfs.h | 12 +-
hawki/hawki_distortion.c | 2 +-
hawki/hawki_distortion.h | 11 +-
hawki/hawki_image.c | 135 +
hawki/{hawki_mask.h => hawki_image.h} | 25 +-
hawki/hawki_image_stats.c | 2 +-
hawki/hawki_image_stats.h | 2 +-
hawki/hawki_load.c | 2 +-
hawki/hawki_load.h | 10 +-
hawki/hawki_mask.c | 2 +-
hawki/hawki_mask.h | 2 +-
hawki/hawki_match_cats.c | 2 +-
hawki/hawki_match_cats.h | 2 +-
hawki/hawki_obj_det.c | 2 +-
hawki/hawki_obj_det.h | 2 +-
hawki/hawki_pfits.c | 2 +-
hawki/hawki_pfits.h | 10 +-
hawki/hawki_properties_tel.c | 2 +-
hawki/hawki_properties_tel.h | 2 +-
hawki/hawki_saa.c | 2 +-
hawki/hawki_saa.h | 2 +-
hawki/hawki_save.c | 2 +-
hawki/hawki_save.h | 10 +-
hawki/hawki_utils.c | 38 +-
hawki/hawki_utils.h | 13 +-
hawki/hawki_variance.c | 2 +-
hawki/hawki_variance.h | 2 +-
{tests => hawki/tests}/Makefile.am | 25 +-
{tests => hawki/tests}/Makefile.in | 167 +-
hawki/tests/hawki_image-test.c | 463 +
html/annotated.html | 4 +-
html/classes.html | 4 +-
...l => dir_b8c9749b1863662f2d5b3897d8ee4a45.html} | 11 +-
...l => dir_d72ebc9d7e5f36c34615460901eb48a9.html} | 9 +-
html/dirs.html | 8 +-
html/files.html | 8 +-
html/group__hawki__alloc.html | 4 +-
html/group__hawki__calib.html | 4 +-
html/group__hawki__combine.html | 4 +-
html/group__hawki__dfs.html | 4 +-
html/group__hawki__distortion.html | 4 +-
html/group__hawki__image.html | 105 +
html/group__hawki__image__stats.html | 213 +-
html/group__hawki__load.html | 6 +-
html/group__hawki__mask.html | 4 +-
html/group__hawki__obj__det.html | 4 +-
html/group__hawki__pfits.html | 6 +-
html/group__hawki__properties__tel.html | 4 +-
html/group__hawki__save.html | 4 +-
html/group__hawki__utils.html | 44 +-
html/group__hawki__variance.html | 4 +-
html/hawki__alloc_8c_source.html | 8 +-
html/hawki__alloc_8h_source.html | 8 +-
html/hawki__bkg_8c_source.html | 367 -
html/hawki__bkg_8h_source.html | 95 +-
html/hawki__cal__dark_8c_source.html | 8 +-
html/hawki__cal__distortion_8c_source.html | 8 +-
html/hawki__cal__flat_8c_source.html | 8 +-
html/hawki__cal__illum_8c_source.html | 8 +-
html/hawki__cal__lingain_8c_source.html | 8 +-
html/hawki__cal__zpoint_8c_source.html | 8 +-
html/hawki__calib_8c_source.html | 8 +-
html/hawki__calib_8h_source.html | 8 +-
html/hawki__combine_8c_source.html | 8 +-
html/hawki__combine_8h_source.html | 8 +-
html/hawki__dfs_8c_source.html | 85 +-
html/hawki__dfs_8h_source.html | 508 +-
html/hawki__distortion_8c_source.html | 8 +-
html/hawki__distortion_8h_source.html | 157 +-
html/hawki__image_8c_source.html | 167 +
..._8h_source.html => hawki__image_8h_source.html} | 49 +-
html/hawki__image__stats_8c_source.html | 8 +-
html/hawki__image__stats_8h_source.html | 8 +-
html/hawki__load_8c_source.html | 8 +-
html/hawki__load_8h_source.html | 62 +-
html/hawki__mask_8c_source.html | 8 +-
html/hawki__mask_8h_source.html | 8 +-
html/hawki__match__cats_8c_source.html | 8 +-
html/hawki__match__cats_8h_source.html | 8 +-
html/hawki__obj__det_8c_source.html | 8 +-
html/hawki__obj__det_8h_source.html | 8 +-
html/hawki__pfits_8c_source.html | 8 +-
html/hawki__pfits_8h_source.html | 126 +-
html/hawki__properties__tel_8c_source.html | 8 +-
html/hawki__properties__tel_8h_source.html | 8 +-
html/hawki__saa_8c_source.html | 8 +-
html/hawki__saa_8h_source.html | 8 +-
html/hawki__save_8c_source.html | 8 +-
html/hawki__save_8h_source.html | 138 +-
html/hawki__sci__jitter_8c_source.html | 4092 ++---
html/hawki__step__apply__dist_8c_source.html | 8 +-
html/hawki__step__basic__calib_8c_source.html | 8 +-
html/hawki__step__combine_8c_source.html | 1793 +-
html/hawki__step__compute__bkg_8c_source.html | 1215 --
html/hawki__step__detect__obj_8c_source.html | 1697 +-
html/hawki__step__photom__2mass_8c_source.html | 8 +-
html/hawki__step__refine__offsets_8c_source.html | 8 +-
html/hawki__step__stats_8c_source.html | 667 +-
html/hawki__step__stitch_8c_source.html | 8 +-
html/hawki__step__subtract__bkg_8c_source.html | 841 +-
html/hawki__tec__filtchk_8c_source.html | 8 +-
html/hawki__util__extinction_8c_source.html | 8 +-
html/hawki__util__gendist_8c_source.html | 8 +-
html/hawki__util__stdstars_8c_source.html | 8 +-
html/hawki__utils_8c_source.html | 36 +-
html/hawki__utils_8h_source.html | 151 +-
html/hawki__variance_8c_source.html | 8 +-
html/hawki__variance_8h_source.html | 8 +-
html/index.html | 4 +-
html/modules.html | 7 +-
...__hawki__distortion__obj__function__args__.html | 4 +-
irplib/Makefile.in | 5 +
irplib/irplib_calib.c | 2 +-
irplib/irplib_calib.h | 2 +-
irplib/irplib_cat.c | 2 +-
irplib/irplib_cat.h | 2 +-
irplib/irplib_distortion.c | 2 +-
irplib/irplib_distortion.h | 2 +-
irplib/irplib_flat.c | 2 +-
irplib/irplib_flat.h | 2 +-
irplib/irplib_framelist.c | 2 +-
irplib/irplib_framelist.h | 2 +-
irplib/irplib_hist.c | 2 +-
irplib/irplib_hist.h | 2 +-
irplib/irplib_ksigma_clip.c | 2 +-
irplib/irplib_ksigma_clip.h | 2 +-
irplib/irplib_ksigma_clip_body.h | 2 +-
irplib/irplib_match_cats.c | 2 +-
irplib/irplib_match_cats.h | 2 +-
irplib/irplib_mkmaster.c | 2 +-
irplib/irplib_mkmaster.h | 2 +-
irplib/irplib_oddeven.c | 2 +-
irplib/irplib_oddeven.h | 2 +-
irplib/irplib_plugin.c | 2 +-
irplib/irplib_plugin.h | 2 +-
irplib/irplib_polynomial.c | 2 +-
irplib/irplib_polynomial.h | 2 +-
irplib/irplib_ppm.c | 12 +-
irplib/irplib_ppm.h | 2 +-
irplib/irplib_slitpos.c | 2 +-
irplib/irplib_slitpos.h | 2 +-
irplib/irplib_spectrum.c | 2 +-
irplib/irplib_spectrum.h | 2 +-
irplib/irplib_stdstar.c | 2 +-
irplib/irplib_stdstar.h | 2 +-
irplib/irplib_strehl.c | 2 +-
irplib/irplib_strehl.h | 2 +-
irplib/irplib_utils.c | 61 +-
irplib/irplib_utils.h | 32 +-
irplib/irplib_wavecal.c | 270 +-
irplib/irplib_wavecal.h | 44 +-
irplib/irplib_wavecal_impl.h | 10 +-
irplib/irplib_wcs.c | 2 +-
irplib/irplib_wcs.h | 2 +-
irplib/irplib_wlxcorr.c | 74 +-
irplib/irplib_wlxcorr.h | 12 +-
irplib/tests/Makefile.in | 5 +
irplib/tests/irplib_cat-test.c | 2 +-
irplib/tests/irplib_polynomial-test.c | 2 +-
irplib/tests/irplib_utils-test.c | 12 +-
irplib/tests/irplib_wcs-test.c | 2 +-
irplib/tests/irplib_wlxcorr-test.c | 2 +-
recipes/Makefile.am | 40 +-
recipes/Makefile.in | 85 +-
recipes/hawki_cal_dark.c | 2 +-
recipes/hawki_cal_distortion.c | 2 +-
recipes/hawki_cal_flat.c | 2 +-
recipes/hawki_cal_zpoint.c | 2 +-
recipes/hawki_sci_jitter.c | 44 +-
recipes/hawki_step_apply_dist.c | 2 +-
recipes/hawki_step_basic_calib.c | 2 +-
recipes/hawki_step_combine.c | 13 +-
...tep_compute_bkg.c => hawki_step_compute_bkg.cc} | 521 +-
recipes/hawki_step_detect_obj.c | 13 +-
recipes/hawki_step_photom_2mass.c | 2 +-
recipes/hawki_step_refine_offsets.c | 2 +-
recipes/hawki_step_stats.c | 13 +-
recipes/hawki_step_stitch.c | 2 +-
recipes/hawki_step_subtract_bkg.c | 15 +-
recipes/hawki_tec_filtchk.c | 2 +-
recipes/hawki_util_extinction.c | 2 +-
recipes/hawki_util_gendist.c | 2 +-
recipes/hawki_util_stdstars.c | 2 +-
reflex/Makefile.in | 5 +
regtests/Makefile.in | 5 +
regtests/tests/Makefile.in | 5 +
setup | 2 +-
tests/Makefile.am | 1 +
tests/Makefile.in | 6 +
205 files changed, 19293 insertions(+), 14586 deletions(-)
diff --git a/Makefile.in b/Makefile.in
index f69fa5a..08a7f6e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -152,6 +152,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -240,6 +244,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
diff --git a/calib/dic/ESO-DFS-DIC.HAWKI_QC b/calib/dic/ESO-DFS-DIC.HAWKI_QC
index 33c39f4..3eaff19 100644
--- a/calib/dic/ESO-DFS-DIC.HAWKI_QC
+++ b/calib/dic/ESO-DFS-DIC.HAWKI_QC
@@ -1,10 +1,10 @@
#******************************************************************************
# E.S.O. - VLT project
#
-# $Id: ESO-DFS-DIC.HAWKI_QC,v 1.20 2011/11/25 09:59:56 cgarcia Exp $
+# $Id: ESO-DFS-DIC.HAWKI_QC,v 1.21 2012/12/04 09:41:12 cgarcia Exp $
# $Author: cgarcia $
-# $Date: 2011/11/25 09:59:56 $
-# $Revision: 1.20 $
+# $Date: 2012/12/04 09:41:12 $
+# $Revision: 1.21 $
#
#******************************************************************************
# NAME
@@ -14,7 +14,7 @@
Dictionary Name: ESO-DFS-DIC.HAWKI_QC
Scope: QC
Source: ESO SDD/PSD
-Version Control: "$Id: ESO-DFS-DIC.HAWKI_QC,v 1.20 2011/11/25 09:59:56 cgarcia Exp $"
+Version Control: "$Id: ESO-DFS-DIC.HAWKI_QC,v 1.21 2012/12/04 09:41:12 cgarcia Exp $"
Revision: 1.0
Date: 2007-08-20
Status: submitted
@@ -263,8 +263,8 @@ Context: process
Type: double
Value Format: %.2f
Unit:
-Comment Field: The instrument magnitude of the background
-Description: -2.5*log10(backgd_mean/pixscale/pixscale/DIT)
+Comment Field: The mean of all the image mean backgrounds in instrumental magnitudes.
+Description: The mean of all the image mean backgrounds in instrumental magnitudes: -2.5*log10(backgd_mean/pixscale/pixscale/DIT).
Parameter Name: QC BACKGD STDEV
Class: header|qc-log
@@ -272,8 +272,8 @@ Context: process
Type: double
Value Format: %.2f
Unit:
-Comment Field: The standard deviation of the background values.
-Description: The standard deviation of the background values.
+Comment Field: The standard deviation of all the image mean backgrounds.
+Description: The standard deviation of all the image mean backgrounds.
Parameter Name: QC BACKGD MEAN
Class: header|qc-log
@@ -281,8 +281,8 @@ Context: process
Type: double
Value Format: %.2f
Unit:
-Comment Field: The mean of the background values.
-Description: The mean of the background values.
+Comment Field: The mean of all the image mean backgrounds.
+Description: The mean of all the image mean backgrounds.
Parameter Name: QC FWHM PIX
@@ -291,7 +291,7 @@ Context: process
Type: double
Value Format: %.2f
Unit: pix
-Comment Field: (pixels) median FWHM in image
+Comment Field: The median FWHM in the image [pixels]
Description: Median value of the full-width at half-maximum of all
detected objects in the final reduced frame.
@@ -301,7 +301,7 @@ Context: process
Type: double
Value Format: %.2f
Unit: arcsec
-Comment Field: (arcsec) median FWHM in image
+Comment Field: The median FWHM in the image [arcsec]
Description: Median value of the full-width at half-maximum of all
detected objects in the final reduced frame, multiplied
by the pixel size in arcsec/pixel.
@@ -312,8 +312,8 @@ Context: process
Type: double
Value Format: %.2f
Unit: pix
-Comment Field: (pixels) FWHM mode
-Description:
+Comment Field: The mode FWHM in the image [pixels]
+Description: The mode FWHM in the image [pixels]
Parameter Name: QC NBOBJS
Class: header|qc-log
@@ -435,8 +435,8 @@ Context: process
Type: double
Value Format: %.2f
Unit: pix
-Comment Field: Position in x of the first image
-Description: Position in x of the first image
+Comment Field: Position in X of the first image
+Description: Position in X of the first image
Parameter Name: QC COMBINED POSY
Class: header|qc-log
@@ -444,8 +444,8 @@ Context: process
Type: double
Value Format: %.2f
Unit: pix
-Comment Field: Position in y of the first image
-Description: Position in y of the first image
+Comment Field: Position in Y of the first image
+Description: Position in Y of the first image
Parameter Name: QC FILTER OBS
Class: header|qc-log
diff --git a/calib/gasgano/config/HAWKI.prefs b/calib/gasgano/config/HAWKI.prefs
index b20d08e..3ba71fb 100644
--- a/calib/gasgano/config/HAWKI.prefs
+++ b/calib/gasgano/config/HAWKI.prefs
@@ -41,7 +41,7 @@ PRINTER_NAME=lp
PRINT_FONT=Monospaced:16
PRINT_ORIENTATION=P
RADEC_CONVERSION=true
-RECIPE_SET=hawki_cal_dark=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.9/hawki_cal_dark.so;hawki_cal_flat=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.9/hawki_cal_flat.so;hawki_cal_zpoint=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.9/hawki_cal_zpoint.so;hawki_sci_jitter=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.9/hawki_sci_jitter.so;hawki_cal_distortion=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.9/hawki [...]
+RECIPE_SET=hawki_cal_dark=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.10/hawki_cal_dark.so;hawki_cal_flat=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.10/hawki_cal_flat.so;hawki_cal_zpoint=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.10/hawki_cal_zpoint.so;hawki_sci_jitter=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.10/hawki_sci_jitter.so;hawki_cal_distortion=/home/quality/pipelines/hawki/lib/esopipes-plugins/hawki-1.8.10/ [...]
SCRIPTS_DIR=gasgano/scripts
SHORTEN_FILES_PATH=true
SHORT_FILENAME=true
diff --git a/configure b/configure
index 58b2a49..9911225 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for HAWKI Instrument Pipeline 1.8.9.
+# Generated by GNU Autoconf 2.68 for HAWKI Instrument Pipeline 1.8.10.
#
# Report bugs to <usd-help at eso.org>.
#
@@ -570,8 +570,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='HAWKI Instrument Pipeline'
PACKAGE_TARNAME='hawki'
-PACKAGE_VERSION='1.8.9'
-PACKAGE_STRING='HAWKI Instrument Pipeline 1.8.9'
+PACKAGE_VERSION='1.8.10'
+PACKAGE_STRING='HAWKI Instrument Pipeline 1.8.10'
PACKAGE_BUGREPORT='usd-help at eso.org'
PACKAGE_URL=''
@@ -646,6 +646,7 @@ LIBCEXT
CX_LDFLAGS
CX_INCLUDES
LIBTOOL_DEPS
+CXXCPP
OTOOL64
OTOOL
LIPO
@@ -671,6 +672,12 @@ GREP
ESO_DEBUG_FLAGS
OPENMP_CFLAGS
LN_S
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+ac_ct_CXX
+CXXFLAGS
+CXX
CPP
am__fastdepCC_FALSE
am__fastdepCC_TRUE
@@ -811,8 +818,12 @@ LDFLAGS
LIBS
CPPFLAGS
CPP
+CXX
+CXXFLAGS
+CCC
DOXYGEN
LATEX
+CXXCPP
PKG_CONFIG
PKG_CONFIG_PATH
PKG_CONFIG_LIBDIR
@@ -1360,7 +1371,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures HAWKI Instrument Pipeline 1.8.9 to adapt to many kinds of systems.
+\`configure' configures HAWKI Instrument Pipeline 1.8.10 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1431,7 +1442,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of HAWKI Instrument Pipeline 1.8.9:";;
+ short | recursive ) echo "Configuration of HAWKI Instrument Pipeline 1.8.10:";;
esac
cat <<\_ACEOF
@@ -1485,8 +1496,11 @@ Some influential environment variables:
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
CPP C preprocessor
+ CXX C++ compiler command
+ CXXFLAGS C++ compiler flags
DOXYGEN doxygen command
LATEX latex command
+ CXXCPP C++ preprocessor
PKG_CONFIG path to pkg-config utility
PKG_CONFIG_PATH
directories to add to pkg-config's search path
@@ -1561,7 +1575,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-HAWKI Instrument Pipeline configure 1.8.9
+HAWKI Instrument Pipeline configure 1.8.10
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1650,6 +1664,44 @@ fi
} # ac_fn_c_try_cpp
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
# ac_fn_c_try_link LINENO
# -----------------------
# Try to link conftest.$ac_ext, and return whether this succeeded.
@@ -1836,6 +1888,89 @@ $as_echo "$ac_res" >&6; }
} # ac_fn_c_check_func
+# ac_fn_cxx_try_cpp LINENO
+# ------------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_cpp
+
+# ac_fn_cxx_try_link LINENO
+# -------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_cxx_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_link
+
# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
# -------------------------------------------------------
# Tests whether HEADER exists, giving a warning if it cannot be compiled using
@@ -1976,7 +2111,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by HAWKI Instrument Pipeline $as_me 1.8.9, which was
+It was created by HAWKI Instrument Pipeline $as_me 1.8.10, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2906,7 +3041,7 @@ fi
# Define the identity of the package.
PACKAGE='hawki'
- VERSION='1.8.9'
+ VERSION='1.8.10'
cat >>confdefs.h <<_ACEOF
@@ -3086,6 +3221,68 @@ _ACEOF
# Checks for programs.
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+ am__include=include
+ am__quote=
+ _am_result=GNU
+ ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+ echo '.include "confinc"' > confmf
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3875,68 +4072,6 @@ ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
- @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
- am__include=include
- am__quote=
- _am_result=GNU
- ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
- echo '.include "confinc"' > confmf
- case `$am_make -s -f confmf 2> /dev/null` in #(
- *the\ am__doit\ target*)
- am__include=.include
- am__quote="\""
- _am_result=BSD
- ;;
- esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
- enableval=$enable_dependency_tracking;
-fi
-
-if test "x$enable_dependency_tracking" != xno; then
- am_depcomp="$ac_aux_dir/depcomp"
- AMDEPBACKSLASH='\'
-fi
- if test "x$enable_dependency_tracking" != xno; then
- AMDEP_TRUE=
- AMDEP_FALSE='#'
-else
- AMDEP_TRUE='#'
- AMDEP_FALSE=
-fi
-
-
depcc="$CC" am_compiler_list=
@@ -4202,2001 +4337,2011 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test "x$CC" != xcc; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
-$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
-$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
-fi
-set dummy $CC; ac_cc=`$as_echo "$2" |
- sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-# Make sure it works both with $CC and with simple cc.
-# We do the test twice because some compilers refuse to overwrite an
-# existing .o file with -o, though they will create one.
-ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
-rm -f conftest2.*
-if { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } &&
- test -f conftest2.$ac_objext && { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; };
-then
- eval ac_cv_prog_cc_${ac_cc}_c_o=yes
- if test "x$CC" != xcc; then
- # Test first that cc exists at all.
- if { ac_try='cc -c conftest.$ac_ext >&5'
- { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; }; then
- ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
- rm -f conftest2.*
- if { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } &&
- test -f conftest2.$ac_objext && { { case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; };
- then
- # cc works too.
- :
- else
- # cc exists but doesn't like -o.
- eval ac_cv_prog_cc_${ac_cc}_c_o=no
- fi
- fi
- fi
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
else
- eval ac_cv_prog_cc_${ac_cc}_c_o=no
-fi
-rm -f core conftest*
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
fi
-if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
+fi
-$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
-# FIXME: we rely on the cache variable name because
-# there is no other way.
-set dummy $CC
-am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
-eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
-if test "$am_t" != yes; then
- # Losing compiler, so override with the script.
- # FIXME: It is wrong to rewrite CC.
- # But if we don't then we get into trouble of one sort or another.
- # A longer-term fix would be to have automake use am__CC in this case,
- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
- CC="$am_aux_dir/compile $CC"
fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
-#Check for OPENMP
-
-
- OPENMP_CFLAGS=
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the compiler option to support OpenMP" >&5
-$as_echo_n "checking for the compiler option to support OpenMP... " >&6; }
-if ${ac_cv_prog_c_openmp+:} false; then :
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifndef _OPENMP
- choke me
-#endif
-#include <omp.h>
-int main () { return omp_get_num_threads (); }
-
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_prog_c_openmp='none needed'
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
else
- ac_cv_prog_c_openmp='unsupported'
- for ac_option in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do
- ac_save_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $ac_option"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-#ifndef _OPENMP
- choke me
-#endif
-#include <omp.h>
-int main () { return omp_get_num_threads (); }
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_prog_c_openmp=$ac_option
fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- CFLAGS=$ac_save_CFLAGS
- if test "$ac_cv_prog_c_openmp" != unsupported; then
- break
- fi
- done
fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_c_openmp" >&5
-$as_echo "$ac_cv_prog_c_openmp" >&6; }
- case $ac_cv_prog_c_openmp in #(
- "none needed" | unsupported)
- ;; #(
- *)
- OPENMP_CFLAGS=$ac_cv_prog_c_openmp ;;
- esac
-
- if test -n "$OPENMP_CFLAGS" ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing omp_get_num_threads" >&5
-$as_echo_n "checking for library containing omp_get_num_threads... " >&6; }
-if ${ac_cv_search_omp_get_num_threads+:} false; then :
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char omp_get_num_threads ();
-int
-main ()
-{
-return omp_get_num_threads ();
- ;
- return 0;
-}
-_ACEOF
-for ac_lib in '' gomp mtsk omp; do
- if test -z "$ac_lib"; then
- ac_res="none required"
- else
- ac_res=-l$ac_lib
- LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
fi
- if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_search_omp_get_num_threads=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext
- if ${ac_cv_search_omp_get_num_threads+:} false; then :
- break
-fi
done
-if ${ac_cv_search_omp_get_num_threads+:} false; then :
+ done
+IFS=$as_save_IFS
-else
- ac_cv_search_omp_get_num_threads=no
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_omp_get_num_threads" >&5
-$as_echo "$ac_cv_search_omp_get_num_threads" >&6; }
-ac_res=$ac_cv_search_omp_get_num_threads
-if test "$ac_res" != no; then :
- test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-else
- as_fn_error $? "OpenMP runtime environment not found!" "$LINENO" 5
fi
-
- fi
-
-
-
-
-
-
- # Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then :
- enableval=$enable_debug; eso_enable_debug=$enableval
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
else
- eso_enable_debug=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether debugging code should be created" >&5
-$as_echo_n "checking whether debugging code should be created... " >&6; }
-if ${eso_cv_enable_debug+:} false; then :
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
- eso_cv_enable_debug=$eso_enable_debug
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $eso_cv_enable_debug" >&5
-$as_echo "$eso_cv_enable_debug" >&6; }
-
- if test x"$eso_cv_enable_debug" = xyes; then
-
- eso_clean_CFLAGS="`echo $CFLAGS | sed -e 's/-O[0-9]//g' \
- -e 's/-g[0-9]//g' \
- -e 's/-g[a-z,A-Z]* / /g' \
- -e 's/-[Og]//g'`"
-
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- flag=`echo g3 | sed 'y%.=/+-%___p_%'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -g3" >&5
-$as_echo_n "checking whether $CC supports -g3... " >&6; }
-if eval \${eso_cv_prog_cc_$flag+:} false; then :
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
$as_echo_n "(cached) " >&6
else
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- eval "eso_cv_prog_cc_$flag=no"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- echo 'int main() { return 0; }' >conftest.$ac_ext
-
- try_compile="`$CC -g3 -c conftest.$ac_ext 2>&1`"
- if test -z "$try_compile"; then
- try_link="`$CC -g3 -o conftest$ac_exeext \
- conftest.$ac_ext 2>&1`"
- if test -z "$try_link"; then
- eval "eso_cv_prog_cc_$flag=yes"
- fi
- fi
- rm -f conftest*
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ test -n "$ac_ct_CC" && break
+done
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
fi
-eval ac_res=\$eso_cv_prog_cc_$flag
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
- if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
- :
- CFLAGS="$CFLAGS -g3"
- else
- :
-
- fi
-
-
- if test x"$eso_cv_prog_cc_g3" = xyes; then
- CFLAGS="-g3"
- else
- if test x"$ac_cv_prog_cc_g" = xyes; then
- CFLAGS="-g"
- else
- CFLAGS=""
- fi
- fi
+fi
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
- flag=`echo ggdb | sed 'y%.=/+-%___p_%'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -ggdb" >&5
-$as_echo_n "checking whether $CC supports -ggdb... " >&6; }
-if eval \${eso_cv_prog_cc_$flag+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
+if ${ac_cv_c_compiler_gnu+:} false; then :
$as_echo_n "(cached) " >&6
else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
- eval "eso_cv_prog_cc_$flag=no"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- echo 'int main() { return 0; }' >conftest.$ac_ext
-
- try_compile="`$CC -ggdb -c conftest.$ac_ext 2>&1`"
- if test -z "$try_compile"; then
- try_link="`$CC -ggdb -o conftest$ac_exeext \
- conftest.$ac_ext 2>&1`"
- if test -z "$try_link"; then
- eval "eso_cv_prog_cc_$flag=yes"
- fi
- fi
- rm -f conftest*
-
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
fi
-eval ac_res=\$eso_cv_prog_cc_$flag
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
- if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
- :
- CFLAGS="$CFLAGS -ggdb"
- else
- :
-
- fi
-
-
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
- flag=`echo O0 | sed 'y%.=/+-%___p_%'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O0" >&5
-$as_echo_n "checking whether $CC supports -O0... " >&6; }
-if eval \${eso_cv_prog_cc_$flag+:} false; then :
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+set}
+ac_save_CFLAGS=$CFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
$as_echo_n "(cached) " >&6
else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
- eval "eso_cv_prog_cc_$flag=no"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+int
+main ()
+{
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
- echo 'int main() { return 0; }' >conftest.$ac_ext
+int
+main ()
+{
- try_compile="`$CC -O0 -c conftest.$ac_ext 2>&1`"
- if test -z "$try_compile"; then
- try_link="`$CC -O0 -o conftest$ac_exeext \
- conftest.$ac_ext 2>&1`"
- if test -z "$try_link"; then
- eval "eso_cv_prog_cc_$flag=yes"
- fi
- fi
- rm -f conftest*
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int
+main ()
+{
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
fi
-eval ac_res=\$eso_cv_prog_cc_$flag
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
- if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
- :
- CFLAGS="$CFLAGS -O0"
- else
- :
-
- fi
-
-
-
-
- flag=`echo rdynamic | sed 'y%.=/+-%___p_%'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -rdynamic" >&5
-$as_echo_n "checking whether $CC supports -rdynamic... " >&6; }
-if eval \${eso_cv_prog_cc_$flag+:} false; then :
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
+if test "$ac_test_CFLAGS" = set; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
$as_echo_n "(cached) " >&6
else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
- eval "eso_cv_prog_cc_$flag=no"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- echo 'int main() { return 0; }' >conftest.$ac_ext
-
- try_compile="`$CC -rdynamic -c conftest.$ac_ext 2>&1`"
- if test -z "$try_compile"; then
- try_link="`$CC -rdynamic -o conftest$ac_exeext \
- conftest.$ac_ext 2>&1`"
- if test -z "$try_link"; then
- eval "eso_cv_prog_cc_$flag=yes"
- fi
- fi
- rm -f conftest*
-
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
fi
-eval ac_res=\$eso_cv_prog_cc_$flag
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
- if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
- :
- CFLAGS="$CFLAGS -rdynamic"
- else
- :
-
- fi
-
-
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
+esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
- flag=`echo Wall | sed 'y%.=/+-%___p_%'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
-$as_echo_n "checking whether $CC supports -Wall... " >&6; }
-if eval \${eso_cv_prog_cc_$flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
+fi
- eval "eso_cv_prog_cc_$flag=no"
- ac_ext=c
+ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+depcc="$CC" am_compiler_list=
- echo 'int main() { return 0; }' >conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
- try_compile="`$CC -Wall -c conftest.$ac_ext 2>&1`"
- if test -z "$try_compile"; then
- try_link="`$CC -Wall -o conftest$ac_exeext \
- conftest.$ac_ext 2>&1`"
- if test -z "$try_link"; then
- eval "eso_cv_prog_cc_$flag=yes"
- fi
- fi
- rm -f conftest*
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
fi
-eval ac_res=\$eso_cv_prog_cc_$flag
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
- if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
- :
- CFLAGS="$CFLAGS -Wall"
- else
- :
-
- fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
- flag=`echo W | sed 'y%.=/+-%___p_%'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -W" >&5
-$as_echo_n "checking whether $CC supports -W... " >&6; }
-if eval \${eso_cv_prog_cc_$flag+:} false; then :
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+ if test -n "$CCC"; then
+ CXX=$CCC
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CXX+:} false; then :
$as_echo_n "(cached) " >&6
else
-
- eval "eso_cv_prog_cc_$flag=no"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- echo 'int main() { return 0; }' >conftest.$ac_ext
-
- try_compile="`$CC -W -c conftest.$ac_ext 2>&1`"
- if test -z "$try_compile"; then
- try_link="`$CC -W -o conftest$ac_exeext \
- conftest.$ac_ext 2>&1`"
- if test -z "$try_link"; then
- eval "eso_cv_prog_cc_$flag=yes"
- fi
- fi
- rm -f conftest*
-
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-fi
-eval ac_res=\$eso_cv_prog_cc_$flag
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
- if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
- :
- CFLAGS="$CFLAGS -W"
- else
- :
-
- fi
-
-
- CFLAGS="$CFLAGS $eso_clean_CFLAGS"
- ESO_DEBUG_FLAGS="-DESO_ENABLE_DEBUG"
- else
- ESO_DEBUG_FLAGS="-DNDEBUG"
- fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
- $as_echo_n "(cached) " >&6
+ if test -n "$CXX"; then
+ ac_cv_prog_CXX="$CXX" # Let the user override the test.
else
- if test -z "$GREP"; then
- ac_path_GREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
- # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'GREP' >> "conftest.nl"
- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_GREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_GREP="$ac_path_GREP"
- ac_path_GREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_GREP_found && break 3
- done
- done
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
IFS=$as_save_IFS
- if test -z "$ac_cv_path_GREP"; then
- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_GREP=$GREP
-fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
+fi
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
+ test -n "$CXX" && break
+ done
+fi
+if test -z "$CXX"; then
+ ac_ct_CXX=$CXX
+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
$as_echo_n "(cached) " >&6
else
- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
- then ac_cv_path_EGREP="$GREP -E"
- else
- if test -z "$EGREP"; then
- ac_path_EGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+ if test -n "$ac_ct_CXX"; then
+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
- for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
- # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'EGREP' >> "conftest.nl"
- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_EGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_EGREP="$ac_path_EGREP"
- ac_path_EGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
- $ac_path_EGREP_found && break 3
- done
- done
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_CXX="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
IFS=$as_save_IFS
- if test -z "$ac_cv_path_EGREP"; then
- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
else
- ac_cv_path_EGREP=$EGREP
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
+ test -n "$ac_ct_CXX" && break
+done
+ if test "x$ac_ct_CXX" = x; then
+ CXX="g++"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CXX=$ac_ct_CXX
+ fi
+fi
+ fi
+fi
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
- # Check whether --enable-strict was given.
-if test "${enable_strict+set}" = set; then :
- enableval=$enable_strict; eso_enable_strict=$enableval
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
else
- eso_enable_strict=no
+ ac_compiler_gnu=no
fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strict compiler options should be used" >&5
-$as_echo_n "checking whether strict compiler options should be used... " >&6; }
-if ${eso_cv_enable_strict+:} false; then :
- $as_echo_n "(cached) " >&6
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+ GXX=yes
else
- eso_cv_enable_strict=$eso_enable_strict
+ GXX=
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $eso_cv_enable_strict" >&5
-$as_echo "$eso_cv_enable_strict" >&6; }
-
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if ${ac_cv_prog_cxx_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+ ac_cxx_werror_flag=yes
+ ac_cv_prog_cxx_g=no
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
- if test x"$eso_cv_enable_strict" = xyes; then
+int
+main ()
+{
- eso_enable_strict_std_set=no
-
- if test -n "$CFLAGS"; then
- echo $CFLAGS | $EGREP '(\-std=|-ansi)' >/dev/null 2>&1
- if test x"$?" = x0; then
- eso_enable_strict_std_set=yes
- fi
- fi
-
- if test x"$eso_enable_strict_std_set" = xno; then
-
-
-
- flag=`echo std=c99 | sed 'y%.=/+-%___p_%'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
-$as_echo_n "checking whether $CC supports -std=c99... " >&6; }
-if eval \${eso_cv_prog_cc_$flag+:} false; then :
- $as_echo_n "(cached) " >&6
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
else
+ CXXFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
- eval "eso_cv_prog_cc_$flag=no"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- echo 'int main() { return 0; }' >conftest.$ac_ext
+int
+main ()
+{
- try_compile="`$CC -std=c99 -c conftest.$ac_ext 2>&1`"
- if test -z "$try_compile"; then
- try_link="`$CC -std=c99 -o conftest$ac_exeext \
- conftest.$ac_ext 2>&1`"
- if test -z "$try_link"; then
- eval "eso_cv_prog_cc_$flag=yes"
- fi
- fi
- rm -f conftest*
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+else
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+ CXXFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int
+main ()
+{
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
+ ac_cv_prog_cxx_g=yes
fi
-eval ac_res=\$eso_cv_prog_cc_$flag
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
- if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
- :
- CFLAGS="$CFLAGS -std=c99"
- else
- :
-
- fi
-
- fi
-
-
-
-
- flag=`echo pedantic | sed 'y%.=/+-%___p_%'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic" >&5
-$as_echo_n "checking whether $CC supports -pedantic... " >&6; }
-if eval \${eso_cv_prog_cc_$flag+:} false; then :
- $as_echo_n "(cached) " >&6
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+ CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+ if test "$GXX" = yes; then
+ CXXFLAGS="-g -O2"
+ else
+ CXXFLAGS="-g"
+ fi
else
-
- eval "eso_cv_prog_cc_$flag=no"
- ac_ext=c
+ if test "$GXX" = yes; then
+ CXXFLAGS="-O2"
+ else
+ CXXFLAGS=
+ fi
+fi
+ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+depcc="$CXX" am_compiler_list=
- echo 'int main() { return 0; }' >conftest.$ac_ext
-
- try_compile="`$CC -pedantic -c conftest.$ac_ext 2>&1`"
- if test -z "$try_compile"; then
- try_link="`$CC -pedantic -o conftest$ac_exeext \
- conftest.$ac_ext 2>&1`"
- if test -z "$try_link"; then
- eval "eso_cv_prog_cc_$flag=yes"
- fi
- fi
- rm -f conftest*
-
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CXX_dependencies_compiler_type+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
-fi
-eval ac_res=\$eso_cv_prog_cc_$flag
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ am_cv_CXX_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
- if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
- :
- CFLAGS="$CFLAGS -pedantic"
- else
- :
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle `-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # after this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvisualcpp | msvcmsys)
+ # This compiler won't grok `-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CXX_dependencies_compiler_type=$depmode
+ break
+ fi
fi
+ done
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CXX_dependencies_compiler_type=none
+fi
- fi
-
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
+CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
+ am__fastdepCXX_TRUE=
+ am__fastdepCXX_FALSE='#'
+else
+ am__fastdepCXX_TRUE='#'
+ am__fastdepCXX_FALSE=
+fi
- flag=`echo fno-builtin | sed 'y%.=/+-%___p_%'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -fno-builtin" >&5
-$as_echo_n "checking whether $CC supports -fno-builtin... " >&6; }
-if eval \${eso_cv_prog_cc_$flag+:} false; then :
+if test "x$CC" != xcc; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
+$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5
+$as_echo_n "checking whether cc understands -c and -o together... " >&6; }
+fi
+set dummy $CC; ac_cc=`$as_echo "$2" |
+ sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
$as_echo_n "(cached) " >&6
else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
- eval "eso_cv_prog_cc_$flag=no"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- echo 'int main() { return 0; }' >conftest.$ac_ext
-
- try_compile="`$CC -fno-builtin -c conftest.$ac_ext 2>&1`"
- if test -z "$try_compile"; then
- try_link="`$CC -fno-builtin -o conftest$ac_exeext \
- conftest.$ac_ext 2>&1`"
- if test -z "$try_link"; then
- eval "eso_cv_prog_cc_$flag=yes"
- fi
- fi
- rm -f conftest*
-
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-fi
-eval ac_res=\$eso_cv_prog_cc_$flag
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
- if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
- :
- CFLAGS="$CFLAGS -fno-builtin"
- else
- :
+int
+main ()
+{
+ ;
+ return 0;
+}
+_ACEOF
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+rm -f conftest2.*
+if { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } &&
+ test -f conftest2.$ac_objext && { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; };
+then
+ eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+ if test "x$CC" != xcc; then
+ # Test first that cc exists at all.
+ if { ac_try='cc -c conftest.$ac_ext >&5'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+ rm -f conftest2.*
+ if { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } &&
+ test -f conftest2.$ac_objext && { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; };
+ then
+ # cc works too.
+ :
+ else
+ # cc exists but doesn't like -o.
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+ fi
fi
-
-
-
-
- # Extract the first word of "doxygen", so it can be a program name with args.
-set dummy doxygen; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_DOXYGEN+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $DOXYGEN in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-DOXYGEN=$ac_cv_path_DOXYGEN
-if test -n "$DOXYGEN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
-$as_echo "$DOXYGEN" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
fi
+rm -f core conftest*
-
-
-
- # Extract the first word of "latex", so it can be a program name with args.
-set dummy latex; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_LATEX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $LATEX in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_LATEX="$LATEX" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_LATEX="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
fi
-LATEX=$ac_cv_path_LATEX
-if test -n "$LATEX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LATEX" >&5
-$as_echo "$LATEX" >&6; }
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
-fi
-
-
+$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
- if test -z "${DOXYGEN}"; then
- DOXYGEN=":"
- fi
-
- if test -z "${LATEX}"; then
- LATEX=":"
- fi
+fi
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o
+if test "$am_t" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
-# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
- enableval=$enable_static; p=${PACKAGE-default}
- case $enableval in
- yes) enable_static=yes ;;
- no) enable_static=no ;;
- *)
- enable_static=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_static=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
else
- enable_static=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
fi
+#Check for OPENMP
+#To use AC_OPENMP in the future
+ OPENMP_CFLAGS=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the compiler option to support OpenMP" >&5
+$as_echo_n "checking for the compiler option to support OpenMP... " >&6; }
+if ${ac_cv_prog_c_openmp+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef _OPENMP
+ choke me
+#endif
+#include <omp.h>
+int main () { return omp_get_num_threads (); }
-
-
-
-# Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
- enableval=$enable_shared; p=${PACKAGE-default}
- case $enableval in
- yes) enable_shared=yes ;;
- no) enable_shared=no ;;
- *)
- enable_shared=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_shared=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_prog_c_openmp='none needed'
else
- enable_shared=yes
-fi
-
-
-
+ ac_cv_prog_c_openmp='unsupported'
+ for ac_option in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do
+ ac_save_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS $ac_option"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef _OPENMP
+ choke me
+#endif
+#include <omp.h>
+int main () { return omp_get_num_threads (); }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_prog_c_openmp=$ac_option
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ CFLAGS=$ac_save_CFLAGS
+ if test "$ac_cv_prog_c_openmp" != unsupported; then
+ break
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_c_openmp" >&5
+$as_echo "$ac_cv_prog_c_openmp" >&6; }
+ case $ac_cv_prog_c_openmp in #(
+ "none needed" | unsupported)
+ ;; #(
+ *)
+ OPENMP_CFLAGS=$ac_cv_prog_c_openmp ;;
+ esac
+ if test -n "$OPENMP_CFLAGS" ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing omp_get_num_threads" >&5
+$as_echo_n "checking for library containing omp_get_num_threads... " >&6; }
+if ${ac_cv_search_omp_get_num_threads+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char omp_get_num_threads ();
+int
+main ()
+{
+return omp_get_num_threads ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' gomp mtsk omp; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_omp_get_num_threads=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_omp_get_num_threads+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_omp_get_num_threads+:} false; then :
-case `pwd` in
- *\ * | *\ *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
+else
+ ac_cv_search_omp_get_num_threads=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_omp_get_num_threads" >&5
+$as_echo "$ac_cv_search_omp_get_num_threads" >&6; }
+ac_res=$ac_cv_search_omp_get_num_threads
+if test "$ac_res" != no; then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+else
+ as_fn_error $? "OpenMP runtime environment not found!" "$LINENO" 5
+fi
+ fi
-macro_version='2.4'
-macro_revision='1.3293'
+ # Check whether --enable-debug was given.
+if test "${enable_debug+set}" = set; then :
+ enableval=$enable_debug; eso_enable_debug=$enableval
+else
+ eso_enable_debug=no
+fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether debugging code should be created" >&5
+$as_echo_n "checking whether debugging code should be created... " >&6; }
+if ${eso_cv_enable_debug+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eso_cv_enable_debug=$eso_enable_debug
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $eso_cv_enable_debug" >&5
+$as_echo "$eso_cv_enable_debug" >&6; }
+ if test x"$eso_cv_enable_debug" = xyes; then
+ eso_clean_CFLAGS="`echo $CFLAGS | sed -e 's/-O[0-9]//g' \
+ -e 's/-g[0-9]//g' \
+ -e 's/-g[a-z,A-Z]* / /g' \
+ -e 's/-[Og]//g'`"
-ltmain="$ac_aux_dir/ltmain.sh"
+ flag=`echo g3 | sed 'y%.=/+-%___p_%'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -g3" >&5
+$as_echo_n "checking whether $CC supports -g3... " >&6; }
+if eval \${eso_cv_prog_cc_$flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+ eval "eso_cv_prog_cc_$flag=no"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+ echo 'int main() { return 0; }' >conftest.$ac_ext
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+ try_compile="`$CC -g3 -c conftest.$ac_ext 2>&1`"
+ if test -z "$try_compile"; then
+ try_link="`$CC -g3 -o conftest$ac_exeext \
+ conftest.$ac_ext 2>&1`"
+ if test -z "$try_link"; then
+ eval "eso_cv_prog_cc_$flag=yes"
+ fi
+ fi
+ rm -f conftest*
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
- ECHO='printf %s\n'
-else
- # Use this function as a fallback that always works.
- func_fallback_echo ()
- {
- eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
- }
- ECHO='func_fallback_echo'
fi
+eval ac_res=\$eso_cv_prog_cc_$flag
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
- $ECHO ""
-}
-
-case "$ECHO" in
- printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
- print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
- *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
+ if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
+ :
+ CFLAGS="$CFLAGS -g3"
+ else
+ :
+ fi
+ if test x"$eso_cv_prog_cc_g3" = xyes; then
+ CFLAGS="-g3"
+ else
+ if test x"$ac_cv_prog_cc_g" = xyes; then
+ CFLAGS="-g"
+ else
+ CFLAGS=""
+ fi
+ fi
+ flag=`echo ggdb | sed 'y%.=/+-%___p_%'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -ggdb" >&5
+$as_echo_n "checking whether $CC supports -ggdb... " >&6; }
+if eval \${eso_cv_prog_cc_$flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "eso_cv_prog_cc_$flag=no"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ echo 'int main() { return 0; }' >conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
- for ac_i in 1 2 3 4 5 6 7; do
- ac_script="$ac_script$as_nl$ac_script"
- done
- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
- { ac_script=; unset ac_script;}
- if test -z "$SED"; then
- ac_path_SED_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-# Check for GNU ac_path_SED and select it if it is found.
- # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo '' >> "conftest.nl"
- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_SED_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_SED="$ac_path_SED"
- ac_path_SED_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
+ try_compile="`$CC -ggdb -c conftest.$ac_ext 2>&1`"
+ if test -z "$try_compile"; then
+ try_link="`$CC -ggdb -o conftest$ac_exeext \
+ conftest.$ac_ext 2>&1`"
+ if test -z "$try_link"; then
+ eval "eso_cv_prog_cc_$flag=yes"
+ fi
+ fi
+ rm -f conftest*
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
- $ac_path_SED_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_SED"; then
- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
- fi
-else
- ac_cv_path_SED=$SED
-fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
- rm -f conftest.sed
+eval ac_res=\$eso_cv_prog_cc_$flag
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
+ if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
+ :
+ CFLAGS="$CFLAGS -ggdb"
+ else
+ :
+ fi
+ flag=`echo O0 | sed 'y%.=/+-%___p_%'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -O0" >&5
+$as_echo_n "checking whether $CC supports -O0... " >&6; }
+if eval \${eso_cv_prog_cc_$flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "eso_cv_prog_cc_$flag=no"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ echo 'int main() { return 0; }' >conftest.$ac_ext
+ try_compile="`$CC -O0 -c conftest.$ac_ext 2>&1`"
+ if test -z "$try_compile"; then
+ try_link="`$CC -O0 -o conftest$ac_exeext \
+ conftest.$ac_ext 2>&1`"
+ if test -z "$try_link"; then
+ eval "eso_cv_prog_cc_$flag=yes"
+ fi
+ fi
+ rm -f conftest*
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
- then ac_cv_path_FGREP="$GREP -F"
- else
- if test -z "$FGREP"; then
- ac_path_FGREP_found=false
- # Loop through the user's path and test for each of PROGNAME-LIST
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in fgrep; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
- { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
- # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
- ac_count=0
- $as_echo_n 0123456789 >"conftest.in"
- while :
- do
- cat "conftest.in" "conftest.in" >"conftest.tmp"
- mv "conftest.tmp" "conftest.in"
- cp "conftest.in" "conftest.nl"
- $as_echo 'FGREP' >> "conftest.nl"
- "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
- as_fn_arith $ac_count + 1 && ac_count=$as_val
- if test $ac_count -gt ${ac_path_FGREP_max-0}; then
- # Best one so far, save it but keep looking for a better one
- ac_cv_path_FGREP="$ac_path_FGREP"
- ac_path_FGREP_max=$ac_count
- fi
- # 10*(2^10) chars as input seems more than enough
- test $ac_count -gt 10 && break
- done
- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
- $ac_path_FGREP_found && break 3
- done
- done
- done
-IFS=$as_save_IFS
- if test -z "$ac_cv_path_FGREP"; then
- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
- fi
-else
- ac_cv_path_FGREP=$FGREP
fi
+eval ac_res=\$eso_cv_prog_cc_$flag
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
+ if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
+ :
+ CFLAGS="$CFLAGS -O0"
+ else
+ :
+ fi
-test -z "$GREP" && GREP=grep
+ flag=`echo rdynamic | sed 'y%.=/+-%___p_%'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -rdynamic" >&5
+$as_echo_n "checking whether $CC supports -rdynamic... " >&6; }
+if eval \${eso_cv_prog_cc_$flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "eso_cv_prog_cc_$flag=no"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ echo 'int main() { return 0; }' >conftest.$ac_ext
+ try_compile="`$CC -rdynamic -c conftest.$ac_ext 2>&1`"
+ if test -z "$try_compile"; then
+ try_link="`$CC -rdynamic -o conftest$ac_exeext \
+ conftest.$ac_ext 2>&1`"
+ if test -z "$try_link"; then
+ eval "eso_cv_prog_cc_$flag=yes"
+ fi
+ fi
+ rm -f conftest*
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+fi
+eval ac_res=\$eso_cv_prog_cc_$flag
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
+ :
+ CFLAGS="$CFLAGS -rdynamic"
+ else
+ :
+ fi
+ flag=`echo Wall | sed 'y%.=/+-%___p_%'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -Wall" >&5
+$as_echo_n "checking whether $CC supports -Wall... " >&6; }
+if eval \${eso_cv_prog_cc_$flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "eso_cv_prog_cc_$flag=no"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
- withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
- with_gnu_ld=no
-fi
+ echo 'int main() { return 0; }' >conftest.$ac_ext
+
+ try_compile="`$CC -Wall -c conftest.$ac_ext 2>&1`"
+ if test -z "$try_compile"; then
+ try_link="`$CC -Wall -o conftest$ac_exeext \
+ conftest.$ac_ext 2>&1`"
+ if test -z "$try_link"; then
+ eval "eso_cv_prog_cc_$flag=yes"
+ fi
+ fi
+ rm -f conftest*
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
-ac_prog=ld
-if test "$GCC" = yes; then
- # Check if gcc -print-prog-name=ld gives a path.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
- case $host in
- *-*-mingw*)
- # gcc leaves a trailing carriage return which upsets mingw
- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
- *)
- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
- esac
- case $ac_prog in
- # Accept absolute paths.
- [\\/]* | ?:[\\/]*)
- re_direlt='/[^/][^/]*/\.\./'
- # Canonicalize the pathname of ld
- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
- done
- test -z "$LD" && LD="$ac_prog"
- ;;
- "")
- # If it fails, then pretend we aren't using GCC.
- ac_prog=ld
- ;;
- *)
- # If it is relative, then search for the first ld in PATH.
- with_gnu_ld=unknown
- ;;
- esac
-elif test "$with_gnu_ld" = yes; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
fi
-if ${lt_cv_path_LD+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -z "$LD"; then
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
- lt_cv_path_LD="$ac_dir/$ac_prog"
- # Check to see if the program is GNU ld. I'd rather use --version,
- # but apparently some variants of GNU ld only accept -v.
- # Break only if it was the GNU/non-GNU ld that we prefer.
- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
- *GNU* | *'with BFD'*)
- test "$with_gnu_ld" != no && break
- ;;
- *)
- test "$with_gnu_ld" != yes && break
- ;;
- esac
+eval ac_res=\$eso_cv_prog_cc_$flag
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+ if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
+ :
+ CFLAGS="$CFLAGS -Wall"
+ else
+ :
+
fi
- done
- IFS="$lt_save_ifs"
-else
- lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
+
+
+
+ flag=`echo W | sed 'y%.=/+-%___p_%'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -W" >&5
+$as_echo_n "checking whether $CC supports -W... " >&6; }
+if eval \${eso_cv_prog_cc_$flag+:} false; then :
$as_echo_n "(cached) " >&6
else
- # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
- lt_cv_prog_gnu_ld=yes
- ;;
-*)
- lt_cv_prog_gnu_ld=no
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
+ eval "eso_cv_prog_cc_$flag=no"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ echo 'int main() { return 0; }' >conftest.$ac_ext
+
+ try_compile="`$CC -W -c conftest.$ac_ext 2>&1`"
+ if test -z "$try_compile"; then
+ try_link="`$CC -W -o conftest$ac_exeext \
+ conftest.$ac_ext 2>&1`"
+ if test -z "$try_link"; then
+ eval "eso_cv_prog_cc_$flag=yes"
+ fi
+ fi
+ rm -f conftest*
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+fi
+eval ac_res=\$eso_cv_prog_cc_$flag
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
+ :
+ CFLAGS="$CFLAGS -W"
+ else
+ :
+ fi
+ CFLAGS="$CFLAGS $eso_clean_CFLAGS"
+ ESO_DEBUG_FLAGS="-DESO_ENABLE_DEBUG"
+ else
+ ESO_DEBUG_FLAGS="-DNDEBUG"
+ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NM"; then
- # Let the user override the test.
- lt_cv_path_NM="$NM"
-else
- lt_nm_to_check="${ac_tool_prefix}nm"
- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
- lt_nm_to_check="$lt_nm_to_check nm"
- fi
- for lt_tmp_nm in $lt_nm_to_check; do
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- tmp_nm="$ac_dir/$lt_tmp_nm"
- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
- # Check to see if the nm accepts a BSD-compat flag.
- # Adding the `sed 1q' prevents false positives on HP-UX, which says:
- # nm: unknown option "B" ignored
- # Tru64's nm complains that /dev/null is an invalid object file
- case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
- */dev/null* | *'Invalid file or object type'*)
- lt_cv_path_NM="$tmp_nm -B"
- break
- ;;
- *)
- case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
- */dev/null*)
- lt_cv_path_NM="$tmp_nm -p"
- break
- ;;
- *)
- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
- continue # so that we can try to find one that supports BSD flags
- ;;
- esac
- ;;
- esac
- fi
- done
- IFS="$lt_save_ifs"
- done
- : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
- NM="$lt_cv_path_NM"
-else
- # Didn't find any BSD compatible name lister, look for dumpbin.
- if test -n "$DUMPBIN"; then :
- # Let the user override the test.
- else
- if test -n "$ac_tool_prefix"; then
- for ac_prog in dumpbin "link -dump"
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$DUMPBIN"; then
- ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$DUMPBIN" && break
- done
-fi
-if test -z "$DUMPBIN"; then
- ac_ct_DUMPBIN=$DUMPBIN
- for ac_prog in dumpbin "link -dump"
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
- $as_echo_n "(cached) " >&6
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
else
- if test -n "$ac_ct_DUMPBIN"; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
done
-IFS=$as_save_IFS
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ ac_cv_path_EGREP=$EGREP
fi
-
- test -n "$ac_ct_DUMPBIN" && break
-done
-
- if test "x$ac_ct_DUMPBIN" = x; then
- DUMPBIN=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DUMPBIN=$ac_ct_DUMPBIN
- fi
+ fi
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
- case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
- *COFF*)
- DUMPBIN="$DUMPBIN -symbols"
- ;;
- *)
- DUMPBIN=:
- ;;
- esac
- fi
- if test "$DUMPBIN" != ":"; then
- NM="$DUMPBIN"
- fi
-fi
-test -z "$NM" && NM=nm
+ # Check whether --enable-strict was given.
+if test "${enable_strict+set}" = set; then :
+ enableval=$enable_strict; eso_enable_strict=$enableval
+else
+ eso_enable_strict=no
+fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strict compiler options should be used" >&5
+$as_echo_n "checking whether strict compiler options should be used... " >&6; }
+if ${eso_cv_enable_strict+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_nm_interface="BSD nm"
- echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
- (eval "$ac_compile" 2>conftest.err)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
- cat conftest.err >&5
- (eval echo "\"\$as_me:$LINENO: output\"" >&5)
- cat conftest.out >&5
- if $GREP 'External.*some_variable' conftest.out > /dev/null; then
- lt_cv_nm_interface="MS dumpbin"
- fi
- rm -f conftest*
+ eso_cv_enable_strict=$eso_enable_strict
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $eso_cv_enable_strict" >&5
+$as_echo "$eso_cv_enable_strict" >&6; }
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- i=0
- teststring="ABCD"
- case $build_os in
- msdosdjgpp*)
- # On DJGPP, this test can blow up pretty badly due to problems in libc
- # (any single argument exceeding 2000 bytes causes a buffer overrun
- # during glob expansion). Even if it were fixed, the result of this
- # check would be larger than it should be.
- lt_cv_sys_max_cmd_len=12288; # 12K is about right
- ;;
+ if test x"$eso_cv_enable_strict" = xyes; then
- gnu*)
- # Under GNU Hurd, this test is not required because there is
- # no limit to the length of command line arguments.
- # Libtool will interpret -1 as no limit whatsoever
- lt_cv_sys_max_cmd_len=-1;
- ;;
+ eso_enable_strict_std_set=no
- cygwin* | mingw* | cegcc*)
- # On Win9x/ME, this test blows up -- it succeeds, but takes
- # about 5 minutes as the teststring grows exponentially.
- # Worse, since 9x/ME are not pre-emptively multitasking,
- # you end up with a "frozen" computer, even though with patience
- # the test eventually succeeds (with a max line length of 256k).
- # Instead, let's just punt: use the minimum linelength reported by
- # all of the supported platforms: 8192 (on NT/2K/XP).
- lt_cv_sys_max_cmd_len=8192;
- ;;
+ if test -n "$CFLAGS"; then
+ echo $CFLAGS | $EGREP '(\-std=|-ansi)' >/dev/null 2>&1
+ if test x"$?" = x0; then
+ eso_enable_strict_std_set=yes
+ fi
+ fi
- mint*)
- # On MiNT this can take a long time and run out of memory.
- lt_cv_sys_max_cmd_len=8192;
- ;;
+ if test x"$eso_enable_strict_std_set" = xno; then
- amigaos*)
- # On AmigaOS with pdksh, this test takes hours, literally.
- # So we just punt and use a minimum line length of 8192.
- lt_cv_sys_max_cmd_len=8192;
- ;;
- netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
- # This has been around since 386BSD, at least. Likely further.
- if test -x /sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
- elif test -x /usr/sbin/sysctl; then
- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
- else
- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
- fi
- # And add a safety zone
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- ;;
- interix*)
- # We know the value 262144 and hardcode it with a safety zone (like BSD)
- lt_cv_sys_max_cmd_len=196608
- ;;
+ flag=`echo std=c99 | sed 'y%.=/+-%___p_%'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -std=c99" >&5
+$as_echo_n "checking whether $CC supports -std=c99... " >&6; }
+if eval \${eso_cv_prog_cc_$flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
- osf*)
- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
- # nice to cause kernel panics so lets avoid the loop below.
- # First set a reasonable default.
- lt_cv_sys_max_cmd_len=16384
- #
- if test -x /sbin/sysconfig; then
- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
- *1*) lt_cv_sys_max_cmd_len=-1 ;;
- esac
- fi
- ;;
- sco3.2v5*)
- lt_cv_sys_max_cmd_len=102400
- ;;
- sysv5* | sco5v6* | sysv4.2uw2*)
- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
- if test -n "$kargmax"; then
- lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
- else
- lt_cv_sys_max_cmd_len=32768
- fi
- ;;
- *)
- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
- if test -n "$lt_cv_sys_max_cmd_len"; then
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
- else
- # Make teststring a little bigger before we do anything with it.
- # a 1K string should be a reasonable start.
- for i in 1 2 3 4 5 6 7 8 ; do
- teststring=$teststring$teststring
- done
- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
- # If test is not a shell built-in, we'll probably end up computing a
- # maximum length that is only half of the actual maximum length, but
- # we can't tell.
- while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
- = "X$teststring$teststring"; } >/dev/null 2>&1 &&
- test $i != 17 # 1/2 MB should be enough
- do
- i=`expr $i + 1`
- teststring=$teststring$teststring
- done
- # Only check the string length outside the loop.
- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
- teststring=
- # Add a significant safety factor because C++ compilers can tack on
- # massive amounts of additional arguments before passing them to the
- # linker. It appears as though 1/2 is a usable value.
- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
- fi
- ;;
- esac
+ eval "eso_cv_prog_cc_$flag=no"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-fi
-if test -n $lt_cv_sys_max_cmd_len ; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
+ echo 'int main() { return 0; }' >conftest.$ac_ext
+ try_compile="`$CC -std=c99 -c conftest.$ac_ext 2>&1`"
+ if test -z "$try_compile"; then
+ try_link="`$CC -std=c99 -o conftest$ac_exeext \
+ conftest.$ac_ext 2>&1`"
+ if test -z "$try_link"; then
+ eval "eso_cv_prog_cc_$flag=yes"
+ fi
+ fi
+ rm -f conftest*
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+fi
+eval ac_res=\$eso_cv_prog_cc_$flag
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
+ :
+ CFLAGS="$CFLAGS -std=c99"
+ else
+ :
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
+ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
- test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
- = c,a/b,b/c, \
- && eval 'test $(( 1 + 1 )) -eq 2 \
- && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
- && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
+ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
- >/dev/null 2>&1 \
- && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
- lt_unset=unset
+ flag=`echo pedantic | sed 'y%.=/+-%___p_%'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -pedantic" >&5
+$as_echo_n "checking whether $CC supports -pedantic... " >&6; }
+if eval \${eso_cv_prog_cc_$flag+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- lt_unset=false
-fi
+ eval "eso_cv_prog_cc_$flag=no"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ echo 'int main() { return 0; }' >conftest.$ac_ext
+ try_compile="`$CC -pedantic -c conftest.$ac_ext 2>&1`"
+ if test -z "$try_compile"; then
+ try_link="`$CC -pedantic -o conftest$ac_exeext \
+ conftest.$ac_ext 2>&1`"
+ if test -z "$try_link"; then
+ eval "eso_cv_prog_cc_$flag=yes"
+ fi
+ fi
+ rm -f conftest*
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
- lt_SP2NL='tr \040 \012'
- lt_NL2SP='tr \015\012 \040\040'
- ;;
- *) # EBCDIC based system
- lt_SP2NL='tr \100 \n'
- lt_NL2SP='tr \r\n \100\100'
- ;;
-esac
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+fi
+eval ac_res=\$eso_cv_prog_cc_$flag
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+ if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
+ :
+ CFLAGS="$CFLAGS -pedantic"
+ else
+ :
+ fi
+ fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
+ flag=`echo fno-builtin | sed 'y%.=/+-%___p_%'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -fno-builtin" >&5
+$as_echo_n "checking whether $CC supports -fno-builtin... " >&6; }
+if eval \${eso_cv_prog_cc_$flag+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
- ;;
- esac
- ;;
- *-*-cygwin* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
- ;;
- *-*-cygwin* )
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
- * ) # otherwise, assume *nix
- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
- ;;
- esac
- ;;
- * ) # unhandled hosts (and "normal" native builds)
- lt_cv_to_host_file_cmd=func_convert_file_noop
- ;;
-esac
-fi
+ eval "eso_cv_prog_cc_$flag=no"
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+ echo 'int main() { return 0; }' >conftest.$ac_ext
+ try_compile="`$CC -fno-builtin -c conftest.$ac_ext 2>&1`"
+ if test -z "$try_compile"; then
+ try_link="`$CC -fno-builtin -o conftest$ac_exeext \
+ conftest.$ac_ext 2>&1`"
+ if test -z "$try_link"; then
+ eval "eso_cv_prog_cc_$flag=yes"
+ fi
+ fi
+ rm -f conftest*
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
- *-*-mingw* )
- case $build in
- *-*-mingw* ) # actually msys
- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
- ;;
- esac
- ;;
-esac
-
fi
+eval ac_res=\$eso_cv_prog_cc_$flag
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- if test "$GCC" != yes; then
- reload_cmds=false
- fi
- ;;
- darwin*)
- if test "$GCC" = yes; then
- reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ if eval "test \"`echo '$eso_cv_prog_cc_'$flag`\" = yes"; then
+ :
+ CFLAGS="$CFLAGS -fno-builtin"
else
- reload_cmds='$LD$reload_flag -o $output$reload_objs'
- fi
- ;;
-esac
-
-
-
-
+ :
+ fi
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
+ # Extract the first word of "doxygen", so it can be a program name with args.
+set dummy doxygen; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
+if ${ac_cv_path_DOXYGEN+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$OBJDUMP"; then
- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ case $DOXYGEN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ ac_cv_path_DOXYGEN="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -6204,39 +6349,41 @@ done
done
IFS=$as_save_IFS
+ ;;
+esac
fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
+DOXYGEN=$ac_cv_path_DOXYGEN
+if test -n "$DOXYGEN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOXYGEN" >&5
+$as_echo "$DOXYGEN" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
- ac_ct_OBJDUMP=$OBJDUMP
- # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
+
+
+ # Extract the first word of "latex", so it can be a program name with args.
+set dummy latex; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+if ${ac_cv_path_LATEX+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_OBJDUMP"; then
- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ case $LATEX in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LATEX="$LATEX" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ ac_cv_path_LATEX="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -6244,34 +6391,54 @@ done
done
IFS=$as_save_IFS
+ ;;
+esac
fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
+LATEX=$ac_cv_path_LATEX
+if test -n "$LATEX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LATEX" >&5
+$as_echo "$LATEX" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- if test "x$ac_ct_OBJDUMP" = x; then
- OBJDUMP="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OBJDUMP=$ac_ct_OBJDUMP
- fi
+
+
+
+ if test -z "${DOXYGEN}"; then
+ DOXYGEN=":"
+ fi
+
+ if test -z "${LATEX}"; then
+ LATEX=":"
+ fi
+
+
+
+# Check whether --enable-static was given.
+if test "${enable_static+set}" = set; then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
else
- OBJDUMP="$ac_cv_prog_OBJDUMP"
+ enable_static=no
fi
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
@@ -6280,236 +6447,118 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
- $as_echo_n "(cached) " >&6
+# Check whether --enable-shared was given.
+if test "${enable_shared+set}" = set; then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
+ ;;
+ esac
else
- lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
+ enable_shared=yes
+fi
-case $host_os in
-aix[4-9]*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-beos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-bsdi[45]*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
- lt_cv_file_magic_cmd='/usr/bin/file -L'
- lt_cv_file_magic_test_file=/shlib/libc.so
- ;;
-cygwin*)
- # func_win32_libid is a shell function defined in ltmain.sh
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- ;;
-mingw* | pw32*)
- # Base MSYS/MinGW do not provide the 'file' command needed by
- # func_win32_libid shell function, so use a weaker test based on 'objdump',
- # unless we find 'file', for example because we are cross-compiling.
- # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
- if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
- lt_cv_file_magic_cmd='func_win32_libid'
- else
- # Keep this pattern in sync with the one in func_win32_libid.
- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- fi
- ;;
-cegcc*)
- # use the weaker test based on 'objdump'. See mingw*.
- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
- lt_cv_file_magic_cmd='$OBJDUMP -f'
- ;;
-darwin* | rhapsody*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-freebsd* | dragonfly*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- case $host_cpu in
- i*86 )
- # Not sure whether the presence of OpenBSD here was a mistake.
- # Let's accept both of them until this is cleared up.
- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
- ;;
- esac
- else
- lt_cv_deplibs_check_method=pass_all
- fi
- ;;
-gnu*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-haiku*)
- lt_cv_deplibs_check_method=pass_all
- ;;
+case `pwd` in
+ *\ * | *\ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
-hpux10.20* | hpux11*)
- lt_cv_file_magic_cmd=/usr/bin/file
- case $host_cpu in
- ia64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
- ;;
- hppa*64*)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
- ;;
- *)
- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
- lt_cv_file_magic_test_file=/usr/lib/libc.sl
- ;;
- esac
- ;;
-interix[3-9]*)
- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
- ;;
-irix5* | irix6* | nonstopux*)
- case $LD in
- *-32|*"-32 ") libmagic=32-bit;;
- *-n32|*"-n32 ") libmagic=N32;;
- *-64|*"-64 ") libmagic=64-bit;;
- *) libmagic=never-match;;
- esac
- lt_cv_deplibs_check_method=pass_all
- ;;
+macro_version='2.4'
+macro_revision='1.3293'
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- lt_cv_deplibs_check_method=pass_all
- ;;
-netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
- fi
- ;;
-newos6*)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
- lt_cv_file_magic_cmd=/usr/bin/file
- lt_cv_file_magic_test_file=/usr/lib/libnls.so
- ;;
-*nto* | *qnx*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-openbsd*)
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
- else
- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
- fi
- ;;
-osf3* | osf4* | osf5*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-rdos*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-solaris*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-sysv4 | sysv4.3*)
- case $host_vendor in
- motorola)
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
- ;;
- ncr)
- lt_cv_deplibs_check_method=pass_all
- ;;
- sequent)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
- ;;
- sni)
- lt_cv_file_magic_cmd='/bin/file'
- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
- lt_cv_file_magic_test_file=/lib/libc.so
- ;;
- siemens)
- lt_cv_deplibs_check_method=pass_all
- ;;
- pc)
- lt_cv_deplibs_check_method=pass_all
- ;;
- esac
- ;;
-tpf*)
- lt_cv_deplibs_check_method=pass_all
- ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
- case $host_os in
- mingw* | pw32*)
- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
- want_nocaseglob=yes
- else
- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
- fi
- ;;
- esac
-fi
+ltmain="$ac_aux_dir/ltmain.sh"
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+$as_echo_n "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+case "$ECHO" in
+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+$as_echo "printf" >&6; } ;;
+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+$as_echo "print -r" >&6; } ;;
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+$as_echo "cat" >&6; } ;;
+esac
@@ -6524,100 +6573,156 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$DLLTOOL"; then
- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
done
-IFS=$as_save_IFS
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ ac_cv_path_SED=$SED
fi
-
fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
- ac_ct_DLLTOOL=$DLLTOOL
- # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_DLLTOOL"; then
- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_DLLTOOL="dlltool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
done
-IFS=$as_save_IFS
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ ac_cv_path_FGREP=$FGREP
fi
- if test "x$ac_ct_DLLTOOL" = x; then
- DLLTOOL="false"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- DLLTOOL=$ac_ct_DLLTOOL
- fi
-else
- DLLTOOL="$ac_cv_prog_DLLTOOL"
+ fi
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
-test -z "$DLLTOOL" && DLLTOOL=dlltool
+test -z "$GREP" && GREP=grep
@@ -6627,37 +6732,118 @@ test -z "$DLLTOOL" && DLLTOOL=dlltool
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
- $as_echo_n "(cached) " >&6
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
else
- lt_cv_sharedlib_from_linklib_cmd='unknown'
+ with_gnu_ld=no
+fi
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
- # two different shell functions defined in ltmain.sh
- # decide which to use based on capabilities of $DLLTOOL
- case `$DLLTOOL --help 2>&1` in
- *--identify-strict*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
;;
*)
- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
;;
esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
;;
*)
- # fallback: assume linklib IS sharedlib
- lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+ lt_cv_prog_gnu_ld=no
;;
esac
-
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
@@ -6665,27 +6851,87 @@ test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-if test -n "$ac_tool_prefix"; then
- for ac_prog in ar
- do
- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if ${lt_cv_path_NM+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM="$NM"
else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
+ lt_nm_to_check="${ac_tool_prefix}nm"
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm="$ac_dir/$lt_tmp_nm"
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the `sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
+ */dev/null* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
+if test "$lt_cv_path_NM" != "no"; then
+ NM="$lt_cv_path_NM"
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DUMPBIN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -6695,32 +6941,32 @@ IFS=$as_save_IFS
fi
fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+$as_echo "$DUMPBIN" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- test -n "$AR" && break
+ test -n "$DUMPBIN" && break
done
fi
-if test -z "$AR"; then
- ac_ct_AR=$AR
- for ac_prog in ar
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_AR"; then
- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
@@ -6729,7 +6975,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_AR="$ac_prog"
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -6739,21 +6985,21 @@ IFS=$as_save_IFS
fi
fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+$as_echo "$ac_ct_DUMPBIN" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- test -n "$ac_ct_AR" && break
+ test -n "$ac_ct_DUMPBIN" && break
done
- if test "x$ac_ct_AR" = x; then
- AR="false"
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
@@ -6761,321 +7007,355 @@ yes:)
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
- AR=$ac_ct_AR
+ DUMPBIN=$ac_ct_DUMPBIN
fi
fi
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
+ case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+ if test "$DUMPBIN" != ":"; then
+ NM="$DUMPBIN"
+ fi
+fi
+test -z "$NM" && NM=nm
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+$as_echo_n "checking the name lister ($NM) interface... " >&6; }
+if ${lt_cv_nm_interface+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_ar_at_file=no
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- echo conftest.$ac_objext > conftest.lst
- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -eq 0; then
- # Ensure the archiver fails upon bogus file names.
- rm -f conftest.$ac_objext libconftest.a
- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
- (eval $lt_ar_try) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- if test "$ac_status" -ne 0; then
- lt_cv_ar_at_file=@
- fi
- fi
- rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+$as_echo "$lt_cv_nm_interface" >&6; }
-if test "x$lt_cv_ar_at_file" = xno; then
- archiver_list_spec=
+# find the maximum length of command line arguments
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
+if ${lt_cv_sys_max_cmd_len+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- archiver_list_spec=$lt_cv_ar_at_file
-fi
+ i=0
+ teststring="ABCD"
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+ netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$STRIP"; then
- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
-fi
-if test -z "$ac_cv_prog_STRIP"; then
- ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_STRIP"; then
- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_STRIP="strip"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8 ; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test "X"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test $i != 17 # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
- if test "x$ac_ct_STRIP" = x; then
- STRIP=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- STRIP=$ac_ct_STRIP
- fi
+if test -n $lt_cv_sys_max_cmd_len ; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
else
- STRIP="$ac_cv_prog_STRIP"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
+$as_echo "none" >&6; }
fi
-
-test -z "$STRIP" && STRIP=:
+max_cmd_len=$lt_cv_sys_max_cmd_len
-if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
+$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
+# Try some XSI features
+xsi_shell=no
+( _lt_dummy="a/b/c"
+ test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
+ = c,a/b,b/c, \
+ && eval 'test $(( 1 + 1 )) -eq 2 \
+ && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
+ && xsi_shell=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
+$as_echo "$xsi_shell" >&6; }
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
- ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_RANLIB"; then
- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_RANLIB="ranlib"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
+$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
+lt_shell_append=no
+( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
+ >/dev/null 2>&1 \
+ && lt_shell_append=yes
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
+$as_echo "$lt_shell_append" >&6; }
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
- if test "x$ac_ct_RANLIB" = x; then
- RANLIB=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- RANLIB=$ac_ct_RANLIB
- fi
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
else
- RANLIB="$ac_cv_prog_RANLIB"
+ lt_unset=false
fi
-test -z "$RANLIB" && RANLIB=:
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-if test -n "$RANLIB"; then
- case $host_os in
- openbsd*)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
- ;;
- *)
- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
- ;;
- esac
- old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-case $host_os in
- darwin*)
- lock_old_archive_extraction=yes ;;
- *)
- lock_old_archive_extraction=no ;;
-esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
+if ${lt_cv_to_host_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+fi
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+$as_echo "$lt_cv_to_host_file_cmd" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
+if ${lt_cv_to_tool_file_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+fi
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
+if ${lt_cv_ld_reload_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_reload_flag='-r'
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test "$GCC" != yes; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test "$GCC" = yes; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
@@ -7085,275 +7365,330 @@ esac
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+test -z "$OBJDUMP" && OBJDUMP=objdump
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-# Allow CC to be a program name with arguments.
-compiler=$CC
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
+if ${lt_cv_deplibs_check_method+:} false; then :
$as_echo_n "(cached) " >&6
else
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# `unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# which responds to the $file_magic_cmd with a given extended regex.
+# If you have `file' or equivalent on your system and you're not sure
+# whether `pass_all' will *always* work, you probably want this one.
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix. What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
case $host_os in
-aix*)
- symcode='[BCDT]'
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
;;
-cygwin* | mingw* | pw32* | cegcc*)
- symcode='[ABCDGISTW]'
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
;;
-hpux*)
- if test "$host_cpu" = ia64; then
- symcode='[ABCDEGRST]'
- fi
- ;;
-irix* | nonstopux*)
- symcode='[BCDEGRST]'
- ;;
-osf*)
- symcode='[BCDEGQRST]'
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='/usr/bin/file -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
;;
-solaris*)
- symcode='[BDRT]'
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
;;
-sco3.2v5*)
- symcode='[DT]'
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
+ if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
;;
-sysv4.2uw2*)
- symcode='[DT]'
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
- symcode='[ABDT]'
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
;;
-sysv4)
- symcode='[DFNSTU]'
+
+freebsd* | dragonfly*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
;;
-esac
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
- symcode='[ABCDGIRSTW]' ;;
-esac
+gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=/usr/bin/file
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
;;
-esac
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
- symxfrm="\\1 $ac_symprfx\\2 \\2"
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
- # Write the raw and C identifiers.
- if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- # Fake it for dumpbin and say T for any non-static function
- # and D for any global variable.
- # Also find C++ and __fastcall symbols from MSVC++,
- # which start with @ or ?.
- lt_cv_sys_global_symbol_pipe="$AWK '"\
-" {last_section=section; section=\$ 3};"\
-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-" \$ 0!~/External *\|/{next};"\
-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-" {if(hide[section]) next};"\
-" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-" s[1]~/^[@?]/{print s[1], s[1]; next};"\
-" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-" ' prfx=^$ac_symprfx"
+netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
else
- lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
fi
- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
- # Check to see that the pipe works correctly.
- pipe_works=no
-
- rm -f conftest*
- cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
+ ;;
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- # Now try to grab the symbols.
- nlist=conftest.nm
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
- (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s "$nlist"; then
- # Try sorting and uniquifying the output.
- if sort "$nlist" | uniq > "$nlist"T; then
- mv -f "$nlist"T "$nlist"
- else
- rm -f "$nlist"T
- fi
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=/usr/bin/file
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
- # Make sure that we snagged all the symbols we need.
- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
- cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
- relocations are performed -- see ld's documentation on pseudo-relocs. */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data. */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
-#ifdef __cplusplus
-extern "C" {
-#endif
+openbsd*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
-_LT_EOF
- # Now generate the symbol file.
- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
- cat <<_LT_EOF >> conftest.$ac_ext
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
-/* The mapping between symbol names and symbols. */
-LT_DLSYM_CONST struct {
- const char *name;
- void *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
- { "@PROGRAM@", (void *) 0 },
-_LT_EOF
- $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
- cat <<\_LT_EOF >> conftest.$ac_ext
- {0, (void *) 0}
-};
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
- # Now try linking the two files.
- mv conftest.$ac_objext conftstm.$ac_objext
- lt_globsym_save_LIBS=$LIBS
- lt_globsym_save_CFLAGS=$CFLAGS
- LIBS="conftstm.$ac_objext"
- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext}; then
- pipe_works=yes
- fi
- LIBS=$lt_globsym_save_LIBS
- CFLAGS=$lt_globsym_save_CFLAGS
- else
- echo "cannot find nm_test_func in $nlist" >&5
- fi
- else
- echo "cannot find nm_test_var in $nlist" >&5
- fi
- else
- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
- fi
- else
- echo "$progname: failed program was:" >&5
- cat conftest.$ac_ext >&5
- fi
- rm -rf conftest* conftst*
-
- # Do not use the global_symbol_pipe unless it works.
- if test "$pipe_works" = yes; then
- break
- else
- lt_cv_sys_global_symbol_pipe=
- fi
-done
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
-fi
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
- lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
- nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
- nm_file_list_spec='@'
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+ fi
+ ;;
+ esac
fi
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -7376,250 +7711,159 @@ fi
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
- withval=$with_sysroot;
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
else
- with_sysroot=no
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
fi
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
- if test "$GCC" = yes; then
- lt_sysroot=`$CC --print-sysroot 2>/dev/null`
- fi
- ;; #(
- /*)
- lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
- ;; #(
- no|'')
- ;; #(
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
- as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
- ;;
-esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
- enableval=$enable_libtool_lock;
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh
+ # decide which to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd="$ECHO"
+ ;;
+esac
+
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *ELF-32*)
- HPUX_IA64_MODE="32"
- ;;
- *ELF-64*)
- HPUX_IA64_MODE="64"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-*-*-irix6*)
- # Find out which ABI we are using.
- echo '#line '$LINENO' "configure"' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- if test "$lt_cv_prog_gnu_ld" = yes; then
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -melf32bsmip"
- ;;
- *N32*)
- LD="${LD-ld} -melf32bmipn32"
- ;;
- *64-bit*)
- LD="${LD-ld} -melf64bmip"
- ;;
- esac
- else
- case `/usr/bin/file conftest.$ac_objext` in
- *32-bit*)
- LD="${LD-ld} -32"
- ;;
- *N32*)
- LD="${LD-ld} -n32"
- ;;
- *64-bit*)
- LD="${LD-ld} -64"
- ;;
- esac
- fi
- fi
- rm -rf conftest*
- ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *32-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_i386_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_i386"
- ;;
- ppc64-*linux*|powerpc64-*linux*)
- LD="${LD-ld} -m elf32ppclinux"
- ;;
- s390x-*linux*)
- LD="${LD-ld} -m elf_s390"
- ;;
- sparc64-*linux*)
- LD="${LD-ld} -m elf32_sparc"
- ;;
- esac
- ;;
- *64-bit*)
- case $host in
- x86_64-*kfreebsd*-gnu)
- LD="${LD-ld} -m elf_x86_64_fbsd"
- ;;
- x86_64-*linux*)
- LD="${LD-ld} -m elf_x86_64"
- ;;
- ppc*-*linux*|powerpc*-*linux*)
- LD="${LD-ld} -m elf64ppc"
- ;;
- s390*-*linux*|s390*-*tpf*)
- LD="${LD-ld} -m elf64_s390"
- ;;
- sparc*-*linux*)
- LD="${LD-ld} -m elf64_sparc"
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-
-*-*-sco3.2v5*)
- # On SCO OpenServer 5, we need -belf to get full-featured binaries.
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -belf"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int
-main ()
-{
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_cc_needs_belf=yes
-else
- lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
- if test x"$lt_cv_cc_needs_belf" != x"yes"; then
- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
- CFLAGS="$SAVE_CFLAGS"
- fi
- ;;
-sparc*-*solaris*)
- # Find out which ABI we are using.
- echo 'int i;' > conftest.$ac_ext
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }; then
- case `/usr/bin/file conftest.o` in
- *64-bit*)
- case $lt_cv_prog_gnu_ld in
- yes*) LD="${LD-ld} -m elf64_sparc" ;;
- *)
- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
- LD="${LD-ld} -64"
- fi
- ;;
- esac
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
-esac
-need_locks="$enable_libtool_lock"
if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; ac_word=$2
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+if ${ac_cv_prog_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$MANIFEST_TOOL"; then
- ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
@@ -7628,7 +7872,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -7638,28 +7882,32 @@ IFS=$as_save_IFS
fi
fi
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
+ test -n "$AR" && break
+ done
fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
- ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
- # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; ac_word=$2
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_MANIFEST_TOOL"; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
@@ -7668,7 +7916,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ ac_cv_prog_ac_ct_AR="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -7678,17 +7926,21 @@ IFS=$as_save_IFS
fi
fi
-ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- if test "x$ac_ct_MANIFEST_TOOL" = x; then
- MANIFEST_TOOL=":"
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
else
case $cross_compiling:$ac_tool_warned in
yes:)
@@ -7696,50 +7948,91 @@ yes:)
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
- MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ AR=$ac_ct_AR
fi
-else
- MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
fi
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
+: ${AR=ar}
+: ${AR_FLAGS=cru}
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+$as_echo_n "checking for archiver @FILE support... " >&6; }
+if ${lt_cv_ar_at_file+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_path_mainfest_tool=no
- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
- cat conftest.err >&5
- if $GREP 'Manifest Tool' conftest.out > /dev/null; then
- lt_cv_path_mainfest_tool=yes
- fi
- rm -f conftest*
+ lt_cv_ar_at_file=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test "$ac_status" -eq 0; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test "$ac_status" -ne 0; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
- MANIFEST_TOOL=:
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+$as_echo "$lt_cv_ar_at_file" >&6; }
+if test "x$lt_cv_ar_at_file" = xno; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
- case $host_os in
- rhapsody* | darwin*)
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
+if ${ac_cv_prog_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$DSYMUTIL"; then
- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
@@ -7748,7 +8041,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -7758,10 +8051,10 @@ IFS=$as_save_IFS
fi
fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
@@ -7769,17 +8062,17 @@ fi
fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
- ac_ct_DSYMUTIL=$DSYMUTIL
- # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_DSYMUTIL"; then
- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
@@ -7788,7 +8081,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ ac_cv_prog_ac_ct_STRIP="strip"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -7798,17 +8091,17 @@ IFS=$as_save_IFS
fi
fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- if test "x$ac_ct_DSYMUTIL" = x; then
- DSYMUTIL=":"
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
@@ -7816,114 +8109,29 @@ yes:)
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
- DSYMUTIL=$ac_ct_DSYMUTIL
+ STRIP=$ac_ct_STRIP
fi
else
- DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+ STRIP="$ac_cv_prog_STRIP"
fi
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$NMEDIT"; then
- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+test -z "$STRIP" && STRIP=:
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
- ac_ct_NMEDIT=$NMEDIT
- # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_NMEDIT"; then
- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_NMEDIT="nmedit"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
- if test "x$ac_ct_NMEDIT" = x; then
- NMEDIT=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- NMEDIT=$ac_ct_NMEDIT
- fi
-else
- NMEDIT="$ac_cv_prog_NMEDIT"
-fi
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
+if ${ac_cv_prog_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$LIPO"; then
- ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
@@ -7932,7 +8140,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -7942,10 +8150,10 @@ IFS=$as_save_IFS
fi
fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
@@ -7953,17 +8161,17 @@ fi
fi
-if test -z "$ac_cv_prog_LIPO"; then
- ac_ct_LIPO=$LIPO
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
$as_echo_n "(cached) " >&6
else
- if test -n "$ac_ct_LIPO"; then
- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH
@@ -7972,7 +8180,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_LIPO="lipo"
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -7982,17 +8190,17 @@ IFS=$as_save_IFS
fi
fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- if test "x$ac_ct_LIPO" = x; then
- LIPO=":"
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
else
case $cross_compiling:$ac_tool_warned in
yes:)
@@ -8000,195 +8208,48 @@ yes:)
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
ac_tool_warned=yes ;;
esac
- LIPO=$ac_ct_LIPO
+ RANLIB=$ac_ct_RANLIB
fi
else
- LIPO="$ac_cv_prog_LIPO"
+ RANLIB="$ac_cv_prog_RANLIB"
fi
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL"; then
- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+test -z "$RANLIB" && RANLIB=:
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
- ac_ct_OTOOL=$OTOOL
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL"; then
- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_OTOOL="otool"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
fi
- if test "x$ac_ct_OTOOL" = x; then
- OTOOL=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
esac
- OTOOL=$ac_ct_OTOOL
- fi
-else
- OTOOL="$ac_cv_prog_OTOOL"
-fi
- if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$OTOOL64"; then
- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
- ac_ct_OTOOL64=$OTOOL64
- # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test -n "$ac_ct_OTOOL64"; then
- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_prog_ac_ct_OTOOL64="otool64"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
- if test "x$ac_ct_OTOOL64" = x; then
- OTOOL64=":"
- else
- case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
- OTOOL64=$ac_ct_OTOOL64
- fi
-else
- OTOOL64="$ac_cv_prog_OTOOL64"
-fi
@@ -8216,352 +8277,269 @@ fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_apple_cc_single_mod=no
- if test -z "${LT_MULTI_MODULE}"; then
- # By default we will add the -single_module flag. You can override
- # by either setting the environment variable LT_MULTI_MODULE
- # non-empty at configure time, or by adding -multi_module to the
- # link flags.
- rm -rf libconftest.dylib*
- echo "int foo(void){return 1;}" > conftest.c
- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
- _lt_result=$?
- if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
- lt_cv_apple_cc_single_mod=yes
- else
- cat conftest.err >&5
- fi
- rm -rf libconftest.dylib*
- rm -f conftest.*
- fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
+if ${lt_cv_sys_global_symbol_pipe+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_ld_exported_symbols_list=no
- save_LDFLAGS=$LDFLAGS
- echo "_main" > conftest.sym
- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int
-main ()
-{
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_ld_exported_symbols_list=yes
-else
- lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_ld_force_load=no
- cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
- echo "$AR cru libconftest.a conftest.o" >&5
- $AR cru libconftest.a conftest.o 2>&5
- echo "$RANLIB libconftest.a" >&5
- $RANLIB libconftest.a 2>&5
- cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
- _lt_result=$?
- if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
- lt_cv_ld_force_load=yes
- else
- cat conftest.err >&5
- fi
- rm -f conftest.err libconftest.a conftest conftest.c
- rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
- case $host_os in
- rhapsody* | darwin1.[012])
- _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
- darwin1.*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- darwin*) # darwin 5.x on
- # if running on 10.5 or later, the deployment target defaults
- # to the OS version, if on x86, and 10.4, the deployment
- # target defaults to 10.4. Don't you love it?
- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
- 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- 10.[012]*)
- _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
- 10.*)
- _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
- esac
- ;;
- esac
- if test "$lt_cv_apple_cc_single_mod" = "yes"; then
- _lt_dar_single_mod='$single_module'
- fi
- if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
- _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
- else
- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
- fi
- if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
- _lt_dsymutil='~$DSYMUTIL $lib || :'
- else
- _lt_dsymutil=
- fi
- ;;
- esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
-int
-main ()
-{
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
- ac_cv_header_stdc=yes
-else
- ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test "$host_cpu" = ia64; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
-if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <string.h>
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "memchr" >/dev/null 2>&1; then :
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'"
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'"
-fi
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
-if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <stdlib.h>
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
- $EGREP "free" >/dev/null 2>&1; then :
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
-else
- ac_cv_header_stdc=no
-fi
-rm -f conftest*
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function
+ # and D for any global variable.
+ # Also find C++ and __fastcall symbols from MSVC++,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
+" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
+" s[1]~/^[@?]/{print s[1], s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-fi
+ # Check to see that the pipe works correctly.
+ pipe_works=no
-if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
- if test "$cross_compiling" = yes; then :
- :
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
- (('a' <= (c) && (c) <= 'i') \
- || ('j' <= (c) && (c) <= 'r') \
- || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
- int i;
- for (i = 0; i < 256; i++)
- if (XOR (islower (i), ISLOWER (i))
- || toupper (i) != TOUPPER (i))
- return 2;
- return 0;
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
- ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
- conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
+ (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
-fi
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
+/* DATA imports from DLLs on WIN32 con't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined(__osf__)
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
- inttypes.h stdint.h unistd.h
-do :
- as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
+#ifdef __cplusplus
+extern "C" {
+#endif
-fi
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-done
+ cat <<_LT_EOF >> conftest.$ac_ext
+/* The mapping between symbol names and symbols. */
+LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
-for ac_header in dlfcn.h
-do :
- ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
-fi
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS="conftstm.$ac_objext"
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext}; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+ # Do not use the global_symbol_pipe unless it works.
+ if test "$pipe_works" = yes; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
done
-
-
-
-
-# Set options
-
-
-
- enable_dlopen=no
-
-
- enable_win32_dll=no
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
- withval=$with_pic; pic_mode="$withval"
-else
- pic_mode=default
fi
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
- # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
- enableval=$enable_fast_install; p=${PACKAGE-default}
- case $enableval in
- yes) enable_fast_install=yes ;;
- no) enable_fast_install=no ;;
- *)
- enable_fast_install=no
- # Look at the argument we got. We use all the common list separators.
- lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
- for pkg in $enableval; do
- IFS="$lt_save_ifs"
- if test "X$pkg" = "X$p"; then
- enable_fast_install=yes
- fi
- done
- IFS="$lt_save_ifs"
- ;;
- esac
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+$as_echo "failed" >&6; }
else
- enable_fast_install=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
fi
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
@@ -8584,2166 +8562,1481 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-test -z "$LN_S" && LN_S="ln -s"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+$as_echo_n "checking for sysroot... " >&6; }
+# Check whether --with-sysroot was given.
+if test "${with_sysroot+set}" = set; then :
+ withval=$with_sysroot;
+else
+ with_sysroot=no
+fi
+lt_sysroot=
+case ${with_sysroot} in #(
+ yes)
+ if test "$GCC" = yes; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
+$as_echo "${with_sysroot}" >&6; }
+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+$as_echo "${lt_sysroot:-no}" >&6; }
-if test -n "${ZSH_VERSION+set}" ; then
- setopt NO_GLOB_SUBST
+# Check whether --enable-libtool-lock was given.
+if test "${enable_libtool_lock+set}" = set; then :
+ enableval=$enable_libtool_lock;
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
- lt_cv_objdir=.libs
-else
- # MS-DOS does not allow filenames that begin with a dot.
- lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
+test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE="32"
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE="64"
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out which ABI we are using.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `/usr/bin/file conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ ppc64-*linux*|powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ ppc*-*linux*|powerpc*-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -belf"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
+if ${lt_cv_cc_needs_belf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int
+main ()
+{
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_cc_needs_belf=yes
+else
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-case $host_os in
-aix3*)
- # AIX sometimes has problems with the GCC collect2 program. For some
- # reason, if we set the COLLECT_NAMES environment variable, the problems
- # vanish in a puff of smoke.
- if test "X${COLLECT_NAMES+set}" != Xset; then
- COLLECT_NAMES=
- export COLLECT_NAMES
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
+ if test x"$lt_cv_cc_needs_belf" != x"yes"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS="$SAVE_CFLAGS"
+ fi
+ ;;
+sparc*-*solaris*)
+ # Find out which ABI we are using.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `/usr/bin/file conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*) LD="${LD-ld} -m elf64_sparc" ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
fi
+ rm -rf conftest*
;;
esac
-# Global variables:
-ofile=libtool
-can_build_shared=yes
+need_locks="$enable_libtool_lock"
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$MANIFEST_TOOL"; then
+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
-with_gnu_ld="$lt_cv_prog_gnu_ld"
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+$as_echo "$MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
- case $cc_temp in
- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
- \-*) ;;
- *) break;;
- esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
- if test "$file_magic_cmd" = '$MAGIC_CMD'; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+ # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/${ac_tool_prefix}file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
- done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
+ if test "x$ac_ct_MANIFEST_TOOL" = x; then
+ MANIFEST_TOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
esac
+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ fi
+else
+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
fi
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if ${lt_cv_path_mainfest_tool+:} false; then :
+ $as_echo_n "(cached) " >&6
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+ lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&5
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+$as_echo "$lt_cv_path_mainfest_tool" >&6; }
+if test "x$lt_cv_path_mainfest_tool" != xyes; then
+ MANIFEST_TOOL=:
fi
-if test -z "$lt_cv_path_MAGIC_CMD"; then
- if test -n "$ac_tool_prefix"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_DSYMUTIL+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $MAGIC_CMD in
-[\\/*] | ?:[\\/]*)
- lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
- ;;
-*)
- lt_save_MAGIC_CMD="$MAGIC_CMD"
- lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
- for ac_dir in $ac_dummy; do
- IFS="$lt_save_ifs"
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/file; then
- lt_cv_path_MAGIC_CMD="$ac_dir/file"
- if test -n "$file_magic_test_file"; then
- case $deplibs_check_method in
- "file_magic "*)
- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
- MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
- $EGREP "$file_magic_regex" > /dev/null; then
- :
- else
- cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such. This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem. Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
- fi ;;
- esac
- fi
- break
- fi
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
done
- IFS="$lt_save_ifs"
- MAGIC_CMD="$lt_save_MAGIC_CMD"
- ;;
-esac
-fi
+IFS=$as_save_IFS
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- else
- MAGIC_CMD=:
- fi
fi
-
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
fi
- ;;
-esac
-
-# Use C for the default configuration in the libtool script
+done
+ done
+IFS=$as_save_IFS
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NMEDIT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
-lt_prog_compiler_no_builtin_flag=
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
-if test "$GCC" = yes; then
- case $cc_basename in
- nvcc*)
- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
- *)
- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_prog_compiler_rtti_exceptions=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="-fno-rtti -fno-exceptions"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_rtti_exceptions=yes
- fi
- fi
- $RM conftest*
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
else
- :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
fi
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
fi
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+$as_echo "$ac_ct_LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
- if test "$GCC" = yes; then
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_static='-static'
-
- case $host_os in
- aix*)
- # All AIX code is PIC.
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
-
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- lt_prog_compiler_pic='-fPIC'
- ;;
- m68k)
- # FIXME: we need at least 68020 code to build shared libraries, but
- # adding the `-m68020' flag to GCC prevents building anything better,
- # like `-m68040'.
- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
- ;;
- esac
- ;;
-
- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
- # PIC is the default for these OSes.
- ;;
-
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- # Although the cygwin gcc ignores -fPIC, still need this for old-style
- # (--disable-auto-import) libraries
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
-
- darwin* | rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- lt_prog_compiler_pic='-fno-common'
- ;;
-
- haiku*)
- # PIC is the default for Haiku.
- # The "-static" flag exists, but is broken.
- lt_prog_compiler_static=
- ;;
-
- hpux*)
- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
- # sets the default TLS model and affects inlining.
- case $host_cpu in
- hppa*64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
- ;;
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
- interix[3-9]*)
- # Interix 3.x gcc -fpic/-fPIC options generate broken code.
- # Instead, we relocate shared libraries at runtime.
- ;;
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- msdosdjgpp*)
- # Just because we use GCC doesn't mean we suddenly get shared libraries
- # on systems that don't support them.
- lt_prog_compiler_can_build_shared=no
- enable_shared=no
- ;;
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
- sysv4*MP*)
- if test -d /usr/nec; then
- lt_prog_compiler_pic=-Kconform_pic
- fi
- ;;
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- *)
- lt_prog_compiler_pic='-fPIC'
- ;;
- esac
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+$as_echo "$ac_ct_OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- case $cc_basename in
- nvcc*) # Cuda Compiler Driver 2.2
- lt_prog_compiler_wl='-Xlinker '
- lt_prog_compiler_pic='-Xcompiler -fPIC'
- ;;
- esac
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
else
- # PORTME Check for flag to pass linker flags through the system compiler.
- case $host_os in
- aix*)
- lt_prog_compiler_wl='-Wl,'
- if test "$host_cpu" = ia64; then
- # AIX 5 now supports IA64 processor
- lt_prog_compiler_static='-Bstatic'
- else
- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
- fi
- ;;
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
- mingw* | cygwin* | pw32* | os2* | cegcc*)
- # This hack is so that the source file can tell whether it is being
- # built for inclusion in a dll (and should export symbols for example).
- lt_prog_compiler_pic='-DDLL_EXPORT'
- ;;
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- hpux9* | hpux10* | hpux11*)
- lt_prog_compiler_wl='-Wl,'
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
- # not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- lt_prog_compiler_pic='+Z'
- ;;
- esac
- # Is there a better lt_prog_compiler_static that works with the bundled CC?
- lt_prog_compiler_static='${wl}-a ${wl}archive'
- ;;
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+$as_echo "$OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- irix5* | irix6* | nonstopux*)
- lt_prog_compiler_wl='-Wl,'
- # PIC (with -KPIC) is the default.
- lt_prog_compiler_static='-non_shared'
- ;;
- linux* | k*bsd*-gnu | kopensolaris*-gnu)
- case $cc_basename in
- # old Intel for x86_64 which still supported -KPIC.
- ecc*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-static'
- ;;
- # icc used to be incompatible with GCC.
- # ICC 10 doesn't accept -KPIC any more.
- icc* | ifort*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fPIC'
- lt_prog_compiler_static='-static'
- ;;
- # Lahey Fortran 8.1.
- lf95*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='--shared'
- lt_prog_compiler_static='--static'
- ;;
- nagfor*)
- # NAG Fortran compiler
- lt_prog_compiler_wl='-Wl,-Wl,,'
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group compilers (*not* the Pentium gcc compiler,
- # which looks to be a dead project)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-fpic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- ccc*)
- lt_prog_compiler_wl='-Wl,'
- # All Alpha code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- xl* | bgxl* | bgf* | mpixl*)
- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-qpic'
- lt_prog_compiler_static='-qstaticlink'
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ F* | *Sun*Fortran*)
- # Sun Fortran 8.3 passes all unrecognized flags to the linker
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl=''
- ;;
- *Sun\ C*)
- # Sun C 5.9
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- lt_prog_compiler_wl='-Wl,'
- ;;
- esac
- ;;
- esac
- ;;
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
- newsos6)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+$as_echo "$ac_ct_OTOOL64" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- *nto* | *qnx*)
- # QNX uses GNU C++, but need to define -shared option too, otherwise
- # it will coredump.
- lt_prog_compiler_pic='-fPIC -shared'
- ;;
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
- osf3* | osf4* | osf5*)
- lt_prog_compiler_wl='-Wl,'
- # All OSF/1 code is PIC.
- lt_prog_compiler_static='-non_shared'
- ;;
- rdos*)
- lt_prog_compiler_static='-non_shared'
- ;;
- solaris*)
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- case $cc_basename in
- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
- lt_prog_compiler_wl='-Qoption ld ';;
- *)
- lt_prog_compiler_wl='-Wl,';;
- esac
- ;;
- sunos4*)
- lt_prog_compiler_wl='-Qoption ld '
- lt_prog_compiler_pic='-PIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- sysv4 | sysv4.2uw2* | sysv4.3*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- sysv4*MP*)
- if test -d /usr/nec ;then
- lt_prog_compiler_pic='-Kconform_pic'
- lt_prog_compiler_static='-Bstatic'
- fi
- ;;
- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_pic='-KPIC'
- lt_prog_compiler_static='-Bstatic'
- ;;
- unicos*)
- lt_prog_compiler_wl='-Wl,'
- lt_prog_compiler_can_build_shared=no
- ;;
- uts4*)
- lt_prog_compiler_pic='-pic'
- lt_prog_compiler_static='-Bstatic'
- ;;
- *)
- lt_prog_compiler_can_build_shared=no
- ;;
- esac
- fi
-case $host_os in
- # For platforms which do not support PIC, -DPIC is meaningless:
- *djgpp*)
- lt_prog_compiler_pic=
- ;;
- *)
- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if ${lt_cv_apple_cc_single_mod+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_prog_compiler_pic_works=no
- ac_outfile=conftest.$ac_objext
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
- lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- # The option is referenced via a variable to avoid confusing sed.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>conftest.err)
- ac_status=$?
- cat conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s "$ac_outfile"; then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings other than the usual output.
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_pic_works=yes
- fi
- fi
- $RM conftest*
-
+ lt_cv_apple_cc_single_mod=no
+ if test -z "${LT_MULTI_MODULE}"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if ${lt_cv_ld_exported_symbols_list+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
- case $lt_prog_compiler_pic in
- "" | " "*) ;;
- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
- esac
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_ld_exported_symbols_list=yes
else
- lt_prog_compiler_pic=
- lt_prog_compiler_can_build_shared=no
+ lt_cv_ld_exported_symbols_list=no
fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+$as_echo_n "checking for -force_load linker flag... " >&6; }
+if ${lt_cv_ld_force_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR cru libconftest.a conftest.o" >&5
+ $AR cru libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+$as_echo "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ darwin*) # darwin 5.x on
+ # if running on 10.5 or later, the deployment target defaults
+ # to the OS version, if on x86, and 10.4, the deployment
+ # target defaults to 10.4. Don't you love it?
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+ 10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ 10.[012]*)
+ _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+ 10.*)
+ _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+ _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
+ fi
+ if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_prog_compiler_static_works=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_static_works=yes
- fi
- else
- lt_cv_prog_compiler_static_works=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+int
+main ()
+{
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
- :
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
else
- lt_prog_compiler_static=
+ ac_cv_header_stdc=no
fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+fi
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler_c_o=no
- $RM -r conftest 2>/dev/null
- mkdir conftest
- cd conftest
- mkdir out
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+fi
- lt_compiler_flag="-o out/conftest2.$ac_objext"
- # Insert the option either (1) after the last *FLAGS variable, or
- # (2) before a word containing "conftest.", or (3) at the end.
- # Note that $ac_compile itself does not contain backslashes and begins
- # with a dollar sign (not a hyphen), so the echo should work correctly.
- lt_compile=`echo "$ac_compile" | $SED \
- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
- -e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
- (eval "$lt_compile" 2>out/conftest.err)
- ac_status=$?
- cat out/conftest.err >&5
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- if (exit $ac_status) && test -s out/conftest2.$ac_objext
- then
- # The compiler can only warn and ignore the option if not recognized
- # So say no if there are warnings
- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
- lt_cv_prog_compiler_c_o=yes
- fi
- fi
- chmod u+w . 2>&5
- $RM conftest*
- # SGI C++ compiler will create directory out/ii_files/ for
- # template instantiation
- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
- $RM out/* && rmdir out
- cd ..
- $RM -r conftest
- $RM conftest*
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+ inttypes.h stdint.h unistd.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+done
+for ac_header in dlfcn.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DLFCN_H 1
+_ACEOF
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
- # do not overwrite the value of need_locks provided by the user
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
- hard_links=yes
- $RM conftest*
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- touch conftest.a
- ln conftest.a conftest.b 2>&5 || hard_links=no
- ln conftest.a conftest.b 2>/dev/null && hard_links=no
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
- if test "$hard_links" = no; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
- need_locks=warn
- fi
-else
- need_locks=no
fi
+done
+func_stripname_cnf ()
+{
+ case ${2} in
+ .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
+ *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
+ esac
+} # func_stripname_cnf
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
- runpath_var=
- allow_undefined_flag=
- always_export_symbols=no
- archive_cmds=
- archive_expsym_cmds=
- compiler_needs_object=no
- enable_shared_with_static_runtimes=no
- export_dynamic_flag_spec=
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
- hardcode_automatic=no
- hardcode_direct=no
- hardcode_direct_absolute=no
- hardcode_libdir_flag_spec=
- hardcode_libdir_flag_spec_ld=
- hardcode_libdir_separator=
- hardcode_minus_L=no
- hardcode_shlibpath_var=unsupported
- inherit_rpath=no
- link_all_deplibs=unknown
- module_cmds=
- module_expsym_cmds=
- old_archive_from_new_cmds=
- old_archive_from_expsyms_cmds=
- thread_safe_flag_spec=
- whole_archive_flag_spec=
- # include_expsyms should be a list of space-separated symbols to be *always*
- # included in the symbol list
- include_expsyms=
- # exclude_expsyms can be an extended regexp of symbols to exclude
- # it will be wrapped by ` (' and `)$', so one must not match beginning or
- # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
- # as well as any symbol that contains `d'.
- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
- # platforms (ab)use it in PIC code, but their linkers get confused if
- # the symbol is explicitly referenced. Since portable code cannot
- # rely on this symbol name, it's probably fine to never include it in
- # preloaded symbol tables.
- # Exclude shared library initialization/finalization symbols.
- extract_expsyms_cmds=
- case $host_os in
- cygwin* | mingw* | pw32* | cegcc*)
- # FIXME: the MSVC++ port hasn't been tested in a loooong time
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- if test "$GCC" != yes; then
- with_gnu_ld=no
- fi
- ;;
- interix*)
- # we just hope/assume this is gcc and not c89 (= MSVC++)
- with_gnu_ld=yes
- ;;
- openbsd*)
- with_gnu_ld=no
- ;;
- esac
- ld_shlibs=yes
- # On some targets, GNU ld is compatible enough with the native linker
- # that we're better off using the native interface for both.
- lt_use_gnu_ld_interface=no
- if test "$with_gnu_ld" = yes; then
- case $host_os in
- aix*)
- # The AIX port of GNU ld has always aspired to compatibility
- # with the native linker. However, as the warning in the GNU ld
- # block says, versions before 2.19.5* couldn't really create working
- # shared libraries, regardless of the interface used.
- case `$LD -v 2>&1` in
- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
- *\ \(GNU\ Binutils\)\ [3-9]*) ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- ;;
- *)
- lt_use_gnu_ld_interface=yes
- ;;
- esac
- fi
+# Set options
- if test "$lt_use_gnu_ld_interface" = yes; then
- # If archive_cmds runs LD, not CC, wlarc should be empty
- wlarc='${wl}'
- # Set some defaults for GNU ld with shared library support. These
- # are reset later if shared libraries are not supported. Putting them
- # here allows them to be overridden if necessary.
- runpath_var=LD_RUN_PATH
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- export_dynamic_flag_spec='${wl}--export-dynamic'
- # ancient GNU ld didn't support --whole-archive et. al.
- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
- whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
- else
- whole_archive_flag_spec=
- fi
- supports_anon_versioning=no
- case `$LD -v 2>&1` in
- *GNU\ gold*) supports_anon_versioning=yes ;;
- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
- *\ 2.11.*) ;; # other 2.11 versions
- *) supports_anon_versioning=yes ;;
- esac
- # See if GNU ld supports shared libraries.
- case $host_os in
- aix[3-9]*)
- # On AIX/PPC, the GNU linker is very broken
- if test "$host_cpu" != ia64; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
+ enable_dlopen=no
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support. If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-_LT_EOF
- fi
- ;;
+ enable_win32_dll=no
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
- beos*)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- allow_undefined_flag=unsupported
- # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
- # support --undefined. This deserves some investigation. FIXME
- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- cygwin* | mingw* | pw32* | cegcc*)
- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
- # as there is no search path for DLLs.
- hardcode_libdir_flag_spec='-L$libdir'
- export_dynamic_flag_spec='${wl}--export-all-symbols'
- allow_undefined_flag=unsupported
- always_export_symbols=no
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
- exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- # If the export-symbols file already is a .def file (1st line
- # is EXPORTS), use it as is; otherwise, prepend...
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- cp $export_symbols $output_objdir/$soname.def;
- else
- echo EXPORTS > $output_objdir/$soname.def;
- cat $export_symbols >> $output_objdir/$soname.def;
- fi~
- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
- else
- ld_shlibs=no
- fi
- ;;
- haiku*)
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- link_all_deplibs=yes
- ;;
+# Check whether --with-pic was given.
+if test "${with_pic+set}" = set; then :
+ withval=$with_pic; pic_mode="$withval"
+else
+ pic_mode=default
+fi
- interix[3-9]*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
- # Instead, shared libraries are loaded at an image base (0x10000000 by
- # default) and relocated if they conflict, which is a slow very memory
- # consuming and fragmenting process. To avoid this, we pick a random,
- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
- # time. Moving up from 0x10000000 also allows more sbrk(2) space.
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
- ;;
- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
- tmp_diet=no
- if test "$host_os" = linux-dietlibc; then
- case $cc_basename in
- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
- esac
- fi
- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
- && test "$tmp_diet" = no
- then
- tmp_addflag=' $pic_flag'
- tmp_sharedflag='-shared'
- case $cc_basename,$host_cpu in
- pgcc*) # Portland Group C compiler
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag'
- ;;
- pgf77* | pgf90* | pgf95* | pgfortran*)
- # Portland Group f77 and f90 compilers
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- tmp_addflag=' $pic_flag -Mnomain' ;;
- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
- tmp_addflag=' -i_dynamic' ;;
- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
- tmp_addflag=' -i_dynamic -nofor_main' ;;
- ifc* | ifort*) # Intel Fortran compiler
- tmp_addflag=' -nofor_main' ;;
- lf95*) # Lahey Fortran 8.1
- whole_archive_flag_spec=
- tmp_sharedflag='--shared' ;;
- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
- tmp_sharedflag='-qmkshrobj'
- tmp_addflag= ;;
- nvcc*) # Cuda Compiler Driver 2.2
- whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- ;;
- esac
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*) # Sun C 5.9
- whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
- compiler_needs_object=yes
- tmp_sharedflag='-G' ;;
- *Sun\ F*) # Sun Fortran 8.3
- tmp_sharedflag='-G' ;;
- esac
- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+test -z "$pic_mode" && pic_mode=default
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
- fi
- case $cc_basename in
- xlf* | bgf* | bgxlf* | mpixlf*)
- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
- hardcode_libdir_flag_spec=
- hardcode_libdir_flag_spec_ld='-rpath $libdir'
- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
- if test "x$supports_anon_versioning" = xyes; then
- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
- cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
- echo "local: *; };" >> $output_objdir/$libname.ver~
- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
- fi
- ;;
- esac
- else
- ld_shlibs=no
- fi
- ;;
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
- wlarc=
- else
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- fi
- ;;
- solaris*)
- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-_LT_EOF
- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
+
+ # Check whether --enable-fast-install was given.
+if test "${enable_fast_install+set}" = set; then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
+ for pkg in $enableval; do
+ IFS="$lt_save_ifs"
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS="$lt_save_ifs"
;;
+ esac
+else
+ enable_fast_install=yes
+fi
- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
- case `$LD -v 2>&1` in
- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
- ld_shlibs=no
- cat <<_LT_EOF 1>&2
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems. Therefore, libtool
-*** is disabling shared libraries support. We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-_LT_EOF
- ;;
- *)
- # For security reasons, it is highly recommended that you always
- # use absolute paths for naming shared libraries, and exclude the
- # DT_RUNPATH tag from executables and libraries. But doing so
- # requires that you compile everything twice, which is a pain.
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- ;;
- sunos4*)
- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- wlarc=
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
- *)
- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
- else
- ld_shlibs=no
- fi
- ;;
- esac
- if test "$ld_shlibs" = no; then
- runpath_var=
- hardcode_libdir_flag_spec=
- export_dynamic_flag_spec=
- whole_archive_flag_spec=
- fi
- else
- # PORTME fill in a description of your system's linker (not GNU ld)
- case $host_os in
- aix3*)
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
- # Note: this linker hardcodes the directories in LIBPATH if there
- # are no directories specified by -L.
- hardcode_minus_L=yes
- if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
- # Neither direct hardcoding nor static linking is supported with a
- # broken collect2.
- hardcode_direct=unsupported
- fi
- ;;
- aix[4-9]*)
- if test "$host_cpu" = ia64; then
- # On IA64, the linker does run time linking by default, so we don't
- # have to do anything special.
- aix_use_runtimelinking=no
- exp_sym_flag='-Bexport'
- no_entry_flag=""
- else
- # If we're using GNU nm, then we don't want the "-C" option.
- # -C means demangle to AIX nm, but means don't demangle with GNU nm
- # Also, AIX nm treats weak defined symbols like other global
- # defined symbols, whereas GNU nm marks them as "W".
- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- else
- export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
- fi
- aix_use_runtimelinking=no
- # Test if we are trying to use run time linking or normal
- # AIX style linking. If -brtl is somewhere in LDFLAGS, we
- # need to do runtime linking.
- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
- for ld_flag in $LDFLAGS; do
- if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
- aix_use_runtimelinking=yes
- break
- fi
- done
- ;;
- esac
- exp_sym_flag='-bexport'
- no_entry_flag='-bnoentry'
- fi
- # When large executables or shared objects are built, AIX ld can
- # have problems creating the table of contents. If linking a library
- # or program results in "error TOC overflow" add -mminimal-toc to
- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
- archive_cmds=''
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- file_list_spec='${wl}-f,'
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ltmain"
- if test "$GCC" = yes; then
- case $host_os in aix4.[012]|aix4.[012].*)
- # We only want to do this on AIX 4.2 and lower, the check
- # below for broken collect2 doesn't work under 4.3+
- collect2name=`${CC} -print-prog-name=collect2`
- if test -f "$collect2name" &&
- strings "$collect2name" | $GREP resolve_lib_name >/dev/null
- then
- # We have reworked collect2
- :
- else
- # We have old collect2
- hardcode_direct=unsupported
- # It fails to find uninstalled libraries when the uninstalled
- # path is not listed in the libpath. Setting hardcode_minus_L
- # to unsupported forces relinking
- hardcode_minus_L=yes
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_libdir_separator=
- fi
- ;;
- esac
- shared_flag='-shared'
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag="$shared_flag "'${wl}-G'
- fi
- else
- # not using gcc
- if test "$host_cpu" = ia64; then
- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
- # chokes on -Wl,-G. The following line is correct:
- shared_flag='-G'
- else
- if test "$aix_use_runtimelinking" = yes; then
- shared_flag='${wl}-G'
- else
- shared_flag='${wl}-bM:SRE'
- fi
- fi
- fi
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
- export_dynamic_flag_spec='${wl}-bexpall'
- # It seems that -bexpall does not export symbols beginning with
- # underscore (_), so it is better to generate a list of symbols to export.
- always_export_symbols=yes
- if test "$aix_use_runtimelinking" = yes; then
- # Warning - without using the other runtime loading flags (-brtl),
- # -berok will link without error, but may produce a broken library.
- allow_undefined_flag='-berok'
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int
-main ()
-{
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-fi
- aix_libpath=$lt_cv_aix_libpath_
-fi
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
- else
- if test "$host_cpu" = ia64; then
- hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
- allow_undefined_flag="-z nodefs"
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
- else
- # Determine the default libpath from the value encoded in an
- # empty executable.
- if test "${lt_cv_aix_libpath+set}" = set; then
- aix_libpath=$lt_cv_aix_libpath
-else
- if ${lt_cv_aix_libpath_+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int
-main ()
-{
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_aix_libpath_sed='
- /Import File Strings/,/^$/ {
- /^0/ {
- s/^0 *\([^ ]*\) *$/\1/
- p
- }
- }'
- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- # Check for a 64-bit object if we didn't find anything.
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
- fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- if test -z "$lt_cv_aix_libpath_"; then
- lt_cv_aix_libpath_="/usr/lib:/lib"
- fi
-fi
- aix_libpath=$lt_cv_aix_libpath_
-fi
- hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
- # Warning - without using the other run time loading flags,
- # -berok will link without error, but may produce a broken library.
- no_undefined_flag=' ${wl}-bernotok'
- allow_undefined_flag=' ${wl}-berok'
- if test "$with_gnu_ld" = yes; then
- # We only use this code for GNU lds that support --whole-archive.
- whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
- else
- # Exported symbols can be pulled into shared objects from archives
- whole_archive_flag_spec='$convenience'
- fi
- archive_cmds_need_lc=yes
- # This is similar to how AIX traditionally builds its shared libraries.
- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
- fi
- fi
- ;;
- amigaos*)
- case $host_cpu in
- powerpc)
- # see comment about AmigaOS4 .so support
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
- archive_expsym_cmds=''
- ;;
- m68k)
- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- ;;
- esac
- ;;
- bsdi[45]*)
- export_dynamic_flag_spec=-rdynamic
- ;;
- cygwin* | mingw* | pw32* | cegcc*)
- # When not using gcc, we currently assume that we are using
- # Microsoft Visual C++.
- # hardcode_libdir_flag_spec is actually meaningless, as there is
- # no search path for DLLs.
- case $cc_basename in
- cl*)
- # Native MSVC
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- always_export_symbols=yes
- file_list_spec='@'
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
- archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
- sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
- else
- sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
- fi~
- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
- linknames='
- # The linker will not automatically build a static lib if we build a DLL.
- # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
- enable_shared_with_static_runtimes=yes
- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
- # Don't use ranlib
- old_postinstall_cmds='chmod 644 $oldlib'
- postlink_cmds='lt_outputfile="@OUTPUT@"~
- lt_tool_outputfile="@TOOL_OUTPUT@"~
- case $lt_outputfile in
- *.exe|*.EXE) ;;
- *)
- lt_outputfile="$lt_outputfile.exe"
- lt_tool_outputfile="$lt_tool_outputfile.exe"
- ;;
- esac~
- if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
- $RM "$lt_outputfile.manifest";
- fi'
- ;;
- *)
- # Assume MSVC wrapper
- hardcode_libdir_flag_spec=' '
- allow_undefined_flag=unsupported
- # Tell ltmain to make .lib files, not .a files.
- libext=lib
- # Tell ltmain to make .dll files, not .so files.
- shrext_cmds=".dll"
- # FIXME: Setting linknames here is a bad hack.
- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
- # The linker will automatically build a .lib file if we build a DLL.
- old_archive_from_new_cmds='true'
- # FIXME: Should let the user specify the lib program.
- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
- enable_shared_with_static_runtimes=yes
- ;;
- esac
- ;;
- darwin* | rhapsody*)
- archive_cmds_need_lc=no
- hardcode_direct=no
- hardcode_automatic=yes
- hardcode_shlibpath_var=unsupported
- if test "$lt_cv_ld_force_load" = "yes"; then
- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
- else
- whole_archive_flag_spec=''
- fi
- link_all_deplibs=yes
- allow_undefined_flag="$_lt_dar_allow_undefined"
- case $cc_basename in
- ifort*) _lt_dar_can_shared=yes ;;
- *) _lt_dar_can_shared=$GCC ;;
- esac
- if test "$_lt_dar_can_shared" = "yes"; then
- output_verbose_link_cmd=func_echo_all
- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
- archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
- module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
- else
- ld_shlibs=no
- fi
- ;;
- dgux*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
- freebsd1*)
- ld_shlibs=no
- ;;
- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
- # support. Future versions do this automatically, but an explicit c++rt0.o
- # does not break anything, and helps significantly (at the cost of a little
- # extra space).
- freebsd2.2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
- # Unfortunately, older versions of FreeBSD 2 do not have this feature.
- freebsd2*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
- freebsd* | dragonfly*)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
+test -z "$LN_S" && LN_S="ln -s"
- hpux9*)
- if test "$GCC" = yes; then
- archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- else
- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
- fi
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- export_dynamic_flag_spec='${wl}-E'
- ;;
- hpux10*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_flag_spec_ld='+b $libdir'
- hardcode_libdir_separator=:
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- fi
- ;;
- hpux11*)
- if test "$GCC" = yes && test "$with_gnu_ld" = no; then
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- esac
- else
- case $host_cpu in
- hppa*64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- ia64*)
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
- ;;
- *)
- # Older versions of the 11.00 compiler do not understand -b yet
- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- lt_cv_prog_compiler__b=no
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -b"
- echo "$lt_simple_link_test_code" > conftest.$ac_ext
- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
- # The linker can only warn and ignore the option if not recognized
- # So say no if there are warnings
- if test -s conftest.err; then
- # Append any errors to the config.log.
- cat conftest.err 1>&5
- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
- if diff conftest.exp conftest.er2 >/dev/null; then
- lt_cv_prog_compiler__b=yes
- fi
- else
- lt_cv_prog_compiler__b=yes
- fi
- fi
- $RM -r conftest*
- LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-if test x"$lt_cv_prog_compiler__b" = xyes; then
- archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
- ;;
- esac
- fi
- if test "$with_gnu_ld" = no; then
- hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
- hardcode_libdir_separator=:
- case $host_cpu in
- hppa*64*|ia64*)
- hardcode_direct=no
- hardcode_shlibpath_var=no
- ;;
- *)
- hardcode_direct=yes
- hardcode_direct_absolute=yes
- export_dynamic_flag_spec='${wl}-E'
- # hardcode_minus_L: Not really in the search PATH,
- # but as the default location of the library.
- hardcode_minus_L=yes
- ;;
- esac
- fi
- ;;
- irix5* | irix6* | nonstopux*)
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- # Try to use the -exported_symbol ld option, if it does not
- # work, assume that -exports_file does not work either and
- # implicitly export all symbols.
- # This should be the same for all languages, so no per-tag cache variable.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
+
+
+
+if test -n "${ZSH_VERSION+set}" ; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
+if ${lt_cv_objdir+:} false; then :
$as_echo_n "(cached) " >&6
else
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- lt_cv_irix_exported_symbol=yes
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
else
- lt_cv_irix_exported_symbol=no
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$save_LDFLAGS"
+rmdir .libs 2>/dev/null
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
- if test "$lt_cv_irix_exported_symbol" = yes; then
- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
- fi
- else
- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- inherit_rpath=yes
- link_all_deplibs=yes
- ;;
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
- netbsd*)
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
- else
- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- ;;
- newsos6)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- hardcode_shlibpath_var=no
- ;;
- *nto* | *qnx*)
- ;;
- openbsd*)
- if test -f /usr/libexec/ld.so; then
- hardcode_direct=yes
- hardcode_shlibpath_var=no
- hardcode_direct_absolute=yes
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- export_dynamic_flag_spec='${wl}-E'
- else
- case $host_os in
- openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-R$libdir'
- ;;
- *)
- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
- hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
- ;;
- esac
- fi
- else
- ld_shlibs=no
- fi
- ;;
- os2*)
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_minus_L=yes
- allow_undefined_flag=unsupported
- archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
- old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
- ;;
+cat >>confdefs.h <<_ACEOF
+#define LT_OBJDIR "$lt_cv_objdir/"
+_ACEOF
- osf3*)
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- hardcode_libdir_separator=:
- ;;
- osf4* | osf5*) # as osf3* with the addition of -msym flag
- if test "$GCC" = yes; then
- allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
- archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
- hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
- else
- allow_undefined_flag=' -expect_unresolved \*'
- archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
- $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
- # Both c and cxx compiler support -rpath directly
- hardcode_libdir_flag_spec='-rpath $libdir'
- fi
- archive_cmds_need_lc='no'
- hardcode_libdir_separator=:
- ;;
- solaris*)
- no_undefined_flag=' -z defs'
- if test "$GCC" = yes; then
- wlarc='${wl}'
- archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- else
- case `$CC -V 2>&1` in
- *"Compilers 5.0"*)
- wlarc=''
- archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
- ;;
- *)
- wlarc='${wl}'
- archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
- $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
- ;;
- esac
- fi
- hardcode_libdir_flag_spec='-R$libdir'
- hardcode_shlibpath_var=no
- case $host_os in
- solaris2.[0-5] | solaris2.[0-5].*) ;;
- *)
- # The compiler driver will combine and reorder linker options,
- # but understands `-z linker_flag'. GCC discards it without `$wl',
- # but is careful enough not to reorder.
- # Supported since Solaris 2.6 (maybe 2.5.1?)
- if test "$GCC" = yes; then
- whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
- else
- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
- fi
- ;;
- esac
- link_all_deplibs=yes
- ;;
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
- sunos4*)
- if test "x$host_vendor" = xsequent; then
- # Use $CC to link under sequent, because it throws in some extra .o
- # files that make .init and .fini sections work.
- archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
- fi
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_direct=yes
- hardcode_minus_L=yes
- hardcode_shlibpath_var=no
- ;;
+# Global variables:
+ofile=libtool
+can_build_shared=yes
- sysv4)
- case $host_vendor in
- sni)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=yes # is this really true???
- ;;
- siemens)
- ## LD is ld it makes a PLAMLIB
- ## CC just makes a GrossModule.
- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
- reload_cmds='$CC -r -o $output$reload_objs'
- hardcode_direct=no
- ;;
- motorola)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_direct=no #Motorola manual says yes, but my tests say they lie
- ;;
- esac
- runpath_var='LD_RUN_PATH'
- hardcode_shlibpath_var=no
- ;;
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
- sysv4.3*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- export_dynamic_flag_spec='-Bexport'
- ;;
+with_gnu_ld="$lt_cv_prog_gnu_ld"
- sysv4*MP*)
- if test -d /usr/nec; then
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_shlibpath_var=no
- runpath_var=LD_RUN_PATH
- hardcode_runpath_var=yes
- ld_shlibs=yes
- fi
- ;;
+old_CC="$CC"
+old_CFLAGS="$CFLAGS"
- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
- no_undefined_flag='${wl}-z,text'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- runpath_var='LD_RUN_PATH'
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
+for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
- sysv5* | sco3.2v5* | sco5v6*)
- # Note: We can NOT use -z defs as we might desire, because we do not
- # link with -lc, and that would cause any symbols used from libc to
- # always be unresolved, which means just about no library would
- # ever link correctly. If we're not using GNU ld we use -z text
- # though, which does catch some bad symbols but isn't as heavy-handed
- # as -z defs.
- no_undefined_flag='${wl}-z,text'
- allow_undefined_flag='${wl}-z,nodefs'
- archive_cmds_need_lc=no
- hardcode_shlibpath_var=no
- hardcode_libdir_flag_spec='${wl}-R,$libdir'
- hardcode_libdir_separator=':'
- link_all_deplibs=yes
- export_dynamic_flag_spec='${wl}-Bexport'
- runpath_var='LD_RUN_PATH'
-
- if test "$GCC" = yes; then
- archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- else
- archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
- fi
- ;;
- uts4*)
- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
- hardcode_libdir_flag_spec='-L$libdir'
- hardcode_shlibpath_var=no
- ;;
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/${ac_tool_prefix}file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
- *)
- ld_shlibs=no
- ;;
- esac
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
- if test x$host_vendor = xsni; then
- case $host in
- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
- export_dynamic_flag_spec='${wl}-Blargedynsym'
- ;;
- esac
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
fi
- fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
+if ${lt_cv_path_MAGIC_CMD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD="$MAGIC_CMD"
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f $ac_dir/file; then
+ lt_cv_path_MAGIC_CMD="$ac_dir/file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool at gnu.org
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
- # Assume -lc should be added
- archive_cmds_need_lc=yes
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS="$lt_save_ifs"
+ MAGIC_CMD="$lt_save_MAGIC_CMD"
+ ;;
+esac
+fi
- if test "$enable_shared" = yes && test "$GCC" = yes; then
- case $archive_cmds in
- *'~'*)
- # FIXME: we may have to deal with multi-command sequences.
- ;;
- '$CC '*)
- # Test whether the compiler implicitly links with -lc since on some
- # systems, -lgcc has to come before -lc. If gcc already passes -lc
- # to ld, don't add -lc before -lgcc.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
- $as_echo_n "(cached) " >&6
+MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
+if test -n "$MAGIC_CMD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
else
- $RM conftest*
- echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } 2>conftest.err; then
- soname=conftest
- lib=conftest
- libobjs=conftest.$ac_objext
- deplibs=
- wl=$lt_prog_compiler_wl
- pic_flag=$lt_prog_compiler_pic
- compiler_flags=-v
- linker_flags=-v
- verstring=
- output_objdir=.
- libname=conftest
- lt_save_allow_undefined_flag=$allow_undefined_flag
- allow_undefined_flag=
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; }
- then
- lt_cv_archive_cmds_need_lc=no
- else
- lt_cv_archive_cmds_need_lc=yes
- fi
- allow_undefined_flag=$lt_save_allow_undefined_flag
- else
- cat conftest.err 1>&5
- fi
- $RM conftest*
+ else
+ MAGIC_CMD=:
+ fi
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
- ;;
- esac
+
fi
;;
esac
+# Use C for the default configuration in the libtool script
+lt_save_CC="$CC"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# Source file extension for C test sources.
+ac_ext=c
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
@@ -10751,62 +10044,458 @@ esac
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+# Allow CC to be a program name with arguments.
+compiler=$CC
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+lt_prog_compiler_no_builtin_flag=
+if test "$GCC" = yes; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+fi
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+ if test "$GCC" = yes; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ lt_prog_compiler_pic='-Xcompiler -fPIC'
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='${wl}-a ${wl}archive'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ # old Intel for x86_64 which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ F* | *Sun*Fortran*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec ;then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+$as_echo "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+fi
@@ -10818,8 +10507,46 @@ esac
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
+ :
+else
+ lt_prog_compiler_static=
+fi
@@ -10827,844 +10554,5383 @@ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ` (' and `)$', so one must not match beginning or
+ # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
+ # as well as any symbol that contains `d'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+ esac
+ ld_shlibs=yes
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test "$with_gnu_ld" = yes; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+ if test "$lt_use_gnu_ld_interface" = yes; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='${wl}'
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec='${wl}--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+_LT_EOF
+ fi
+ ;;
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='${wl}--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test "$host_os" = linux-dietlibc; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test "$tmp_diet" = no
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
- case $host_os in
- darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
- *) lt_awk_arg="/^libraries:/" ;;
- esac
- case $host_os in
- mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
- *) lt_sed_strip_eq="s,=/,/,g" ;;
- esac
- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
- case $lt_search_path_spec in
- *\;*)
- # if the path contains ";" then we assume it to be the separator
- # otherwise default to the standard path separator (i.e. ":") - it is
- # assumed that no part of a normal pathname contains ";" but that should
- # okay in the real world where ";" in dirpaths is itself problematic.
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
- ;;
- *)
- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
- ;;
- esac
- # Ok, now we have the path, separated by spaces, we can step through it
- # and add multilib dir if necessary.
- lt_tmp_lt_search_path_spec=
- lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
- for lt_sys_path in $lt_search_path_spec; do
- if test -d "$lt_sys_path/$lt_multi_os_dir"; then
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
- else
- test -d "$lt_sys_path" && \
- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
- fi
- done
- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
- lt_foo="";
- lt_count=0;
- for (lt_i = NF; lt_i > 0; lt_i--) {
- if ($lt_i != "" && $lt_i != ".") {
- if ($lt_i == "..") {
- lt_count++;
- } else {
- if (lt_count == 0) {
- lt_foo="/" $lt_i lt_foo;
- } else {
- lt_count--;
- }
- }
- }
- }
- if (lt_foo != "") { lt_freq[lt_foo]++; }
- if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
- # AWK program above erroneously prepends '/' to C:/dos/paths
- # for these hosts.
- case $host_os in
- mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
- $SED 's,/\([A-Za-z]:\),\1,g'` ;;
- esac
- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
- shlibpath_var=LIBPATH
-
- # AIX 3 has no versioning support, so we append a major version to the name.
- soname_spec='${libname}${release}${shared_ext}$major'
- ;;
-
-aix[4-9]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- hardcode_into_libs=yes
- if test "$host_cpu" = ia64; then
- # AIX 5 supports IA64
- library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- else
- # With GCC up to 2.95.x, collect2 would create an import file
- # for dependence libraries. The import file would start with
- # the line `#! .'. This would cause the generated library to
- # depend on `.', always an invalid library. This was fixed in
- # development snapshots of GCC prior to 3.0.
- case $host_os in
- aix4 | aix4.[01] | aix4.[01].*)
- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
- echo ' yes '
- echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
- :
+ case $cc_basename in
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_flag_spec_ld='-rpath $libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
else
- can_build_shared=no
+ ld_shlibs=no
fi
;;
- esac
- # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
- # soname into executable. Probably we can add versioning support to
- # collect2, so additional links can be useful in future.
- if test "$aix_use_runtimelinking" = yes; then
- # If using run time linking (on AIX 4.2 or later) use lib<name>.so
- # instead of lib<name>.a to let people know that these are not
- # typical AIX shared libraries.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- else
- # We preserve .a as extension for shared libraries through AIX4.2
- # and later when we are not doing run time linking.
- library_names_spec='${libname}${release}.a $libname.a'
- soname_spec='${libname}${release}${shared_ext}$major'
- fi
- shlibpath_var=LIBPATH
- fi
- ;;
-amigaos*)
- case $host_cpu in
- powerpc)
- # Since July 2007 AmigaOS4 officially supports .so libraries.
- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- ;;
- m68k)
- library_names_spec='$libname.ixlibrary $libname.a'
- # Create ${libname}_ixlibrary.a entries in /sys/libs.
- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
- ;;
- esac
- ;;
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
-beos*)
- library_names_spec='${libname}${shared_ext}'
- dynamic_linker="$host_os ld.so"
- shlibpath_var=LIBRARY_PATH
- ;;
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
-bsdi[45]*)
- version_type=linux
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
- # the default ld.so.conf also contains /usr/contrib/lib and
- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
- # libtool to hard-code these into programs
- ;;
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
-cygwin* | mingw* | pw32* | cegcc*)
- version_type=windows
- shrext_cmds=".dll"
- need_version=no
- need_lib_prefix=no
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
- case $GCC,$cc_basename in
- yes,*)
- # gcc
- library_names_spec='$libname.dll.a'
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname~
- chmod a+x \$dldir/$dlname~
- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
- fi'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
- case $host_os in
- cygwin*)
- # Cygwin DLLs use 'cyg' prefix rather than 'lib'
- soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
- ;;
- mingw* | cegcc*)
- # MinGW DLLs use traditional 'lib' prefix
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- ;;
- pw32*)
- # pw32 DLLs use 'pw' prefix rather than 'lib'
- library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
;;
- esac
- dynamic_linker='Win32 ld.exe'
- ;;
-
- *,cl*)
- # Native MSVC
- libname_spec='$name'
- soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- library_names_spec='${libname}.dll.lib'
- case $build_os in
- mingw*)
- sys_lib_search_path_spec=
- lt_save_ifs=$IFS
- IFS=';'
- for lt_path in $LIB
- do
- IFS=$lt_save_ifs
- # Let DOS variable expansion print the short 8.3 style file name.
- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
- done
- IFS=$lt_save_ifs
- # Convert to MSYS style.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
- ;;
- cygwin*)
- # Convert to unix form, then to dos form, then back to unix form
- # but this time dos style (no spaces!) so that the unix form looks
- # like /cygdrive/c/PROGRA~1:/cygdr...
- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
;;
+
*)
- sys_lib_search_path_spec="$LIB"
- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
- # It is most probably a Windows format PATH.
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
else
- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ld_shlibs=no
fi
- # FIXME: find the short name or the path components, as spaces are
- # common. (e.g. "Program Files" -> "PROGRA~1")
;;
esac
- # DLL is installed to $(libdir)/../bin by postinstall_cmds
- postinstall_cmds='base_file=`basename \${file}`~
- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
- dldir=$destdir/`dirname \$dlpath`~
- test -d \$dldir || mkdir -p \$dldir~
- $install_prog $dir/$dlname \$dldir/$dlname'
- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
- dlpath=$dir/\$dldll~
- $RM \$dlpath'
- shlibpath_overrides_runpath=yes
- dynamic_linker='Win32 link.exe'
- ;;
+ if test "$ld_shlibs" = no; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
- *)
- # Assume MSVC wrapper
- library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
- dynamic_linker='Win32 ld.exe'
- ;;
- esac
- # FIXME: first we should search . and the directory the executable is in
- shlibpath_var=PATH
- ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ # Also, AIX nm treats weak defined symbols like other global
+ # defined symbols, whereas GNU nm marks them as "W".
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
-darwin* | rhapsody*)
- dynamic_linker="$host_os dyld"
- version_type=darwin
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
- soname_spec='${libname}${release}${major}$shared_ext'
- shlibpath_overrides_runpath=yes
- shlibpath_var=DYLD_LIBRARY_PATH
- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
- ;;
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
-dgux*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-freebsd1*)
- dynamic_linker=no
- ;;
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='${wl}-f,'
-freebsd* | dragonfly*)
- # DragonFly does not have aout. When/if they implement a new
- # versioning mechanism, adjust this.
- if test -x /usr/bin/objformat; then
- objformat=`/usr/bin/objformat`
- else
- case $host_os in
- freebsd[123]*) objformat=aout ;;
- *) objformat=elf ;;
- esac
- fi
- version_type=freebsd-$objformat
- case $version_type in
- freebsd-elf*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- need_version=no
- need_lib_prefix=no
- ;;
- freebsd-*)
- library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
- need_version=yes
- ;;
- esac
- shlibpath_var=LD_LIBRARY_PATH
- case $host_os in
- freebsd2*)
- shlibpath_overrides_runpath=yes
- ;;
- freebsd3.[01]* | freebsdelf3.[01]*)
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
- *) # from 4.6 on, and DragonFly
- shlibpath_overrides_runpath=yes
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test "${lt_cv_aix_libpath+set}" = set; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_="/usr/lib:/lib"
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test "${lt_cv_aix_libpath+set}" = set; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath_+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_="/usr/lib:/lib"
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' ${wl}-bernotok'
+ allow_undefined_flag=' ${wl}-berok'
+ if test "$with_gnu_ld" = yes; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl*)
+ # Native MSVC
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ file_list_spec='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+ archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+ else
+ sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ old_postinstall_cmds='chmod 644 $oldlib'
+ postlink_cmds='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile="$lt_outputfile.exe"
+ lt_tool_outputfile="$lt_tool_outputfile.exe"
+ ;;
+ esac~
+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ enable_shared_with_static_runtimes=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test "$lt_cv_ld_force_load" = "yes"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly*)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test "$GCC" = yes; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='${wl}-E'
+ ;;
+
+ hpux10*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_flag_spec_ld='+b $libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test "$GCC" = yes && test "$with_gnu_ld" = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+$as_echo_n "checking if $CC understands -b... " >&6; }
+if ${lt_cv_prog_compiler__b+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+$as_echo "$lt_cv_prog_compiler__b" >&6; }
+
+if test x"$lt_cv_prog_compiler__b" = xyes; then
+ archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='${wl}-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if ${lt_cv_irix_exported_symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ lt_cv_irix_exported_symbol=yes
+else
+ lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS="$save_LDFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+$as_echo "$lt_cv_irix_exported_symbol" >&6; }
+ if test "$lt_cv_irix_exported_symbol" = yes; then
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
+ fi
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec='${wl}-E'
+ else
+ case $host_os in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
+ old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
+ ;;
+
+ osf3*)
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test "$GCC" = yes; then
+ allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test "$GCC" = yes; then
+ wlarc='${wl}'
+ archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='${wl}'
+ archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'. GCC discards it without `$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test "$GCC" = yes; then
+ whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test "x$host_vendor" = xsequent; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='${wl}-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='${wl}-z,text'
+ allow_undefined_flag='${wl}-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='${wl}-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test "$GCC" = yes; then
+ archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test x$host_vendor = xsni; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='${wl}-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
+test "$ld_shlibs" = no && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+
+if test "$GCC" = yes; then
+ case $host_os in
+ darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
+ *) lt_awk_arg="/^libraries:/" ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
+ *) lt_sed_strip_eq="s,=/,/,g" ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary.
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path/$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
+ else
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS=" "; FS="/|\n";} {
+ lt_foo="";
+ lt_count=0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo="/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's,/\([A-Za-z]:\),\1,g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ library_names_spec='${libname}.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec="$LIB"
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd1*)
+ dynamic_linker=no
+ ;;
+
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
+
+haiku*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Add ABI-specific directories to the system library path.
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
+
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
+
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test "X$hardcode_automatic" = "Xyes" ; then
+
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
+ test "$hardcode_minus_L" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
+
+if test "$hardcode_action" = relink ||
+ test "$inherit_rpath" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test "x$enable_dlopen" != xyes; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen="load_add_on"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen="LoadLibrary"
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen="dlopen"
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+
+ lt_cv_dlopen="dyld"
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes; then :
+ lt_cv_dlopen="shl_load"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
+if ${ac_cv_lib_dld_shl_load+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char shl_load ();
+int
+main ()
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_shl_load=yes
+else
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
+ lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
+else
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes; then :
+ lt_cv_dlopen="dlopen"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
+if ${ac_cv_lib_dl_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dl_dlopen=yes
+else
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
+if ${ac_cv_lib_svld_dlopen+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dlopen ();
+int
+main ()
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_svld_dlopen=yes
+else
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
+ lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
+if ${ac_cv_lib_dld_dld_link+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char dld_link ();
+int
+main ()
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_dld_dld_link=yes
+else
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
+ lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test "x$lt_cv_dlopen" != xno; then
+ enable_dlopen=yes
+ else
+ enable_dlopen=no
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS="$CPPFLAGS"
+ test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS="$LDFLAGS"
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS="$LIBS"
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
+
+ if test "x$lt_cv_dlopen_self" = xyes; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
+if ${lt_cv_dlopen_self_static+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisbility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ LIBS="$save_LIBS"
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
+if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
+ test -z "$striplib" && striplib="$STRIP --strip-unneeded"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+# FIXME - insert some real tests, host_os isn't really good enough
+ case $host_os in
+ darwin*)
+ if test -n "$STRIP" ; then
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ fi
+ ;;
+ *)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report which library types will actually be built
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
+ test "$can_build_shared" = "no" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test "$enable_shared" = yes && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
+ test "$enable_shared" = yes && enable_static=no
+ fi
+ ;;
+ esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+$as_echo_n "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test "$enable_shared" = yes || enable_static=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC="$lt_save_CC"
+
+ if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
+ ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
+ (test "X$CXX" != "Xg++"))) ; then
+ ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
+if test -z "$CXXCPP"; then
+ if ${ac_cv_prog_CXXCPP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Double quotes because CXXCPP needs to be expanded
+ for CXXCPP in "$CXX -E" "/lib/cpp"
+ do
+ ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CXXCPP=$CXXCPP
+
+fi
+ CXXCPP=$ac_cv_prog_CXXCPP
+else
+ ac_cv_prog_CXXCPP=$CXXCPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
+ac_preproc_ok=false
+for ac_cxx_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_cxx_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+else
+ _lt_caught_CXX_error=yes
+fi
+
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+archive_cmds_need_lc_CXX=no
+allow_undefined_flag_CXX=
+always_export_symbols_CXX=no
+archive_expsym_cmds_CXX=
+compiler_needs_object_CXX=no
+export_dynamic_flag_spec_CXX=
+hardcode_direct_CXX=no
+hardcode_direct_absolute_CXX=no
+hardcode_libdir_flag_spec_CXX=
+hardcode_libdir_flag_spec_ld_CXX=
+hardcode_libdir_separator_CXX=
+hardcode_minus_L_CXX=no
+hardcode_shlibpath_var_CXX=unsupported
+hardcode_automatic_CXX=no
+inherit_rpath_CXX=no
+module_cmds_CXX=
+module_expsym_cmds_CXX=
+link_all_deplibs_CXX=unknown
+old_archive_cmds_CXX=$old_archive_cmds
+reload_flag_CXX=$reload_flag
+reload_cmds_CXX=$reload_cmds
+no_undefined_flag_CXX=
+whole_archive_flag_spec_CXX=
+enable_shared_with_static_runtimes_CXX=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+objext_CXX=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test "$_lt_caught_CXX_error" != yes; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="int some_variable = 0;"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+ # save warnings/boilerplate of simple test code
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_CFLAGS=$CFLAGS
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+ lt_save_with_gnu_ld=$with_gnu_ld
+ lt_save_path_LD=$lt_cv_path_LD
+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+ else
+ $as_unset lt_cv_prog_gnu_ld
+ fi
+ if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+ else
+ $as_unset lt_cv_path_LD
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
+ CFLAGS=$CXXFLAGS
+ compiler=$CC
+ compiler_CXX=$CC
+ for cc_temp in $compiler""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+
+
+ if test -n "$compiler"; then
+ # We don't want -fno-exception when compiling C++ code, so set the
+ # no_builtin_flag separately
+ if test "$GXX" = yes; then
+ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
+ else
+ lt_prog_compiler_no_builtin_flag_CXX=
+ fi
+
+ if test "$GXX" = yes; then
+ # Set up default GNU C++ configuration
+
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+$as_echo_n "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
;;
esac
- ;;
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${lt_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$lt_save_ifs"
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break
+ ;;
+ *)
+ test "$with_gnu_ld" != yes && break
+ ;;
+ esac
+ fi
+ done
+ IFS="$lt_save_ifs"
+else
+ lt_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$lt_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${lt_cv_prog_gnu_ld+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test "$with_gnu_ld" = yes; then
+ archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='${wl}'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ else
+ whole_archive_flag_spec_CXX=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+ else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+ fi
+
+ # PORTME: fill in a description of your system's C++ link characteristics
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ ld_shlibs_CXX=yes
+ case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=""
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds_CXX=''
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ file_list_spec_CXX='${wl}-f,'
+
+ if test "$GXX" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct_CXX=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L_CXX=yes
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ hardcode_libdir_separator_CXX=
+ fi
+ esac
+ shared_flag='-shared'
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag="$shared_flag "'${wl}-G'
+ fi
+ else
+ # not using gcc
+ if test "$host_cpu" = ia64; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test "$aix_use_runtimelinking" = yes; then
+ shared_flag='${wl}-G'
+ else
+ shared_flag='${wl}-bM:SRE'
+ fi
+ fi
+ fi
+
+ export_dynamic_flag_spec_CXX='${wl}-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to
+ # export.
+ always_export_symbols_CXX=yes
+ if test "$aix_use_runtimelinking" = yes; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag_CXX='-berok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+ if test "${lt_cv_aix_libpath+set}" = set; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath__CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath__CXX"; then
+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath__CXX"; then
+ lt_cv_aix_libpath__CXX="/usr/lib:/lib"
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath__CXX
+fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+
+ archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag_CXX="-z nodefs"
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test "${lt_cv_aix_libpath+set}" = set; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if ${lt_cv_aix_libpath__CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_cxx_try_link "$LINENO"; then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath__CXX"; then
+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath__CXX"; then
+ lt_cv_aix_libpath__CXX="/usr/lib:/lib"
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath__CXX
+fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag_CXX=' ${wl}-bernotok'
+ allow_undefined_flag_CXX=' ${wl}-berok'
+ if test "$with_gnu_ld" = yes; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec_CXX='$convenience'
+ fi
+ archive_cmds_need_lc_CXX=yes
+ # This is similar to how AIX traditionally builds its shared
+ # libraries.
+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag_CXX=unsupported
+ # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ case $GXX,$cc_basename in
+ ,cl* | no,cl*)
+ # Native MSVC
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec_CXX=' '
+ allow_undefined_flag_CXX=unsupported
+ always_export_symbols_CXX=yes
+ file_list_spec_CXX='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=".dll"
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
+ else
+ $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
+ enable_shared_with_static_runtimes_CXX=yes
+ # Don't use ranlib
+ old_postinstall_cmds_CXX='chmod 644 $oldlib'
+ postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile="$lt_outputfile.exe"
+ lt_tool_outputfile="$lt_tool_outputfile.exe"
+ ;;
+ esac~
+ func_to_tool_file "$lt_outputfile"~
+ if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # g++
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec_CXX='-L$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
+ allow_undefined_flag_CXX=unsupported
+ always_export_symbols_CXX=no
+ enable_shared_with_static_runtimes_CXX=yes
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file (1st line
+ # is EXPORTS), use it as is; otherwise, prepend...
+ archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc_CXX=no
+ hardcode_direct_CXX=no
+ hardcode_automatic_CXX=yes
+ hardcode_shlibpath_var_CXX=unsupported
+ if test "$lt_cv_ld_force_load" = "yes"; then
+ whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+ else
+ whole_archive_flag_spec_CXX=''
+ fi
+ link_all_deplibs_CXX=yes
+ allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+ case $cc_basename in
+ ifort*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test "$_lt_dar_can_shared" = "yes"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+ module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
+ module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
+ if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+ archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
+ archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
+ fi
-gnu*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- hardcode_into_libs=yes
- ;;
+ else
+ ld_shlibs_CXX=no
+ fi
-haiku*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- dynamic_linker="$host_os runtime_loader"
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
- hardcode_into_libs=yes
- ;;
+ ;;
-hpux9* | hpux10* | hpux11*)
- # Give a soname corresponding to the major version so that dld.sl refuses to
- # link against other versions.
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- case $host_cpu in
- ia64*)
- shrext_cmds='.so'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.so"
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- if test "X$HPUX_IA64_MODE" = X32; then
- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
- else
- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ freebsd[12]*)
+ # C++ shared libraries reported to be fairly broken before
+ # switch to ELF
+ ld_shlibs_CXX=no
+ ;;
+
+ freebsd-elf*)
+ archive_cmds_need_lc_CXX=no
+ ;;
+
+ freebsd* | dragonfly*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ ld_shlibs_CXX=yes
+ ;;
+
+ gnu*)
+ ;;
+
+ haiku*)
+ archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ link_all_deplibs_CXX=yes
+ ;;
+
+ hpux9*)
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ hardcode_direct_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ hpux10*|hpux11*)
+ if test $with_gnu_ld = no; then
+ hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ ;;
+ *)
+ hardcode_direct_CXX=yes
+ hardcode_direct_absolute_CXX=yes
+ hardcode_minus_L_CXX=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test $with_gnu_ld = no; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test "$GXX" = yes; then
+ if test "$with_gnu_ld" = no; then
+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ else
+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
+ fi
+ fi
+ link_all_deplibs_CXX=yes
+ ;;
+ esac
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+ inherit_rpath_CXX=yes
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc* | ecpc* )
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ archive_cmds_need_lc_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ case `$CC -V` in
+ *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
+ prelink_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ old_archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ $RANLIB $oldlib'
+ archive_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ *) # Version 6 and above use weak symbols
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+ ;;
+ xl* | mpixl* | bgxl*)
+ # IBM XL 8.0 on PPC, with GNU ld
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
+ archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
+ if test "x$supports_anon_versioning" = xyes; then
+ archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
+ compiler_needs_object_CXX=yes
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ m88k*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+
+ *nto* | *qnx*)
+ ld_shlibs_CXX=yes
+ ;;
+
+ openbsd2*)
+ # C++ shared libraries are fairly broken
+ ld_shlibs_CXX=no
+ ;;
+
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct_CXX=yes
+ hardcode_shlibpath_var_CXX=no
+ hardcode_direct_absolute_CXX=yes
+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
+ export_dynamic_flag_spec_CXX='${wl}-E'
+ whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
+ fi
+ output_verbose_link_cmd=func_echo_all
+ else
+ ld_shlibs_CXX=no
+ fi
+ ;;
+
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ case $host in
+ osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
+ *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
+ esac
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ cxx*)
+ case $host in
+ osf3*)
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ ;;
+ *)
+ allow_undefined_flag_CXX=' -expect_unresolved \*'
+ archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
+ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
+ $RM $lib.exp'
+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'
+ ;;
+ esac
+
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
+ case $host in
+ osf3*)
+ archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
+ ;;
+ esac
+
+ hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator_CXX=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ fi
+ ;;
+ esac
+ ;;
+
+ psos*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ archive_cmds_need_lc_CXX=yes
+ no_undefined_flag_CXX=' -zdefs'
+ archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ hardcode_libdir_flag_spec_CXX='-R$libdir'
+ hardcode_shlibpath_var_CXX=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands `-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ link_all_deplibs_CXX=yes
+
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test "$GXX" = yes && test "$with_gnu_ld" = no; then
+ no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ else
+ # g++ 2.7 appears to require `-G' NOT `-shared' on this
+ # platform.
+ archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+ fi
+
+ hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag_CXX='${wl}-z,text'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We can NOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag_CXX='${wl}-z,text'
+ allow_undefined_flag_CXX='${wl}-z,nodefs'
+ archive_cmds_need_lc_CXX=no
+ hardcode_shlibpath_var_CXX=no
+ hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
+ hardcode_libdir_separator_CXX=':'
+ link_all_deplibs_CXX=yes
+ export_dynamic_flag_spec_CXX='${wl}-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
+ '"$old_archive_cmds_CXX"
+ reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
+ '"$reload_cmds_CXX"
+ ;;
+ *)
+ archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+ ;;
+
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+
+ *)
+ # FIXME: insert proper C++ library support
+ ld_shlibs_CXX=no
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+ test "$ld_shlibs_CXX" = no && can_build_shared=no
+
+ GCC_CXX="$GXX"
+ LD_CXX="$LD"
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ # Dependencies to place before and after the object being linked:
+predep_objects_CXX=
+postdep_objects_CXX=
+predeps_CXX=
+postdeps_CXX=
+compiler_lib_search_path_CXX=
+
+cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+_LT_EOF
+
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+esac
+
+if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case ${prev}${p} in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test $p = "-L" ||
+ test $p = "-R"; then
+ prev=$p
+ continue
+ fi
+
+ # Expand the sysroot to ease extracting the directories later.
+ if test -z "$prev"; then
+ case $p in
+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+ esac
+ fi
+ case $p in
+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+ esac
+ if test "$pre_test_object_deps_done" = no; then
+ case ${prev} in
+ -L | -R)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$compiler_lib_search_path_CXX"; then
+ compiler_lib_search_path_CXX="${prev}${p}"
+ else
+ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$postdeps_CXX"; then
+ postdeps_CXX="${prev}${p}"
+ else
+ postdeps_CXX="${postdeps_CXX} ${prev}${p}"
+ fi
+ fi
+ prev=
+ ;;
+
+ *.lto.$objext) ;; # Ignore GCC LTO objects
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test "$pre_test_object_deps_done" = no; then
+ if test -z "$predep_objects_CXX"; then
+ predep_objects_CXX="$p"
+ else
+ predep_objects_CXX="$predep_objects_CXX $p"
+ fi
+ else
+ if test -z "$postdep_objects_CXX"; then
+ postdep_objects_CXX="$p"
+ else
+ postdep_objects_CXX="$postdep_objects_CXX $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling CXX test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+case $host_os in
+interix[3-9]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ predep_objects_CXX=
+ postdep_objects_CXX=
+ postdeps_CXX=
+ ;;
+
+linux*)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
fi
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- hppa*64*)
- shrext_cmds='.sl'
- hardcode_into_libs=yes
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
- ;;
- *)
- shrext_cmds='.sl'
- dynamic_linker="$host_os dld.sl"
- shlibpath_var=SHLIB_PATH
- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
;;
esac
- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
- postinstall_cmds='chmod 555 $lib'
- # or fails outright, so override atomically:
- install_override_mode=555
;;
-interix[3-9]*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
+solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # The more standards-conforming stlport4 library is
+ # incompatible with the Cstd library. Avoid specifying
+ # it if it's in CXXFLAGS. Ignore libCrun as
+ # -library=stlport4 depends on it.
+ case " $CXX $CXXFLAGS " in
+ *" -library=stlport4 "*)
+ solaris_use_stlport4=yes
+ ;;
+ esac
+
+ # Adding this requires a known-good setup of shared libraries for
+ # Sun compiler versions before 5.6, else PIC objects from an old
+ # archive will be linked into the output, leading to subtle bugs.
+ if test "$solaris_use_stlport4" != yes; then
+ postdeps_CXX='-library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
;;
+esac
-irix5* | irix6* | nonstopux*)
- case $host_os in
- nonstopux*) version_type=nonstopux ;;
+
+case " $postdeps_CXX " in
+*" -lc "*) archive_cmds_need_lc_CXX=no ;;
+esac
+ compiler_lib_search_dirs_CXX=
+if test -n "${compiler_lib_search_path_CXX}"; then
+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lt_prog_compiler_wl_CXX=
+lt_prog_compiler_pic_CXX=
+lt_prog_compiler_static_CXX=
+
+
+ # C++ specific cases for pic, static, wl, etc.
+ if test "$GXX" = yes; then
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the `-m68020' flag to GCC prevents building anything better,
+ # like `-m68040'.
+ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic_CXX='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ lt_prog_compiler_pic_CXX=
+ ;;
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static_CXX=
+ ;;
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic_CXX=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
*)
- if test "$lt_cv_prog_gnu_ld" = yes; then
- version_type=linux
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[4-9]*)
+ # All AIX code is PIC.
+ if test "$host_cpu" = ia64; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static_CXX='-Bstatic'
else
- version_type=irix
- fi ;;
- esac
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
- case $host_os in
- irix5* | nonstopux*)
- libsuff= shlibsuff=
+ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ if test "$host_cpu" != ia64; then
+ lt_prog_compiler_pic_CXX='+Z'
+ fi
+ ;;
+ aCC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic_CXX='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_static_CXX='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ ;;
+ ecpc* )
+ # old Intel C++ for x86_64 which still supported -KPIC.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ icpc* )
+ # Intel C++, used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fPIC'
+ lt_prog_compiler_static_CXX='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-fpic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
+ # IBM XL 8.0, 9.0 on PPC and BlueGene
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-qpic'
+ lt_prog_compiler_static_CXX='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ lt_prog_compiler_pic_CXX='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd*)
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic_CXX='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ lt_prog_compiler_wl_CXX='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ lt_prog_compiler_wl_CXX='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_static_CXX='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ lt_prog_compiler_wl_CXX='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ lt_prog_compiler_pic_CXX='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ lt_prog_compiler_pic_CXX='-pic'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ lt_prog_compiler_pic_CXX='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ lt_prog_compiler_wl_CXX='-Wl,'
+ lt_prog_compiler_pic_CXX='-KPIC'
+ lt_prog_compiler_static_CXX='-Bstatic'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ lt_prog_compiler_pic_CXX='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ lt_prog_compiler_can_build_shared_CXX=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms which do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic_CXX=
;;
*)
- case $LD in # libtool.m4 will add one of these switches to LD
- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
- libsuff= shlibsuff= libmagic=32-bit;;
- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
- libsuff=32 shlibsuff=N32 libmagic=N32;;
- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
- libsuff=64 shlibsuff=64 libmagic=64-bit;;
- *) libsuff= shlibsuff= libmagic=never-match;;
- esac
+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
;;
- esac
- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
- sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
- hardcode_into_libs=yes
- ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
- dynamic_linker=no
- ;;
-
-# This must be Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
+esac
- # Some binutils ld are patched to set DT_RUNPATH
- if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
+if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
$as_echo_n "(cached) " >&6
else
- lt_cv_shlibpath_overrides_runpath=no
- save_LDFLAGS=$LDFLAGS
- save_libdir=$libdir
- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
+ lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
+lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
-int
-main ()
-{
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
+if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_pic_works_CXX=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works_CXX=yes
+ fi
+ fi
+ $RM conftest*
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
- lt_cv_shlibpath_overrides_runpath=yes
-fi
fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
- LDFLAGS=$save_LDFLAGS
- libdir=$save_libdir
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
+ case $lt_prog_compiler_pic_CXX in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
+ esac
+else
+ lt_prog_compiler_pic_CXX=
+ lt_prog_compiler_can_build_shared_CXX=no
fi
- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
- # This implies no fast_install, which is unacceptable.
- # Some rework will be needed to allow for fast_install
- # before this can be enabled.
- hardcode_into_libs=yes
-
- # Add ABI-specific directories to the system library path.
- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
-
- # Append ld.so.conf contents to the search path
- if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-
- fi
-
- # We used to test for /lib/ld.so.1 and disable shared libraries on
- # powerpc, because MkLinux only supported shared libraries with the
- # GNU dynamic linker. Since this was broken with cross compilers,
- # most powerpc-linux boxes support dynamic linking these days and
- # people can always --disable-shared, the test was removed, and we
- # assume the GNU/Linux dynamic linker is in use.
- dynamic_linker='GNU/Linux ld.so'
- ;;
-
-netbsd*)
- version_type=sunos
- need_lib_prefix=no
- need_version=no
- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- dynamic_linker='NetBSD (a.out) ld.so'
- else
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- dynamic_linker='NetBSD ld.elf_so'
- fi
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- ;;
-
-newsos6)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- ;;
-
-*nto* | *qnx*)
- version_type=qnx
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- dynamic_linker='ldqnx.so'
- ;;
-
-openbsd*)
- version_type=sunos
- sys_lib_dlsearch_path_spec="/usr/lib"
- need_lib_prefix=no
- # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
- case $host_os in
- openbsd3.3 | openbsd3.3.*) need_version=yes ;;
- *) need_version=no ;;
- esac
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
- case $host_os in
- openbsd2.[89] | openbsd2.[89].*)
- shlibpath_overrides_runpath=no
- ;;
- *)
- shlibpath_overrides_runpath=yes
- ;;
- esac
- else
- shlibpath_overrides_runpath=yes
- fi
- ;;
+fi
-os2*)
- libname_spec='$name'
- shrext_cmds=".dll"
- need_lib_prefix=no
- library_names_spec='$libname${shared_ext} $libname.a'
- dynamic_linker='OS/2 ld.exe'
- shlibpath_var=LIBPATH
- ;;
-osf3* | osf4* | osf5*)
- version_type=osf
- need_lib_prefix=no
- need_version=no
- soname_spec='${libname}${release}${shared_ext}$major'
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
- sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
- ;;
-rdos*)
- dynamic_linker=no
- ;;
-solaris*)
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- # ldd complains unless libraries are executable
- postinstall_cmds='chmod +x $lib'
- ;;
-sunos4*)
- version_type=sunos
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- if test "$with_gnu_ld" = yes; then
- need_lib_prefix=no
- fi
- need_version=yes
- ;;
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_static_works_CXX=no
+ save_LDFLAGS="$LDFLAGS"
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works_CXX=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS="$save_LDFLAGS"
-sysv4 | sysv4.3*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- case $host_vendor in
- sni)
- shlibpath_overrides_runpath=no
- need_lib_prefix=no
- runpath_var=LD_RUN_PATH
- ;;
- siemens)
- need_lib_prefix=no
- ;;
- motorola)
- need_lib_prefix=no
- need_version=no
- shlibpath_overrides_runpath=no
- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
- ;;
- esac
- ;;
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-sysv4*MP*)
- if test -d /usr/nec ;then
- version_type=linux
- library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
- soname_spec='$libname${shared_ext}.$major'
- shlibpath_var=LD_LIBRARY_PATH
- fi
- ;;
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
+ :
+else
+ lt_prog_compiler_static_CXX=
+fi
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
- version_type=freebsd-elf
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=yes
- hardcode_into_libs=yes
- if test "$with_gnu_ld" = yes; then
- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
- else
- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
- case $host_os in
- sco3.2v5*)
- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
- ;;
- esac
- fi
- sys_lib_dlsearch_path_spec='/usr/lib'
- ;;
-tpf*)
- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
- version_type=linux
- need_lib_prefix=no
- need_version=no
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- shlibpath_var=LD_LIBRARY_PATH
- shlibpath_overrides_runpath=no
- hardcode_into_libs=yes
- ;;
-uts4*)
- version_type=linux
- library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
- soname_spec='${libname}${release}${shared_ext}$major'
- shlibpath_var=LD_LIBRARY_PATH
- ;;
-*)
- dynamic_linker=no
- ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
- sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
- sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ lt_cv_prog_compiler_c_o_CXX=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o_CXX=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
+hard_links="nottested"
+if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
+ # do not overwrite the value of need_locks provided by the user
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
+ if test "$hard_links" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ case $host_os in
+ aix[4-9]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to AIX nm, but means don't demangle with GNU nm
+ # Also, AIX nm treats weak defined symbols like other global defined
+ # symbols, whereas GNU nm marks them as "W".
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ export_symbols_cmds_CXX="$ltdll_cmds"
+ ;;
+ cygwin* | mingw* | cegcc*)
+ case $cc_basename in
+ cl*) ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+ ;;
+ esac
+ ;;
+ *)
+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
+test "$ld_shlibs_CXX" = no && can_build_shared=no
+with_gnu_ld_CXX=$with_gnu_ld
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc_CXX" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc_CXX=yes
+ if test "$enable_shared" = yes && test "$GCC" = yes; then
+ case $archive_cmds_CXX in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
+if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl_CXX
+ pic_flag=$lt_prog_compiler_pic_CXX
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
+ allow_undefined_flag_CXX=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc_CXX=no
+ else
+ lt_cv_archive_cmds_need_lc_CXX=yes
+ fi
+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
+$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
+ archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
+ ;;
+ esac
+ fi
+ ;;
+esac
@@ -11729,564 +15995,707 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=".so"
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+case $host_os in
+aix3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+aix[4-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test "$host_cpu" = ia64; then
+ # AIX 5 supports IA64
+ library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line `#! .'. This would cause the generated library to
+ # depend on `.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ if test "$aix_use_runtimelinking" = yes; then
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ else
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='${libname}${release}.a $libname.a'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ fi
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+beos*)
+ library_names_spec='${libname}${shared_ext}'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+bsdi[45]*)
+ version_type=linux
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=".dll"
+ need_version=no
+ need_lib_prefix=no
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
- test -n "$runpath_var" ||
- test "X$hardcode_automatic" = "Xyes" ; then
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
- # We can hardcode non-existent directories.
- if test "$hardcode_direct" != no &&
- # If the only mechanism to avoid hardcoding is shlibpath_var, we
- # have to relink, otherwise we might link with an installed library
- # when we should be linking with a yet-to-be-installed one
- ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
- test "$hardcode_minus_L" != no; then
- # Linking always hardcodes the temporary library directory.
- hardcode_action=relink
- else
- # We can link without hardcoding, and we can hardcode nonexisting dirs.
- hardcode_action=immediate
- fi
-else
- # We cannot hardcode anything, or else we can only hardcode existing
- # directories.
- hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
+ *,cl*)
+ # Native MSVC
+ libname_spec='$name'
+ soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
+ library_names_spec='${libname}.dll.lib'
-if test "$hardcode_action" = relink ||
- test "$inherit_rpath" = yes; then
- # Fast installation is not supported
- enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
- test "$enable_shared" = no; then
- # Fast installation is not necessary
- enable_fast_install=needless
-fi
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec="$LIB"
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \${file}`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+ *)
+ # Assume MSVC wrapper
+ library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
+ soname_spec='${libname}${release}${major}$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+dgux*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
- if test "x$enable_dlopen" != xyes; then
- enable_dlopen=unknown
- enable_dlopen_self=unknown
- enable_dlopen_self_static=unknown
-else
- lt_cv_dlopen=no
- lt_cv_dlopen_libs=
+freebsd1*)
+ dynamic_linker=no
+ ;;
+freebsd* | dragonfly*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[123]*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
case $host_os in
- beos*)
- lt_cv_dlopen="load_add_on"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
+ freebsd2*)
+ shlibpath_overrides_runpath=yes
;;
-
- mingw* | pw32* | cegcc*)
- lt_cv_dlopen="LoadLibrary"
- lt_cv_dlopen_libs=
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
;;
-
- cygwin*)
- lt_cv_dlopen="dlopen"
- lt_cv_dlopen_libs=
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
;;
+ esac
+ ;;
- darwin*)
- # if libdl is installed we need to link against it
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
+gnu*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ hardcode_into_libs=yes
+ ;;
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
+haiku*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
- lt_cv_dlopen="dyld"
- lt_cv_dlopen_libs=
- lt_cv_dlopen_self=yes
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ if test "X$HPUX_IA64_MODE" = X32; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ fi
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
-fi
+interix[3-9]*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test "$lt_cv_prog_gnu_ld" = yes; then
+ version_type=linux
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
;;
-
*)
- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+ sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+# This must be Linux ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_shl_load=yes
-else
- ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
- lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
- ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
+ # Some binutils ld are patched to set DT_RUNPATH
+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
$as_echo_n "(cached) " >&6
else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
int
main ()
{
-return dlopen ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dl_dlopen=yes
-else
- ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
;
return 0;
}
_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_svld_dlopen=yes
-else
- ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
+if ac_fn_cxx_try_link "$LINENO"; then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
+ lt_cv_shlibpath_overrides_runpath=yes
fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
- lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h. */
-
-/* Override any GCC internal prototype to avoid an error.
- Use char because int might match the return type of a GCC
- builtin and then its argument prototype would still apply. */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
- ;
- return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
- ac_cv_lib_dld_dld_link=yes
-else
- ac_cv_lib_dld_dld_link=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
- lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
fi
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-fi
-
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
-fi
+ # Add ABI-specific directories to the system library path.
+ sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"
+ # Append ld.so.conf contents to the search path
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"
-fi
+ fi
- ;;
- esac
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
- if test "x$lt_cv_dlopen" != xno; then
- enable_dlopen=yes
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
else
- enable_dlopen=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ dynamic_linker='NetBSD ld.elf_so'
fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
- case $lt_cv_dlopen in
- dlopen)
- save_CPPFLAGS="$CPPFLAGS"
- test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
- save_LDFLAGS="$LDFLAGS"
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+newsos6)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
- save_LIBS="$LIBS"
- LIBS="$lt_cv_dlopen_libs $LIBS"
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
+openbsd*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec="/usr/lib"
+ need_lib_prefix=no
+ # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
+ case $host_os in
+ openbsd3.3 | openbsd3.3.*) need_version=yes ;;
+ *) need_version=no ;;
+ esac
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ case $host_os in
+ openbsd2.[89] | openbsd2.[89].*)
+ shlibpath_overrides_runpath=no
+ ;;
+ *)
+ shlibpath_overrides_runpath=yes
+ ;;
+ esac
+ else
+ shlibpath_overrides_runpath=yes
+ fi
+ ;;
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
+os2*)
+ libname_spec='$name'
+ shrext_cmds=".dll"
+ need_lib_prefix=no
+ library_names_spec='$libname${shared_ext} $libname.a'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=LIBPATH
+ ;;
-#include <stdio.h>
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='${libname}${release}${shared_ext}$major'
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+ ;;
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
+rdos*)
+ dynamic_linker=no
+ ;;
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
+solaris*)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
+sunos4*)
+ version_type=sunos
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test "$with_gnu_ld" = yes; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
+sysv4 | sysv4.3*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
+sysv4*MP*)
+ if test -d /usr/nec ;then
+ version_type=linux
+ library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
+ soname_spec='$libname${shared_ext}.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=freebsd-elf
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test "$with_gnu_ld" = yes; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
esac
- else :
- # compilation failed
- lt_cv_dlopen_self=no
fi
-fi
-rm -fr conftest*
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
+uts4*)
+ version_type=linux
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
- if test "x$lt_cv_dlopen_self" = xyes; then
- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then :
- lt_cv_dlopen_self_static=cross
-else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
+test "$dynamic_linker" = no && can_build_shared=no
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test "$GCC" = yes; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+ sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+fi
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+ sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+fi
-#include <stdio.h>
-#ifdef RTLD_GLOBAL
-# define LT_DLGLOBAL RTLD_GLOBAL
-#else
-# ifdef DL_GLOBAL
-# define LT_DLGLOBAL DL_GLOBAL
-# else
-# define LT_DLGLOBAL 0
-# endif
-#endif
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
- find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-# ifdef RTLD_LAZY
-# define LT_DLLAZY_OR_NOW RTLD_LAZY
-# else
-# ifdef DL_LAZY
-# define LT_DLLAZY_OR_NOW DL_LAZY
-# else
-# ifdef RTLD_NOW
-# define LT_DLLAZY_OR_NOW RTLD_NOW
-# else
-# ifdef DL_NOW
-# define LT_DLLAZY_OR_NOW DL_NOW
-# else
-# define LT_DLLAZY_OR_NOW 0
-# endif
-# endif
-# endif
-# endif
-#endif
-/* When -fvisbility=hidden is used, assume the code has been annotated
- correspondingly for the symbols needed. */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-int fnord () { return 42; }
-int main ()
-{
- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
- int status = $lt_dlunknown;
- if (self)
- {
- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
- else
- {
- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
- else puts (dlerror ());
- }
- /* dlclose (self); */
- }
- else
- puts (dlerror ());
- return status;
-}
-_LT_EOF
- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
- test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
- (./conftest; exit; ) >&5 2>/dev/null
- lt_status=$?
- case x$lt_status in
- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
- esac
- else :
- # compilation failed
- lt_cv_dlopen_self_static=no
- fi
-fi
-rm -fr conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
- fi
- CPPFLAGS="$save_CPPFLAGS"
- LDFLAGS="$save_LDFLAGS"
- LIBS="$save_LIBS"
- ;;
- esac
- case $lt_cv_dlopen_self in
- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
- *) enable_dlopen_self=unknown ;;
- esac
- case $lt_cv_dlopen_self_static in
- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
- *) enable_dlopen_self_static=unknown ;;
- esac
-fi
@@ -12304,35 +16713,6 @@ fi
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
- test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
- test -z "$striplib" && striplib="$STRIP --strip-unneeded"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
- case $host_os in
- darwin*)
- if test -n "$STRIP" ; then
- striplib="$STRIP -x"
- old_striplib="$STRIP -S"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- fi
- ;;
- *)
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- ;;
- esac
-fi
@@ -12342,58 +16722,70 @@ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action_CXX=
+if test -n "$hardcode_libdir_flag_spec_CXX" ||
+ test -n "$runpath_var_CXX" ||
+ test "X$hardcode_automatic_CXX" = "Xyes" ; then
+ # We can hardcode non-existent directories.
+ if test "$hardcode_direct_CXX" != no &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
+ test "$hardcode_minus_L_CXX" != no; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action_CXX=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action_CXX=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action_CXX=unsupported
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
+$as_echo "$hardcode_action_CXX" >&6; }
+if test "$hardcode_action_CXX" = relink ||
+ test "$inherit_rpath_CXX" = yes; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test "$shlibpath_overrides_runpath" = yes ||
+ test "$enable_shared" = no; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
- # Report which library types will actually be built
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
- test "$can_build_shared" = "no" && enable_shared=no
- # On AIX, shared libraries and static libraries use the same namespace, and
- # are all built from PIC.
- case $host_os in
- aix3*)
- test "$enable_shared" = yes && enable_static=no
- if test -n "$RANLIB"; then
- archive_cmds="$archive_cmds~\$RANLIB \$lib"
- postinstall_cmds='$RANLIB $lib'
- fi
- ;;
- aix[4-9]*)
- if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
- test "$enable_shared" = yes && enable_static=no
- fi
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
- # Make sure either enable_shared or enable_static is yes.
- test "$enable_shared" = yes || enable_static=yes
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
+ fi # test -n "$compiler"
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+ with_gnu_ld=$lt_save_with_gnu_ld
+ lt_cv_path_LDCXX=$lt_cv_path_LD
+ lt_cv_path_LD=$lt_save_path_LD
+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test "$_lt_caught_CXX_error" != yes
-fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-CC="$lt_save_CC"
-
@@ -12886,7 +17278,7 @@ fi
for i in $cpl_incdirs; do
for j in $cpl_check_cpl_header; do
- echo "configure: 12889: $i/$j" >&5
+ echo "configure: 17281: $i/$j" >&5
if test -r "$i/$j"; then
echo "taking that" >&5
@@ -12936,7 +17328,7 @@ fi
for i in $cpl_libdirs; do
for j in $cpl_check_cpl_lib; do
- echo "configure: 12939: $i/$j" >&5
+ echo "configure: 17331: $i/$j" >&5
if test -r "$i/$j"; then
echo "taking that" >&5
@@ -13071,7 +17463,7 @@ fi
for i in $cpl_cext_incdirs; do
for j in $cpl_cext_check_header; do
- echo "configure: 13074: $i/$j" >&5
+ echo "configure: 17466: $i/$j" >&5
if test -r "$i/$j"; then
echo "taking that" >&5
@@ -13127,7 +17519,7 @@ fi
for i in $cpl_cext_libdirs; do
for j in $cpl_cext_check_lib; do
- echo "configure: 13130: $i/$j" >&5
+ echo "configure: 17522: $i/$j" >&5
if test -r "$i/$j"; then
echo "taking that" >&5
@@ -13832,7 +18224,7 @@ fi
-ac_config_files="$ac_config_files Makefile Makefile.purify doxygen/Doxyfile hawki/Makefile irplib/Makefile irplib/tests/Makefile recipes/Makefile tests/Makefile reflex/Makefile reflex/Hawki_Calib_Science.xml regtests/Makefile regtests/tests/Makefile"
+ac_config_files="$ac_config_files Makefile Makefile.purify doxygen/Doxyfile hawki/Makefile hawki/tests/Makefile irplib/Makefile irplib/tests/Makefile recipes/Makefile tests/Makefile reflex/Makefile reflex/Hawki_Calib_Science.xml regtests/Makefile regtests/tests/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
@@ -13963,6 +18355,14 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
if test -z "${PURIFY_TRUE}" && test -z "${PURIFY_FALSE}"; then
as_fn_error $? "conditional \"PURIFY\" was never defined.
Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -14376,7 +18776,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by HAWKI Instrument Pipeline $as_me 1.8.9, which was
+This file was extended by HAWKI Instrument Pipeline $as_me 1.8.10, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14442,7 +18842,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-HAWKI Instrument Pipeline config.status 1.8.9
+HAWKI Instrument Pipeline config.status 1.8.10
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
@@ -14701,6 +19101,61 @@ enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_sub
enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
+predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
+postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
+predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
+postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
+LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
+reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
+reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
+GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
+inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
+always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
+prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
+file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
+hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
+predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
+postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
+predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
+postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
+compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
LTCC='$LTCC'
LTCFLAGS='$LTCFLAGS'
@@ -14779,7 +19234,39 @@ soname_spec \
install_override_mode \
finish_eval \
old_striplib \
-striplib; do
+striplib \
+compiler_lib_search_dirs \
+predep_objects \
+postdep_objects \
+predeps \
+postdeps \
+compiler_lib_search_path \
+LD_CXX \
+reload_flag_CXX \
+compiler_CXX \
+lt_prog_compiler_no_builtin_flag_CXX \
+lt_prog_compiler_pic_CXX \
+lt_prog_compiler_wl_CXX \
+lt_prog_compiler_static_CXX \
+lt_cv_prog_compiler_c_o_CXX \
+export_dynamic_flag_spec_CXX \
+whole_archive_flag_spec_CXX \
+compiler_needs_object_CXX \
+with_gnu_ld_CXX \
+allow_undefined_flag_CXX \
+no_undefined_flag_CXX \
+hardcode_libdir_flag_spec_CXX \
+hardcode_libdir_flag_spec_ld_CXX \
+hardcode_libdir_separator_CXX \
+exclude_expsyms_CXX \
+include_expsyms_CXX \
+file_list_spec_CXX \
+compiler_lib_search_dirs_CXX \
+predep_objects_CXX \
+postdep_objects_CXX \
+predeps_CXX \
+postdeps_CXX \
+compiler_lib_search_path_CXX; do
case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
*[\\\\\\\`\\"\\\$]*)
eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
@@ -14809,7 +19296,18 @@ postinstall_cmds \
postuninstall_cmds \
finish_cmds \
sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec; do
+sys_lib_dlsearch_path_spec \
+reload_cmds_CXX \
+old_archive_cmds_CXX \
+old_archive_from_new_cmds_CXX \
+old_archive_from_expsyms_cmds_CXX \
+archive_cmds_CXX \
+archive_expsym_cmds_CXX \
+module_cmds_CXX \
+module_expsym_cmds_CXX \
+export_symbols_cmds_CXX \
+prelink_cmds_CXX \
+postlink_cmds_CXX; do
case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
*[\\\\\\\`\\"\\\$]*)
eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
@@ -14840,6 +19338,8 @@ fi
+
+
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
@@ -14855,6 +19355,7 @@ do
"Makefile.purify") CONFIG_FILES="$CONFIG_FILES Makefile.purify" ;;
"doxygen/Doxyfile") CONFIG_FILES="$CONFIG_FILES doxygen/Doxyfile" ;;
"hawki/Makefile") CONFIG_FILES="$CONFIG_FILES hawki/Makefile" ;;
+ "hawki/tests/Makefile") CONFIG_FILES="$CONFIG_FILES hawki/tests/Makefile" ;;
"irplib/Makefile") CONFIG_FILES="$CONFIG_FILES irplib/Makefile" ;;
"irplib/tests/Makefile") CONFIG_FILES="$CONFIG_FILES irplib/tests/Makefile" ;;
"recipes/Makefile") CONFIG_FILES="$CONFIG_FILES recipes/Makefile" ;;
@@ -15603,7 +20104,7 @@ $as_echo X"$file" |
# The names of the tagged configurations supported by this script.
-available_tags=""
+available_tags="CXX "
# ### BEGIN LIBTOOL CONFIG
@@ -15991,6 +20492,20 @@ file_list_spec=$lt_file_list_spec
# How to hardcode a shared library path into an executable.
hardcode_action=$hardcode_action
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects
+postdep_objects=$lt_postdep_objects
+predeps=$lt_predeps
+postdeps=$lt_postdeps
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path
+
# ### END LIBTOOL CONFIG
_LT_EOF
@@ -16183,6 +20698,163 @@ fi
(rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
chmod +x "$ofile"
+
+ cat <<_LT_EOF >> "$ofile"
+
+# ### BEGIN LIBTOOL TAG CONFIG: CXX
+
+# The linker used to build libraries.
+LD=$lt_LD_CXX
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag_CXX
+reload_cmds=$lt_reload_cmds_CXX
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds_CXX
+
+# A language specific compiler.
+CC=$lt_compiler_CXX
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC_CXX
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic_CXX
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl_CXX
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static_CXX
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc_CXX
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object_CXX
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds_CXX
+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds_CXX
+module_expsym_cmds=$lt_module_expsym_cmds_CXX
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld_CXX
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag_CXX
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag_CXX
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
+
+# If ld is used when linking, flag to hardcode \$libdir into a binary
+# during linking. This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct_CXX
+
+# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute_CXX
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L_CXX
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic_CXX
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath_CXX
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs_CXX
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols_CXX
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds_CXX
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms_CXX
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms_CXX
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds_CXX
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds_CXX
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec_CXX
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action_CXX
+
+# The directories searched by this compiler when creating a shared library.
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
+# Dependencies to place before and after the objects being linked to
+# create a shared library.
+predep_objects=$lt_predep_objects_CXX
+postdep_objects=$lt_postdep_objects_CXX
+predeps=$lt_predeps_CXX
+postdeps=$lt_postdeps_CXX
+
+# The library search path used internally by the compiler when linking
+# a shared library.
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
+
+# ### END LIBTOOL TAG CONFIG: CXX
+_LT_EOF
+
;;
esac
diff --git a/configure.ac b/configure.ac
index 9e1eda3..dd3e411 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
# Process this file with autoconf to produce a configure script.
-AC_INIT([HAWKI Instrument Pipeline], [1.8.9], [usd-help at eso.org], [hawki])
+AC_INIT([HAWKI Instrument Pipeline], [1.8.10], [usd-help at eso.org], [hawki])
AC_PREREQ([2.58])
AC_CONFIG_SRCDIR([Makefile.am])
@@ -32,12 +32,14 @@ AM_MAINTAINER_MODE
HAWKI_SET_VERSION_INFO([$VERSION])
# Checks for programs.
-AC_PROG_CC
AC_PROG_CPP
+AC_PROG_CC
+AC_PROG_CXX
AM_PROG_CC_C_O
AC_PROG_LN_S
#Check for OPENMP
+#To use AC_OPENMP in the future
CPL_OPENMP
HAWKI_CHECK_OPENMP_LIBS
@@ -92,6 +94,7 @@ AC_CONFIG_FILES(Makefile
Makefile.purify
doxygen/Doxyfile
hawki/Makefile
+ hawki/tests/Makefile
irplib/Makefile
irplib/tests/Makefile
recipes/Makefile
diff --git a/hawki/Makefile.am b/hawki/Makefile.am
index 83cdd4a..f410f3c 100644
--- a/hawki/Makefile.am
+++ b/hawki/Makefile.am
@@ -21,7 +21,7 @@ AUTOMAKE_OPTIONS = 1.8 foreign
DISTCLEANFILES = *~
-#SUBDIRS = tests
+SUBDIRS = tests
if MAINTAINER_MODE
@@ -42,6 +42,7 @@ noinst_HEADERS = hawki_utils.h \
hawki_alloc.h \
hawki_pfits.h \
hawki_dfs.h \
+ hawki_image.h \
hawki_load.h \
hawki_save.h \
hawki_calib.h \
@@ -64,13 +65,14 @@ libhawki_la_SOURCES = hawki_utils.c \
hawki_alloc.c \
hawki_pfits.c \
hawki_dfs.c \
+ hawki_image.c \
hawki_load.c \
hawki_save.c \
hawki_calib.c \
hawki_properties_tel.c \
hawki_obj_det.c \
hawki_image_stats.c \
- hawki_bkg.c \
+ hawki_bkg.cc \
hawki_match_cats.c \
hawki_mask.c \
hawki_saa.c \
diff --git a/hawki/Makefile.in b/hawki/Makefile.in
index f613867..50d416b 100644
--- a/hawki/Makefile.in
+++ b/hawki/Makefile.in
@@ -82,14 +82,15 @@ am__installdirs = "$(DESTDIR)$(privatelibdir)" \
LTLIBRARIES = $(privatelib_LTLIBRARIES)
am__DEPENDENCIES_1 =
am_libhawki_la_OBJECTS = hawki_utils.lo hawki_alloc.lo hawki_pfits.lo \
- hawki_dfs.lo hawki_load.lo hawki_save.lo hawki_calib.lo \
- hawki_properties_tel.lo hawki_obj_det.lo hawki_image_stats.lo \
- hawki_bkg.lo hawki_match_cats.lo hawki_mask.lo hawki_saa.lo \
- hawki_combine.lo hawki_distortion.lo hawki_variance.lo
+ hawki_dfs.lo hawki_image.lo hawki_load.lo hawki_save.lo \
+ hawki_calib.lo hawki_properties_tel.lo hawki_obj_det.lo \
+ hawki_image_stats.lo hawki_bkg.lo hawki_match_cats.lo \
+ hawki_mask.lo hawki_saa.lo hawki_combine.lo \
+ hawki_distortion.lo hawki_variance.lo
libhawki_la_OBJECTS = $(am_libhawki_la_OBJECTS)
-libhawki_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(libhawki_la_LDFLAGS) $(LDFLAGS) -o $@
+libhawki_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(libhawki_la_LDFLAGS) $(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
am__depfiles_maybe = depfiles
@@ -103,12 +104,59 @@ CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
SOURCES = $(libhawki_la_SOURCES)
DIST_SOURCES = $(libhawki_la_SOURCES)
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
HEADERS = $(noinst_HEADERS) $(pkginclude_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
ETAGS = etags
CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
@@ -123,6 +171,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = -DCX_LOG_DOMAIN=\"HawkiLib\"
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -211,6 +263,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
@@ -271,8 +324,7 @@ wkfcopydir = @wkfcopydir@
wkfextradir = @wkfextradir@
AUTOMAKE_OPTIONS = 1.8 foreign
DISTCLEANFILES = *~
-
-#SUBDIRS = tests
+SUBDIRS = tests
@MAINTAINER_MODE_TRUE at MAINTAINERCLEANFILES = Makefile.in
#AM_CPPFLAGS = $(GSL_CFLAGS) $(OPENMP_CFLAGS)
@@ -282,6 +334,7 @@ noinst_HEADERS = hawki_utils.h \
hawki_alloc.h \
hawki_pfits.h \
hawki_dfs.h \
+ hawki_image.h \
hawki_load.h \
hawki_save.h \
hawki_calib.h \
@@ -302,13 +355,14 @@ libhawki_la_SOURCES = hawki_utils.c \
hawki_alloc.c \
hawki_pfits.c \
hawki_dfs.c \
+ hawki_image.c \
hawki_load.c \
hawki_save.c \
hawki_calib.c \
hawki_properties_tel.c \
hawki_obj_det.c \
hawki_image_stats.c \
- hawki_bkg.c \
+ hawki_bkg.cc \
hawki_match_cats.c \
hawki_mask.c \
hawki_saa.c \
@@ -319,10 +373,10 @@ libhawki_la_SOURCES = hawki_utils.c \
libhawki_la_LDFLAGS = $(EXTRA_LDFLAGS) $(CPL_LDFLAGS) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
libhawki_la_LIBADD = $(LIBIRPLIB) $(LIBCPLDFS) $(LIBCPLUI) $(LIBCPLDRS) $(LIBCPLCORE) $(GSL_LIBS)
libhawki_la_DEPENDENCIES = $(LIBIRPLIB)
-all: all-am
+all: all-recursive
.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .cc .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -399,6 +453,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hawki_combine.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hawki_dfs.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hawki_distortion.Plo at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hawki_image.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hawki_image_stats.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hawki_load.Plo at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hawki_mask.Plo at am__quote@
@@ -432,6 +487,27 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+.cc.o:
+ at am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+ at am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cc.lo:
+ at am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
mostlyclean-libtool:
-rm -f *.lo
@@ -458,6 +534,76 @@ uninstall-pkgincludeHEADERS:
echo " ( cd '$(DESTDIR)$(pkgincludedir)' && rm -f" $$files ")"; \
cd "$(DESTDIR)$(pkgincludedir)" && rm -f $$files
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+$(RECURSIVE_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+$(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ rev=''; for subdir in $$list; do \
+ if test "$$subdir" = "."; then :; else \
+ rev="$$subdir $$rev"; \
+ fi; \
+ done; \
+ rev="$$rev ."; \
+ target=`echo $@ | sed s/-recursive//`; \
+ for subdir in $$rev; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done && test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -468,10 +614,23 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
mkid -fID $$unique
tags: TAGS
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
set x; \
here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
@@ -490,7 +649,7 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
fi; \
fi
ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
@@ -540,22 +699,51 @@ distdir: $(DISTFILES)
|| exit 1; \
fi; \
done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
check-am: all-am
-check: check-am
+check: check-recursive
all-am: Makefile $(LTLIBRARIES) $(HEADERS)
-installdirs:
+installdirs: installdirs-recursive
+installdirs-am:
for dir in "$(DESTDIR)$(privatelibdir)" "$(DESTDIR)$(pkgincludedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-installcheck: installcheck-am
+installcheck: installcheck-recursive
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
@@ -574,83 +762,85 @@ maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
-clean: clean-am
+clean: clean-recursive
clean-am: clean-generic clean-libtool clean-privatelibLTLIBRARIES \
mostlyclean-am
-distclean: distclean-am
+distclean: distclean-recursive
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-tags
-dvi: dvi-am
+dvi: dvi-recursive
dvi-am:
-html: html-am
+html: html-recursive
html-am:
-info: info-am
+info: info-recursive
info-am:
install-data-am: install-pkgincludeHEADERS \
install-privatelibLTLIBRARIES
-install-dvi: install-dvi-am
+install-dvi: install-dvi-recursive
install-dvi-am:
install-exec-am:
-install-html: install-html-am
+install-html: install-html-recursive
install-html-am:
-install-info: install-info-am
+install-info: install-info-recursive
install-info-am:
install-man:
-install-pdf: install-pdf-am
+install-pdf: install-pdf-recursive
install-pdf-am:
-install-ps: install-ps-am
+install-ps: install-ps-recursive
install-ps-am:
installcheck-am:
-maintainer-clean: maintainer-clean-am
+maintainer-clean: maintainer-clean-recursive
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
-mostlyclean: mostlyclean-am
+mostlyclean: mostlyclean-recursive
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
-pdf: pdf-am
+pdf: pdf-recursive
pdf-am:
-ps: ps-am
+ps: ps-recursive
ps-am:
uninstall-am: uninstall-pkgincludeHEADERS \
uninstall-privatelibLTLIBRARIES
-.MAKE: install-am install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+ install-am install-strip tags-recursive
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
- clean-libtool clean-privatelibLTLIBRARIES ctags distclean \
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ clean-privatelibLTLIBRARIES ctags ctags-recursive distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-dvi \
@@ -659,10 +849,11 @@ uninstall-am: uninstall-pkgincludeHEADERS \
install-pdf install-pdf-am install-pkgincludeHEADERS \
install-privatelibLTLIBRARIES install-ps install-ps-am \
install-strip installcheck installcheck-am installdirs \
- maintainer-clean maintainer-clean-generic mostlyclean \
- mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
- pdf pdf-am ps ps-am tags uninstall uninstall-am \
- uninstall-pkgincludeHEADERS uninstall-privatelibLTLIBRARIES
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
+ uninstall uninstall-am uninstall-pkgincludeHEADERS \
+ uninstall-privatelibLTLIBRARIES
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/hawki/hawki_alloc.c b/hawki/hawki_alloc.c
index 793afc4..389b6d9 100644
--- a/hawki/hawki_alloc.c
+++ b/hawki/hawki_alloc.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2008/11/26 09:53:31 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_alloc.h b/hawki/hawki_alloc.h
index e3ceed8..9668704 100644
--- a/hawki/hawki_alloc.h
+++ b/hawki/hawki_alloc.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2008/11/26 09:53:21 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_ALLOC_H
diff --git a/hawki/hawki_bkg.c b/hawki/hawki_bkg.cc
similarity index 54%
rename from hawki/hawki_bkg.c
rename to hawki/hawki_bkg.cc
index 39f00dc..61f7011 100644
--- a/hawki/hawki_bkg.c
+++ b/hawki/hawki_bkg.cc
@@ -1,4 +1,4 @@
-/* $Id: hawki_bkg.c,v 1.15 2009/10/23 15:13:06 cgarcia Exp $
+/* $Id: hawki_bkg.cc,v 1.5 2012/12/07 13:39:40 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2009/10/23 15:13:06 $
- * $Revision: 1.15 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/07 13:39:40 $
+ * $Revision: 1.5 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -35,21 +35,63 @@
#include <string.h>
#include <cpl.h>
+#include <vector>
+#include <algorithm>
#include "hawki_distortion.h"
#include "hawki_bkg.h"
#include "hawki_pfits.h"
#include "hawki_load.h"
#include "hawki_utils.h"
+#include "hawki_image.h"
/*----------------------------------------------------------------------------*/
/**
- * @defgroup hawki_image_stats Compute several statistics on images
+ * @defgroup hawki_bkg Background computation algorithms
*/
/*----------------------------------------------------------------------------*/
/**@{*/
+hawki_bkg_frames_buffer * hawki_bkg_frames_buffer_init
+(const cpl_frameset * fset)
+{
+ int i_ima;
+ hawki_bkg_frames_buffer * frames_buffer;
+
+ frames_buffer =
+ (hawki_bkg_frames_buffer *)cpl_malloc(sizeof(hawki_bkg_frames_buffer));
+
+ frames_buffer->nframes = cpl_frameset_get_size(fset);
+ frames_buffer->images =
+ (cpl_image **)cpl_malloc(frames_buffer->nframes *
+ sizeof(cpl_image *));
+ frames_buffer->medians =
+ (double *)cpl_malloc(frames_buffer->nframes *
+ sizeof(double));
+ frames_buffer->frames = cpl_frameset_duplicate(fset);
+
+ for(i_ima=0; i_ima< frames_buffer->nframes; i_ima++)
+ frames_buffer->images[i_ima] = NULL;
+
+ return frames_buffer;
+}
+
+void hawki_bkg_frames_buffer_delete(hawki_bkg_frames_buffer * frames_buffer)
+{
+ int i_ima;
+ for(i_ima=0; i_ima< frames_buffer->nframes; i_ima++)
+ {
+ if(frames_buffer->images[i_ima] != NULL)
+ cpl_image_delete(frames_buffer->images[i_ima]);
+ }
+ cpl_free(frames_buffer->images);
+ cpl_free(frames_buffer->medians);
+ cpl_frameset_delete(frames_buffer->frames);
+ cpl_free(frames_buffer);
+}
+
+
/*----------------------------------------------------------------------------*/
/**
@brief Fill a propertylist with the association between objects and bkg
@@ -130,7 +172,7 @@ int hawki_bkg_from_objects_median
/* Averaging */
/* TODO: Comprobar que cpl_imagelist_collapse_median_create
* admite las mascaras, para que cuando implemente lo de la mascara
- * de objetos siga funcionando */
+ * de objetos siga funcionando */
if ((this_bkg_image = cpl_imagelist_collapse_median_create(img_serie))
== NULL)
{
@@ -215,19 +257,23 @@ int hawki_bkg_from_sky_median
@brief Computes the running mean for a set of object images using their masks
@param objimages The serie of object images
@param medians A vector with the medians of each image
+ @param i_target The index in the list for which we compute the bkg
+ @param half_width half with of the running window
+ @param rejlow Number of pixels with lower values to reject
+ @param rejhigh Number of pixels with higher values to reject
@param bkg The background image (OUT)
- @param proplist The list of keywords to store the association
- information to
@return 0 if everything is ok, -1 otherwise
- This function takes as an input a set of sky frames and computes
- the background using a median of these frames. The bad pixels from the
- bpm masks are taking into account. It also sets the association
- between the object images and the final background produced
- (calling hawki_bkg_fill_assoc).
+ This function takes as an input a set of object images and computes
+ the background using a running median over this images.
+ Given the target image i_target, a window in the imagelist is constructed
+ from i_target - half_window to i_target + half_window. The value
+ of the bkg for each pixel is constructed from the median of all the values
+ in the window of the image list, rejecting those rejlow lower values and
+ rejhigh higher values (bad pixels are discarded before that).
*/
/*----------------------------------------------------------------------------*/
-int hawki_bkg_from_running_mean_detector
+int hawki_bkg_from_running_mean
(cpl_imagelist * objimages,
const cpl_vector * medians,
int i_target,
@@ -257,7 +303,7 @@ int hawki_bkg_from_running_mean_detector
int i_win;
int n_win;
- cpl_vector * localwin;
+ std::vector<double> localwin;
/* Get the pointer to the background image */
bkg_p = cpl_image_get_data_float(bkg);
@@ -279,12 +325,9 @@ int hawki_bkg_from_running_mean_detector
/* Get the pointers for better performance */
medians_p = cpl_vector_get_data_const(medians);
- /* Allocate local window with the maximum number of possible used values*/
- localwin = cpl_vector_new(nuse) ;
-
/* Get fast accesors to input image pointers */
- objimages_p = cpl_malloc(nima * sizeof(float *));
- maskimages_p = cpl_malloc(nima * sizeof(cpl_binary *));
+ objimages_p = (float **)cpl_malloc(nima * sizeof(float *));
+ maskimages_p = (cpl_binary **)cpl_malloc(nima * sizeof(cpl_binary *));
for(i_ima=from_ima ; i_ima<=to_ima ; i_ima++)
{
objimages_p[i_ima] = cpl_image_get_data_float
@@ -304,11 +347,10 @@ int hawki_bkg_from_running_mean_detector
/* Get the position in the array */
pos = pos_x + pos_y * nx;
- /* Resize again to maximum number of elements */
- cpl_vector_set_size(localwin, nuse);
+ /* Empty the local window */
+ localwin.clear();
/* Fill up local window */
- i_win=0;
for (i_ima=from_ima ; i_ima<=to_ima ; i_ima++)
{
if (i_ima != i_target)
@@ -316,14 +358,10 @@ int hawki_bkg_from_running_mean_detector
curima_p = objimages_p[i_ima];
curmask_p = maskimages_p[i_ima];
if(!curmask_p[pos])
- {
- cpl_vector_set(localwin, i_win,
- (double)curima_p[pos]-medians_p[i_ima]);
- i_win++;
- }
+ localwin.push_back((double)curima_p[pos]-medians_p[i_ima]);
}
}
- n_win = i_win;
+ n_win = localwin.size();
if(n_win - rejlow - rejhigh < 1)
{
/* Add it to the bad pixel mask */
@@ -332,7 +370,6 @@ int hawki_bkg_from_running_mean_detector
if(cpl_image_reject(bkg, pos_x + 1, pos_y + 1) != CPL_ERROR_NONE)
{
cpl_msg_error(__func__,"Cannot add pixel to sky bpm");
- cpl_vector_delete(localwin) ;
cpl_free(objimages_p);
cpl_free(maskimages_p);
return(-1);
@@ -340,16 +377,13 @@ int hawki_bkg_from_running_mean_detector
}
else
{
- /* Resize to current number of elements */
- cpl_vector_set_size(localwin, n_win);
/* Sort window */
- cpl_vector_sort(localwin, 1);
+ std::sort(localwin.begin(), localwin.end());
+
/* Reject min and max, accumulate other pixels */
out = 0.0 ;
for (i_win=rejlow ; i_win<n_win - rejhigh; i_win++)
- {
- out += cpl_vector_get(localwin, i_win);
- }
+ out += localwin[i_win];
/* Take the mean */
out /= (double)(n_win - rejlow - rejhigh);
@@ -360,12 +394,179 @@ int hawki_bkg_from_running_mean_detector
}
/* Free */
- cpl_vector_delete(localwin) ;
cpl_free(objimages_p);
cpl_free(maskimages_p);
return 0;
}
+/*----------------------------------------------------------------------------*/
+/**
+ @brief Computes the running mean for a set of object frames using their masks
+ @param objframes The serie of object frames
+ @param bkg The background image (OUT)
+ @return 0 if everything is ok, -1 otherwise
+
+ This function takes as an input a set of object frames and computes
+ the background using a running median of these frames.
+ It loads in memory only the images needed for the running window.
+ */
+/*----------------------------------------------------------------------------*/
+int hawki_bkg_from_running_mean_frame_extension
+(hawki_bkg_frames_buffer * frames_buffer,
+ cpl_vector * offsets_x,
+ cpl_vector * offsets_y,
+ cpl_image * globalmask,
+ double mask_off_x,
+ double mask_off_y,
+ cpl_image * distortion_x,
+ cpl_image * distortion_y,
+ int iextension,
+ int i_target,
+ int half_width,
+ int rejlow,
+ int rejhigh,
+ cpl_image * bkg)
+{
+ cpl_imagelist * imagelist_window;
+ cpl_vector * medians_window;
+
+ cpl_size from_ima;
+ cpl_size to_ima;
+ cpl_size i_ima;
+ cpl_size nima;
+
+ nima = frames_buffer->nframes;
+ from_ima = i_target - half_width;
+ to_ima = i_target + half_width;
+ if (from_ima<0) from_ima = 0 ;
+ if (to_ima>(nima-1)) to_ima=nima-1;
+
+ /* Assume that the previous run of this function was called
+ * with i_target -1, and therefore we deallocate the first image of the
+ * previous window to free space.
+ * If the assumption is wrong, then probably there is a performance
+ * penalty reading again that image.
+ * The second line is asuming that the previous run was for i_target + 1
+ * (running the loop in the opposite direction)
+ * If the upper loop which calls this function runs in steps of 1, then
+ * there is no performance penalty.
+ */
+ if(from_ima > 0)
+ {
+ if(frames_buffer->images[from_ima - 1] != NULL)
+ cpl_image_delete(frames_buffer->images[from_ima - 1]);
+ frames_buffer->images[from_ima - 1] = NULL;
+ }
+ if(to_ima < nima - 1)
+ {
+ if(frames_buffer->images[to_ima] != NULL)
+ cpl_image_delete(frames_buffer->images[to_ima]);
+ frames_buffer->images[to_ima] = NULL;
+ }
+
+ imagelist_window = cpl_imagelist_new();
+ medians_window = cpl_vector_new(to_ima - from_ima + 1);
+
+ for(i_ima=from_ima; i_ima<=to_ima ; i_ima++)
+ {
+ if(frames_buffer->images[i_ima] == NULL)
+ {
+ cpl_image * new_image;
+ cpl_frame * frame;
+
+ frame = cpl_frameset_get_frame(frames_buffer->frames, i_ima);
+ new_image = hawki_load_frame_extension
+ (frame, iextension + 1, CPL_TYPE_FLOAT);
+ frames_buffer->images[i_ima] = new_image;
+
+ /* Creating a mask for this object, using the offsets
+ * and the distortion (if it applies) */
+ if(globalmask != NULL)
+ {
+ double target_off_x;
+ double target_off_y;
+ target_off_x = cpl_vector_get(offsets_x, i_ima);
+ target_off_y = cpl_vector_get(offsets_y, i_ima);
+ hawki_bkg_set_obj_mask(new_image, globalmask,
+ distortion_x, distortion_y,
+ target_off_x, target_off_y,
+ mask_off_x, mask_off_y);
+ }
+
+ /* Computing the median */
+ frames_buffer->medians[i_ima] = cpl_image_get_median(new_image);
+ }
+ cpl_imagelist_set(imagelist_window, frames_buffer->images[i_ima],
+ i_ima - from_ima);
+ cpl_vector_set(medians_window, i_ima - from_ima,
+ frames_buffer->medians[i_ima]);
+ }
+
+ hawki_bkg_from_running_mean(imagelist_window, medians_window,
+ i_target - from_ima, half_width, rejlow, rejhigh, bkg);
+
+ /* Free. The images in imagelist_window are unset but not deallocated */
+ for(i_ima=from_ima; i_ima<=to_ima ; i_ima++)
+ cpl_imagelist_unset(imagelist_window, 0);
+ cpl_imagelist_delete(imagelist_window);
+ cpl_vector_delete(medians_window);
+
+ return 0;
+}
+
+int hawki_bkg_set_obj_mask
+(cpl_image * target_image,
+ cpl_image * globalmask,
+ cpl_image * distor_x,
+ cpl_image * distor_y,
+ double target_off_x,
+ double target_off_y,
+ double mask_off_x,
+ double mask_off_y)
+{
+ cpl_image * mask_intersection;
+ cpl_image * mask_trim;
+ cpl_mask * mask_final;
+
+ /* The new mask is in float because the distortion correction will
+ * work on float data */
+ mask_intersection = cpl_image_new(cpl_image_get_size_x(target_image),
+ cpl_image_get_size_y(target_image),
+ CPL_TYPE_FLOAT);
+
+ /* The offsets are rounded to pixels here */
+ hawki_image_copy_to_intersection(mask_intersection,
+ globalmask,
+ (cpl_size)(target_off_x - mask_off_x),
+ (cpl_size)(target_off_y - mask_off_y));
+ if(distor_x != NULL && distor_y != NULL)
+ {
+ cpl_image * mask_distcorr;
+
+ /* Dedistort the mask */
+ mask_distcorr = hawki_distortion_correct_detector
+ (mask_intersection, distor_x, distor_y);
+ if(mask_distcorr == NULL)
+ {
+ cpl_msg_error(__func__, "Cannot correct the distortion") ;
+ cpl_image_delete(mask_intersection);
+ cpl_msg_indent_less();
+ cpl_msg_indent_less();
+ return -1 ;
+ }
+ cpl_image_delete(mask_intersection);
+ mask_intersection = mask_distcorr;
+ }
+ mask_final =
+ cpl_mask_threshold_image_create(mask_intersection, 0.5, FLT_MAX);
+ /* TODO: Add the current bpm to this mask? */
+ cpl_image_reject_from_mask(target_image, mask_final);
+
+ cpl_image_delete(mask_intersection);
+ cpl_image_delete(mask_trim);
+ cpl_mask_delete(mask_final);
+}
+
/**@}*/
diff --git a/hawki/hawki_bkg.h b/hawki/hawki_bkg.h
index 0bbf8a1..34db5dd 100644
--- a/hawki/hawki_bkg.h
+++ b/hawki/hawki_bkg.h
@@ -1,4 +1,4 @@
-/* $Id: hawki_bkg.h,v 1.7 2010/03/08 13:59:16 cgarcia Exp $
+/* $Id: hawki_bkg.h,v 1.11 2012/12/10 12:31:33 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2010/03/08 13:59:16 $
- * $Revision: 1.7 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/10 12:31:33 $
+ * $Revision: 1.11 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_BKG_H
@@ -34,6 +34,23 @@
#include <cpl.h>
+typedef struct _hawki_bkg_frames_buffer_ hawki_bkg_frames_buffer;
+
+struct _hawki_bkg_frames_buffer_
+{
+ cpl_image ** images;
+ double * medians;
+ cpl_frameset * frames;
+ cpl_size nframes;
+};
+
+CPL_BEGIN_DECLS
+
+hawki_bkg_frames_buffer * hawki_bkg_frames_buffer_init
+(const cpl_frameset * fset);
+
+void hawki_bkg_frames_buffer_delete(hawki_bkg_frames_buffer * frames_buffer);
+
int hawki_bkg_fill_assoc(cpl_frameset * objframes, cpl_propertylist * proplist);
int hawki_bkg_from_objects_median
@@ -43,7 +60,7 @@ int hawki_bkg_from_sky_median
(const cpl_frameset * skyframes,
cpl_imagelist * bkg);
-int hawki_bkg_from_running_mean_detector
+int hawki_bkg_from_running_mean
(cpl_imagelist * objimages,
const cpl_vector * medians,
int i_target,
@@ -52,4 +69,32 @@ int hawki_bkg_from_running_mean_detector
int rejhigh,
cpl_image * bkg);
+int hawki_bkg_from_running_mean_frame_extension
+(hawki_bkg_frames_buffer * frames_buffer,
+ cpl_vector * offsets_x,
+ cpl_vector * offsets_y,
+ cpl_image * globalmask,
+ double mask_off_x,
+ double mask_off_y,
+ cpl_image * distortion_x,
+ cpl_image * distortion_y,
+ int iextension,
+ int i_target,
+ int half_width,
+ int rejlow,
+ int rejhigh,
+ cpl_image * bkg);
+
+int hawki_bkg_set_obj_mask
+(cpl_image * target_image,
+ cpl_image * globalmask,
+ cpl_image * distor_x,
+ cpl_image * distor_y,
+ double target_off_x,
+ double target_off_y,
+ double mask_off_x,
+ double mask_off_y);
+
+CPL_END_DECLS
+
#endif
diff --git a/hawki/hawki_calib.c b/hawki/hawki_calib.c
index e7ab6ae..d924b7b 100644
--- a/hawki/hawki_calib.c
+++ b/hawki/hawki_calib.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2010/11/03 18:50:38 $
* $Revision: 1.6 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_calib.h b/hawki/hawki_calib.h
index 3fb04a5..1a7cc11 100644
--- a/hawki/hawki_calib.h
+++ b/hawki/hawki_calib.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2010/11/03 18:50:47 $
* $Revision: 1.6 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_CALIB_H
diff --git a/hawki/hawki_combine.c b/hawki/hawki_combine.c
index 2e664c9..fa7a773 100644
--- a/hawki/hawki_combine.c
+++ b/hawki/hawki_combine.c
@@ -22,7 +22,7 @@
* $Author: yjung $
* $Date: 2007/02/13 16:03:30 $
* $Revision: 1.1.1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_combine.h b/hawki/hawki_combine.h
index 7e73610..e654f13 100644
--- a/hawki/hawki_combine.h
+++ b/hawki/hawki_combine.h
@@ -22,7 +22,7 @@
* $Author: yjung $
* $Date: 2007/02/13 16:03:30 $
* $Revision: 1.1.1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_COMBINE_H
diff --git a/hawki/hawki_dfs.c b/hawki/hawki_dfs.c
index b6f9265..677416c 100644
--- a/hawki/hawki_dfs.c
+++ b/hawki/hawki_dfs.c
@@ -1,4 +1,4 @@
-/* $Id: hawki_dfs.c,v 1.28 2010/11/29 03:32:41 cgarcia Exp $
+/* $Id: hawki_dfs.c,v 1.29 2012/12/07 09:36:29 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2010/11/29 03:32:41 $
- * $Revision: 1.28 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/07 09:36:29 $
+ * $Revision: 1.29 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -76,34 +76,37 @@ int hawki_dfs_set_groups(cpl_frameset * set)
tag = cpl_frame_get_tag(cur_frame) ;
/* RAW frames */
- if (!strcmp(tag, HAWKI_COMMAND_LINE) ||
- !strcmp(tag, HAWKI_CAL_DARK_RAW) ||
- !strcmp(tag, HAWKI_TEC_FLAT_RAW) ||
- !strcmp(tag, HAWKI_CAL_FLAT_RAW) ||
- !strcmp(tag, HAWKI_CAL_ZPOINT_RAW) ||
- !strcmp(tag, HAWKI_CAL_ILLUM_RAW) ||
- !strcmp(tag, HAWKI_CAL_DISTOR_RAW) ||
- !strcmp(tag, HAWKI_IMG_JITTER_SKY_RAW) ||
- !strcmp(tag, HAWKI_IMG_JITTER_RAW) ||
- !strcmp(tag, HAWKI_CAL_LINGAIN_LAMP_RAW) ||
- !strcmp(tag, HAWKI_CAL_LINGAIN_DARK_RAW) ||
- !strcmp(tag, HAWKI_CALPRO_BASICCALIBRATED) ||
- !strcmp(tag, HAWKI_CALPRO_SKY_BASICCALIBRATED) ||
- !strcmp(tag, HAWKI_CALPRO_BKGIMAGE) ||
- !strcmp(tag, HAWKI_CALPRO_BKG_SUBTRACTED) ||
- !strcmp(tag, HAWKI_CALPRO_DIST_CORRECTED) ||
- !strcmp(tag, HAWKI_CALPRO_COMBINED) ||
+ if (!strcmp(tag, HAWKI_COMMAND_LINE) ||
+ !strcmp(tag, HAWKI_CAL_DARK_RAW) ||
+ !strcmp(tag, HAWKI_TEC_FLAT_RAW) ||
+ !strcmp(tag, HAWKI_CAL_FLAT_RAW) ||
+ !strcmp(tag, HAWKI_CAL_ZPOINT_RAW) ||
+ !strcmp(tag, HAWKI_CAL_ILLUM_RAW) ||
+ !strcmp(tag, HAWKI_CAL_DISTOR_RAW) ||
+ !strcmp(tag, HAWKI_IMG_JITTER_SKY_RAW) ||
+ !strcmp(tag, HAWKI_IMG_JITTER_RAW) ||
+ !strcmp(tag, HAWKI_CAL_LINGAIN_LAMP_RAW) ||
+ !strcmp(tag, HAWKI_CAL_LINGAIN_DARK_RAW) ||
+ !strcmp(tag, HAWKI_CALPRO_BASICCALIBRATED) ||
+ !strcmp(tag, HAWKI_CALPRO_SKY_BASICCALIBRATED) ||
+ !strcmp(tag, HAWKI_CALPRO_BKGIMAGE) ||
+ !strcmp(tag, HAWKI_CALPRO_BKG_SUBTRACTED) ||
+ !strcmp(tag, HAWKI_CALPRO_DIST_CORRECTED) ||
+ !strcmp(tag, HAWKI_CALPRO_COMBINED) ||
+ !strcmp(tag, HAWKI_CALPRO_OBJ_MASK) ||
!strcmp(tag, HAWKI_CALPRO_ZPOINT_TAB))
cpl_frame_set_group(cur_frame, CPL_FRAME_GROUP_RAW) ;
/* CALIB frames */
- else if (!strcmp(tag, HAWKI_CALPRO_BPM) ||
- !strcmp(tag, HAWKI_UTIL_STDSTARS_RAW) ||
- !strcmp(tag, HAWKI_UTIL_DISTMAP_RAW) ||
- !strcmp(tag, HAWKI_CALPRO_BPM_HOT) ||
- !strcmp(tag, HAWKI_CALPRO_BPM_COLD) ||
- !strcmp(tag, HAWKI_CALPRO_FLAT) ||
- !strcmp(tag, HAWKI_CALPRO_DARK) ||
- !strcmp(tag, HAWKI_CALPRO_STDSTARS) ||
+ else if (!strcmp(tag, HAWKI_CALPRO_BPM) ||
+ !strcmp(tag, HAWKI_UTIL_STDSTARS_RAW) ||
+ !strcmp(tag, HAWKI_UTIL_DISTMAP_RAW) ||
+ !strcmp(tag, HAWKI_CALPRO_BPM_HOT) ||
+ !strcmp(tag, HAWKI_CALPRO_BPM_COLD) ||
+ !strcmp(tag, HAWKI_CALPRO_FLAT) ||
+ !strcmp(tag, HAWKI_CALPRO_DARK) ||
+ !strcmp(tag, HAWKI_CALPRO_STDSTARS) ||
+ !strcmp(tag, HAWKI_CALPRO_DISTORTION_X) ||
+ !strcmp(tag, HAWKI_CALPRO_DISTORTION_Y) ||
!strcmp(tag, HAWKI_CALPRO_DISTORTION))
cpl_frame_set_group(cur_frame, CPL_FRAME_GROUP_CALIB) ;
}
diff --git a/hawki/hawki_dfs.h b/hawki/hawki_dfs.h
index b97f928..cce4498 100644
--- a/hawki/hawki_dfs.h
+++ b/hawki/hawki_dfs.h
@@ -1,4 +1,4 @@
-/* $Id: hawki_dfs.h,v 1.56 2011/02/09 17:16:23 cgarcia Exp $
+/* $Id: hawki_dfs.h,v 1.57 2012/12/05 14:56:34 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2011/02/09 17:16:23 $
- * $Revision: 1.56 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/05 14:56:34 $
+ * $Revision: 1.57 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_DFS_H
@@ -255,7 +255,6 @@
/* Type HAWKI_PROTYPE_BASICCALIBRATED */
#define HAWKI_CALPRO_BASICCALIBRATED "BASIC_CALIBRATED"
-
/* Type HAWKI_PROTYPE_SKY_BASICCALIBRATED */
#define HAWKI_CALPRO_SKY_BASICCALIBRATED "SKY_BASIC_CALIBRATED"
@@ -501,7 +500,8 @@
/*-----------------------------------------------------------------------------
Functions prototypes
-----------------------------------------------------------------------------*/
-
+CPL_BEGIN_DECLS
int hawki_dfs_set_groups(cpl_frameset *) ;
+CPL_END_DECLS
#endif
diff --git a/hawki/hawki_distortion.c b/hawki/hawki_distortion.c
index cd860d3..df7756c 100644
--- a/hawki/hawki_distortion.c
+++ b/hawki/hawki_distortion.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/02/23 11:49:37 $
* $Revision: 1.32 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_distortion.h b/hawki/hawki_distortion.h
index b6f19a8..96fe786 100644
--- a/hawki/hawki_distortion.h
+++ b/hawki/hawki_distortion.h
@@ -1,4 +1,4 @@
-/* $Id: hawki_distortion.h,v 1.12 2010/03/12 13:04:44 cgarcia Exp $
+/* $Id: hawki_distortion.h,v 1.13 2012/12/07 14:09:12 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2010/03/12 13:04:44 $
- * $Revision: 1.12 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/07 14:09:12 $
+ * $Revision: 1.13 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_DISTORTION_H
@@ -54,6 +54,7 @@ struct _hawki_distortion_
Prototypes
-----------------------------------------------------------------------------*/
+CPL_BEGIN_DECLS
hawki_distortion * hawki_distortion_grid_new
(int detector_nx,
int detector_ny,
@@ -122,6 +123,6 @@ hawki_distortion * hawki_distortion_compute_solution
int grid_size,
const hawki_distortion * dist_initguess,
double * rms);
-
+CPL_END_DECLS
#endif
diff --git a/hawki/hawki_image.c b/hawki/hawki_image.c
new file mode 100644
index 0000000..3c57b12
--- /dev/null
+++ b/hawki/hawki_image.c
@@ -0,0 +1,135 @@
+/* $Id: hawki_image.c,v 1.3 2012/12/04 09:17:04 cgarcia Exp $
+ *
+ * This file is part of the HAWKI Pipeline
+ * Copyright (C) 2002,2003 European Southern Observatory
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/*
+ * $Author: cgarcia $
+ * $Date: 2012/12/04 09:17:04 $
+ * $Revision: 1.3 $
+ * $Name: hawki-1_8_10 $
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+/*-----------------------------------------------------------------------------
+ Includes
+ -----------------------------------------------------------------------------*/
+
+#include <math.h>
+#include <string.h>
+#include <cpl.h>
+#include <cpl_mask.h>
+#include <cpl_matrix.h>
+
+#include "hawki_mask.h"
+
+/*----------------------------------------------------------------------------*/
+/**
+ * @defgroup hawki_image Image manipulation
+ *
+ */
+/*----------------------------------------------------------------------------*/
+
+/**@{*/
+
+/**
+ * @brief Copies the values of an image to the intersection of two images.
+ * @param target The image where the values will be copied
+ * @param from The image from where the values are copied
+ * @param target_shift_x The shift in pixels between the target image and
+ * the from image in X direction
+ * @param target_shift_y The shift in pixels between the target image and
+ * the from image in Y direction
+ *
+ * This function copies the contents of an image to other image which
+ * is shifted from the first image. The function will copy only the values
+ * of the pixels which belong to the intersection of the two images.
+ *
+ */
+cpl_error_code hawki_image_copy_to_intersection
+(cpl_image * target,
+ const cpl_image * from,
+ cpl_size target_shift_x,
+ cpl_size target_shift_y)
+{
+
+ cpl_size inter_x1;
+ cpl_size inter_x2;
+ cpl_size inter_y1;
+ cpl_size inter_y2;
+
+ cpl_size from_x1 = 0;
+ cpl_size from_x2 = cpl_image_get_size_x(from);
+ cpl_size from_y1 = 0;
+ cpl_size from_y2 = cpl_image_get_size_y(from);
+
+ cpl_size target_x1 = target_shift_x;
+ cpl_size target_x2 = target_shift_x + cpl_image_get_size_x(target);
+ cpl_size target_y1 = target_shift_y;
+ cpl_size target_y2 = target_shift_y + cpl_image_get_size_y(target);
+
+ /* Check entries */
+ cpl_ensure_code(target != NULL, CPL_ERROR_NULL_INPUT);
+ cpl_ensure_code(from != NULL, CPL_ERROR_NULL_INPUT);
+ cpl_ensure_code(cpl_image_get_type(target) == cpl_image_get_type(from),
+ CPL_ERROR_TYPE_MISMATCH);
+
+ /* Compute intersection */
+ inter_x1 = CX_MAX(from_x1, target_x1);
+ inter_x2 = CX_MIN(from_x2, target_x2);
+ inter_y1 = CX_MAX(from_y1, target_y1);
+ inter_y2 = CX_MIN(from_y2, target_y2);
+
+ if(inter_x2 > inter_x1 && inter_y2 > inter_y1)
+ {
+ const void * from_data;
+ void * target_data;
+ int iy;
+ size_t pixel_size = cpl_type_get_sizeof(cpl_image_get_type(from));
+ cpl_size from_nx = cpl_image_get_size_x(from);
+ cpl_size target_nx = cpl_image_get_size_y(target);
+ cpl_size memcopy_size;
+
+ memcopy_size = (inter_x2 - inter_x1) * pixel_size;
+
+ from_data = cpl_image_get_data_const(from);
+ target_data = cpl_image_get_data(target);
+
+ for(iy=inter_y1; iy<inter_y2; ++iy)
+ {
+ const void * from_p;
+ void * target_p;
+
+ from_p = from_data + (inter_x1 + iy * from_nx) * pixel_size;
+ target_p = target_data +
+ (inter_x1 - target_shift_x +
+ (iy - target_shift_y) * target_nx) * pixel_size;
+ memcpy(target_p, from_p, memcopy_size);
+ }
+ }
+ /* If the if is not executed is because intersection is empty.
+ * Nothing to copy */
+
+ return CPL_ERROR_NONE;
+}
+
+/**@}*/
+
diff --git a/hawki/hawki_mask.h b/hawki/hawki_image.h
similarity index 72%
copy from hawki/hawki_mask.h
copy to hawki/hawki_image.h
index 07fd602..2a3611c 100644
--- a/hawki/hawki_mask.h
+++ b/hawki/hawki_image.h
@@ -1,4 +1,4 @@
-/* $Id: hawki_mask.h,v 1.1 2009/11/26 09:51:54 cgarcia Exp $
+/* $Id: hawki_image.h,v 1.2 2012/12/07 13:45:04 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,24 +20,27 @@
/*
* $Author: cgarcia $
- * $Date: 2009/11/26 09:51:54 $
- * $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/07 13:45:04 $
+ * $Revision: 1.2 $
+ * $Name: hawki-1_8_10 $
*/
-#ifndef HAWKI_MASK_H
-#define HAWKI_MASK_H
+#ifndef HAWKI_IMAGE_H
+#define HAWKI_IMAGE_H
#include "cpl.h"
-#include "cpl_mask.h"
-#include "cpl_matrix.h"
+#include "cpl_image.h"
/*-----------------------------------------------------------------------------
Functions prototypes
-----------------------------------------------------------------------------*/
-cpl_error_code hawki_mask_convolve(
- cpl_mask * in,
- const cpl_matrix * ker);
+CPL_BEGIN_DECLS
+cpl_error_code hawki_image_copy_to_intersection
+(cpl_image * target,
+ const cpl_image * from,
+ cpl_size target_shift_x,
+ cpl_size target_shift_y);
+CPL_END_DECLS
#endif
diff --git a/hawki/hawki_image_stats.c b/hawki/hawki_image_stats.c
index 88a2d2a..939119a 100644
--- a/hawki/hawki_image_stats.c
+++ b/hawki/hawki_image_stats.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2012/05/03 10:42:32 $
* $Revision: 1.8 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_image_stats.h b/hawki/hawki_image_stats.h
index b396c73..61cea78 100644
--- a/hawki/hawki_image_stats.h
+++ b/hawki/hawki_image_stats.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/11/25 16:24:13 $
* $Revision: 1.4 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_IMAGE_STATS_H
diff --git a/hawki/hawki_load.c b/hawki/hawki_load.c
index 27de58c..987828d 100644
--- a/hawki/hawki_load.c
+++ b/hawki/hawki_load.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/12/04 10:39:14 $
* $Revision: 1.40 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_load.h b/hawki/hawki_load.h
index f5ac648..d8dc2b1 100644
--- a/hawki/hawki_load.h
+++ b/hawki/hawki_load.h
@@ -1,4 +1,4 @@
-/* $Id: hawki_load.h,v 1.21 2009/10/12 16:59:22 cgarcia Exp $
+/* $Id: hawki_load.h,v 1.22 2012/12/05 14:56:52 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2009/10/12 16:59:22 $
- * $Revision: 1.21 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/05 14:56:52 $
+ * $Revision: 1.22 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_LOAD_H
@@ -32,6 +32,7 @@
Functions prototypes
-----------------------------------------------------------------------------*/
+CPL_BEGIN_DECLS
cpl_frameset * hawki_extract_frameset(const cpl_frameset *, const char *) ;
cpl_imagelist * hawki_load_frameset(const cpl_frameset *, int, cpl_type) ;
cpl_imagelist * hawki_load_frame(const cpl_frame *, cpl_type) ;
@@ -53,5 +54,6 @@ int hawki_get_detector_from_ext(const char *, int) ;
int hawki_get_ext_from_detector(const char *, int) ;
int * hawki_get_ext_detector_mapping
(const char * fname);
+CPL_END_DECLS
#endif
diff --git a/hawki/hawki_mask.c b/hawki/hawki_mask.c
index 4e5283a..fc8642e 100644
--- a/hawki/hawki_mask.c
+++ b/hawki/hawki_mask.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2010/03/12 12:55:17 $
* $Revision: 1.3 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_mask.h b/hawki/hawki_mask.h
index 07fd602..4ebe4fc 100644
--- a/hawki/hawki_mask.h
+++ b/hawki/hawki_mask.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/11/26 09:51:54 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_MASK_H
diff --git a/hawki/hawki_match_cats.c b/hawki/hawki_match_cats.c
index 25b15bc..19f9ded 100644
--- a/hawki/hawki_match_cats.c
+++ b/hawki/hawki_match_cats.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/11/26 09:52:32 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_match_cats.h b/hawki/hawki_match_cats.h
index f6f1557..bb230d8 100644
--- a/hawki/hawki_match_cats.h
+++ b/hawki/hawki_match_cats.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/11/26 09:52:32 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_MATCH_CATS_H
diff --git a/hawki/hawki_obj_det.c b/hawki/hawki_obj_det.c
index 33b1266..548fa9d 100644
--- a/hawki/hawki_obj_det.c
+++ b/hawki/hawki_obj_det.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/09/29 09:13:00 $
* $Revision: 1.2 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_obj_det.h b/hawki/hawki_obj_det.h
index 9069295..04a776f 100644
--- a/hawki/hawki_obj_det.h
+++ b/hawki/hawki_obj_det.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2008/10/22 10:42:04 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_OBJ_DET_H
diff --git a/hawki/hawki_pfits.c b/hawki/hawki_pfits.c
index 75fc1b5..d2d72b0 100644
--- a/hawki/hawki_pfits.c
+++ b/hawki/hawki_pfits.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2010/02/23 10:58:44 $
* $Revision: 1.18 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_pfits.h b/hawki/hawki_pfits.h
index f1cdffc..3b56e82 100644
--- a/hawki/hawki_pfits.h
+++ b/hawki/hawki_pfits.h
@@ -1,4 +1,4 @@
-/* $Id: hawki_pfits.h,v 1.14 2010/02/23 10:58:49 cgarcia Exp $
+/* $Id: hawki_pfits.h,v 1.15 2012/12/07 13:45:43 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2010/02/23 10:58:49 $
- * $Revision: 1.14 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/07 13:45:43 $
+ * $Revision: 1.15 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_PFITS_H
@@ -38,6 +38,7 @@
Functions prototypes
-----------------------------------------------------------------------------*/
+CPL_BEGIN_DECLS
const char * hawki_pfits_get_extname(const cpl_propertylist * plist) ;
double hawki_pfits_get_airmass_start(const cpl_propertylist * plist) ;
double hawki_pfits_get_airmass_end(const cpl_propertylist * plist) ;
@@ -91,5 +92,6 @@ double hawki_pfits_get_comb_cumoffsetx(const cpl_propertylist * plist);
double hawki_pfits_get_comb_cumoffsety(const cpl_propertylist * plist);
double hawki_pfits_get_comb_posx(const cpl_propertylist * plist);
double hawki_pfits_get_comb_posy(const cpl_propertylist * plist);
+CPL_END_DECLS
#endif
diff --git a/hawki/hawki_properties_tel.c b/hawki/hawki_properties_tel.c
index 979b51c..d6a46fa 100644
--- a/hawki/hawki_properties_tel.c
+++ b/hawki/hawki_properties_tel.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2008/07/08 14:23:18 $
* $Revision: 1.2 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_properties_tel.h b/hawki/hawki_properties_tel.h
index 978324d..5cab738 100644
--- a/hawki/hawki_properties_tel.h
+++ b/hawki/hawki_properties_tel.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2008/06/25 13:04:25 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_PROPERTIES_TEL_H
diff --git a/hawki/hawki_saa.c b/hawki/hawki_saa.c
index 405ba19..b9b0142 100644
--- a/hawki/hawki_saa.c
+++ b/hawki/hawki_saa.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2010/03/08 16:20:54 $
* $Revision: 1.10 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_saa.h b/hawki/hawki_saa.h
index c9e7680..3253bfc 100644
--- a/hawki/hawki_saa.h
+++ b/hawki/hawki_saa.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/02/05 12:51:14 $
* $Revision: 1.5 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_SAA_H
diff --git a/hawki/hawki_save.c b/hawki/hawki_save.c
index c67a28c..67d8c21 100644
--- a/hawki/hawki_save.c
+++ b/hawki/hawki_save.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2010/11/29 03:37:15 $
* $Revision: 1.11 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_save.h b/hawki/hawki_save.h
index a8b01e1..882c57c 100644
--- a/hawki/hawki_save.h
+++ b/hawki/hawki_save.h
@@ -1,4 +1,4 @@
-/* $Id: hawki_save.h,v 1.4 2009/11/25 16:25:08 cgarcia Exp $
+/* $Id: hawki_save.h,v 1.5 2012/12/05 14:57:03 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2009/11/25 16:25:08 $
- * $Revision: 1.4 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/05 14:57:03 $
+ * $Revision: 1.5 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_SAVE_H
@@ -38,6 +38,7 @@
Functions prototypes
-----------------------------------------------------------------------------*/
+CPL_BEGIN_DECLS
int hawki_imagelist_save
(cpl_frameset * allframes,
const cpl_parameterlist * parlist,
@@ -97,5 +98,6 @@ int hawki_image_ext_save
const cpl_propertylist * ext_prop_list,
const char * filename);
const char * hawki_get_extref_file(const cpl_frameset *);
+CPL_END_DECLS
#endif
diff --git a/hawki/hawki_utils.c b/hawki/hawki_utils.c
index e173155..b29b62a 100644
--- a/hawki/hawki_utils.c
+++ b/hawki/hawki_utils.c
@@ -1,4 +1,4 @@
-/* $Id: hawki_utils.c,v 1.53 2012/04/26 15:18:04 cgarcia Exp $
+/* $Id: hawki_utils.c,v 1.54 2012/12/06 16:55:32 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2012/04/26 15:18:04 $
- * $Revision: 1.53 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/06 16:55:32 $
+ * $Revision: 1.54 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -1264,5 +1264,35 @@ void hawki_utils_dec2str(char * str, int length_str, double dec)
return;
}
+/**
+ * @brief
+ * Insert all frames of other in self. To be removed after the same
+ * functionality exists in CPL
+ *
+ * @param self A frame set.
+ * @param other The frames to insert.
+ */
+cpl_error_code
+hawki_frameset_append(cpl_frameset *self, const cpl_frameset *other)
+{
+ cpl_size iframe;
+ cpl_size nframes;
+
+ nframes = cpl_frameset_get_size(other);
+
+ for(iframe = 0; iframe<nframes; ++iframe)
+ {
+ cpl_frame * newframe;
+ newframe = cpl_frame_duplicate
+ (cpl_frameset_get_frame_const(other, iframe));
+ if(cpl_frameset_insert(self, newframe) != CPL_ERROR_NONE)
+ {
+ cpl_error_set(cpl_func, CPL_ERROR_ILLEGAL_INPUT);
+ return CPL_ERROR_ILLEGAL_INPUT;
+ }
+ }
+ return CPL_ERROR_NONE;
+}
+
/**@}*/
diff --git a/hawki/hawki_utils.h b/hawki/hawki_utils.h
index ba41c4c..8e15014 100644
--- a/hawki/hawki_utils.h
+++ b/hawki/hawki_utils.h
@@ -1,4 +1,4 @@
-/* $Id: hawki_utils.h,v 1.41 2011/09/16 15:18:04 cgarcia Exp $
+/* $Id: hawki_utils.h,v 1.43 2012/12/06 16:55:32 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2011/09/16 15:18:04 $
- * $Revision: 1.41 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/06 16:55:32 $
+ * $Revision: 1.43 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_UTILS_H
@@ -81,6 +81,7 @@ typedef enum _HAWKI_BAND_ {
Prototypes
-----------------------------------------------------------------------------*/
+CPL_BEGIN_DECLS
void hawki_print_banner(void);
const char * hawki_get_license(void);
const char * hawki_get_version(void);
@@ -146,4 +147,8 @@ int hawki_utils_check_equal_int_keys
(cpl_frameset * frames, int (*func)(const cpl_propertylist *));
void hawki_utils_ra2str(char * str, int length_str, double ra);
void hawki_utils_dec2str(char * str, int length_str, double dec);
+cpl_error_code hawki_frameset_append
+(cpl_frameset *self, const cpl_frameset *other);
+CPL_END_DECLS
+
#endif
diff --git a/hawki/hawki_variance.c b/hawki/hawki_variance.c
index b28a102..dd167c4 100644
--- a/hawki/hawki_variance.c
+++ b/hawki/hawki_variance.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/03/13 11:52:06 $
* $Revision: 1.2 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/hawki/hawki_variance.h b/hawki/hawki_variance.h
index fd3ae54..5f50b28 100644
--- a/hawki/hawki_variance.h
+++ b/hawki/hawki_variance.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/03/13 11:52:14 $
* $Revision: 1.2 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef HAWKI_VARIANCE_H
diff --git a/tests/Makefile.am b/hawki/tests/Makefile.am
similarity index 71%
copy from tests/Makefile.am
copy to hawki/tests/Makefile.am
index e845b90..a3028ee 100644
--- a/tests/Makefile.am
+++ b/hawki/tests/Makefile.am
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in
-## This file is part of the HAWKI Pipeline Library
-## Copyright (C) 2002,2003 European Southern Observatory
+## This file is part of the HAWKI Pipeline
+## Copyright (C) 2002,2009 European Southern Observatory
## This library is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
@@ -17,11 +17,10 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-AUTOMAKE_OPTIONS = 1.6 foreign
+AUTOMAKE_OPTIONS = 1.8 foreign
DISTCLEANFILES = *~
-
if MAINTAINER_MODE
MAINTAINERCLEANFILES = Makefile.in
@@ -29,12 +28,21 @@ MAINTAINERCLEANFILES = Makefile.in
endif
-LIBHAWKI = $(top_builddir)/hawki/libhawki.la
+INCLUDES = $(all_includes)
-INCLUDES = -I$(top_builddir)hawki/
LDADD = $(LIBHAWKI)
+AM_LDFLAGS =
+
+#check_PROGRAMS = hawki_distortion-test hawki_image-test hawki_robust_fit-test
+check_PROGRAMS = hawki_image-test
+
+hawki_image_test_SOURCES = hawki_image-test.c
-check_PROGRAMS =
+#hawki_distortion_test_SOURCES = hawki_distortion-test.c
+
+#hawki_robust_fit_test_SOURCES = hawki_robust_fit-test.c
+
+TESTS = $(check_PROGRAMS)
# Be sure to reexport important environment variables.
TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
@@ -42,7 +50,6 @@ TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
LIBS="$(LIBS)" LN_S="$(LN_S)" NM="$(NM)" RANLIB="$(RANLIB)" \
OBJEXT="$(OBJEXT)" EXEEXT="$(EXEEXT)"
-TESTS =
-
# We need to remove any files that the above tests created.
clean-local:
+ $(RM) *.fits *.tfits *.log .logfile
diff --git a/tests/Makefile.in b/hawki/tests/Makefile.in
similarity index 71%
copy from tests/Makefile.in
copy to hawki/tests/Makefile.in
index b16a8d1..6a1318f 100644
--- a/tests/Makefile.in
+++ b/hawki/tests/Makefile.in
@@ -34,9 +34,8 @@ POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
target_triplet = @target@
-check_PROGRAMS =
-TESTS =
-subdir = tests
+check_PROGRAMS = hawki_image-test$(EXEEXT)
+subdir = hawki/tests
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4macros/cpl.m4 \
@@ -55,8 +54,28 @@ mkinstalldirs = $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
-SOURCES =
-DIST_SOURCES =
+am_hawki_image_test_OBJECTS = hawki_image-test.$(OBJEXT)
+hawki_image_test_OBJECTS = $(am_hawki_image_test_OBJECTS)
+hawki_image_test_LDADD = $(LDADD)
+am__DEPENDENCIES_1 =
+hawki_image_test_DEPENDENCIES = $(am__DEPENDENCIES_1)
+DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/admin/depcomp
+am__depfiles_maybe = depfiles
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(hawki_image_test_SOURCES)
+DIST_SOURCES = $(hawki_image_test_SOURCES)
+ETAGS = etags
+CTAGS = ctags
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -74,6 +93,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -115,7 +138,7 @@ LIBCPLCORE = @LIBCPLCORE@
LIBCPLDFS = @LIBCPLDFS@
LIBCPLDRS = @LIBCPLDRS@
LIBCPLUI = @LIBCPLUI@
-LIBHAWKI = $(top_builddir)/hawki/libhawki.la
+LIBHAWKI = @LIBHAWKI@
LIBIRPLIB = @LIBIRPLIB@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
@@ -162,6 +185,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
@@ -220,11 +244,18 @@ top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
wkfcopydir = @wkfcopydir@
wkfextradir = @wkfextradir@
-AUTOMAKE_OPTIONS = 1.6 foreign
+AUTOMAKE_OPTIONS = 1.8 foreign
DISTCLEANFILES = *~
@MAINTAINER_MODE_TRUE at MAINTAINERCLEANFILES = Makefile.in
-INCLUDES = -I$(top_builddir)hawki/
+INCLUDES = $(all_includes)
LDADD = $(LIBHAWKI)
+AM_LDFLAGS =
+hawki_image_test_SOURCES = hawki_image-test.c
+
+#hawki_distortion_test_SOURCES = hawki_distortion-test.c
+
+#hawki_robust_fit_test_SOURCES = hawki_robust_fit-test.c
+TESTS = $(check_PROGRAMS)
# Be sure to reexport important environment variables.
TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
@@ -235,6 +266,7 @@ TESTS_ENVIRONMENT = MAKE="$(MAKE)" CC="$(CC)" CFLAGS="$(CFLAGS)" \
all: all-am
.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -244,9 +276,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__confi
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign hawki/tests/Makefile'; \
$(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign tests/Makefile
+ $(AUTOMAKE) --foreign hawki/tests/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
@@ -274,18 +306,96 @@ clean-checkPROGRAMS:
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
echo " rm -f" $$list; \
rm -f $$list
+hawki_image-test$(EXEEXT): $(hawki_image_test_OBJECTS) $(hawki_image_test_DEPENDENCIES)
+ @rm -f hawki_image-test$(EXEEXT)
+ $(LINK) $(hawki_image_test_OBJECTS) $(hawki_image_test_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/hawki_image-test.Po at am__quote@
+
+.c.o:
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(COMPILE) -c $<
+
+.c.obj:
+ at am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+
+.c.lo:
+ at am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
tags: TAGS
-TAGS:
+TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
ctags: CTAGS
-CTAGS:
-
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
check-TESTS: $(TESTS)
@failed=0; all=0; xfail=0; xpass=0; skip=0; \
@@ -448,8 +558,10 @@ clean-am: clean-checkPROGRAMS clean-generic clean-libtool clean-local \
mostlyclean-am
distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
-rm -f Makefile
-distclean-am: clean-am distclean-generic
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
dvi: dvi-am
@@ -492,12 +604,14 @@ install-ps-am:
installcheck-am:
maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
-mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
pdf: pdf-am
@@ -511,21 +625,24 @@ uninstall-am:
.MAKE: check-am install-am install-strip
-.PHONY: all all-am check check-TESTS check-am clean \
+.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
clean-checkPROGRAMS clean-generic clean-libtool clean-local \
- distclean distclean-generic distclean-libtool distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-ps install-ps-am install-strip \
- installcheck installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+ ctags distclean distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am
# We need to remove any files that the above tests created.
clean-local:
+ $(RM) *.fits *.tfits *.log .logfile
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/hawki/tests/hawki_image-test.c b/hawki/tests/hawki_image-test.c
new file mode 100644
index 0000000..7bbcb5c
--- /dev/null
+++ b/hawki/tests/hawki_image-test.c
@@ -0,0 +1,463 @@
+/* $Id: hawki_image-test.c,v 1.2 2012/12/07 14:12:31 cgarcia Exp $
+ *
+ * This file is part of the HAWKI Pipeline
+ * Copyright (C) 2002,2003 European Southern Observatory
+ *
+ * This program 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 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/*
+ * $Author: cgarcia $
+ * $Date: 2012/12/07 14:12:31 $
+ * $Revision: 1.2 $
+ * $Name: hawki-1_8_10 $
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+/*-----------------------------------------------------------------------------
+ Includes
+ -----------------------------------------------------------------------------*/
+
+#include "hawki_image.h"
+
+/*-----------------------------------------------------------------------------
+ Defines
+ -----------------------------------------------------------------------------*/
+#define cpl_drand() ((double)rand()/(double)RAND_MAX)
+
+/*-----------------------------------------------------------------------------
+ Static functions
+ -----------------------------------------------------------------------------*/
+static void hawki_image_all_test(void);
+static void hawki_image_copy_to_intersection_test(void);
+
+/*-----------------------------------------------------------------------------
+ Main
+ -----------------------------------------------------------------------------*/
+int main (void)
+{
+
+ cpl_test_init(PACKAGE_BUGREPORT, CPL_MSG_WARNING);
+
+ hawki_image_all_test();
+
+ return cpl_test_end(0);
+}
+
+static void hawki_image_all_test(void)
+{
+ hawki_image_copy_to_intersection_test();
+}
+
+static void hawki_image_copy_to_intersection_test(void)
+{
+ /* Case 1: image from is contained within image target.
+ * Check intersection values are the same */
+ {
+ cpl_size from_nx = 100;
+ cpl_size from_ny = 100;
+ cpl_size target_nx = 300;
+ cpl_size target_ny = 300;
+ cpl_size offset_x = -100;
+ cpl_size offset_y = -100;
+
+ cpl_image * from;
+ cpl_image * target;
+
+ FILE * dumpfrom;
+ FILE * dumptarget;
+
+ FILE * target_read;
+ int length_target_read;
+ char * content_target_dump;
+ FILE * from_read;
+ int length_from_read;
+ char * content_from_dump;
+
+ double val_target;
+ double val_from;
+ int pix_reject;
+
+ /* Create images */
+ from = cpl_image_new(from_nx, from_ny, CPL_TYPE_DOUBLE);
+ target = cpl_image_new(target_nx, target_ny,CPL_TYPE_DOUBLE);
+ cpl_test_nonnull(from);
+ cpl_test_nonnull(target);
+ cpl_image_fill_noise_uniform(from, 1., 10.);
+ cpl_image_fill_noise_uniform(target, 1., 10.);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Call the tested function */
+ hawki_image_copy_to_intersection(target, from, offset_x, offset_y);
+
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Dump the intersection of target */
+ dumptarget = fopen("target_dump", "w");
+ cpl_test_nonnull(dumptarget);
+ cpl_image_dump_window(target, 101, 101, 200, 200, dumptarget);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Dump the intersection of from */
+ dumpfrom = fopen("from_dump", "w");
+ cpl_test_nonnull(dumpfrom);
+ cpl_image_dump_window(from, 1, 1, 100, 100, dumpfrom);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Compare a couple of values */
+ val_target = cpl_image_get(target, 101, 101, &pix_reject);
+ val_from = cpl_image_get(from, 1, 1, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+ val_target = cpl_image_get(target, 200, 200, &pix_reject);
+ val_from = cpl_image_get(from, 100, 100, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+
+ /* Free memory */
+ cpl_image_delete(from);
+ cpl_image_delete(target);
+
+ /* Delete files */
+ cpl_test_zero( remove("target_dump") );
+ cpl_test_zero( remove("from_dump") );
+ }
+
+ /* Case 2: image from contains image target */
+ {
+ cpl_size from_nx = 300;
+ cpl_size from_ny = 300;
+ cpl_size target_nx = 100;
+ cpl_size target_ny = 100;
+ cpl_size offset_x = 100;
+ cpl_size offset_y = 100;
+
+ cpl_image * from;
+ cpl_image * target;
+
+ double val_target;
+ double val_from;
+ int pix_reject;
+
+ /* Create images */
+ from = cpl_image_new(from_nx, from_ny, CPL_TYPE_DOUBLE);
+ target = cpl_image_new(target_nx, target_ny, CPL_TYPE_DOUBLE);
+ cpl_test_nonnull(from);
+ cpl_test_nonnull(target);
+ cpl_image_fill_noise_uniform(from, 1., 10.);
+ cpl_image_fill_noise_uniform(target, 1., 10.);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Call the tested function */
+ hawki_image_copy_to_intersection(target, from, offset_x, offset_y);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Compare a couple of values */
+ val_target = cpl_image_get(target, 1, 1, &pix_reject);
+ val_from = cpl_image_get(from, 101, 101, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+ val_target = cpl_image_get(target, 100, 1, &pix_reject);
+ val_from = cpl_image_get(from, 200, 101, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+ val_target = cpl_image_get(target, 100, 100, &pix_reject);
+ val_from = cpl_image_get(from, 200, 200, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+
+ /* Free memory */
+ cpl_image_delete(from);
+ cpl_image_delete(target);
+ }
+ /* Case 3: image from and target overlaps in the left bottom corner */
+ {
+ cpl_size from_nx = 100;
+ cpl_size from_ny = 100;
+ cpl_size target_nx = 100;
+ cpl_size target_ny = 100;
+ cpl_size offset_x = -50;
+ cpl_size offset_y = -50;
+
+ cpl_image * from;
+ cpl_image * target;
+
+ double val_target;
+ double val_from;
+ int pix_reject;
+
+ /* Create images */
+ from = cpl_image_new(from_nx, from_ny, CPL_TYPE_DOUBLE);
+ target = cpl_image_new(target_nx, target_ny, CPL_TYPE_DOUBLE);
+ cpl_test_nonnull(from);
+ cpl_test_nonnull(target);
+ cpl_image_fill_noise_uniform(from, 1., 10.);
+ cpl_image_fill_noise_uniform(target, 1., 10.);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Call the tested function */
+ hawki_image_copy_to_intersection(target, from, offset_x, offset_y);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Compare a couple of values */
+ val_target = cpl_image_get(target, 51, 51, &pix_reject);
+ val_from = cpl_image_get(from, 1, 1, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+ val_target = cpl_image_get(target, 51, 52, &pix_reject);
+ val_from = cpl_image_get(from, 1, 2, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+
+ /* Free memory */
+ cpl_image_delete(from);
+ cpl_image_delete(target);
+ }
+ /* Case 4: image from and target overlaps in the right upper corner */
+ {
+ cpl_size from_nx = 100;
+ cpl_size from_ny = 100;
+ cpl_size target_nx = 100;
+ cpl_size target_ny = 100;
+ cpl_size offset_x = (cpl_size)(cpl_drand() * 50 +1);
+ cpl_size offset_y = (cpl_size)(cpl_drand() * 50 +1);
+
+ cpl_image * from;
+ cpl_image * target;
+
+ double val_target;
+ double val_from;
+ int pix_reject;
+
+ /* Create images */
+ from = cpl_image_new(from_nx, from_ny, CPL_TYPE_DOUBLE);
+ target = cpl_image_new(target_nx, target_ny,CPL_TYPE_DOUBLE);
+ cpl_test_nonnull(from);
+ cpl_test_nonnull(target);
+ cpl_image_fill_noise_uniform(from, 1., 10.);
+ cpl_image_fill_noise_uniform(target, 1., 10.);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Call the tested function */
+ hawki_image_copy_to_intersection(target, from, offset_x, offset_y);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Compare a couple of values */
+ val_target = cpl_image_get(target, 1, 1, &pix_reject);
+ val_from = cpl_image_get(from, 1 + offset_x, 1 + offset_y, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+ val_target = cpl_image_get(target, 100 - offset_x, 100 - offset_y, &pix_reject);
+ val_from = cpl_image_get(from, 100, 100, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+
+ /* Free memory */
+ cpl_image_delete(from);
+ cpl_image_delete(target);
+ }
+ /* Case 5: images are the same */
+ {
+ cpl_size from_nx = 100;
+ cpl_size from_ny = 100;
+ cpl_size target_nx = 100;
+ cpl_size target_ny = 100;
+ cpl_size offset_x = 0;
+ cpl_size offset_y = 0;
+
+ cpl_image * from;
+ cpl_image * target;
+
+ double val_target;
+ double val_from;
+ int pix_reject;
+
+ /* Create images */
+ from = cpl_image_new(from_nx, from_ny, CPL_TYPE_DOUBLE);
+ target = cpl_image_new(target_nx, target_ny,CPL_TYPE_DOUBLE);
+ cpl_test_nonnull(from);
+ cpl_test_nonnull(target);
+ cpl_image_fill_noise_uniform(from, 1., 10.);
+ cpl_image_fill_noise_uniform(target, 1., 10.);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Call the tested function */
+ hawki_image_copy_to_intersection(target, from, offset_x, offset_y);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Compare a couple of values */
+ val_target = cpl_image_get(target, 1, 1, &pix_reject);
+ val_from = cpl_image_get(from, 1, 1, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+ val_target = cpl_image_get(target, 100, 100, &pix_reject);
+ val_from = cpl_image_get(from, 100, 100, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+
+ /* Free memory */
+ cpl_image_delete(from);
+ cpl_image_delete(target);
+ }
+ /* Case 6: image from overruns only in the left side the target */
+ {
+ cpl_size from_nx = 100;
+ cpl_size from_ny = 50;
+ cpl_size target_nx = 100;
+ cpl_size target_ny = 100;
+ cpl_size offset_x = 25;
+ cpl_size offset_y = -25;
+
+ cpl_image * from;
+ cpl_image * target;
+
+ double val_target;
+ double val_from;
+ int pix_reject;
+
+ /* Create images */
+ from = cpl_image_new(from_nx, from_ny, CPL_TYPE_DOUBLE);
+ target = cpl_image_new(target_nx, target_ny,CPL_TYPE_DOUBLE);
+ cpl_test_nonnull(from);
+ cpl_test_nonnull(target);
+ cpl_image_fill_noise_uniform(from, 1., 10.);
+ cpl_image_fill_noise_uniform(target, 1., 10.);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Call the tested function */
+ hawki_image_copy_to_intersection(target, from, offset_x, offset_y);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Compare a couple of values */
+ val_target = cpl_image_get(target, 1, 26, &pix_reject);
+ val_from = cpl_image_get(from, 26, 1, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+ val_target = cpl_image_get(target, 75, 75, &pix_reject);
+ val_from = cpl_image_get(from, 100, 50, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+
+ /* Free memory */
+ cpl_image_delete(from);
+ cpl_image_delete(target);
+ }
+ /* Case 7: image from overruns only in the upper side the target */
+ {
+ cpl_size from_nx = 50;
+ cpl_size from_ny = 100;
+ cpl_size target_nx = 100;
+ cpl_size target_ny = 100;
+ cpl_size offset_x = -25;
+ cpl_size offset_y = -25;
+
+ cpl_image * from;
+ cpl_image * target;
+
+ double val_target;
+ double val_from;
+ int pix_reject;
+
+ /* Create images */
+ from = cpl_image_new(from_nx, from_ny, CPL_TYPE_DOUBLE);
+ target = cpl_image_new(target_nx, target_ny,CPL_TYPE_DOUBLE);
+ cpl_test_nonnull(from);
+ cpl_test_nonnull(target);
+ cpl_image_fill_noise_uniform(from, 1., 10.);
+ cpl_image_fill_noise_uniform(target, 1., 10.);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Call the tested function */
+ hawki_image_copy_to_intersection(target, from, offset_x, offset_y);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Compare a couple of values */
+ val_target = cpl_image_get(target, 26, 26, &pix_reject);
+ val_from = cpl_image_get(from, 1, 1, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+ val_target = cpl_image_get(target, 75, 100, &pix_reject);
+ val_from = cpl_image_get(from, 50, 75, &pix_reject);
+ cpl_test_eq( val_target, val_from );
+
+ /* Free memory */
+ cpl_image_delete(from);
+ cpl_image_delete(target);
+ }
+ /* Case 8: very small images */
+ {
+ cpl_size from_nx = 2;
+ cpl_size from_ny = 2;
+ cpl_size target_nx = 2;
+ cpl_size target_ny = 2;
+ cpl_size offset_x = 1;
+ cpl_size offset_y = 1;
+
+ cpl_image * from;
+ cpl_image * target;
+
+ double val_target;
+ double val_from;
+ int pixel_rejected;
+
+ /* Create images */
+ from = cpl_image_new(from_nx, from_ny, CPL_TYPE_DOUBLE);
+ target = cpl_image_new(target_nx, target_ny,CPL_TYPE_DOUBLE);
+ cpl_test_nonnull(from);
+ cpl_test_nonnull(target);
+ cpl_image_fill_noise_uniform(from, 1., 10.);
+ cpl_image_fill_noise_uniform(target, 1., 10.);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Call the tested function */
+ hawki_image_copy_to_intersection(target, from, offset_x, offset_y);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ val_target = cpl_image_get(target, 1, 1, &pixel_rejected);
+ val_from = cpl_image_get(from, 2, 2, &pixel_rejected);
+ cpl_test_eq( val_target, val_from );
+
+ /* Free memory */
+ cpl_image_delete(from);
+ cpl_image_delete(target);
+ }
+ /* Case 9: very small images. Integer case */
+ {
+ cpl_size from_nx = 2;
+ cpl_size from_ny = 2;
+ cpl_size target_nx = 2;
+ cpl_size target_ny = 2;
+ cpl_size offset_x = 1;
+ cpl_size offset_y = 1;
+
+ cpl_image * from;
+ cpl_image * target;
+
+ double val_target;
+ double val_from;
+ int pixel_rejected;
+
+ /* Create images */
+ from = cpl_image_new(from_nx, from_ny, CPL_TYPE_INT);
+ target = cpl_image_new(target_nx, target_ny,CPL_TYPE_INT);
+ cpl_test_nonnull(from);
+ cpl_test_nonnull(target);
+ cpl_image_fill_noise_uniform(from, 1., 10.);
+ cpl_image_fill_noise_uniform(target, 1., 10.);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ /* Call the tested function */
+ hawki_image_copy_to_intersection(target, from, offset_x, offset_y);
+ cpl_test_error(CPL_ERROR_NONE);
+
+ val_target = cpl_image_get(target, 1, 1, &pixel_rejected);
+ val_from = cpl_image_get(from, 2, 2, &pixel_rejected);
+ cpl_test_eq( val_target, val_from );
+
+ /* Free memory */
+ cpl_image_delete(from);
+ cpl_image_delete(target);
+ }
+}
diff --git a/html/annotated.html b/html/annotated.html
index 5aa7165..dde96dc 100644
--- a/html/annotated.html
+++ b/html/annotated.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -45,7 +45,7 @@
<tr><td class="indexkey"><a class="el" href="struct__hawki__distortion__obj__function__args__.html">_hawki_distortion_obj_function_args_</a></td><td class="indexvalue"></td></tr>
</table>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/classes.html b/html/classes.html
index 1c2f152..473af94 100644
--- a/html/classes.html
+++ b/html/classes.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -46,7 +46,7 @@
<tr><td><a name="letter__"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah"> _ </div></td></tr></table>
</td><td><a class="el" href="struct__hawki__distortion__obj__function__args__.html">_hawki_distortion_obj_function_args_</a> </td></tr></table><div class="qindex"><a class="qindex" href="#letter__">_</a></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/dir_61a4ab009ead72bcdcfcf8e0d997aa51.html b/html/dir_b8c9749b1863662f2d5b3897d8ee4a45.html
similarity index 93%
rename from html/dir_61a4ab009ead72bcdcfcf8e0d997aa51.html
rename to html/dir_b8c9749b1863662f2d5b3897d8ee4a45.html
index 81de5d4..245f68b 100644
--- a/html/dir_61a4ab009ead72bcdcfcf8e0d997aa51.html
+++ b/html/dir_b8c9749b1863662f2d5b3897d8ee4a45.html
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>HAWKI Pipeline Reference Manual: /home/cgarcia/SDD/tmp/1.8.9/hawkip/hawki/ Directory Reference</title>
+<title>HAWKI Pipeline Reference Manual: /home/cgarcia/SDD/tmp/1.8.10/hawkip/hawki/ Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -31,7 +31,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,6 @@
Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_alloc.c</b> <a href="hawki__alloc_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_alloc.h</b> <a href="hawki__alloc_8h_source.html">[code]</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_bkg.c</b> <a href="hawki__bkg_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_bkg.h</b> <a href="hawki__bkg_8h_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_calib.c</b> <a href="hawki__calib_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_calib.h</b> <a href="hawki__calib_8h_source.html">[code]</a></td></tr>
@@ -55,6 +54,8 @@ Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_dfs.h</b> <a href="hawki__dfs_8h_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_distortion.c</b> <a href="hawki__distortion_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_distortion.h</b> <a href="hawki__distortion_8h_source.html">[code]</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_image.c</b> <a href="hawki__image_8c_source.html">[code]</a></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_image.h</b> <a href="hawki__image_8h_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_image_stats.c</b> <a href="hawki__image__stats_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_image_stats.h</b> <a href="hawki__image__stats_8h_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_load.c</b> <a href="hawki__load_8c_source.html">[code]</a></td></tr>
@@ -79,7 +80,7 @@ Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_variance.h</b> <a href="hawki__variance_8h_source.html">[code]</a></td></tr>
</table>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/dir_dd1f22bf73a30aa083e3126f80060e44.html b/html/dir_d72ebc9d7e5f36c34615460901eb48a9.html
similarity index 92%
rename from html/dir_dd1f22bf73a30aa083e3126f80060e44.html
rename to html/dir_d72ebc9d7e5f36c34615460901eb48a9.html
index 956c374..6cf9fba 100644
--- a/html/dir_dd1f22bf73a30aa083e3126f80060e44.html
+++ b/html/dir_d72ebc9d7e5f36c34615460901eb48a9.html
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>HAWKI Pipeline Reference Manual: /home/cgarcia/SDD/tmp/1.8.9/hawkip/recipes/ Directory Reference</title>
+<title>HAWKI Pipeline Reference Manual: /home/cgarcia/SDD/tmp/1.8.10/hawkip/recipes/ Directory Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -31,7 +31,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -53,7 +53,6 @@ Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_step_apply_dist.c</b> <a href="hawki__step__apply__dist_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_step_basic_calib.c</b> <a href="hawki__step__basic__calib_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_step_combine.c</b> <a href="hawki__step__combine_8c_source.html">[code]</a></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_step_compute_bkg.c</b> <a href="hawki__step__compute__bkg_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_step_detect_obj.c</b> <a href="hawki__step__detect__obj_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_step_photom_2mass.c</b> <a href="hawki__step__photom__2mass_8c_source.html">[code]</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_step_refine_offsets.c</b> <a href="hawki__step__refine__offsets_8c_source.html">[code]</a></td></tr>
@@ -66,7 +65,7 @@ Files</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">file </td><td class="memItemRight" valign="bottom"><b>hawki_util_stdstars.c</b> <a href="hawki__util__stdstars_8c_source.html">[code]</a></td></tr>
</table>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/dirs.html b/html/dirs.html
index 11a2466..0463d1c 100644
--- a/html/dirs.html
+++ b/html/dirs.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,11 +36,11 @@
</div>
<div class="contents">
<div class="textblock">This directory hierarchy is sorted roughly, but not completely, alphabetically:</div><ul>
-<li><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a></li>
-<li><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a></li>
+<li><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a></li>
+<li><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a></li>
</ul>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/files.html b/html/files.html
index 38bb700..21b3fa4 100644
--- a/html/files.html
+++ b/html/files.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -43,7 +43,6 @@
<div class="textblock">Here is a list of all documented files with brief descriptions:</div><table>
<tr><td class="indexkey"><b>hawki_alloc.c</b> <a href="hawki__alloc_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_alloc.h</b> <a href="hawki__alloc_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><b>hawki_bkg.c</b> <a href="hawki__bkg_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_bkg.h</b> <a href="hawki__bkg_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_cal_dark.c</b> <a href="hawki__cal__dark_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_cal_distortion.c</b> <a href="hawki__cal__distortion_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -59,6 +58,8 @@
<tr><td class="indexkey"><b>hawki_dfs.h</b> <a href="hawki__dfs_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_distortion.c</b> <a href="hawki__distortion_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_distortion.h</b> <a href="hawki__distortion_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><b>hawki_image.c</b> <a href="hawki__image_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
+ <tr><td class="indexkey"><b>hawki_image.h</b> <a href="hawki__image_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_image_stats.c</b> <a href="hawki__image__stats_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_image_stats.h</b> <a href="hawki__image__stats_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_load.c</b> <a href="hawki__load_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -81,7 +82,6 @@
<tr><td class="indexkey"><b>hawki_step_apply_dist.c</b> <a href="hawki__step__apply__dist_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_step_basic_calib.c</b> <a href="hawki__step__basic__calib_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_step_combine.c</b> <a href="hawki__step__combine_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
- <tr><td class="indexkey"><b>hawki_step_compute_bkg.c</b> <a href="hawki__step__compute__bkg_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_step_detect_obj.c</b> <a href="hawki__step__detect__obj_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_step_photom_2mass.c</b> <a href="hawki__step__photom__2mass_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
<tr><td class="indexkey"><b>hawki_step_refine_offsets.c</b> <a href="hawki__step__refine__offsets_8c_source.html">[code]</a></td><td class="indexvalue"></td></tr>
@@ -98,7 +98,7 @@
<tr><td class="indexkey"><b>hawki_variance.h</b> <a href="hawki__variance_8h_source.html">[code]</a></td><td class="indexvalue"></td></tr>
</table>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__alloc.html b/html/group__hawki__alloc.html
index 325e7bd..076f598 100644
--- a/html/group__hawki__alloc.html
+++ b/html/group__hawki__alloc.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -103,7 +103,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__calib.html b/html/group__hawki__calib.html
index ac7f529..066554a 100644
--- a/html/group__hawki__calib.html
+++ b/html/group__hawki__calib.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -397,7 +397,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__combine.html b/html/group__hawki__combine.html
index 59c182a..df60ced 100644
--- a/html/group__hawki__combine.html
+++ b/html/group__hawki__combine.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -38,7 +38,7 @@
<table class="memberdecls">
</table>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__dfs.html b/html/group__hawki__dfs.html
index f5834e7..6140884 100644
--- a/html/group__hawki__dfs.html
+++ b/html/group__hawki__dfs.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -75,7 +75,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__distortion.html b/html/group__hawki__distortion.html
index ca3a3de..3b59061 100644
--- a/html/group__hawki__distortion.html
+++ b/html/group__hawki__distortion.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -702,7 +702,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__image.html b/html/group__hawki__image.html
new file mode 100644
index 0000000..139dfa2
--- /dev/null
+++ b/html/group__hawki__image.html
@@ -0,0 +1,105 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>HAWKI Pipeline Reference Manual: Image manipulation</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.7.4 -->
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li><a href="dirs.html"><span>Directories</span></a></li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Image manipulation</div> </div>
+</div>
+<div class="contents">
+<table class="memberdecls">
+<tr><td colspan="2"><h2><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">cpl_error_code </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__image.html#ga346a296d47b16f2b677665c01adbd41d">hawki_image_copy_to_intersection</a> (cpl_image *target, const cpl_image *from, cpl_size target_shift_x, cpl_size target_shift_y)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Copies the values of an image to the intersection of two images. <a href="#ga346a296d47b16f2b677665c01adbd41d"></a><br/></td></tr>
+</table>
+<hr/><h2>Function Documentation</h2>
+<a class="anchor" id="ga346a296d47b16f2b677665c01adbd41d"></a><!-- doxytag: member="hawki_image.c::hawki_image_copy_to_intersection" ref="ga346a296d47b16f2b677665c01adbd41d" args="(cpl_image *target, const cpl_image *from, cpl_size target_shift_x, cpl_size target_shift_y)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">cpl_error_code hawki_image_copy_to_intersection </td>
+ <td>(</td>
+ <td class="paramtype">cpl_image * </td>
+ <td class="paramname"><em>target</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const cpl_image * </td>
+ <td class="paramname"><em>from</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">cpl_size </td>
+ <td class="paramname"><em>target_shift_x</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">cpl_size </td>
+ <td class="paramname"><em>target_shift_y</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Copies the values of an image to the intersection of two images. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">target</td><td>The image where the values will be copied </td></tr>
+ <tr><td class="paramname">from</td><td>The image from where the values are copied </td></tr>
+ <tr><td class="paramname">target_shift_x</td><td>The shift in pixels between the target image and the from image in X direction </td></tr>
+ <tr><td class="paramname">target_shift_y</td><td>The shift in pixels between the target image and the from image in Y direction</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>This function copies the contents of an image to other image which is shifted from the first image. The function will copy only the values of the pixels which belong to the intersection of the two images. </p>
+
+<p>Definition at line <a class="el" href="hawki__image_8c_source.html#l00068">68</a> of file <a class="el" href="hawki__image_8c_source.html">hawki_image.c</a>.</p>
+
+</div>
+</div>
+</div>
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
+</body>
+</html>
diff --git a/html/group__hawki__image__stats.html b/html/group__hawki__image__stats.html
index f7794e0..3288cde 100644
--- a/html/group__hawki__image__stats.html
+++ b/html/group__hawki__image__stats.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -40,14 +40,6 @@
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__image__stats.html#ga6cf0d3c3733489bb4c8a869b35cc6d59">hawki_bkg_fill_assoc</a> (cpl_frameset *objframes, cpl_propertylist *proplist)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Fill a propertylist with the association between objects and bkg. <a href="#ga6cf0d3c3733489bb4c8a869b35cc6d59"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__image__stats.html#ga364c91d30c968e6a15e403c11a5d281e">hawki_bkg_from_objects_median</a> (const cpl_frameset *objframes, cpl_imagelist *bkg)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the median of the object frames. <a href="#ga364c91d30c968e6a15e403c11a5d281e"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__image__stats.html#ga5c5f3ead9c1f168f90e1b8bd42dd07af">hawki_bkg_from_running_mean_detector</a> (cpl_imagelist *objimages, const cpl_vector *medians, int i_target, int half_width, int rejlow, int rejhigh, cpl_image *bkg)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the running mean for a set of object images using their masks. <a href="#ga5c5f3ead9c1f168f90e1b8bd42dd07af"></a><br/></td></tr>
-<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__image__stats.html#ga01f0d4c0177325b9a5d33f83be498097">hawki_bkg_from_sky_median</a> (const cpl_frameset *skyframes, cpl_imagelist *bkg)</td></tr>
-<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes the median of the sky frames. <a href="#ga01f0d4c0177325b9a5d33f83be498097"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">double </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__image__stats.html#gade5ca3e76e59c9ab510cb85bc02dd651">hawki_image_float_get_sigma_from_quartile</a> (cpl_image *image)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get a robust estimation of the sigma based on the quartiles. <a href="#gade5ca3e76e59c9ab510cb85bc02dd651"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__image__stats.html#ga07a4f45b2ba4af9420f7d8600dbbe836">hawki_image_stats_fill_from_frame</a> (cpl_table **image_stats, const cpl_frame *frame, int irow)</td></tr>
@@ -60,207 +52,6 @@ Functions</h2></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Make the statistics (over image serie) of the each image statistics. <a href="#gaaf82f2c0930f1c2bfcbc5cbef16b3928"></a><br/></td></tr>
</table>
<hr/><h2>Function Documentation</h2>
-<a class="anchor" id="ga6cf0d3c3733489bb4c8a869b35cc6d59"></a><!-- doxytag: member="hawki_bkg.c::hawki_bkg_fill_assoc" ref="ga6cf0d3c3733489bb4c8a869b35cc6d59" args="(cpl_frameset *objframes, cpl_propertylist *proplist)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int hawki_bkg_fill_assoc </td>
- <td>(</td>
- <td class="paramtype">cpl_frameset * </td>
- <td class="paramname"><em>objframes</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">cpl_propertylist * </td>
- <td class="paramname"><em>proplist</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Fill a propertylist with the association between objects and bkg. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table class="params">
- <tr><td class="paramname">objframes</td><td>The objframes associated to the background </td></tr>
- <tr><td class="paramname">proplist</td><td>The list of keywords to store the association information to </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>0 if everything is ok, -1 otherwise</dd></dl>
-<p>This function takes as an input a set of object frames. For EACH input object frames it creates in the given propertylist a keyword "pointing" to the ARCFILE of that frame. This propertylist can later be stored in the background image to establish the association between this background and the object frames. </p>
-
-<p>Definition at line <a class="el" href="hawki__bkg_8c_source.html#l00068">68</a> of file <a class="el" href="hawki__bkg_8c_source.html">hawki_bkg.c</a>.</p>
-
-<p>References <a class="el" href="hawki__pfits_8c_source.html#l00215">hawki_pfits_get_arcfile()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga364c91d30c968e6a15e403c11a5d281e"></a><!-- doxytag: member="hawki_bkg.c::hawki_bkg_from_objects_median" ref="ga364c91d30c968e6a15e403c11a5d281e" args="(const cpl_frameset *objframes, cpl_imagelist *bkg)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int hawki_bkg_from_objects_median </td>
- <td>(</td>
- <td class="paramtype">const cpl_frameset * </td>
- <td class="paramname"><em>objframes</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">cpl_imagelist * </td>
- <td class="paramname"><em>bkg</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Computes the median of the object frames. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table class="params">
- <tr><td class="paramname">objframes</td><td>The objframes to get the background from </td></tr>
- <tr><td class="paramname">bkg</td><td>The background image </td></tr>
- <tr><td class="paramname">proplist</td><td>The list of keywords to store the association information to </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>0 if everything is ok, -1 otherwise</dd></dl>
-<p>This function takes as an input a set of object frames and computes the background using a median of these frames. </p>
-
-<p>Definition at line <a class="el" href="hawki__bkg_8c_source.html#l00109">109</a> of file <a class="el" href="hawki__bkg_8c_source.html">hawki_bkg.c</a>.</p>
-
-<p>References <a class="el" href="hawki__load_8c_source.html#l00209">hawki_load_detector()</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga5c5f3ead9c1f168f90e1b8bd42dd07af"></a><!-- doxytag: member="hawki_bkg.c::hawki_bkg_from_running_mean_detector" ref="ga5c5f3ead9c1f168f90e1b8bd42dd07af" args="(cpl_imagelist *objimages, const cpl_vector *medians, int i_target, int half_width, int rejlow, int rejhigh, cpl_image *bkg)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int hawki_bkg_from_running_mean_detector </td>
- <td>(</td>
- <td class="paramtype">cpl_imagelist * </td>
- <td class="paramname"><em>objimages</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">const cpl_vector * </td>
- <td class="paramname"><em>medians</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>i_target</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>half_width</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>rejlow</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int </td>
- <td class="paramname"><em>rejhigh</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">cpl_image * </td>
- <td class="paramname"><em>bkg</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Computes the running mean for a set of object images using their masks. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table class="params">
- <tr><td class="paramname">objimages</td><td>The serie of object images </td></tr>
- <tr><td class="paramname">medians</td><td>A vector with the medians of each image </td></tr>
- <tr><td class="paramname">bkg</td><td>The background image (OUT) </td></tr>
- <tr><td class="paramname">proplist</td><td>The list of keywords to store the association information to </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>0 if everything is ok, -1 otherwise</dd></dl>
-<p>This function takes as an input a set of sky frames and computes the background using a median of these frames. The bad pixels from the bpm masks are taking into account. It also sets the association between the object images and the final background produced (calling hawki_bkg_fill_assoc). </p>
-
-<p>Definition at line <a class="el" href="hawki__bkg_8c_source.html#l00231">231</a> of file <a class="el" href="hawki__bkg_8c_source.html">hawki_bkg.c</a>.</p>
-
-</div>
-</div>
-<a class="anchor" id="ga01f0d4c0177325b9a5d33f83be498097"></a><!-- doxytag: member="hawki_bkg.c::hawki_bkg_from_sky_median" ref="ga01f0d4c0177325b9a5d33f83be498097" args="(const cpl_frameset *skyframes, cpl_imagelist *bkg)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int hawki_bkg_from_sky_median </td>
- <td>(</td>
- <td class="paramtype">const cpl_frameset * </td>
- <td class="paramname"><em>skyframes</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">cpl_imagelist * </td>
- <td class="paramname"><em>bkg</em> </td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>Computes the median of the sky frames. </p>
-<dl><dt><b>Parameters:</b></dt><dd>
- <table class="params">
- <tr><td class="paramname">skyframes</td><td>The skyframes to get the background from </td></tr>
- <tr><td class="paramname">objframes</td><td>The objframes to which the association is made </td></tr>
- <tr><td class="paramname">bkg</td><td>The background image </td></tr>
- <tr><td class="paramname">proplist</td><td>The list of keywords to store the association information to </td></tr>
- </table>
- </dd>
-</dl>
-<dl class="return"><dt><b>Returns:</b></dt><dd>0 if everything is ok, -1 otherwise</dd></dl>
-<p>This function takes as an input a set of sky frames and computes the background using a median of these frames. </p>
-
-<p>Definition at line <a class="el" href="hawki__bkg_8c_source.html#l00170">170</a> of file <a class="el" href="hawki__bkg_8c_source.html">hawki_bkg.c</a>.</p>
-
-<p>References <a class="el" href="hawki__load_8c_source.html#l00209">hawki_load_detector()</a>.</p>
-
-</div>
-</div>
<a class="anchor" id="gade5ca3e76e59c9ab510cb85bc02dd651"></a><!-- doxytag: member="hawki_image_stats.c::hawki_image_float_get_sigma_from_quartile" ref="gade5ca3e76e59c9ab510cb85bc02dd651" args="(cpl_image *image)" -->
<div class="memitem">
<div class="memproto">
@@ -495,7 +286,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__load.html b/html/group__hawki__load.html
index 6ac1c33..943fd94 100644
--- a/html/group__hawki__load.html
+++ b/html/group__hawki__load.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -282,8 +282,6 @@ Functions</h2></td></tr>
<p>References <a class="el" href="hawki__load_8c_source.html#l00846">hawki_get_ext_from_detector()</a>.</p>
-<p>Referenced by <a class="el" href="hawki__bkg_8c_source.html#l00109">hawki_bkg_from_objects_median()</a>, and <a class="el" href="hawki__bkg_8c_source.html#l00170">hawki_bkg_from_sky_median()</a>.</p>
-
</div>
</div>
<a class="anchor" id="ga1cf51c1b905de7941d7fcf3e249e536d"></a><!-- doxytag: member="hawki_load.c::hawki_load_extensions" ref="ga1cf51c1b905de7941d7fcf3e249e536d" args="(const cpl_frameset *fset, int extension, cpl_type ptype)" -->
@@ -922,7 +920,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__mask.html b/html/group__hawki__mask.html
index 3422e1f..137e8ef 100644
--- a/html/group__hawki__mask.html
+++ b/html/group__hawki__mask.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -74,7 +74,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__obj__det.html b/html/group__hawki__obj__det.html
index 40b6863..4e97794 100644
--- a/html/group__hawki__obj__det.html
+++ b/html/group__hawki__obj__det.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -142,7 +142,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__pfits.html b/html/group__hawki__pfits.html
index c83e40d..a975f08 100644
--- a/html/group__hawki__pfits.html
+++ b/html/group__hawki__pfits.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -264,8 +264,6 @@ Functions</h2></td></tr>
<p>Definition at line <a class="el" href="hawki__pfits_8c_source.html#l00215">215</a> of file <a class="el" href="hawki__pfits_8c_source.html">hawki_pfits.c</a>.</p>
-<p>Referenced by <a class="el" href="hawki__bkg_8c_source.html#l00068">hawki_bkg_fill_assoc()</a>.</p>
-
</div>
</div>
<a class="anchor" id="gaf18030b75b198e924f296cdd13356b58"></a><!-- doxytag: member="hawki_pfits.c::hawki_pfits_get_azimut" ref="gaf18030b75b198e924f296cdd13356b58" args="(const cpl_propertylist *plist)" -->
@@ -1687,7 +1685,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__properties__tel.html b/html/group__hawki__properties__tel.html
index d5cf6fe..1f0923a 100644
--- a/html/group__hawki__properties__tel.html
+++ b/html/group__hawki__properties__tel.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -125,7 +125,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__save.html b/html/group__hawki__save.html
index cda4ce7..20d864d 100644
--- a/html/group__hawki__save.html
+++ b/html/group__hawki__save.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -613,7 +613,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__utils.html b/html/group__hawki__utils.html
index c7363d5..3c940d6 100644
--- a/html/group__hawki__utils.html
+++ b/html/group__hawki__utils.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -56,6 +56,8 @@ Functions</h2></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the frames in which the star is for a given chip. <a href="#gabee84f3ed597df9a6ae97f07fc2204a0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__utils.html#ga0ee9f37ad441f9fcc16865b34f9459a9">hawki_extract_first_filename</a> (const cpl_frameset *in, const char *tag)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Extract the filename ffor the first frame of the given tag. <a href="#ga0ee9f37ad441f9fcc16865b34f9459a9"></a><br/></td></tr>
+<tr><td class="memItemLeft" align="right" valign="top">cpl_error_code </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__utils.html#ga8750ba220d588314effce204619b015c">hawki_frameset_append</a> (cpl_frameset *self, const cpl_frameset *other)</td></tr>
+<tr><td class="mdescLeft"> </td><td class="mdescRight">Insert all frames of other in self. To be removed after the same functionality exists in CPL. <a href="#ga8750ba220d588314effce204619b015c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">hawki_band </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__utils.html#ga6d85879fd8b8895544f7787e8a6ddade">hawki_get_band</a> (const char *f)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Get the band. <a href="#ga6d85879fd8b8895544f7787e8a6ddade"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">cpl_bivector * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__hawki__utils.html#ga4c2e0ffe688ffdfd93f0d61c60ac91fd">hawki_get_header_tel_offsets</a> (const cpl_frameset *fset)</td></tr>
@@ -468,6 +470,44 @@ Functions</h2></td></tr>
</div>
</div>
+<a class="anchor" id="ga8750ba220d588314effce204619b015c"></a><!-- doxytag: member="hawki_utils.c::hawki_frameset_append" ref="ga8750ba220d588314effce204619b015c" args="(cpl_frameset *self, const cpl_frameset *other)" -->
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">cpl_error_code hawki_frameset_append </td>
+ <td>(</td>
+ <td class="paramtype">cpl_frameset * </td>
+ <td class="paramname"><em>self</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">const cpl_frameset * </td>
+ <td class="paramname"><em>other</em> </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div>
+<div class="memdoc">
+
+<p>Insert all frames of other in self. To be removed after the same functionality exists in CPL. </p>
+<dl><dt><b>Parameters:</b></dt><dd>
+ <table class="params">
+ <tr><td class="paramname">self</td><td>A frame set. </td></tr>
+ <tr><td class="paramname">other</td><td>The frames to insert. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="hawki__utils_8c_source.html#l01276">1276</a> of file <a class="el" href="hawki__utils_8c_source.html">hawki_utils.c</a>.</p>
+
+</div>
+</div>
<a class="anchor" id="ga6d85879fd8b8895544f7787e8a6ddade"></a><!-- doxytag: member="hawki_utils.c::hawki_get_band" ref="ga6d85879fd8b8895544f7787e8a6ddade" args="(const char *f)" -->
<div class="memitem">
<div class="memproto">
@@ -1046,7 +1086,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/group__hawki__variance.html b/html/group__hawki__variance.html
index 1fc7e0d..f823fb3 100644
--- a/html/group__hawki__variance.html
+++ b/html/group__hawki__variance.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -182,7 +182,7 @@ Functions</h2></td></tr>
</div>
</div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__alloc_8c_source.html b/html/hawki__alloc_8c_source.html
index 2764e4d..8e11a63 100644
--- a/html/hawki__alloc_8c_source.html
+++ b/html/hawki__alloc_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2008/11/26 09:53:31 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -115,7 +115,7 @@
<a name="l00085"></a>00085
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__alloc_8h_source.html b/html/hawki__alloc_8h_source.html
index 58a0ced..e8550ab 100644
--- a/html/hawki__alloc_8h_source.html
+++ b/html/hawki__alloc_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2008/11/26 09:53:21 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_ALLOC_H</span>
@@ -87,7 +87,7 @@
<a name="l00040"></a>00040 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__bkg_8c_source.html b/html/hawki__bkg_8c_source.html
deleted file mode 100644
index c81bb12..0000000
--- a/html/hawki__bkg_8c_source.html
+++ /dev/null
@@ -1,367 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>HAWKI Pipeline Reference Manual: hawki_bkg.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.7.4 -->
-<div id="top">
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="dirs.html"><span>Directories</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
- <div id="nav-path" class="navpath">
- <ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
- </ul>
- </div>
-</div>
-<div class="header">
- <div class="headertitle">
-<div class="title">hawki_bkg.c</div> </div>
-</div>
-<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_bkg.c,v 1.15 2009/10/23 15:13:06 cgarcia Exp $</span>
-<a name="l00002"></a>00002 <span class="comment"> *</span>
-<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
-<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
-<a name="l00005"></a>00005 <span class="comment"> *</span>
-<a name="l00006"></a>00006 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
-<a name="l00007"></a>00007 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
-<a name="l00008"></a>00008 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span>
-<a name="l00009"></a>00009 <span class="comment"> * (at your option) any later version.</span>
-<a name="l00010"></a>00010 <span class="comment"> *</span>
-<a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
-<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
-<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
-<a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span>
-<a name="l00015"></a>00015 <span class="comment"> *</span>
-<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
-<a name="l00017"></a>00017 <span class="comment"> * along with this program; if not, write to the Free Software</span>
-<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
-<a name="l00019"></a>00019 <span class="comment"> */</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="comment">/*</span>
-<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/10/23 15:13:06 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.15 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
-<a name="l00026"></a>00026 <span class="comment"> */</span>
-<a name="l00027"></a>00027
-<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
-<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include <config.h></span>
-<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span>
-<a name="l00032"></a>00032 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00033"></a>00033 <span class="comment"> Includes</span>
-<a name="l00034"></a>00034 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00035"></a>00035
-<a name="l00036"></a>00036 <span class="preprocessor">#include <string.h></span>
-<a name="l00037"></a>00037 <span class="preprocessor">#include <cpl.h></span>
-<a name="l00038"></a>00038
-<a name="l00039"></a>00039 <span class="preprocessor">#include "hawki_distortion.h"</span>
-<a name="l00040"></a>00040 <span class="preprocessor">#include "hawki_bkg.h"</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include "hawki_pfits.h"</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include "hawki_load.h"</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include "hawki_utils.h"</span>
-<a name="l00044"></a>00044
-<a name="l00045"></a>00045 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00049"></a>00049 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00050"></a>00050
-<a name="l00053"></a>00053 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00067"></a>00067 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00068"></a><a class="code" href="group__hawki__image__stats.html#ga6cf0d3c3733489bb4c8a869b35cc6d59">00068</a> <span class="keywordtype">int</span> <a class="code" href="group__hawki__image__stats.html#ga6cf0d3c3733489bb4c8a869b35cc6d59" title="Fill a propertylist with the association between objects and bkg.">hawki_bkg_fill_assoc</a>(cpl_frameset * objframes, cpl_propertylist * proplist)
-<a name="l00069"></a>00069 {
-<a name="l00070"></a>00070 <span class="keywordtype">int</span> iframe;
-<a name="l00071"></a>00071 <span class="keywordtype">int</span> nframes;
-<a name="l00072"></a>00072
-<a name="l00073"></a>00073 <span class="comment">/* Loop on the frames */</span>
-<a name="l00074"></a>00074 nframes = cpl_frameset_get_size(objframes);
-<a name="l00075"></a>00075 <span class="keywordflow">for</span>(iframe = 0 ; iframe < nframes ; ++iframe)
-<a name="l00076"></a>00076 {
-<a name="l00077"></a>00077 cpl_frame * this_frame;
-<a name="l00078"></a>00078 cpl_propertylist * this_proplist;
-<a name="l00079"></a>00079 <span class="keyword">const</span> <span class="keywordtype">char</span> * arcfile;
-<a name="l00080"></a>00080 <span class="keywordtype">char</span> keystr[256];
-<a name="l00081"></a>00081
-<a name="l00082"></a>00082 <span class="comment">/* Getting the proplist for this frame */</span>
-<a name="l00083"></a>00083 this_frame = cpl_frameset_get_frame(objframes, iframe);
-<a name="l00084"></a>00084 this_proplist = cpl_propertylist_load
-<a name="l00085"></a>00085 (cpl_frame_get_filename(this_frame),0);
-<a name="l00086"></a>00086 arcfile = <a class="code" href="group__hawki__pfits.html#gae4f45ff97625d37b9354392b0c5e1056" title="find out the arcfile">hawki_pfits_get_arcfile</a>(proplist);
-<a name="l00087"></a>00087 snprintf(keystr, 256, <span class="stringliteral">"ESO QC BKG ASSOC RAW%d"</span>,iframe+1);
-<a name="l00088"></a>00088 cpl_propertylist_append_string(proplist, keystr, arcfile);
-<a name="l00089"></a>00089 cpl_propertylist_delete(this_proplist);
-<a name="l00090"></a>00090 }
-<a name="l00091"></a>00091
-<a name="l00092"></a>00092 <span class="keywordflow">return</span> 0;
-<a name="l00093"></a>00093 }
-<a name="l00094"></a>00094
-<a name="l00095"></a>00095 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00107"></a>00107 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00108"></a>00108 <span class="keywordtype">int</span> <a class="code" href="group__hawki__image__stats.html#ga364c91d30c968e6a15e403c11a5d281e" title="Computes the median of the object frames.">hawki_bkg_from_objects_median</a>
-<a name="l00109"></a><a class="code" href="group__hawki__image__stats.html#ga364c91d30c968e6a15e403c11a5d281e">00109</a> (<span class="keyword">const</span> cpl_frameset * objframes, cpl_imagelist * bkg)
-<a name="l00110"></a>00110 {
-<a name="l00111"></a>00111 <span class="keywordtype">int</span> idet;
-<a name="l00112"></a>00112
-<a name="l00113"></a>00113 <span class="comment">/* Error state variables */</span>
-<a name="l00114"></a>00114 cpl_errorstate prestate = cpl_errorstate_get();
-<a name="l00115"></a>00115
-<a name="l00116"></a>00116 <span class="comment">/* Loop on detectors */</span>
-<a name="l00117"></a>00117 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS ; ++idet)
-<a name="l00118"></a>00118 {
-<a name="l00119"></a>00119 cpl_imagelist * img_serie;
-<a name="l00120"></a>00120 cpl_image * this_bkg_image;
-<a name="l00121"></a>00121
-<a name="l00122"></a>00122 <span class="comment">/* Loading the object frame */</span>
-<a name="l00123"></a>00123 img_serie = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(objframes, idet + 1, CPL_TYPE_FLOAT);
-<a name="l00124"></a>00124 <span class="keywordflow">if</span>(img_serie== NULL)
-<a name="l00125"></a>00125 {
-<a name="l00126"></a>00126 cpl_msg_error(__func__, <span class="stringliteral">"Error reading object image"</span>) ;
-<a name="l00127"></a>00127 <span class="keywordflow">return</span> -1;
-<a name="l00128"></a>00128 }
-<a name="l00129"></a>00129
-<a name="l00130"></a>00130 <span class="comment">/* Averaging */</span>
-<a name="l00131"></a>00131 <span class="comment">/* TODO: Comprobar que cpl_imagelist_collapse_median_create</span>
-<a name="l00132"></a>00132 <span class="comment"> * admite las mascaras, para que cuando implemente lo de la mascara </span>
-<a name="l00133"></a>00133 <span class="comment"> * de objetos siga funcionando */</span>
-<a name="l00134"></a>00134 <span class="keywordflow">if</span> ((this_bkg_image = cpl_imagelist_collapse_median_create(img_serie))
-<a name="l00135"></a>00135 == NULL)
-<a name="l00136"></a>00136 {
-<a name="l00137"></a>00137 cpl_msg_error(__func__, <span class="stringliteral">"Cannot compute the median of obj images"</span>);
-<a name="l00138"></a>00138 cpl_imagelist_delete(img_serie);
-<a name="l00139"></a>00139 <span class="keywordflow">return</span> -1;
-<a name="l00140"></a>00140 }
-<a name="l00141"></a>00141
-<a name="l00142"></a>00142 <span class="comment">/* Fill the corresponding chip */</span>
-<a name="l00143"></a>00143 cpl_imagelist_set(bkg, this_bkg_image, idet);
-<a name="l00144"></a>00144
-<a name="l00145"></a>00145 <span class="comment">/* Freeing */</span>
-<a name="l00146"></a>00146 cpl_imagelist_delete(img_serie);
-<a name="l00147"></a>00147 }
-<a name="l00148"></a>00148
-<a name="l00149"></a>00149 <span class="comment">/* Check error status and exit */</span>
-<a name="l00150"></a>00150 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(prestate))
-<a name="l00151"></a>00151 <span class="keywordflow">return</span> -1;
-<a name="l00152"></a>00152 <span class="keywordflow">return</span> 0;
-<a name="l00153"></a>00153 }
-<a name="l00154"></a>00154
-<a name="l00155"></a>00155 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00168"></a>00168 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00169"></a>00169 <span class="keywordtype">int</span> <a class="code" href="group__hawki__image__stats.html#ga01f0d4c0177325b9a5d33f83be498097" title="Computes the median of the sky frames.">hawki_bkg_from_sky_median</a>
-<a name="l00170"></a><a class="code" href="group__hawki__image__stats.html#ga01f0d4c0177325b9a5d33f83be498097">00170</a> (<span class="keyword">const</span> cpl_frameset * skyframes,
-<a name="l00171"></a>00171 cpl_imagelist * bkg)
-<a name="l00172"></a>00172 {
-<a name="l00173"></a>00173 <span class="keywordtype">int</span> idet;
-<a name="l00174"></a>00174
-<a name="l00175"></a>00175 <span class="comment">/* Error state variables */</span>
-<a name="l00176"></a>00176 cpl_errorstate prestate = cpl_errorstate_get();
-<a name="l00177"></a>00177
-<a name="l00178"></a>00178 <span class="comment">/* Loop on detectors */</span>
-<a name="l00179"></a>00179 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS ; ++idet)
-<a name="l00180"></a>00180 {
-<a name="l00181"></a>00181 cpl_imagelist * img_serie;
-<a name="l00182"></a>00182 cpl_image * this_bkg_image;
-<a name="l00183"></a>00183
-<a name="l00184"></a>00184 <span class="comment">/* Loading the object frame */</span>
-<a name="l00185"></a>00185 img_serie = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(skyframes, idet + 1, CPL_TYPE_FLOAT);
-<a name="l00186"></a>00186 <span class="keywordflow">if</span>(img_serie== NULL)
-<a name="l00187"></a>00187 {
-<a name="l00188"></a>00188 cpl_msg_error(__func__, <span class="stringliteral">"Error reading object image"</span>) ;
-<a name="l00189"></a>00189 <span class="keywordflow">return</span> -1;
-<a name="l00190"></a>00190 }
-<a name="l00191"></a>00191
-<a name="l00192"></a>00192 <span class="comment">/* Averaging */</span>
-<a name="l00193"></a>00193 <span class="keywordflow">if</span> ((this_bkg_image = cpl_imagelist_collapse_median_create(img_serie))
-<a name="l00194"></a>00194 == NULL)
-<a name="l00195"></a>00195 {
-<a name="l00196"></a>00196 cpl_msg_error(__func__, <span class="stringliteral">"Cannot compute the median of obj images"</span>);
-<a name="l00197"></a>00197 cpl_imagelist_delete(img_serie);
-<a name="l00198"></a>00198 <span class="keywordflow">return</span> -1;
-<a name="l00199"></a>00199 }
-<a name="l00200"></a>00200 <span class="comment">/* Fill the corresponding chip */</span>
-<a name="l00201"></a>00201 cpl_imagelist_set(bkg, this_bkg_image, idet);
-<a name="l00202"></a>00202
-<a name="l00203"></a>00203 <span class="comment">/* Freeing */</span>
-<a name="l00204"></a>00204 cpl_imagelist_delete(img_serie);
-<a name="l00205"></a>00205 }
-<a name="l00206"></a>00206
-<a name="l00207"></a>00207 <span class="comment">/* Check error status and exit */</span>
-<a name="l00208"></a>00208 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(prestate))
-<a name="l00209"></a>00209 <span class="keywordflow">return</span> -1;
-<a name="l00210"></a>00210 <span class="keywordflow">return</span> 0;
-<a name="l00211"></a>00211 }
-<a name="l00212"></a>00212
-<a name="l00213"></a>00213 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00229"></a>00229 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00230"></a>00230 <span class="keywordtype">int</span> <a class="code" href="group__hawki__image__stats.html#ga5c5f3ead9c1f168f90e1b8bd42dd07af" title="Computes the running mean for a set of object images using their masks.">hawki_bkg_from_running_mean_detector</a>
-<a name="l00231"></a><a class="code" href="group__hawki__image__stats.html#ga5c5f3ead9c1f168f90e1b8bd42dd07af">00231</a> (cpl_imagelist * objimages,
-<a name="l00232"></a>00232 <span class="keyword">const</span> cpl_vector * medians,
-<a name="l00233"></a>00233 <span class="keywordtype">int</span> i_target,
-<a name="l00234"></a>00234 <span class="keywordtype">int</span> half_width,
-<a name="l00235"></a>00235 <span class="keywordtype">int</span> rejlow,
-<a name="l00236"></a>00236 <span class="keywordtype">int</span> rejhigh,
-<a name="l00237"></a>00237 cpl_image * bkg)
-<a name="l00238"></a>00238 {
-<a name="l00239"></a>00239 <span class="keywordtype">float</span> * bkg_p;
-<a name="l00240"></a>00240 <span class="keywordtype">float</span> * curima_p;
-<a name="l00241"></a>00241 cpl_binary * curmask_p;
-<a name="l00242"></a>00242 <span class="keywordtype">float</span> ** objimages_p;
-<a name="l00243"></a>00243 cpl_binary ** maskimages_p;
-<a name="l00244"></a>00244 <span class="keyword">const</span> <span class="keywordtype">double</span> * medians_p;
-<a name="l00245"></a>00245 <span class="keywordtype">double</span> out;
-<a name="l00246"></a>00246 <span class="keywordtype">int</span> from_ima;
-<a name="l00247"></a>00247 <span class="keywordtype">int</span> to_ima;
-<a name="l00248"></a>00248 <span class="keywordtype">int</span> nima;
-<a name="l00249"></a>00249 <span class="keywordtype">int</span> nuse;
-<a name="l00250"></a>00250 <span class="keywordtype">int</span> nx;
-<a name="l00251"></a>00251 <span class="keywordtype">int</span> ny;
-<a name="l00252"></a>00252
-<a name="l00253"></a>00253 <span class="keywordtype">int</span> pos_x;
-<a name="l00254"></a>00254 <span class="keywordtype">int</span> pos_y;
-<a name="l00255"></a>00255 <span class="keywordtype">int</span> pos;
-<a name="l00256"></a>00256 <span class="keywordtype">int</span> i_ima;
-<a name="l00257"></a>00257 <span class="keywordtype">int</span> i_win;
-<a name="l00258"></a>00258 <span class="keywordtype">int</span> n_win;
-<a name="l00259"></a>00259
-<a name="l00260"></a>00260 cpl_vector * localwin;
-<a name="l00261"></a>00261
-<a name="l00262"></a>00262 <span class="comment">/* Get the pointer to the background image */</span>
-<a name="l00263"></a>00263 bkg_p = cpl_image_get_data_float(bkg);
-<a name="l00264"></a>00264
-<a name="l00265"></a>00265 <span class="comment">/* Compute border indices */</span>
-<a name="l00266"></a>00266 nima = cpl_imagelist_get_size(objimages);
-<a name="l00267"></a>00267 from_ima = i_target - half_width;
-<a name="l00268"></a>00268 to_ima = i_target + half_width;
-<a name="l00269"></a>00269 <span class="keywordflow">if</span> (from_ima<0) from_ima = 0 ;
-<a name="l00270"></a>00270 <span class="keywordflow">if</span> (to_ima>(nima-1)) to_ima=nima-1 ;
-<a name="l00271"></a>00271
-<a name="l00272"></a>00272 <span class="comment">/* Number of valid planes to consider after edge effects */</span>
-<a name="l00273"></a>00273 nuse = to_ima - from_ima ;
-<a name="l00274"></a>00274
-<a name="l00275"></a>00275 <span class="comment">/* Get the size of images */</span>
-<a name="l00276"></a>00276 nx = cpl_image_get_size_x(bkg);
-<a name="l00277"></a>00277 ny = cpl_image_get_size_y(bkg);
-<a name="l00278"></a>00278
-<a name="l00279"></a>00279 <span class="comment">/* Get the pointers for better performance */</span>
-<a name="l00280"></a>00280 medians_p = cpl_vector_get_data_const(medians);
-<a name="l00281"></a>00281
-<a name="l00282"></a>00282 <span class="comment">/* Allocate local window with the maximum number of possible used values*/</span>
-<a name="l00283"></a>00283 localwin = cpl_vector_new(nuse) ;
-<a name="l00284"></a>00284
-<a name="l00285"></a>00285 <span class="comment">/* Get fast accesors to input image pointers */</span>
-<a name="l00286"></a>00286 objimages_p = cpl_malloc(nima * <span class="keyword">sizeof</span>(<span class="keywordtype">float</span> *));
-<a name="l00287"></a>00287 maskimages_p = cpl_malloc(nima * <span class="keyword">sizeof</span>(cpl_binary *));
-<a name="l00288"></a>00288 <span class="keywordflow">for</span>(i_ima=from_ima ; i_ima<=to_ima ; i_ima++)
-<a name="l00289"></a>00289 {
-<a name="l00290"></a>00290 objimages_p[i_ima] = cpl_image_get_data_float
-<a name="l00291"></a>00291 (cpl_imagelist_get(objimages, i_ima));
-<a name="l00292"></a>00292 maskimages_p[i_ima] = cpl_mask_get_data
-<a name="l00293"></a>00293 (cpl_image_get_bpm(cpl_imagelist_get(objimages, i_ima)));
-<a name="l00294"></a>00294 }
-<a name="l00295"></a>00295
-<a name="l00296"></a>00296 <span class="comment">/* Initialize the bad pixel mask */</span>
-<a name="l00297"></a>00297 cpl_image_accept_all(bkg);
-<a name="l00298"></a>00298
-<a name="l00299"></a>00299 <span class="comment">/* Loop over all pixels */</span>
-<a name="l00300"></a>00300 <span class="keywordflow">for</span> (pos_x=0 ; pos_x<nx ; pos_x++)
-<a name="l00301"></a>00301 {
-<a name="l00302"></a>00302 <span class="keywordflow">for</span> (pos_y=0 ; pos_y<ny ; pos_y++)
-<a name="l00303"></a>00303 {
-<a name="l00304"></a>00304 <span class="comment">/* Get the position in the array */</span>
-<a name="l00305"></a>00305 pos = pos_x + pos_y * nx;
-<a name="l00306"></a>00306
-<a name="l00307"></a>00307 <span class="comment">/* Resize again to maximum number of elements */</span>
-<a name="l00308"></a>00308 cpl_vector_set_size(localwin, nuse);
-<a name="l00309"></a>00309
-<a name="l00310"></a>00310 <span class="comment">/* Fill up local window */</span>
-<a name="l00311"></a>00311 i_win=0;
-<a name="l00312"></a>00312 <span class="keywordflow">for</span> (i_ima=from_ima ; i_ima<=to_ima ; i_ima++)
-<a name="l00313"></a>00313 {
-<a name="l00314"></a>00314 <span class="keywordflow">if</span> (i_ima != i_target)
-<a name="l00315"></a>00315 {
-<a name="l00316"></a>00316 curima_p = objimages_p[i_ima];
-<a name="l00317"></a>00317 curmask_p = maskimages_p[i_ima];
-<a name="l00318"></a>00318 <span class="keywordflow">if</span>(!curmask_p[pos])
-<a name="l00319"></a>00319 {
-<a name="l00320"></a>00320 cpl_vector_set(localwin, i_win,
-<a name="l00321"></a>00321 (<span class="keywordtype">double</span>)curima_p[pos]-medians_p[i_ima]);
-<a name="l00322"></a>00322 i_win++;
-<a name="l00323"></a>00323 }
-<a name="l00324"></a>00324 }
-<a name="l00325"></a>00325 }
-<a name="l00326"></a>00326 n_win = i_win;
-<a name="l00327"></a>00327 <span class="keywordflow">if</span>(n_win - rejlow - rejhigh < 1)
-<a name="l00328"></a>00328 {
-<a name="l00329"></a>00329 <span class="comment">/* Add it to the bad pixel mask */</span>
-<a name="l00330"></a>00330 cpl_msg_debug(__func__,<span class="stringliteral">"Pixel %d %d added to the sky bpm"</span>,
-<a name="l00331"></a>00331 pos_x, pos_y);
-<a name="l00332"></a>00332 <span class="keywordflow">if</span>(cpl_image_reject(bkg, pos_x + 1, pos_y + 1) != CPL_ERROR_NONE)
-<a name="l00333"></a>00333 {
-<a name="l00334"></a>00334 cpl_msg_error(__func__,<span class="stringliteral">"Cannot add pixel to sky bpm"</span>);
-<a name="l00335"></a>00335 cpl_vector_delete(localwin) ;
-<a name="l00336"></a>00336 cpl_free(objimages_p);
-<a name="l00337"></a>00337 cpl_free(maskimages_p);
-<a name="l00338"></a>00338 <span class="keywordflow">return</span>(-1);
-<a name="l00339"></a>00339 }
-<a name="l00340"></a>00340 }
-<a name="l00341"></a>00341 <span class="keywordflow">else</span>
-<a name="l00342"></a>00342 {
-<a name="l00343"></a>00343 <span class="comment">/* Resize to current number of elements */</span>
-<a name="l00344"></a>00344 cpl_vector_set_size(localwin, n_win);
-<a name="l00345"></a>00345 <span class="comment">/* Sort window */</span>
-<a name="l00346"></a>00346 cpl_vector_sort(localwin, 1);
-<a name="l00347"></a>00347 <span class="comment">/* Reject min and max, accumulate other pixels */</span>
-<a name="l00348"></a>00348 out = 0.0 ;
-<a name="l00349"></a>00349 <span class="keywordflow">for</span> (i_win=rejlow ; i_win<n_win - rejhigh; i_win++)
-<a name="l00350"></a>00350 {
-<a name="l00351"></a>00351 out += cpl_vector_get(localwin, i_win);
-<a name="l00352"></a>00352 }
-<a name="l00353"></a>00353 <span class="comment">/* Take the mean */</span>
-<a name="l00354"></a>00354 out /= (double)(n_win - rejlow - rejhigh);
-<a name="l00355"></a>00355
-<a name="l00356"></a>00356 <span class="comment">/* Assign value */</span>
-<a name="l00357"></a>00357 bkg_p[pos] = (out+medians_p[i_target]);
-<a name="l00358"></a>00358 }
-<a name="l00359"></a>00359 }
-<a name="l00360"></a>00360 }
-<a name="l00361"></a>00361
-<a name="l00362"></a>00362 <span class="comment">/* Free */</span>
-<a name="l00363"></a>00363 cpl_vector_delete(localwin) ;
-<a name="l00364"></a>00364 cpl_free(objimages_p);
-<a name="l00365"></a>00365 cpl_free(maskimages_p);
-<a name="l00366"></a>00366
-<a name="l00367"></a>00367 <span class="keywordflow">return</span> 0;
-<a name="l00368"></a>00368 }
-<a name="l00369"></a>00369
-</pre></div></div>
-</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
-</body>
-</html>
diff --git a/html/hawki__bkg_8h_source.html b/html/hawki__bkg_8h_source.html
index 73436ea..830ec57 100644
--- a/html/hawki__bkg_8h_source.html
+++ b/html/hawki__bkg_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_bkg.h</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_bkg.h,v 1.7 2010/03/08 13:59:16 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_bkg.h,v 1.11 2012/12/10 12:31:33 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/03/08 13:59:16 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.7 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/10 12:31:33 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.11 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_BKG_H</span>
@@ -81,28 +81,73 @@
<a name="l00034"></a>00034
<a name="l00035"></a>00035 <span class="preprocessor">#include <cpl.h></span>
<a name="l00036"></a>00036
-<a name="l00037"></a>00037 <span class="keywordtype">int</span> <a class="code" href="group__hawki__image__stats.html#ga6cf0d3c3733489bb4c8a869b35cc6d59" title="Fill a propertylist with the association between objects and bkg.">hawki_bkg_fill_assoc</a>(cpl_frameset * objframes, cpl_propertylist * proplist);
+<a name="l00037"></a>00037 <span class="keyword">typedef</span> <span class="keyword">struct </span>_hawki_bkg_frames_buffer_ hawki_bkg_frames_buffer;
<a name="l00038"></a>00038
-<a name="l00039"></a>00039 <span class="keywordtype">int</span> <a class="code" href="group__hawki__image__stats.html#ga364c91d30c968e6a15e403c11a5d281e" title="Computes the median of the object frames.">hawki_bkg_from_objects_median</a>
-<a name="l00040"></a>00040 (<span class="keyword">const</span> cpl_frameset * objframes, cpl_imagelist * bkg);
-<a name="l00041"></a>00041
-<a name="l00042"></a>00042 <span class="keywordtype">int</span> <a class="code" href="group__hawki__image__stats.html#ga01f0d4c0177325b9a5d33f83be498097" title="Computes the median of the sky frames.">hawki_bkg_from_sky_median</a>
-<a name="l00043"></a>00043 (<span class="keyword">const</span> cpl_frameset * skyframes,
-<a name="l00044"></a>00044 cpl_imagelist * bkg);
-<a name="l00045"></a>00045
-<a name="l00046"></a>00046 <span class="keywordtype">int</span> <a class="code" href="group__hawki__image__stats.html#ga5c5f3ead9c1f168f90e1b8bd42dd07af" title="Computes the running mean for a set of object images using their masks.">hawki_bkg_from_running_mean_detector</a>
-<a name="l00047"></a>00047 (cpl_imagelist * objimages,
-<a name="l00048"></a>00048 <span class="keyword">const</span> cpl_vector * medians,
-<a name="l00049"></a>00049 <span class="keywordtype">int</span> i_target,
-<a name="l00050"></a>00050 <span class="keywordtype">int</span> half_width,
-<a name="l00051"></a>00051 <span class="keywordtype">int</span> rejlow,
-<a name="l00052"></a>00052 <span class="keywordtype">int</span> rejhigh,
-<a name="l00053"></a>00053 cpl_image * bkg);
-<a name="l00054"></a>00054
-<a name="l00055"></a>00055 <span class="preprocessor">#endif</span>
+<a name="l00039"></a>00039 <span class="keyword">struct </span>_hawki_bkg_frames_buffer_
+<a name="l00040"></a>00040 {
+<a name="l00041"></a>00041 cpl_image ** images;
+<a name="l00042"></a>00042 <span class="keywordtype">double</span> * medians;
+<a name="l00043"></a>00043 cpl_frameset * frames;
+<a name="l00044"></a>00044 cpl_size nframes;
+<a name="l00045"></a>00045 };
+<a name="l00046"></a>00046
+<a name="l00047"></a>00047 CPL_BEGIN_DECLS
+<a name="l00048"></a>00048
+<a name="l00049"></a>00049 hawki_bkg_frames_buffer * hawki_bkg_frames_buffer_init
+<a name="l00050"></a>00050 (<span class="keyword">const</span> cpl_frameset * fset);
+<a name="l00051"></a>00051
+<a name="l00052"></a>00052 <span class="keywordtype">void</span> hawki_bkg_frames_buffer_delete(hawki_bkg_frames_buffer * frames_buffer);
+<a name="l00053"></a>00053
+<a name="l00054"></a>00054 <span class="keywordtype">int</span> hawki_bkg_fill_assoc(cpl_frameset * objframes, cpl_propertylist * proplist);
+<a name="l00055"></a>00055
+<a name="l00056"></a>00056 <span class="keywordtype">int</span> hawki_bkg_from_objects_median
+<a name="l00057"></a>00057 (<span class="keyword">const</span> cpl_frameset * objframes, cpl_imagelist * bkg);
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 <span class="keywordtype">int</span> hawki_bkg_from_sky_median
+<a name="l00060"></a>00060 (<span class="keyword">const</span> cpl_frameset * skyframes,
+<a name="l00061"></a>00061 cpl_imagelist * bkg);
+<a name="l00062"></a>00062
+<a name="l00063"></a>00063 <span class="keywordtype">int</span> hawki_bkg_from_running_mean
+<a name="l00064"></a>00064 (cpl_imagelist * objimages,
+<a name="l00065"></a>00065 <span class="keyword">const</span> cpl_vector * medians,
+<a name="l00066"></a>00066 <span class="keywordtype">int</span> i_target,
+<a name="l00067"></a>00067 <span class="keywordtype">int</span> half_width,
+<a name="l00068"></a>00068 <span class="keywordtype">int</span> rejlow,
+<a name="l00069"></a>00069 <span class="keywordtype">int</span> rejhigh,
+<a name="l00070"></a>00070 cpl_image * bkg);
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <span class="keywordtype">int</span> hawki_bkg_from_running_mean_frame_extension
+<a name="l00073"></a>00073 (hawki_bkg_frames_buffer * frames_buffer,
+<a name="l00074"></a>00074 cpl_vector * offsets_x,
+<a name="l00075"></a>00075 cpl_vector * offsets_y,
+<a name="l00076"></a>00076 cpl_image * globalmask,
+<a name="l00077"></a>00077 <span class="keywordtype">double</span> mask_off_x,
+<a name="l00078"></a>00078 <span class="keywordtype">double</span> mask_off_y,
+<a name="l00079"></a>00079 cpl_image * distortion_x,
+<a name="l00080"></a>00080 cpl_image * distortion_y,
+<a name="l00081"></a>00081 <span class="keywordtype">int</span> iextension,
+<a name="l00082"></a>00082 <span class="keywordtype">int</span> i_target,
+<a name="l00083"></a>00083 <span class="keywordtype">int</span> half_width,
+<a name="l00084"></a>00084 <span class="keywordtype">int</span> rejlow,
+<a name="l00085"></a>00085 <span class="keywordtype">int</span> rejhigh,
+<a name="l00086"></a>00086 cpl_image * bkg);
+<a name="l00087"></a>00087
+<a name="l00088"></a>00088 <span class="keywordtype">int</span> hawki_bkg_set_obj_mask
+<a name="l00089"></a>00089 (cpl_image * target_image,
+<a name="l00090"></a>00090 cpl_image * globalmask,
+<a name="l00091"></a>00091 cpl_image * distor_x,
+<a name="l00092"></a>00092 cpl_image * distor_y,
+<a name="l00093"></a>00093 <span class="keywordtype">double</span> target_off_x,
+<a name="l00094"></a>00094 <span class="keywordtype">double</span> target_off_y,
+<a name="l00095"></a>00095 <span class="keywordtype">double</span> mask_off_x,
+<a name="l00096"></a>00096 <span class="keywordtype">double</span> mask_off_y);
+<a name="l00097"></a>00097
+<a name="l00098"></a>00098 CPL_END_DECLS
+<a name="l00099"></a>00099
+<a name="l00100"></a>00100 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__cal__dark_8c_source.html b/html/hawki__cal__dark_8c_source.html
index b1bdff4..9eb39d1 100644
--- a/html/hawki__cal__dark_8c_source.html
+++ b/html/hawki__cal__dark_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/02/16 16:33:21 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.21 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -885,7 +885,7 @@
<a name="l00885"></a>00885 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__cal__distortion_8c_source.html b/html/hawki__cal__distortion_8c_source.html
index da765bd..24a7d7e 100644
--- a/html/hawki__cal__distortion_8c_source.html
+++ b/html/hawki__cal__distortion_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/04/23 10:02:57 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.14 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -1328,7 +1328,7 @@
<a name="l01352"></a>01352 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__cal__flat_8c_source.html b/html/hawki__cal__flat_8c_source.html
index 0f20863..b3af094 100644
--- a/html/hawki__cal__flat_8c_source.html
+++ b/html/hawki__cal__flat_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/01/11 15:02:18 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.25 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -1910,7 +1910,7 @@
<a name="l01952"></a>01952 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__cal__illum_8c_source.html b/html/hawki__cal__illum_8c_source.html
index 2a48321..cdbb965 100644
--- a/html/hawki__cal__illum_8c_source.html
+++ b/html/hawki__cal__illum_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/06/04 09:45:43 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.8 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -831,7 +831,7 @@
<a name="l00846"></a>00846
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__cal__lingain_8c_source.html b/html/hawki__cal__lingain_8c_source.html
index 45b1e8b..07f5021 100644
--- a/html/hawki__cal__lingain_8c_source.html
+++ b/html/hawki__cal__lingain_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/09/28 14:13:48 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.4 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -225,7 +225,7 @@
<a name="l00180"></a>00180 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__cal__zpoint_8c_source.html b/html/hawki__cal__zpoint_8c_source.html
index 864e0d2..f2808db 100644
--- a/html/hawki__cal__zpoint_8c_source.html
+++ b/html/hawki__cal__zpoint_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/04/23 09:58:56 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.34 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -1864,7 +1864,7 @@
<a name="l01892"></a>01892 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__calib_8c_source.html b/html/hawki__calib_8c_source.html
index 6c61acb..e304766 100644
--- a/html/hawki__calib_8c_source.html
+++ b/html/hawki__calib_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/11/03 18:50:38 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.6 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -444,7 +444,7 @@
<a name="l00490"></a>00490
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__calib_8h_source.html b/html/hawki__calib_8h_source.html
index 424fd2a..d019a16 100644
--- a/html/hawki__calib_8h_source.html
+++ b/html/hawki__calib_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/11/03 18:50:47 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.6 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_CALIB_H</span>
@@ -116,7 +116,7 @@
<a name="l00069"></a>00069 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__combine_8c_source.html b/html/hawki__combine_8c_source.html
index 4e7f9f9..d4d3401 100644
--- a/html/hawki__combine_8c_source.html
+++ b/html/hawki__combine_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: yjung $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2007/02/13 16:03:30 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1.1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -94,7 +94,7 @@
<a name="l00051"></a>00051
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__combine_8h_source.html b/html/hawki__combine_8h_source.html
index 0945a50..93d429b 100644
--- a/html/hawki__combine_8h_source.html
+++ b/html/hawki__combine_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: yjung $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2007/02/13 16:03:30 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1.1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_COMBINE_H</span>
@@ -82,7 +82,7 @@
<a name="l00035"></a>00035 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__dfs_8c_source.html b/html/hawki__dfs_8c_source.html
index 8c1afae..c365f2e 100644
--- a/html/hawki__dfs_8c_source.html
+++ b/html/hawki__dfs_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_dfs.c</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_dfs.c,v 1.28 2010/11/29 03:32:41 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_dfs.c,v 1.29 2012/12/07 09:36:29 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/11/29 03:32:41 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.28 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/07 09:36:29 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.29 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -111,43 +111,46 @@
<a name="l00076"></a>00076 tag = cpl_frame_get_tag(cur_frame) ;
<a name="l00077"></a>00077
<a name="l00078"></a>00078 <span class="comment">/* RAW frames */</span>
-<a name="l00079"></a>00079 <span class="keywordflow">if</span> (!strcmp(tag, HAWKI_COMMAND_LINE) ||
-<a name="l00080"></a>00080 !strcmp(tag, HAWKI_CAL_DARK_RAW) ||
-<a name="l00081"></a>00081 !strcmp(tag, HAWKI_TEC_FLAT_RAW) ||
-<a name="l00082"></a>00082 !strcmp(tag, HAWKI_CAL_FLAT_RAW) ||
-<a name="l00083"></a>00083 !strcmp(tag, HAWKI_CAL_ZPOINT_RAW) ||
-<a name="l00084"></a>00084 !strcmp(tag, HAWKI_CAL_ILLUM_RAW) ||
-<a name="l00085"></a>00085 !strcmp(tag, HAWKI_CAL_DISTOR_RAW) ||
-<a name="l00086"></a>00086 !strcmp(tag, HAWKI_IMG_JITTER_SKY_RAW) ||
-<a name="l00087"></a>00087 !strcmp(tag, HAWKI_IMG_JITTER_RAW) ||
-<a name="l00088"></a>00088 !strcmp(tag, HAWKI_CAL_LINGAIN_LAMP_RAW) ||
-<a name="l00089"></a>00089 !strcmp(tag, HAWKI_CAL_LINGAIN_DARK_RAW) ||
-<a name="l00090"></a>00090 !strcmp(tag, HAWKI_CALPRO_BASICCALIBRATED) ||
-<a name="l00091"></a>00091 !strcmp(tag, HAWKI_CALPRO_SKY_BASICCALIBRATED) ||
-<a name="l00092"></a>00092 !strcmp(tag, HAWKI_CALPRO_BKGIMAGE) ||
-<a name="l00093"></a>00093 !strcmp(tag, HAWKI_CALPRO_BKG_SUBTRACTED) ||
-<a name="l00094"></a>00094 !strcmp(tag, HAWKI_CALPRO_DIST_CORRECTED) ||
-<a name="l00095"></a>00095 !strcmp(tag, HAWKI_CALPRO_COMBINED) ||
-<a name="l00096"></a>00096 !strcmp(tag, HAWKI_CALPRO_ZPOINT_TAB))
-<a name="l00097"></a>00097 cpl_frame_set_group(cur_frame, CPL_FRAME_GROUP_RAW) ;
-<a name="l00098"></a>00098 <span class="comment">/* CALIB frames */</span>
-<a name="l00099"></a>00099 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(tag, HAWKI_CALPRO_BPM) ||
-<a name="l00100"></a>00100 !strcmp(tag, HAWKI_UTIL_STDSTARS_RAW) ||
-<a name="l00101"></a>00101 !strcmp(tag, HAWKI_UTIL_DISTMAP_RAW) ||
-<a name="l00102"></a>00102 !strcmp(tag, HAWKI_CALPRO_BPM_HOT) ||
-<a name="l00103"></a>00103 !strcmp(tag, HAWKI_CALPRO_BPM_COLD) ||
-<a name="l00104"></a>00104 !strcmp(tag, HAWKI_CALPRO_FLAT) ||
-<a name="l00105"></a>00105 !strcmp(tag, HAWKI_CALPRO_DARK) ||
-<a name="l00106"></a>00106 !strcmp(tag, HAWKI_CALPRO_STDSTARS) ||
-<a name="l00107"></a>00107 !strcmp(tag, HAWKI_CALPRO_DISTORTION))
-<a name="l00108"></a>00108 cpl_frame_set_group(cur_frame, CPL_FRAME_GROUP_CALIB) ;
-<a name="l00109"></a>00109 }
-<a name="l00110"></a>00110 <span class="keywordflow">return</span> 0 ;
-<a name="l00111"></a>00111 }
-<a name="l00112"></a>00112
+<a name="l00079"></a>00079 <span class="keywordflow">if</span> (!strcmp(tag, HAWKI_COMMAND_LINE) ||
+<a name="l00080"></a>00080 !strcmp(tag, HAWKI_CAL_DARK_RAW) ||
+<a name="l00081"></a>00081 !strcmp(tag, HAWKI_TEC_FLAT_RAW) ||
+<a name="l00082"></a>00082 !strcmp(tag, HAWKI_CAL_FLAT_RAW) ||
+<a name="l00083"></a>00083 !strcmp(tag, HAWKI_CAL_ZPOINT_RAW) ||
+<a name="l00084"></a>00084 !strcmp(tag, HAWKI_CAL_ILLUM_RAW) ||
+<a name="l00085"></a>00085 !strcmp(tag, HAWKI_CAL_DISTOR_RAW) ||
+<a name="l00086"></a>00086 !strcmp(tag, HAWKI_IMG_JITTER_SKY_RAW) ||
+<a name="l00087"></a>00087 !strcmp(tag, HAWKI_IMG_JITTER_RAW) ||
+<a name="l00088"></a>00088 !strcmp(tag, HAWKI_CAL_LINGAIN_LAMP_RAW) ||
+<a name="l00089"></a>00089 !strcmp(tag, HAWKI_CAL_LINGAIN_DARK_RAW) ||
+<a name="l00090"></a>00090 !strcmp(tag, HAWKI_CALPRO_BASICCALIBRATED) ||
+<a name="l00091"></a>00091 !strcmp(tag, HAWKI_CALPRO_SKY_BASICCALIBRATED) ||
+<a name="l00092"></a>00092 !strcmp(tag, HAWKI_CALPRO_BKGIMAGE) ||
+<a name="l00093"></a>00093 !strcmp(tag, HAWKI_CALPRO_BKG_SUBTRACTED) ||
+<a name="l00094"></a>00094 !strcmp(tag, HAWKI_CALPRO_DIST_CORRECTED) ||
+<a name="l00095"></a>00095 !strcmp(tag, HAWKI_CALPRO_COMBINED) ||
+<a name="l00096"></a>00096 !strcmp(tag, HAWKI_CALPRO_OBJ_MASK) ||
+<a name="l00097"></a>00097 !strcmp(tag, HAWKI_CALPRO_ZPOINT_TAB))
+<a name="l00098"></a>00098 cpl_frame_set_group(cur_frame, CPL_FRAME_GROUP_RAW) ;
+<a name="l00099"></a>00099 <span class="comment">/* CALIB frames */</span>
+<a name="l00100"></a>00100 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(tag, HAWKI_CALPRO_BPM) ||
+<a name="l00101"></a>00101 !strcmp(tag, HAWKI_UTIL_STDSTARS_RAW) ||
+<a name="l00102"></a>00102 !strcmp(tag, HAWKI_UTIL_DISTMAP_RAW) ||
+<a name="l00103"></a>00103 !strcmp(tag, HAWKI_CALPRO_BPM_HOT) ||
+<a name="l00104"></a>00104 !strcmp(tag, HAWKI_CALPRO_BPM_COLD) ||
+<a name="l00105"></a>00105 !strcmp(tag, HAWKI_CALPRO_FLAT) ||
+<a name="l00106"></a>00106 !strcmp(tag, HAWKI_CALPRO_DARK) ||
+<a name="l00107"></a>00107 !strcmp(tag, HAWKI_CALPRO_STDSTARS) ||
+<a name="l00108"></a>00108 !strcmp(tag, HAWKI_CALPRO_DISTORTION_X) ||
+<a name="l00109"></a>00109 !strcmp(tag, HAWKI_CALPRO_DISTORTION_Y) ||
+<a name="l00110"></a>00110 !strcmp(tag, HAWKI_CALPRO_DISTORTION))
+<a name="l00111"></a>00111 cpl_frame_set_group(cur_frame, CPL_FRAME_GROUP_CALIB) ;
+<a name="l00112"></a>00112 }
+<a name="l00113"></a>00113 <span class="keywordflow">return</span> 0 ;
+<a name="l00114"></a>00114 }
+<a name="l00115"></a>00115
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__dfs_8h_source.html b/html/hawki__dfs_8h_source.html
index 994a5ff..8f86493 100644
--- a/html/hawki__dfs_8h_source.html
+++ b/html/hawki__dfs_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_dfs.h</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_dfs.h,v 1.56 2011/02/09 17:16:23 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_dfs.h,v 1.57 2012/12/05 14:56:34 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/02/09 17:16:23 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.56 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/05 14:56:34 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.57 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_DFS_H</span>
@@ -302,259 +302,259 @@
<a name="l00255"></a>00255 <span class="comment">/* Type HAWKI_PROTYPE_BASICCALIBRATED */</span>
<a name="l00256"></a>00256 <span class="preprocessor">#define HAWKI_CALPRO_BASICCALIBRATED "BASIC_CALIBRATED"</span>
<a name="l00257"></a>00257 <span class="preprocessor"></span>
-<a name="l00258"></a>00258
-<a name="l00259"></a>00259 <span class="comment">/* Type HAWKI_PROTYPE_SKY_BASICCALIBRATED */</span>
-<a name="l00260"></a>00260 <span class="preprocessor">#define HAWKI_CALPRO_SKY_BASICCALIBRATED "SKY_BASIC_CALIBRATED"</span>
-<a name="l00261"></a>00261 <span class="preprocessor"></span>
-<a name="l00262"></a>00262 <span class="comment">/* Type HAWKI_PROTYPE_BKG_SUBTRACTED */</span>
-<a name="l00263"></a>00263 <span class="preprocessor">#define HAWKI_CALPRO_BKG_SUBTRACTED "BKG_SUBTRACTED"</span>
-<a name="l00264"></a>00264 <span class="preprocessor"></span>
-<a name="l00265"></a>00265 <span class="comment">/* Type HAWKI_PROTYPE_FILTERPOSCHECK_STATS */</span>
-<a name="l00266"></a>00266 <span class="preprocessor">#define HAWKI_CALPRO_FILTERPOSCHECK_STATS "FILTERPOS_CHECK_STATS"</span>
-<a name="l00267"></a>00267 <span class="preprocessor"></span>
-<a name="l00268"></a>00268 <span class="comment">/* Type HAWKI_PROTYPE_OFFSETS */</span>
-<a name="l00269"></a>00269 <span class="preprocessor">#define HAWKI_CALPRO_OFFSETS "OFFSETS_REFINED"</span>
-<a name="l00270"></a>00270 <span class="preprocessor"></span>
-<a name="l00271"></a>00271 <span class="comment">/*************************************/</span>
-<a name="l00272"></a>00272
-<a name="l00273"></a>00273 <span class="comment">/*************************************/</span>
-<a name="l00274"></a>00274 <span class="comment">/* DEFINE HERE THE PRO.TYPE KEYWORDS */</span>
-<a name="l00275"></a>00275 <span class="comment">/* Images */</span>
-<a name="l00276"></a>00276 <span class="preprocessor">#define HAWKI_PROTYPE_BPM "BPM"</span>
-<a name="l00277"></a>00277 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DARK "DARK"</span>
-<a name="l00278"></a>00278 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DARK_ERR "DARK_ERR"</span>
-<a name="l00279"></a>00279 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_FLAT "FLAT"</span>
-<a name="l00280"></a>00280 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_ZPOINT_IMA "ZPOINT_IMA"</span>
-<a name="l00281"></a>00281 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_COMBINED "COMBINED"</span>
-<a name="l00282"></a>00282 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_COMB_CONTRIB_MAP "COMBINED_CONTRIB_MAP"</span>
-<a name="l00283"></a>00283 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_STITCHED "STITCHED"</span>
-<a name="l00284"></a>00284 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_ILLUM "ILLUM"</span>
-<a name="l00285"></a>00285 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DIST_CORRECTED "DIST_CORRECTED"</span>
-<a name="l00286"></a>00286 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BKGIMAGE "BKG_IM"</span>
-<a name="l00287"></a>00287 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BKGBPM "BKG_BPM"</span>
-<a name="l00288"></a>00288 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_ERRMAP "ERRMAP"</span>
-<a name="l00289"></a>00289 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BESTFOCUS "BEST_FOCUS"</span>
-<a name="l00290"></a>00290 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BASICCALIBRATED "BASIC_CALIBRATED"</span>
-<a name="l00291"></a>00291 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_SKY_BASICCALIBRATED "SKY_BASIC_CALIBRATED"</span>
-<a name="l00292"></a>00292 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BKG_SUBTRACTED "BKG_SUBTRACTED"</span>
-<a name="l00293"></a>00293 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_OBJ_MASK "OBJ_MASK"</span>
-<a name="l00294"></a>00294 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DISTORTION_X "DISTORTION_X"</span>
-<a name="l00295"></a>00295 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DISTORTION_Y "DISTORTION_Y"</span>
-<a name="l00296"></a>00296 <span class="preprocessor"></span>
-<a name="l00297"></a>00297
-<a name="l00298"></a>00298 <span class="comment">/* Tables */</span>
-<a name="l00299"></a>00299 <span class="comment">/* Col: HAWKI_COL_OBJ_POSX */</span>
-<a name="l00300"></a>00300 <span class="comment">/* HAWKI_COL_OBJ_POSY */</span>
-<a name="l00301"></a>00301 <span class="comment">/* HAWKI_COL_OBJ_FWHMX */</span>
-<a name="l00302"></a>00302 <span class="comment">/* HAWKI_COL_OBJ_FWHMY */</span>
-<a name="l00303"></a>00303 <span class="comment">/* HAWKI_COL_OBJ_ANGLE */</span>
-<a name="l00304"></a>00304 <span class="comment">/* HAWKI_COL_OBJ_FLUX */</span>
-<a name="l00305"></a>00305 <span class="preprocessor">#define HAWKI_PROTYPE_OBJ_PARAM "OBJ_PARAM"</span>
-<a name="l00306"></a>00306 <span class="preprocessor"></span>
-<a name="l00307"></a>00307 <span class="comment">/* Col: HAWKI_COL_ILLUM_POSX */</span>
-<a name="l00308"></a>00308 <span class="comment">/* HAWKI_COL_ILLUM_POSY */</span>
-<a name="l00309"></a>00309 <span class="comment">/* HAWKI_COL_ILLUM_FLUX */</span>
-<a name="l00310"></a>00310 <span class="preprocessor">#define HAWKI_PROTYPE_ILLUM_PHOTOM "ILLUM_PHOTOM"</span>
-<a name="l00311"></a>00311 <span class="preprocessor"></span>
-<a name="l00312"></a>00312 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00313"></a>00313 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00314"></a>00314 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00315"></a>00315 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00316"></a>00316 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00317"></a>00317 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00318"></a>00318 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS "FLAT_STATS"</span>
-<a name="l00319"></a>00319 <span class="preprocessor"></span>
-<a name="l00320"></a>00320 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00321"></a>00321 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00322"></a>00322 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00323"></a>00323 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00324"></a>00324 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00325"></a>00325 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00326"></a>00326 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS_EVEN_COL "FLAT_STATS_EVEN_COL"</span>
-<a name="l00327"></a>00327 <span class="preprocessor"></span>
-<a name="l00328"></a>00328 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00329"></a>00329 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00330"></a>00330 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00331"></a>00331 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00332"></a>00332 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00333"></a>00333 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00334"></a>00334 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS_ODD_COL "FLAT_STATS_ODD_COL"</span>
-<a name="l00335"></a>00335 <span class="preprocessor"></span>
-<a name="l00336"></a>00336 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00337"></a>00337 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00338"></a>00338 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00339"></a>00339 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00340"></a>00340 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00341"></a>00341 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00342"></a>00342 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS_EVEN_ROW "FLAT_STATS_EVEN_ROW"</span>
-<a name="l00343"></a>00343 <span class="preprocessor"></span>
-<a name="l00344"></a>00344 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00345"></a>00345 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00346"></a>00346 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00347"></a>00347 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00348"></a>00348 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00349"></a>00349 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00350"></a>00350 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS_ODD_ROW "FLAT_STATS_ODD_ROW"</span>
-<a name="l00351"></a>00351 <span class="preprocessor"></span>
-<a name="l00352"></a>00352 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00353"></a>00353 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00354"></a>00354 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00355"></a>00355 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00356"></a>00356 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00357"></a>00357 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00358"></a>00358 <span class="preprocessor">#define HAWKI_PROTYPE_DARK_STATS "DARK_STATS"</span>
-<a name="l00359"></a>00359 <span class="preprocessor"></span>
-<a name="l00360"></a>00360 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00361"></a>00361 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00362"></a>00362 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00363"></a>00363 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00364"></a>00364 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00365"></a>00365 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00366"></a>00366 <span class="preprocessor">#define HAWKI_PROTYPE_ZPOINT_STATS "ZPOINT_STATS"</span>
-<a name="l00367"></a>00367 <span class="preprocessor"></span>
-<a name="l00368"></a>00368 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00369"></a>00369 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00370"></a>00370 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00371"></a>00371 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00372"></a>00372 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00373"></a>00373 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00374"></a>00374 <span class="preprocessor">#define HAWKI_PROTYPE_JITTER_STATS "JITTER_STATS"</span>
-<a name="l00375"></a>00375 <span class="preprocessor"></span>
-<a name="l00376"></a>00376 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00377"></a>00377 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00378"></a>00378 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00379"></a>00379 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00380"></a>00380 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00381"></a>00381 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00382"></a>00382 <span class="preprocessor">#define HAWKI_PROTYPE_JITTER_BKG_STATS "BKG_STATS"</span>
-<a name="l00383"></a>00383 <span class="preprocessor"></span>
-<a name="l00384"></a>00384 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
-<a name="l00385"></a>00385 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
-<a name="l00386"></a>00386 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
-<a name="l00387"></a>00387 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
-<a name="l00388"></a>00388 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
-<a name="l00389"></a>00389 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
-<a name="l00390"></a>00390 <span class="preprocessor">#define HAWKI_PROTYPE_FILTERPOSCHECK_STATS "FILTERPOS_CHECK_STATS"</span>
-<a name="l00391"></a>00391 <span class="preprocessor"></span>
-<a name="l00392"></a>00392 <span class="comment">/* Col: IRPLIB_STDSTAR_STAR_COL */</span>
-<a name="l00393"></a>00393 <span class="comment">/* IRPLIB_STDSTAR_TYPE_COL */</span>
-<a name="l00394"></a>00394 <span class="comment">/* IRPLIB_STDSTAR_RA_COL */</span>
-<a name="l00395"></a>00395 <span class="comment">/* IRPLIB_STDSTAR_DEC_COL */</span>
-<a name="l00396"></a>00396 <span class="comment">/* Filters .... */</span>
-<a name="l00397"></a>00397 <span class="preprocessor">#define HAWKI_PROTYPE_STDSTARS "STDSTARS"</span>
-<a name="l00398"></a>00398 <span class="preprocessor"></span>
-<a name="l00399"></a>00399 <span class="comment">/* Col: HAWKI_COL_DIST_DXGC */</span>
-<a name="l00400"></a>00400 <span class="comment">/* HAWKI_COL_DIST_DYGC */</span>
-<a name="l00401"></a>00401 <span class="comment">/* HAWKI_COL_DIST_I */</span>
-<a name="l00402"></a>00402 <span class="comment">/* HAWKI_COL_DIST_J */</span>
-<a name="l00403"></a>00403 <span class="preprocessor">#define HAWKI_PROTYPE_DISTORTION "DISTORTION"</span>
-<a name="l00404"></a>00404 <span class="preprocessor"></span>
-<a name="l00405"></a>00405 <span class="comment">/* Col: HAWKI_COL_ZPOINT_CHIP */</span>
-<a name="l00406"></a>00406 <span class="comment">/* HAWKI_COL_ZPOINT_POSX */</span>
-<a name="l00407"></a>00407 <span class="comment">/* HAWKI_COL_ZPOINT_POSY */</span>
-<a name="l00408"></a>00408 <span class="comment">/* HAWKI_COL_ZPOINT_ZPOINT */</span>
-<a name="l00409"></a>00409 <span class="comment">/* HAWKI_COL_ZPOINT_ATX0 */</span>
-<a name="l00410"></a>00410 <span class="comment">/* HAWKI_COL_ZPOINT_FLUX */</span>
-<a name="l00411"></a>00411 <span class="comment">/* HAWKI_COL_ZPOINT_PEAK */</span>
-<a name="l00412"></a>00412 <span class="comment">/* HAWKI_COL_ZPOINT_BGD */</span>
-<a name="l00413"></a>00413 <span class="comment">/* HAWKI_COL_ZPOINT_FWHMX */</span>
-<a name="l00414"></a>00414 <span class="comment">/* HAWKI_COL_ZPOINT_FWHMY */</span>
-<a name="l00415"></a>00415 <span class="comment">/* HAWKI_COL_ZPOINT_FWHM */</span>
-<a name="l00416"></a>00416 <span class="comment">/* HAWKI_COL_ZPOINT_FWHMX_AS */</span>
-<a name="l00417"></a>00417 <span class="comment">/* HAWKI_COL_ZPOINT_FWHMY_AS */</span>
-<a name="l00418"></a>00418 <span class="comment">/* HAWKI_COL_ZPOINT_FWHM_AS */</span>
-<a name="l00419"></a>00419 <span class="preprocessor">#define HAWKI_PROTYPE_ZPOINT_TAB "ZPOINT_TAB"</span>
-<a name="l00420"></a>00420 <span class="preprocessor"></span>
-<a name="l00421"></a>00421 <span class="comment">/* Col: HAWKI_COL_PHOT_FILTER */</span>
-<a name="l00422"></a>00422 <span class="comment">/* HAWKI_COL_PHOT_EXTCOEFF */</span>
-<a name="l00423"></a>00423 <span class="comment">/* HAWKI_COL_PHOT_DEXTCOEFF */</span>
-<a name="l00424"></a>00424 <span class="comment">/* HAWKI_COL_PHOT_ZEROPOINT */</span>
-<a name="l00425"></a>00425 <span class="comment">/* HAWKI_COL_PHOT_DZEROPOINT */</span>
-<a name="l00426"></a>00426 <span class="comment">/* HAWKI_COL_PHOT_COLORTERM */</span>
-<a name="l00427"></a>00427 <span class="comment">/* HAWKI_COL_PHOT_DCOLORTERM */</span>
-<a name="l00428"></a>00428 <span class="preprocessor">#define HAWKI_PROTYPE_PHOT_TAB "PHOT_COEFF"</span>
-<a name="l00429"></a>00429 <span class="preprocessor"></span>
-<a name="l00430"></a>00430 <span class="comment">/* Col: HAWKI_COL_RAW_JITTER_QC_TEL_ALT */</span>
-<a name="l00431"></a>00431 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AZ */</span>
-<a name="l00432"></a>00432 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_RHUM */</span>
-<a name="l00433"></a>00433 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_TAU0 */</span>
-<a name="l00434"></a>00434 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_TEMP */</span>
-<a name="l00435"></a>00435 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_WINDDIR */</span>
-<a name="l00436"></a>00436 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_WINDSP */</span>
-<a name="l00437"></a>00437 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_IA_FWHM */</span>
-<a name="l00438"></a>00438 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_ADA_ABSROT_START */</span>
-<a name="l00439"></a>00439 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_ADA_ABSROT_END */</span>
-<a name="l00440"></a>00440 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_ADA_ABSROT_DELTA */</span>
-<a name="l00441"></a>00441 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AIRM_START */</span>
-<a name="l00442"></a>00442 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AIRM_END */</span>
-<a name="l00443"></a>00443 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AIRM */</span>
-<a name="l00444"></a>00444 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_FWHM_START */</span>
-<a name="l00445"></a>00445 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_FWHM_END */</span>
-<a name="l00446"></a>00446 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_FWHM */</span>
-<a name="l00447"></a>00447 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_PRES_START */</span>
-<a name="l00448"></a>00448 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_PRES_END */</span>
-<a name="l00449"></a>00449 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_PRES */</span>
-<a name="l00450"></a>00450 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_PARANG_START */</span>
-<a name="l00451"></a>00451 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_PARANG_END */</span>
-<a name="l00452"></a>00452 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_PARANG */</span>
-<a name="l00453"></a>00453 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_PARANG_DELTA */</span>
-<a name="l00454"></a>00454 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_SEQ_CUMOFFSETA */</span>
-<a name="l00455"></a>00455 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_SEQ_CUMOFFSETD */</span>
-<a name="l00456"></a>00456 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_SEQ_CUMOFFSETX */</span>
-<a name="l00457"></a>00457 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_SEQ_CUMOFFSETY */</span>
-<a name="l00458"></a>00458 <span class="preprocessor">#define HAWKI_PROTYPE_SCIENCE_PCS "SCIENCE_PCS"</span>
-<a name="l00459"></a>00459 <span class="preprocessor"></span>
-<a name="l00460"></a>00460 <span class="comment">/* HAWKI_COL_OFFSET_X */</span>
-<a name="l00461"></a>00461 <span class="comment">/* HAWKI_COL_OFFSET_Y */</span>
-<a name="l00462"></a>00462 <span class="comment">/* HAWKI_COL_CORRELATION */</span>
-<a name="l00463"></a>00463 <span class="preprocessor">#define HAWKI_PROTYPE_OFFSETS "OFFSETS_REFINED"</span>
-<a name="l00464"></a>00464 <span class="preprocessor"></span>
-<a name="l00465"></a>00465 <span class="comment">/* TODO: This is to be deprecated */</span>
-<a name="l00466"></a>00466 <span class="preprocessor">#define HAWKI_PROTYPE_COEFFS "COEFFS"</span>
-<a name="l00467"></a>00467 <span class="preprocessor"></span>
-<a name="l00468"></a>00468 <span class="preprocessor">#define HAWKI_PROTYPE_LIN_STATS "LIN_STATS"</span>
-<a name="l00469"></a>00469 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_LIN_COEFFS "LIN_COEFFS"</span>
-<a name="l00470"></a>00470 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_GAIN_STATS "GAIN_STATS"</span>
-<a name="l00471"></a>00471 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BPM_LEVELS "BPM_LEVELS"</span>
-<a name="l00472"></a>00472 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_LINGAIN_CORR "LINGAIN_CORR"</span>
-<a name="l00473"></a>00473 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_LINGAIN_DIFF "LINGAIN_DIFF"</span>
-<a name="l00474"></a>00474 <span class="preprocessor"></span>
+<a name="l00258"></a>00258 <span class="comment">/* Type HAWKI_PROTYPE_SKY_BASICCALIBRATED */</span>
+<a name="l00259"></a>00259 <span class="preprocessor">#define HAWKI_CALPRO_SKY_BASICCALIBRATED "SKY_BASIC_CALIBRATED"</span>
+<a name="l00260"></a>00260 <span class="preprocessor"></span>
+<a name="l00261"></a>00261 <span class="comment">/* Type HAWKI_PROTYPE_BKG_SUBTRACTED */</span>
+<a name="l00262"></a>00262 <span class="preprocessor">#define HAWKI_CALPRO_BKG_SUBTRACTED "BKG_SUBTRACTED"</span>
+<a name="l00263"></a>00263 <span class="preprocessor"></span>
+<a name="l00264"></a>00264 <span class="comment">/* Type HAWKI_PROTYPE_FILTERPOSCHECK_STATS */</span>
+<a name="l00265"></a>00265 <span class="preprocessor">#define HAWKI_CALPRO_FILTERPOSCHECK_STATS "FILTERPOS_CHECK_STATS"</span>
+<a name="l00266"></a>00266 <span class="preprocessor"></span>
+<a name="l00267"></a>00267 <span class="comment">/* Type HAWKI_PROTYPE_OFFSETS */</span>
+<a name="l00268"></a>00268 <span class="preprocessor">#define HAWKI_CALPRO_OFFSETS "OFFSETS_REFINED"</span>
+<a name="l00269"></a>00269 <span class="preprocessor"></span>
+<a name="l00270"></a>00270 <span class="comment">/*************************************/</span>
+<a name="l00271"></a>00271
+<a name="l00272"></a>00272 <span class="comment">/*************************************/</span>
+<a name="l00273"></a>00273 <span class="comment">/* DEFINE HERE THE PRO.TYPE KEYWORDS */</span>
+<a name="l00274"></a>00274 <span class="comment">/* Images */</span>
+<a name="l00275"></a>00275 <span class="preprocessor">#define HAWKI_PROTYPE_BPM "BPM"</span>
+<a name="l00276"></a>00276 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DARK "DARK"</span>
+<a name="l00277"></a>00277 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DARK_ERR "DARK_ERR"</span>
+<a name="l00278"></a>00278 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_FLAT "FLAT"</span>
+<a name="l00279"></a>00279 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_ZPOINT_IMA "ZPOINT_IMA"</span>
+<a name="l00280"></a>00280 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_COMBINED "COMBINED"</span>
+<a name="l00281"></a>00281 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_COMB_CONTRIB_MAP "COMBINED_CONTRIB_MAP"</span>
+<a name="l00282"></a>00282 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_STITCHED "STITCHED"</span>
+<a name="l00283"></a>00283 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_ILLUM "ILLUM"</span>
+<a name="l00284"></a>00284 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DIST_CORRECTED "DIST_CORRECTED"</span>
+<a name="l00285"></a>00285 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BKGIMAGE "BKG_IM"</span>
+<a name="l00286"></a>00286 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BKGBPM "BKG_BPM"</span>
+<a name="l00287"></a>00287 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_ERRMAP "ERRMAP"</span>
+<a name="l00288"></a>00288 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BESTFOCUS "BEST_FOCUS"</span>
+<a name="l00289"></a>00289 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BASICCALIBRATED "BASIC_CALIBRATED"</span>
+<a name="l00290"></a>00290 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_SKY_BASICCALIBRATED "SKY_BASIC_CALIBRATED"</span>
+<a name="l00291"></a>00291 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BKG_SUBTRACTED "BKG_SUBTRACTED"</span>
+<a name="l00292"></a>00292 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_OBJ_MASK "OBJ_MASK"</span>
+<a name="l00293"></a>00293 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DISTORTION_X "DISTORTION_X"</span>
+<a name="l00294"></a>00294 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_DISTORTION_Y "DISTORTION_Y"</span>
+<a name="l00295"></a>00295 <span class="preprocessor"></span>
+<a name="l00296"></a>00296
+<a name="l00297"></a>00297 <span class="comment">/* Tables */</span>
+<a name="l00298"></a>00298 <span class="comment">/* Col: HAWKI_COL_OBJ_POSX */</span>
+<a name="l00299"></a>00299 <span class="comment">/* HAWKI_COL_OBJ_POSY */</span>
+<a name="l00300"></a>00300 <span class="comment">/* HAWKI_COL_OBJ_FWHMX */</span>
+<a name="l00301"></a>00301 <span class="comment">/* HAWKI_COL_OBJ_FWHMY */</span>
+<a name="l00302"></a>00302 <span class="comment">/* HAWKI_COL_OBJ_ANGLE */</span>
+<a name="l00303"></a>00303 <span class="comment">/* HAWKI_COL_OBJ_FLUX */</span>
+<a name="l00304"></a>00304 <span class="preprocessor">#define HAWKI_PROTYPE_OBJ_PARAM "OBJ_PARAM"</span>
+<a name="l00305"></a>00305 <span class="preprocessor"></span>
+<a name="l00306"></a>00306 <span class="comment">/* Col: HAWKI_COL_ILLUM_POSX */</span>
+<a name="l00307"></a>00307 <span class="comment">/* HAWKI_COL_ILLUM_POSY */</span>
+<a name="l00308"></a>00308 <span class="comment">/* HAWKI_COL_ILLUM_FLUX */</span>
+<a name="l00309"></a>00309 <span class="preprocessor">#define HAWKI_PROTYPE_ILLUM_PHOTOM "ILLUM_PHOTOM"</span>
+<a name="l00310"></a>00310 <span class="preprocessor"></span>
+<a name="l00311"></a>00311 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00312"></a>00312 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00313"></a>00313 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00314"></a>00314 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00315"></a>00315 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00316"></a>00316 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00317"></a>00317 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS "FLAT_STATS"</span>
+<a name="l00318"></a>00318 <span class="preprocessor"></span>
+<a name="l00319"></a>00319 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00320"></a>00320 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00321"></a>00321 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00322"></a>00322 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00323"></a>00323 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00324"></a>00324 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00325"></a>00325 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS_EVEN_COL "FLAT_STATS_EVEN_COL"</span>
+<a name="l00326"></a>00326 <span class="preprocessor"></span>
+<a name="l00327"></a>00327 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00328"></a>00328 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00329"></a>00329 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00330"></a>00330 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00331"></a>00331 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00332"></a>00332 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00333"></a>00333 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS_ODD_COL "FLAT_STATS_ODD_COL"</span>
+<a name="l00334"></a>00334 <span class="preprocessor"></span>
+<a name="l00335"></a>00335 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00336"></a>00336 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00337"></a>00337 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00338"></a>00338 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00339"></a>00339 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00340"></a>00340 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00341"></a>00341 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS_EVEN_ROW "FLAT_STATS_EVEN_ROW"</span>
+<a name="l00342"></a>00342 <span class="preprocessor"></span>
+<a name="l00343"></a>00343 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00344"></a>00344 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00345"></a>00345 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00346"></a>00346 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00347"></a>00347 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00348"></a>00348 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00349"></a>00349 <span class="preprocessor">#define HAWKI_PROTYPE_FLAT_STATS_ODD_ROW "FLAT_STATS_ODD_ROW"</span>
+<a name="l00350"></a>00350 <span class="preprocessor"></span>
+<a name="l00351"></a>00351 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00352"></a>00352 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00353"></a>00353 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00354"></a>00354 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00355"></a>00355 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00356"></a>00356 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00357"></a>00357 <span class="preprocessor">#define HAWKI_PROTYPE_DARK_STATS "DARK_STATS"</span>
+<a name="l00358"></a>00358 <span class="preprocessor"></span>
+<a name="l00359"></a>00359 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00360"></a>00360 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00361"></a>00361 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00362"></a>00362 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00363"></a>00363 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00364"></a>00364 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00365"></a>00365 <span class="preprocessor">#define HAWKI_PROTYPE_ZPOINT_STATS "ZPOINT_STATS"</span>
+<a name="l00366"></a>00366 <span class="preprocessor"></span>
+<a name="l00367"></a>00367 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00368"></a>00368 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00369"></a>00369 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00370"></a>00370 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00371"></a>00371 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00372"></a>00372 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00373"></a>00373 <span class="preprocessor">#define HAWKI_PROTYPE_JITTER_STATS "JITTER_STATS"</span>
+<a name="l00374"></a>00374 <span class="preprocessor"></span>
+<a name="l00375"></a>00375 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00376"></a>00376 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00377"></a>00377 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00378"></a>00378 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00379"></a>00379 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00380"></a>00380 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00381"></a>00381 <span class="preprocessor">#define HAWKI_PROTYPE_JITTER_BKG_STATS "BKG_STATS"</span>
+<a name="l00382"></a>00382 <span class="preprocessor"></span>
+<a name="l00383"></a>00383 <span class="comment">/* Col: HAWKI_COL_STAT_MIN */</span>
+<a name="l00384"></a>00384 <span class="comment">/* HAWKI_COL_STAT_MAX */</span>
+<a name="l00385"></a>00385 <span class="comment">/* HAWKI_COL_STAT_MED */</span>
+<a name="l00386"></a>00386 <span class="comment">/* HAWKI_COL_STAT_RMS */</span>
+<a name="l00387"></a>00387 <span class="comment">/* HAWKI_COL_STAT_MEAN */</span>
+<a name="l00388"></a>00388 <span class="comment">/* HAWKI_COL_STAT_USED */</span>
+<a name="l00389"></a>00389 <span class="preprocessor">#define HAWKI_PROTYPE_FILTERPOSCHECK_STATS "FILTERPOS_CHECK_STATS"</span>
+<a name="l00390"></a>00390 <span class="preprocessor"></span>
+<a name="l00391"></a>00391 <span class="comment">/* Col: IRPLIB_STDSTAR_STAR_COL */</span>
+<a name="l00392"></a>00392 <span class="comment">/* IRPLIB_STDSTAR_TYPE_COL */</span>
+<a name="l00393"></a>00393 <span class="comment">/* IRPLIB_STDSTAR_RA_COL */</span>
+<a name="l00394"></a>00394 <span class="comment">/* IRPLIB_STDSTAR_DEC_COL */</span>
+<a name="l00395"></a>00395 <span class="comment">/* Filters .... */</span>
+<a name="l00396"></a>00396 <span class="preprocessor">#define HAWKI_PROTYPE_STDSTARS "STDSTARS"</span>
+<a name="l00397"></a>00397 <span class="preprocessor"></span>
+<a name="l00398"></a>00398 <span class="comment">/* Col: HAWKI_COL_DIST_DXGC */</span>
+<a name="l00399"></a>00399 <span class="comment">/* HAWKI_COL_DIST_DYGC */</span>
+<a name="l00400"></a>00400 <span class="comment">/* HAWKI_COL_DIST_I */</span>
+<a name="l00401"></a>00401 <span class="comment">/* HAWKI_COL_DIST_J */</span>
+<a name="l00402"></a>00402 <span class="preprocessor">#define HAWKI_PROTYPE_DISTORTION "DISTORTION"</span>
+<a name="l00403"></a>00403 <span class="preprocessor"></span>
+<a name="l00404"></a>00404 <span class="comment">/* Col: HAWKI_COL_ZPOINT_CHIP */</span>
+<a name="l00405"></a>00405 <span class="comment">/* HAWKI_COL_ZPOINT_POSX */</span>
+<a name="l00406"></a>00406 <span class="comment">/* HAWKI_COL_ZPOINT_POSY */</span>
+<a name="l00407"></a>00407 <span class="comment">/* HAWKI_COL_ZPOINT_ZPOINT */</span>
+<a name="l00408"></a>00408 <span class="comment">/* HAWKI_COL_ZPOINT_ATX0 */</span>
+<a name="l00409"></a>00409 <span class="comment">/* HAWKI_COL_ZPOINT_FLUX */</span>
+<a name="l00410"></a>00410 <span class="comment">/* HAWKI_COL_ZPOINT_PEAK */</span>
+<a name="l00411"></a>00411 <span class="comment">/* HAWKI_COL_ZPOINT_BGD */</span>
+<a name="l00412"></a>00412 <span class="comment">/* HAWKI_COL_ZPOINT_FWHMX */</span>
+<a name="l00413"></a>00413 <span class="comment">/* HAWKI_COL_ZPOINT_FWHMY */</span>
+<a name="l00414"></a>00414 <span class="comment">/* HAWKI_COL_ZPOINT_FWHM */</span>
+<a name="l00415"></a>00415 <span class="comment">/* HAWKI_COL_ZPOINT_FWHMX_AS */</span>
+<a name="l00416"></a>00416 <span class="comment">/* HAWKI_COL_ZPOINT_FWHMY_AS */</span>
+<a name="l00417"></a>00417 <span class="comment">/* HAWKI_COL_ZPOINT_FWHM_AS */</span>
+<a name="l00418"></a>00418 <span class="preprocessor">#define HAWKI_PROTYPE_ZPOINT_TAB "ZPOINT_TAB"</span>
+<a name="l00419"></a>00419 <span class="preprocessor"></span>
+<a name="l00420"></a>00420 <span class="comment">/* Col: HAWKI_COL_PHOT_FILTER */</span>
+<a name="l00421"></a>00421 <span class="comment">/* HAWKI_COL_PHOT_EXTCOEFF */</span>
+<a name="l00422"></a>00422 <span class="comment">/* HAWKI_COL_PHOT_DEXTCOEFF */</span>
+<a name="l00423"></a>00423 <span class="comment">/* HAWKI_COL_PHOT_ZEROPOINT */</span>
+<a name="l00424"></a>00424 <span class="comment">/* HAWKI_COL_PHOT_DZEROPOINT */</span>
+<a name="l00425"></a>00425 <span class="comment">/* HAWKI_COL_PHOT_COLORTERM */</span>
+<a name="l00426"></a>00426 <span class="comment">/* HAWKI_COL_PHOT_DCOLORTERM */</span>
+<a name="l00427"></a>00427 <span class="preprocessor">#define HAWKI_PROTYPE_PHOT_TAB "PHOT_COEFF"</span>
+<a name="l00428"></a>00428 <span class="preprocessor"></span>
+<a name="l00429"></a>00429 <span class="comment">/* Col: HAWKI_COL_RAW_JITTER_QC_TEL_ALT */</span>
+<a name="l00430"></a>00430 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AZ */</span>
+<a name="l00431"></a>00431 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_RHUM */</span>
+<a name="l00432"></a>00432 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_TAU0 */</span>
+<a name="l00433"></a>00433 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_TEMP */</span>
+<a name="l00434"></a>00434 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_WINDDIR */</span>
+<a name="l00435"></a>00435 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_WINDSP */</span>
+<a name="l00436"></a>00436 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_IA_FWHM */</span>
+<a name="l00437"></a>00437 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_ADA_ABSROT_START */</span>
+<a name="l00438"></a>00438 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_ADA_ABSROT_END */</span>
+<a name="l00439"></a>00439 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_ADA_ABSROT_DELTA */</span>
+<a name="l00440"></a>00440 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AIRM_START */</span>
+<a name="l00441"></a>00441 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AIRM_END */</span>
+<a name="l00442"></a>00442 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AIRM */</span>
+<a name="l00443"></a>00443 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_FWHM_START */</span>
+<a name="l00444"></a>00444 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_FWHM_END */</span>
+<a name="l00445"></a>00445 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_FWHM */</span>
+<a name="l00446"></a>00446 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_PRES_START */</span>
+<a name="l00447"></a>00447 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_PRES_END */</span>
+<a name="l00448"></a>00448 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_AMBI_PRES */</span>
+<a name="l00449"></a>00449 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_PARANG_START */</span>
+<a name="l00450"></a>00450 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_PARANG_END */</span>
+<a name="l00451"></a>00451 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_PARANG */</span>
+<a name="l00452"></a>00452 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_TEL_PARANG_DELTA */</span>
+<a name="l00453"></a>00453 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_SEQ_CUMOFFSETA */</span>
+<a name="l00454"></a>00454 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_SEQ_CUMOFFSETD */</span>
+<a name="l00455"></a>00455 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_SEQ_CUMOFFSETX */</span>
+<a name="l00456"></a>00456 <span class="comment">/* HAWKI_COL_RAW_JITTER_QC_SEQ_CUMOFFSETY */</span>
+<a name="l00457"></a>00457 <span class="preprocessor">#define HAWKI_PROTYPE_SCIENCE_PCS "SCIENCE_PCS"</span>
+<a name="l00458"></a>00458 <span class="preprocessor"></span>
+<a name="l00459"></a>00459 <span class="comment">/* HAWKI_COL_OFFSET_X */</span>
+<a name="l00460"></a>00460 <span class="comment">/* HAWKI_COL_OFFSET_Y */</span>
+<a name="l00461"></a>00461 <span class="comment">/* HAWKI_COL_CORRELATION */</span>
+<a name="l00462"></a>00462 <span class="preprocessor">#define HAWKI_PROTYPE_OFFSETS "OFFSETS_REFINED"</span>
+<a name="l00463"></a>00463 <span class="preprocessor"></span>
+<a name="l00464"></a>00464 <span class="comment">/* TODO: This is to be deprecated */</span>
+<a name="l00465"></a>00465 <span class="preprocessor">#define HAWKI_PROTYPE_COEFFS "COEFFS"</span>
+<a name="l00466"></a>00466 <span class="preprocessor"></span>
+<a name="l00467"></a>00467 <span class="preprocessor">#define HAWKI_PROTYPE_LIN_STATS "LIN_STATS"</span>
+<a name="l00468"></a>00468 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_LIN_COEFFS "LIN_COEFFS"</span>
+<a name="l00469"></a>00469 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_GAIN_STATS "GAIN_STATS"</span>
+<a name="l00470"></a>00470 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_BPM_LEVELS "BPM_LEVELS"</span>
+<a name="l00471"></a>00471 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_LINGAIN_CORR "LINGAIN_CORR"</span>
+<a name="l00472"></a>00472 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_PROTYPE_LINGAIN_DIFF "LINGAIN_DIFF"</span>
+<a name="l00473"></a>00473 <span class="preprocessor"></span>
+<a name="l00474"></a>00474
<a name="l00475"></a>00475
-<a name="l00476"></a>00476
-<a name="l00477"></a>00477 <span class="comment">/************************************/</span>
-<a name="l00478"></a>00478
-<a name="l00479"></a>00479 <span class="comment">/************************************/</span>
-<a name="l00480"></a>00480 <span class="comment">/* Define here the DO.CATG keywords */</span>
-<a name="l00481"></a>00481 <span class="preprocessor">#define HAWKI_COMMAND_LINE "COMMAND_LINE"</span>
-<a name="l00482"></a>00482 <span class="preprocessor"></span>
-<a name="l00483"></a>00483 <span class="preprocessor">#define HAWKI_CAL_DARK_RAW "DARK"</span>
-<a name="l00484"></a>00484 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_TEC_FLAT_RAW "TEC_FLAT"</span>
-<a name="l00485"></a>00485 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_FLAT_RAW "FLAT"</span>
-<a name="l00486"></a>00486 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_FOCUS_RAW "FOCUS"</span>
-<a name="l00487"></a>00487 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_ZPOINT_RAW "ZPOINT"</span>
-<a name="l00488"></a>00488 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_ILLUM_RAW "TEC_STD"</span>
-<a name="l00489"></a>00489 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_IMG_JITTER_RAW "JITTER_OBS"</span>
-<a name="l00490"></a>00490 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_IMG_JITTER_SKY_RAW "JITTER_SKY"</span>
-<a name="l00491"></a>00491 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_LINGAIN_LAMP_RAW "DETLIN_LAMP"</span>
-<a name="l00492"></a>00492 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_LINGAIN_DARK_RAW "DETLIN_DARK"</span>
-<a name="l00493"></a>00493 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_DISTOR_RAW "DISTOR_OBS"</span>
-<a name="l00494"></a>00494 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_DISTOR_SKY_RAW "DISTOR_SKY"</span>
-<a name="l00495"></a>00495 <span class="preprocessor"></span>
-<a name="l00496"></a>00496 <span class="preprocessor">#define HAWKI_UTIL_STDSTARS_RAW "STDSTAR_CAT"</span>
-<a name="l00497"></a>00497 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_UTIL_DISTMAP_RAW "DIST_MAP"</span>
-<a name="l00498"></a>00498 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_UTIL_CAT_2MASS "CAT_2MASS"</span>
-<a name="l00499"></a>00499 <span class="preprocessor"></span><span class="comment">/************************************/</span>
-<a name="l00500"></a>00500
-<a name="l00501"></a>00501 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00502"></a>00502 <span class="comment"> Functions prototypes</span>
-<a name="l00503"></a>00503 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00504"></a>00504
-<a name="l00505"></a>00505 <span class="keywordtype">int</span> <a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(cpl_frameset *) ;
+<a name="l00476"></a>00476 <span class="comment">/************************************/</span>
+<a name="l00477"></a>00477
+<a name="l00478"></a>00478 <span class="comment">/************************************/</span>
+<a name="l00479"></a>00479 <span class="comment">/* Define here the DO.CATG keywords */</span>
+<a name="l00480"></a>00480 <span class="preprocessor">#define HAWKI_COMMAND_LINE "COMMAND_LINE"</span>
+<a name="l00481"></a>00481 <span class="preprocessor"></span>
+<a name="l00482"></a>00482 <span class="preprocessor">#define HAWKI_CAL_DARK_RAW "DARK"</span>
+<a name="l00483"></a>00483 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_TEC_FLAT_RAW "TEC_FLAT"</span>
+<a name="l00484"></a>00484 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_FLAT_RAW "FLAT"</span>
+<a name="l00485"></a>00485 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_FOCUS_RAW "FOCUS"</span>
+<a name="l00486"></a>00486 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_ZPOINT_RAW "ZPOINT"</span>
+<a name="l00487"></a>00487 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_ILLUM_RAW "TEC_STD"</span>
+<a name="l00488"></a>00488 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_IMG_JITTER_RAW "JITTER_OBS"</span>
+<a name="l00489"></a>00489 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_IMG_JITTER_SKY_RAW "JITTER_SKY"</span>
+<a name="l00490"></a>00490 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_LINGAIN_LAMP_RAW "DETLIN_LAMP"</span>
+<a name="l00491"></a>00491 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_LINGAIN_DARK_RAW "DETLIN_DARK"</span>
+<a name="l00492"></a>00492 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_DISTOR_RAW "DISTOR_OBS"</span>
+<a name="l00493"></a>00493 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_CAL_DISTOR_SKY_RAW "DISTOR_SKY"</span>
+<a name="l00494"></a>00494 <span class="preprocessor"></span>
+<a name="l00495"></a>00495 <span class="preprocessor">#define HAWKI_UTIL_STDSTARS_RAW "STDSTAR_CAT"</span>
+<a name="l00496"></a>00496 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_UTIL_DISTMAP_RAW "DIST_MAP"</span>
+<a name="l00497"></a>00497 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_UTIL_CAT_2MASS "CAT_2MASS"</span>
+<a name="l00498"></a>00498 <span class="preprocessor"></span><span class="comment">/************************************/</span>
+<a name="l00499"></a>00499
+<a name="l00500"></a>00500 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00501"></a>00501 <span class="comment"> Functions prototypes</span>
+<a name="l00502"></a>00502 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00503"></a>00503 CPL_BEGIN_DECLS
+<a name="l00504"></a>00504 <span class="keywordtype">int</span> <a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(cpl_frameset *) ;
+<a name="l00505"></a>00505 CPL_END_DECLS
<a name="l00506"></a>00506
<a name="l00507"></a>00507 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__distortion_8c_source.html b/html/hawki__distortion_8c_source.html
index 2360517..f5b272b 100644
--- a/html/hawki__distortion_8c_source.html
+++ b/html/hawki__distortion_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/02/23 11:49:37 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.32 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -1097,7 +1097,7 @@
<a name="l01228"></a>01228 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__distortion_8h_source.html b/html/hawki__distortion_8h_source.html
index b8bd14a..cff7184 100644
--- a/html/hawki__distortion_8h_source.html
+++ b/html/hawki__distortion_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_distortion.h</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_distortion.h,v 1.12 2010/03/12 13:04:44 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_distortion.h,v 1.13 2012/12/07 14:09:12 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/03/12 13:04:44 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.12 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/07 14:09:12 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.13 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_DISTORTION_H</span>
@@ -101,80 +101,81 @@
<a name="l00054"></a>00054 <span class="comment"> Prototypes</span>
<a name="l00055"></a>00055 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00056"></a>00056
-<a name="l00057"></a>00057 hawki_distortion * <a class="code" href="group__hawki__distortion.html#gae37defaaf5c0bd86686df3285b89763d" title="Allocate a new distortion solution.">hawki_distortion_grid_new</a>
-<a name="l00058"></a>00058 (<span class="keywordtype">int</span> detector_nx,
-<a name="l00059"></a>00059 <span class="keywordtype">int</span> detector_ny,
-<a name="l00060"></a>00060 <span class="keywordtype">int</span> grid_size);
-<a name="l00061"></a>00061
-<a name="l00062"></a>00062 <span class="keywordtype">void</span> <a class="code" href="group__hawki__distortion.html#ga12a902f30ad5f4a6012b9df508d06712" title="Deallocates a hawki_distortion structure.">hawki_distortion_delete</a>
-<a name="l00063"></a>00063 (hawki_distortion * distortion);
-<a name="l00064"></a>00064
-<a name="l00065"></a>00065 hawki_distortion * <a class="code" href="group__hawki__distortion.html#gab9c3ebd02585f319d08b5149b44528e7" title="Loads the distortion solution for one detector.">hawki_distortion_load</a>
-<a name="l00066"></a>00066 (<span class="keyword">const</span> cpl_frame * dist_x,
-<a name="l00067"></a>00067 <span class="keyword">const</span> cpl_frame * dist_y,
-<a name="l00068"></a>00068 <span class="keywordtype">int</span> idet);
-<a name="l00069"></a>00069
-<a name="l00070"></a>00070 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#gaaeaf96920122f1d4f64c164289588345" title="Gives the dimension in X of the distortion solution.">hawki_distortion_get_size_x</a>
-<a name="l00071"></a>00071 (<span class="keyword">const</span> hawki_distortion * distortion);
-<a name="l00072"></a>00072
-<a name="l00073"></a>00073 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga990c10037636042cfcc0b40332821e9c" title="Gives the dimension in Y of the distortion solution.">hawki_distortion_get_size_y</a>
-<a name="l00074"></a>00074 (<span class="keyword">const</span> hawki_distortion * distortion);
-<a name="l00075"></a>00075
-<a name="l00076"></a>00076 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga52da9acfab98a1592e65df9c6bfba484" title="Apply the distortion correction.">hawki_distortion_correct_alldetectors</a>
-<a name="l00077"></a>00077 (cpl_image ** alldetectors,
-<a name="l00078"></a>00078 <span class="keyword">const</span> cpl_frame * distortion_x,
-<a name="l00079"></a>00079 <span class="keyword">const</span> cpl_frame * distortion_y) ;
-<a name="l00080"></a>00080
-<a name="l00081"></a>00081 cpl_image * <a class="code" href="group__hawki__distortion.html#ga872e536210e467ff47f70959f5390b7c" title="Apply the distortion correction to one chip.">hawki_distortion_correct_detector</a>
-<a name="l00082"></a>00082 (cpl_image * image,
-<a name="l00083"></a>00083 cpl_image * dist_x,
-<a name="l00084"></a>00084 cpl_image * dist_y);
-<a name="l00085"></a>00085
-<a name="l00086"></a>00086 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga6ecd36fa4b8e69cf6f3c85a64b7a9c3e" title="Apply the distortion correction to one detector position.">hawki_distortion_correct_coords</a>
-<a name="l00087"></a>00087 (<span class="keyword">const</span> hawki_distortion * distortion,
-<a name="l00088"></a>00088 <span class="keywordtype">double</span> x_pos,
-<a name="l00089"></a>00089 <span class="keywordtype">double</span> y_pos,
-<a name="l00090"></a>00090 <span class="keywordtype">double</span> * x_pos_distcorr,
-<a name="l00091"></a>00091 <span class="keywordtype">double</span> * y_pos_distcorr);
-<a name="l00092"></a>00092
-<a name="l00093"></a>00093 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga9462a4c3d7e6d3cac66f7bef27f6cbe3" title="Apply the inverse distortion correction to one detector position.">hawki_distortion_inverse_correct_coords</a>
-<a name="l00094"></a>00094 (<span class="keyword">const</span> hawki_distortion * distortion,
-<a name="l00095"></a>00095 <span class="keywordtype">double</span> x_pos,
-<a name="l00096"></a>00096 <span class="keywordtype">double</span> y_pos,
-<a name="l00097"></a>00097 <span class="keywordtype">double</span> * x_pos_distdecorr,
-<a name="l00098"></a>00098 <span class="keywordtype">double</span> * y_pos_distdecorr);
-<a name="l00099"></a>00099
-<a name="l00100"></a>00100 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga4ad09d8cbb7f3ed8fddeb451f3b2056f" title="Apply the distortion correction.">hawki_distortion_apply_maps</a>
-<a name="l00101"></a>00101 (cpl_imagelist * ilist,
-<a name="l00102"></a>00102 cpl_image ** dist_x,
-<a name="l00103"></a>00103 cpl_image ** dist_y);
-<a name="l00104"></a>00104
-<a name="l00105"></a>00105 <span class="keywordtype">int</span> hawki_distortion_create_maps_detector
-<a name="l00106"></a>00106 (<span class="keyword">const</span> hawki_distortion * distortion,
-<a name="l00107"></a>00107 cpl_image * dist_detector_x,
-<a name="l00108"></a>00108 cpl_image * dist_detector_y);
-<a name="l00109"></a>00109
-<a name="l00110"></a>00110 <span class="keywordtype">int</span> hawki_distortion_create_maps
-<a name="l00111"></a>00111 (<span class="keyword">const</span> hawki_distortion * distortion,
-<a name="l00112"></a>00112 cpl_image ** dist_x,
-<a name="l00113"></a>00113 cpl_image ** dist_y);
-<a name="l00114"></a>00114
-<a name="l00115"></a>00115 hawki_distortion * hawki_distortion_compute_solution
-<a name="l00116"></a>00116 (<span class="keyword">const</span> cpl_table ** ref_catalogues,
-<a name="l00117"></a>00117 <span class="keyword">const</span> cpl_bivector * cat_offsets,
-<a name="l00118"></a>00118 <span class="keyword">const</span> cpl_table * matching_sets,
-<a name="l00119"></a>00119 <span class="keywordtype">int</span> ncats,
-<a name="l00120"></a>00120 <span class="keywordtype">int</span> detector_nx,
-<a name="l00121"></a>00121 <span class="keywordtype">int</span> detector_ny,
-<a name="l00122"></a>00122 <span class="keywordtype">int</span> grid_size,
-<a name="l00123"></a>00123 <span class="keyword">const</span> hawki_distortion * dist_initguess,
-<a name="l00124"></a>00124 <span class="keywordtype">double</span> * rms);
-<a name="l00125"></a>00125
-<a name="l00126"></a>00126
-<a name="l00127"></a>00127 <span class="preprocessor">#endif</span>
+<a name="l00057"></a>00057 CPL_BEGIN_DECLS
+<a name="l00058"></a>00058 hawki_distortion * <a class="code" href="group__hawki__distortion.html#gae37defaaf5c0bd86686df3285b89763d" title="Allocate a new distortion solution.">hawki_distortion_grid_new</a>
+<a name="l00059"></a>00059 (<span class="keywordtype">int</span> detector_nx,
+<a name="l00060"></a>00060 <span class="keywordtype">int</span> detector_ny,
+<a name="l00061"></a>00061 <span class="keywordtype">int</span> grid_size);
+<a name="l00062"></a>00062
+<a name="l00063"></a>00063 <span class="keywordtype">void</span> <a class="code" href="group__hawki__distortion.html#ga12a902f30ad5f4a6012b9df508d06712" title="Deallocates a hawki_distortion structure.">hawki_distortion_delete</a>
+<a name="l00064"></a>00064 (hawki_distortion * distortion);
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 hawki_distortion * <a class="code" href="group__hawki__distortion.html#gab9c3ebd02585f319d08b5149b44528e7" title="Loads the distortion solution for one detector.">hawki_distortion_load</a>
+<a name="l00067"></a>00067 (<span class="keyword">const</span> cpl_frame * dist_x,
+<a name="l00068"></a>00068 <span class="keyword">const</span> cpl_frame * dist_y,
+<a name="l00069"></a>00069 <span class="keywordtype">int</span> idet);
+<a name="l00070"></a>00070
+<a name="l00071"></a>00071 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#gaaeaf96920122f1d4f64c164289588345" title="Gives the dimension in X of the distortion solution.">hawki_distortion_get_size_x</a>
+<a name="l00072"></a>00072 (<span class="keyword">const</span> hawki_distortion * distortion);
+<a name="l00073"></a>00073
+<a name="l00074"></a>00074 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga990c10037636042cfcc0b40332821e9c" title="Gives the dimension in Y of the distortion solution.">hawki_distortion_get_size_y</a>
+<a name="l00075"></a>00075 (<span class="keyword">const</span> hawki_distortion * distortion);
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga52da9acfab98a1592e65df9c6bfba484" title="Apply the distortion correction.">hawki_distortion_correct_alldetectors</a>
+<a name="l00078"></a>00078 (cpl_image ** alldetectors,
+<a name="l00079"></a>00079 <span class="keyword">const</span> cpl_frame * distortion_x,
+<a name="l00080"></a>00080 <span class="keyword">const</span> cpl_frame * distortion_y) ;
+<a name="l00081"></a>00081
+<a name="l00082"></a>00082 cpl_image * <a class="code" href="group__hawki__distortion.html#ga872e536210e467ff47f70959f5390b7c" title="Apply the distortion correction to one chip.">hawki_distortion_correct_detector</a>
+<a name="l00083"></a>00083 (cpl_image * image,
+<a name="l00084"></a>00084 cpl_image * dist_x,
+<a name="l00085"></a>00085 cpl_image * dist_y);
+<a name="l00086"></a>00086
+<a name="l00087"></a>00087 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga6ecd36fa4b8e69cf6f3c85a64b7a9c3e" title="Apply the distortion correction to one detector position.">hawki_distortion_correct_coords</a>
+<a name="l00088"></a>00088 (<span class="keyword">const</span> hawki_distortion * distortion,
+<a name="l00089"></a>00089 <span class="keywordtype">double</span> x_pos,
+<a name="l00090"></a>00090 <span class="keywordtype">double</span> y_pos,
+<a name="l00091"></a>00091 <span class="keywordtype">double</span> * x_pos_distcorr,
+<a name="l00092"></a>00092 <span class="keywordtype">double</span> * y_pos_distcorr);
+<a name="l00093"></a>00093
+<a name="l00094"></a>00094 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga9462a4c3d7e6d3cac66f7bef27f6cbe3" title="Apply the inverse distortion correction to one detector position.">hawki_distortion_inverse_correct_coords</a>
+<a name="l00095"></a>00095 (<span class="keyword">const</span> hawki_distortion * distortion,
+<a name="l00096"></a>00096 <span class="keywordtype">double</span> x_pos,
+<a name="l00097"></a>00097 <span class="keywordtype">double</span> y_pos,
+<a name="l00098"></a>00098 <span class="keywordtype">double</span> * x_pos_distdecorr,
+<a name="l00099"></a>00099 <span class="keywordtype">double</span> * y_pos_distdecorr);
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 <span class="keywordtype">int</span> <a class="code" href="group__hawki__distortion.html#ga4ad09d8cbb7f3ed8fddeb451f3b2056f" title="Apply the distortion correction.">hawki_distortion_apply_maps</a>
+<a name="l00102"></a>00102 (cpl_imagelist * ilist,
+<a name="l00103"></a>00103 cpl_image ** dist_x,
+<a name="l00104"></a>00104 cpl_image ** dist_y);
+<a name="l00105"></a>00105
+<a name="l00106"></a>00106 <span class="keywordtype">int</span> hawki_distortion_create_maps_detector
+<a name="l00107"></a>00107 (<span class="keyword">const</span> hawki_distortion * distortion,
+<a name="l00108"></a>00108 cpl_image * dist_detector_x,
+<a name="l00109"></a>00109 cpl_image * dist_detector_y);
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 <span class="keywordtype">int</span> hawki_distortion_create_maps
+<a name="l00112"></a>00112 (<span class="keyword">const</span> hawki_distortion * distortion,
+<a name="l00113"></a>00113 cpl_image ** dist_x,
+<a name="l00114"></a>00114 cpl_image ** dist_y);
+<a name="l00115"></a>00115
+<a name="l00116"></a>00116 hawki_distortion * hawki_distortion_compute_solution
+<a name="l00117"></a>00117 (<span class="keyword">const</span> cpl_table ** ref_catalogues,
+<a name="l00118"></a>00118 <span class="keyword">const</span> cpl_bivector * cat_offsets,
+<a name="l00119"></a>00119 <span class="keyword">const</span> cpl_table * matching_sets,
+<a name="l00120"></a>00120 <span class="keywordtype">int</span> ncats,
+<a name="l00121"></a>00121 <span class="keywordtype">int</span> detector_nx,
+<a name="l00122"></a>00122 <span class="keywordtype">int</span> detector_ny,
+<a name="l00123"></a>00123 <span class="keywordtype">int</span> grid_size,
+<a name="l00124"></a>00124 <span class="keyword">const</span> hawki_distortion * dist_initguess,
+<a name="l00125"></a>00125 <span class="keywordtype">double</span> * rms);
+<a name="l00126"></a>00126 CPL_END_DECLS
+<a name="l00127"></a>00127
+<a name="l00128"></a>00128 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__image_8c_source.html b/html/hawki__image_8c_source.html
new file mode 100644
index 0000000..138dd7c
--- /dev/null
+++ b/html/hawki__image_8c_source.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<title>HAWKI Pipeline Reference Manual: hawki_image.c Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="doxygen.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<!-- Generated by Doxygen 1.7.4 -->
+<div id="top">
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main Page</span></a></li>
+ <li><a href="modules.html"><span>Modules</span></a></li>
+ <li><a href="annotated.html"><span>Data Structures</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li><a href="dirs.html"><span>Directories</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File List</span></a></li>
+ </ul>
+ </div>
+ <div id="nav-path" class="navpath">
+ <ul>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
+ </ul>
+ </div>
+</div>
+<div class="header">
+ <div class="headertitle">
+<div class="title">hawki_image.c</div> </div>
+</div>
+<div class="contents">
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_image.c,v 1.3 2012/12/04 09:17:04 cgarcia Exp $</span>
+<a name="l00002"></a>00002 <span class="comment"> *</span>
+<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
+<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
+<a name="l00005"></a>00005 <span class="comment"> *</span>
+<a name="l00006"></a>00006 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
+<a name="l00007"></a>00007 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
+<a name="l00008"></a>00008 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span>
+<a name="l00009"></a>00009 <span class="comment"> * (at your option) any later version.</span>
+<a name="l00010"></a>00010 <span class="comment"> *</span>
+<a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
+<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
+<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
+<a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span>
+<a name="l00015"></a>00015 <span class="comment"> *</span>
+<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
+<a name="l00017"></a>00017 <span class="comment"> * along with this program; if not, write to the Free Software</span>
+<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
+<a name="l00019"></a>00019 <span class="comment"> */</span>
+<a name="l00020"></a>00020
+<a name="l00021"></a>00021 <span class="comment">/*</span>
+<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/04 09:17:04 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.3 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
+<a name="l00026"></a>00026 <span class="comment"> */</span>
+<a name="l00027"></a>00027
+<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include <config.h></span>
+<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
+<a name="l00031"></a>00031 <span class="preprocessor"></span>
+<a name="l00032"></a>00032 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00033"></a>00033 <span class="comment"> Includes</span>
+<a name="l00034"></a>00034 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00035"></a>00035
+<a name="l00036"></a>00036 <span class="preprocessor">#include <math.h></span>
+<a name="l00037"></a>00037 <span class="preprocessor">#include <string.h></span>
+<a name="l00038"></a>00038 <span class="preprocessor">#include <cpl.h></span>
+<a name="l00039"></a>00039 <span class="preprocessor">#include <cpl_mask.h></span>
+<a name="l00040"></a>00040 <span class="preprocessor">#include <cpl_matrix.h></span>
+<a name="l00041"></a>00041
+<a name="l00042"></a>00042 <span class="preprocessor">#include "hawki_mask.h"</span>
+<a name="l00043"></a>00043
+<a name="l00044"></a>00044 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00049"></a>00049 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00050"></a>00050
+<a name="l00067"></a>00067 cpl_error_code <a class="code" href="group__hawki__image.html#ga346a296d47b16f2b677665c01adbd41d" title="Copies the values of an image to the intersection of two images.">hawki_image_copy_to_intersection</a>
+<a name="l00068"></a><a class="code" href="group__hawki__image.html#ga346a296d47b16f2b677665c01adbd41d">00068</a> (cpl_image * target,
+<a name="l00069"></a>00069 <span class="keyword">const</span> cpl_image * from,
+<a name="l00070"></a>00070 cpl_size target_shift_x,
+<a name="l00071"></a>00071 cpl_size target_shift_y)
+<a name="l00072"></a>00072 {
+<a name="l00073"></a>00073
+<a name="l00074"></a>00074 cpl_size inter_x1;
+<a name="l00075"></a>00075 cpl_size inter_x2;
+<a name="l00076"></a>00076 cpl_size inter_y1;
+<a name="l00077"></a>00077 cpl_size inter_y2;
+<a name="l00078"></a>00078
+<a name="l00079"></a>00079 cpl_size from_x1 = 0;
+<a name="l00080"></a>00080 cpl_size from_x2 = cpl_image_get_size_x(from);
+<a name="l00081"></a>00081 cpl_size from_y1 = 0;
+<a name="l00082"></a>00082 cpl_size from_y2 = cpl_image_get_size_y(from);
+<a name="l00083"></a>00083
+<a name="l00084"></a>00084 cpl_size target_x1 = target_shift_x;
+<a name="l00085"></a>00085 cpl_size target_x2 = target_shift_x + cpl_image_get_size_x(target);
+<a name="l00086"></a>00086 cpl_size target_y1 = target_shift_y;
+<a name="l00087"></a>00087 cpl_size target_y2 = target_shift_y + cpl_image_get_size_y(target);
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="comment">/* Check entries */</span>
+<a name="l00090"></a>00090 cpl_ensure_code(target != NULL, CPL_ERROR_NULL_INPUT);
+<a name="l00091"></a>00091 cpl_ensure_code(from != NULL, CPL_ERROR_NULL_INPUT);
+<a name="l00092"></a>00092 cpl_ensure_code(cpl_image_get_type(target) == cpl_image_get_type(from),
+<a name="l00093"></a>00093 CPL_ERROR_TYPE_MISMATCH);
+<a name="l00094"></a>00094
+<a name="l00095"></a>00095 <span class="comment">/* Compute intersection */</span>
+<a name="l00096"></a>00096 inter_x1 = CX_MAX(from_x1, target_x1);
+<a name="l00097"></a>00097 inter_x2 = CX_MIN(from_x2, target_x2);
+<a name="l00098"></a>00098 inter_y1 = CX_MAX(from_y1, target_y1);
+<a name="l00099"></a>00099 inter_y2 = CX_MIN(from_y2, target_y2);
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 <span class="keywordflow">if</span>(inter_x2 > inter_x1 && inter_y2 > inter_y1)
+<a name="l00102"></a>00102 {
+<a name="l00103"></a>00103 <span class="keyword">const</span> <span class="keywordtype">void</span> * from_data;
+<a name="l00104"></a>00104 <span class="keywordtype">void</span> * target_data;
+<a name="l00105"></a>00105 <span class="keywordtype">int</span> iy;
+<a name="l00106"></a>00106 <span class="keywordtype">size_t</span> pixel_size = cpl_type_get_sizeof(cpl_image_get_type(from));
+<a name="l00107"></a>00107 cpl_size from_nx = cpl_image_get_size_x(from);
+<a name="l00108"></a>00108 cpl_size target_nx = cpl_image_get_size_y(target);
+<a name="l00109"></a>00109 cpl_size memcopy_size;
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 memcopy_size = (inter_x2 - inter_x1) * pixel_size;
+<a name="l00112"></a>00112
+<a name="l00113"></a>00113 from_data = cpl_image_get_data_const(from);
+<a name="l00114"></a>00114 target_data = cpl_image_get_data(target);
+<a name="l00115"></a>00115
+<a name="l00116"></a>00116 <span class="keywordflow">for</span>(iy=inter_y1; iy<inter_y2; ++iy)
+<a name="l00117"></a>00117 {
+<a name="l00118"></a>00118 <span class="keyword">const</span> <span class="keywordtype">void</span> * from_p;
+<a name="l00119"></a>00119 <span class="keywordtype">void</span> * target_p;
+<a name="l00120"></a>00120
+<a name="l00121"></a>00121 from_p = from_data + (inter_x1 + iy * from_nx) * pixel_size;
+<a name="l00122"></a>00122 target_p = target_data +
+<a name="l00123"></a>00123 (inter_x1 - target_shift_x +
+<a name="l00124"></a>00124 (iy - target_shift_y) * target_nx) * pixel_size;
+<a name="l00125"></a>00125 memcpy(target_p, from_p, memcopy_size);
+<a name="l00126"></a>00126 }
+<a name="l00127"></a>00127 }
+<a name="l00128"></a>00128 <span class="comment">/* If the if is not executed is because intersection is empty. </span>
+<a name="l00129"></a>00129 <span class="comment"> * Nothing to copy */</span>
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="keywordflow">return</span> CPL_ERROR_NONE;
+<a name="l00132"></a>00132 }
+<a name="l00133"></a>00133
+</pre></div></div>
+</div>
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
+<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
+</body>
+</html>
diff --git a/html/hawki__mask_8h_source.html b/html/hawki__image_8h_source.html
similarity index 74%
copy from html/hawki__mask_8h_source.html
copy to html/hawki__image_8h_source.html
index 5614183..cff44d4 100644
--- a/html/hawki__mask_8h_source.html
+++ b/html/hawki__image_8h_source.html
@@ -2,7 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>HAWKI Pipeline Reference Manual: hawki_mask.h Source File</title>
+<title>HAWKI Pipeline Reference Manual: hawki_image.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,16 +36,16 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
-<div class="title">hawki_mask.h</div> </div>
+<div class="title">hawki_image.h</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_mask.h,v 1.1 2009/11/26 09:51:54 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_image.h,v 1.2 2012/12/07 13:45:04 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,30 +67,33 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/11/26 09:51:54 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/07 13:45:04 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.2 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
-<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_MASK_H</span>
-<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_MASK_H</span>
+<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_IMAGE_H</span>
+<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define HAWKI_IMAGE_H</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span>
<a name="l00031"></a>00031 <span class="preprocessor">#include "cpl.h"</span>
-<a name="l00032"></a>00032 <span class="preprocessor">#include "cpl_mask.h"</span>
-<a name="l00033"></a>00033 <span class="preprocessor">#include "cpl_matrix.h"</span>
-<a name="l00034"></a>00034
-<a name="l00035"></a>00035 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00036"></a>00036 <span class="comment"> Functions prototypes</span>
-<a name="l00037"></a>00037 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00038"></a>00038
-<a name="l00039"></a>00039 cpl_error_code <a class="code" href="group__hawki__mask.html#ga6154878d3444c3d4204a2a6132719e69">hawki_mask_convolve</a>(
-<a name="l00040"></a>00040 cpl_mask * in,
-<a name="l00041"></a>00041 <span class="keyword">const</span> cpl_matrix * ker);
-<a name="l00042"></a>00042
-<a name="l00043"></a>00043 <span class="preprocessor">#endif</span>
+<a name="l00032"></a>00032 <span class="preprocessor">#include "cpl_image.h"</span>
+<a name="l00033"></a>00033
+<a name="l00034"></a>00034 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00035"></a>00035 <span class="comment"> Functions prototypes</span>
+<a name="l00036"></a>00036 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00037"></a>00037
+<a name="l00038"></a>00038 CPL_BEGIN_DECLS
+<a name="l00039"></a>00039 cpl_error_code <a class="code" href="group__hawki__image.html#ga346a296d47b16f2b677665c01adbd41d" title="Copies the values of an image to the intersection of two images.">hawki_image_copy_to_intersection</a>
+<a name="l00040"></a>00040 (cpl_image * target,
+<a name="l00041"></a>00041 <span class="keyword">const</span> cpl_image * from,
+<a name="l00042"></a>00042 cpl_size target_shift_x,
+<a name="l00043"></a>00043 cpl_size target_shift_y);
+<a name="l00044"></a>00044 CPL_END_DECLS
+<a name="l00045"></a>00045
+<a name="l00046"></a>00046 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__image__stats_8c_source.html b/html/hawki__image__stats_8c_source.html
index acbe4d2..8cbeb93 100644
--- a/html/hawki__image__stats_8c_source.html
+++ b/html/hawki__image__stats_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/05/03 10:42:32 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.8 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -614,7 +614,7 @@
<a name="l00635"></a>00635
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__image__stats_8h_source.html b/html/hawki__image__stats_8h_source.html
index dd17b5a..7993688 100644
--- a/html/hawki__image__stats_8h_source.html
+++ b/html/hawki__image__stats_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/11/25 16:24:13 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.4 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_IMAGE_STATS_H</span>
@@ -114,7 +114,7 @@
<a name="l00067"></a>00067 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__load_8c_source.html b/html/hawki__load_8c_source.html
index fc08d6f..e9bf80e 100644
--- a/html/hawki__load_8c_source.html
+++ b/html/hawki__load_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/12/04 10:39:14 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.40 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -826,7 +826,7 @@
<a name="l00915"></a>00915 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__load_8h_source.html b/html/hawki__load_8h_source.html
index 5772b1f..d3d6e10 100644
--- a/html/hawki__load_8h_source.html
+++ b/html/hawki__load_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_load.h</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_load.h,v 1.21 2009/10/12 16:59:22 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_load.h,v 1.22 2012/12/05 14:56:52 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/10/12 16:59:22 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.21 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/05 14:56:52 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.22 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_LOAD_H</span>
@@ -79,32 +79,34 @@
<a name="l00032"></a>00032 <span class="comment"> Functions prototypes</span>
<a name="l00033"></a>00033 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00034"></a>00034
-<a name="l00035"></a>00035 cpl_frameset * <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keyword">const</span> <span class="keywordtype">char</span> *) ;
-<a name="l00036"></a>00036 cpl_imagelist * <a class="code" href="group__hawki__load.html#gacfb4bdd556642042208b93924ee13a32" title="Load the chip of HAWKI images from a frameset in an image list.">hawki_load_frameset</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, cpl_type) ;
-<a name="l00037"></a>00037 cpl_imagelist * <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(<span class="keyword">const</span> cpl_frame *, cpl_type) ;
-<a name="l00038"></a>00038 cpl_image * <a class="code" href="group__hawki__load.html#gada33a0608b91dc44f69f821e6f40b8d1" title="Load one the chips of HAWKI images from a frame into an image.">hawki_load_frame_detector</a>(<span class="keyword">const</span> cpl_frame *, <span class="keywordtype">int</span>, cpl_type) ;
-<a name="l00039"></a>00039 cpl_image * <a class="code" href="group__hawki__load.html#ga43ebac74ab2f9da7a452f23ec76803ef" title="Load one the extensions of HAWKI images from a frame into an image.">hawki_load_frame_extension</a>(<span class="keyword">const</span> cpl_frame *, <span class="keywordtype">int</span>, cpl_type) ;
-<a name="l00040"></a>00040 cpl_image * <a class="code" href="group__hawki__load.html#ga5b9129188e69306c15cec2d4568ddeed" title="Load the chip of HAWKI image from a frameset in an image.">hawki_load_image</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, cpl_type) ;
-<a name="l00041"></a>00041 cpl_imagelist * <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, cpl_type) ;
-<a name="l00042"></a>00042 cpl_imagelist * <a class="code" href="group__hawki__load.html#ga1cf51c1b905de7941d7fcf3e249e536d" title="Loads a given extension from a HAWKI frameset in an image list.">hawki_load_extensions</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, cpl_type) ;
-<a name="l00043"></a>00043 cpl_imagelist * <a class="code" href="group__hawki__load.html#gad5cbc1d866e88c8776ed605e5afa9438" title="Load the quarter of a chip from a frameset in an image list.">hawki_load_quadrants</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, cpl_type) ;
-<a name="l00044"></a>00044 cpl_image * <a class="code" href="group__hawki__load.html#gaf2bd8a92a7abfe4adc8eb7b6b917739a" title="Load the quarter of a chip from a frameset in an image.">hawki_load_quadrant</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, cpl_type) ;
-<a name="l00045"></a>00045 cpl_image * <a class="code" href="group__hawki__load.html#ga686f0c5897e92abd1b6aff98636f56c7" title="Load the quarter of a chip from a file in an image.">hawki_load_quadrant_from_file</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, cpl_type) ;
-<a name="l00046"></a>00046 cpl_table ** <a class="code" href="group__hawki__load.html#ga8ad708e19bdb35ac89abc2d9ba3932f0" title="Load a table with four extensions, one for each chip.">hawki_load_tables</a>(<span class="keyword">const</span> cpl_frame * frame);
-<a name="l00047"></a>00047 cpl_bivector ** <a class="code" href="group__hawki__load.html#gaf91b09d357b426f387123767e4a4fec1" title="Load a table containing refined offsets.">hawki_load_refined_offsets</a>(<span class="keyword">const</span> cpl_frame * offsets_frame);
-<a name="l00048"></a>00048 cpl_image * <a class="code" href="group__hawki__load.html#ga2e96e882a8e61743837030dcc2db02df" title="Rebuild the 4 quadrants.">hawki_rebuild_quadrants</a>(<span class="keyword">const</span> cpl_image *, <span class="keyword">const</span> cpl_image *,
-<a name="l00049"></a>00049 <span class="keyword">const</span> cpl_image *, <span class="keyword">const</span> cpl_image *) ;
-<a name="l00050"></a>00050 cpl_image * <a class="code" href="group__hawki__load.html#ga0ee685ab967af593a9fd9f5f90cc7dd0" title="Rebuild the 4 chips.">hawki_rebuild_detectors</a>(<span class="keyword">const</span> cpl_image *, <span class="keyword">const</span> cpl_image *,
-<a name="l00051"></a>00051 <span class="keyword">const</span> cpl_image *, <span class="keyword">const</span> cpl_image *) ;
-<a name="l00052"></a>00052 <span class="keywordtype">int</span> <a class="code" href="group__hawki__load.html#gac57166de157def8422f2e7e2d12dd756" title="Get the chip to store in the wished extension.">hawki_get_detector_from_ext</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>) ;
-<a name="l00053"></a>00053 <span class="keywordtype">int</span> <a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>) ;
-<a name="l00054"></a>00054 <span class="keywordtype">int</span> * <a class="code" href="group__hawki__load.html#ga509bd22f6e838f82f7b2c6bc97ccc3a9" title="Get the mapping between extensions and detectors.">hawki_get_ext_detector_mapping</a>
-<a name="l00055"></a>00055 (<span class="keyword">const</span> <span class="keywordtype">char</span> * fname);
-<a name="l00056"></a>00056
-<a name="l00057"></a>00057 <span class="preprocessor">#endif</span>
+<a name="l00035"></a>00035 CPL_BEGIN_DECLS
+<a name="l00036"></a>00036 cpl_frameset * <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keyword">const</span> <span class="keywordtype">char</span> *) ;
+<a name="l00037"></a>00037 cpl_imagelist * <a class="code" href="group__hawki__load.html#gacfb4bdd556642042208b93924ee13a32" title="Load the chip of HAWKI images from a frameset in an image list.">hawki_load_frameset</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, cpl_type) ;
+<a name="l00038"></a>00038 cpl_imagelist * <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(<span class="keyword">const</span> cpl_frame *, cpl_type) ;
+<a name="l00039"></a>00039 cpl_image * <a class="code" href="group__hawki__load.html#gada33a0608b91dc44f69f821e6f40b8d1" title="Load one the chips of HAWKI images from a frame into an image.">hawki_load_frame_detector</a>(<span class="keyword">const</span> cpl_frame *, <span class="keywordtype">int</span>, cpl_type) ;
+<a name="l00040"></a>00040 cpl_image * <a class="code" href="group__hawki__load.html#ga43ebac74ab2f9da7a452f23ec76803ef" title="Load one the extensions of HAWKI images from a frame into an image.">hawki_load_frame_extension</a>(<span class="keyword">const</span> cpl_frame *, <span class="keywordtype">int</span>, cpl_type) ;
+<a name="l00041"></a>00041 cpl_image * <a class="code" href="group__hawki__load.html#ga5b9129188e69306c15cec2d4568ddeed" title="Load the chip of HAWKI image from a frameset in an image.">hawki_load_image</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, cpl_type) ;
+<a name="l00042"></a>00042 cpl_imagelist * <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, cpl_type) ;
+<a name="l00043"></a>00043 cpl_imagelist * <a class="code" href="group__hawki__load.html#ga1cf51c1b905de7941d7fcf3e249e536d" title="Loads a given extension from a HAWKI frameset in an image list.">hawki_load_extensions</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, cpl_type) ;
+<a name="l00044"></a>00044 cpl_imagelist * <a class="code" href="group__hawki__load.html#gad5cbc1d866e88c8776ed605e5afa9438" title="Load the quarter of a chip from a frameset in an image list.">hawki_load_quadrants</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, cpl_type) ;
+<a name="l00045"></a>00045 cpl_image * <a class="code" href="group__hawki__load.html#gaf2bd8a92a7abfe4adc8eb7b6b917739a" title="Load the quarter of a chip from a frameset in an image.">hawki_load_quadrant</a>(<span class="keyword">const</span> cpl_frameset *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, cpl_type) ;
+<a name="l00046"></a>00046 cpl_image * <a class="code" href="group__hawki__load.html#ga686f0c5897e92abd1b6aff98636f56c7" title="Load the quarter of a chip from a file in an image.">hawki_load_quadrant_from_file</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>, <span class="keywordtype">int</span>, cpl_type) ;
+<a name="l00047"></a>00047 cpl_table ** <a class="code" href="group__hawki__load.html#ga8ad708e19bdb35ac89abc2d9ba3932f0" title="Load a table with four extensions, one for each chip.">hawki_load_tables</a>(<span class="keyword">const</span> cpl_frame * frame);
+<a name="l00048"></a>00048 cpl_bivector ** <a class="code" href="group__hawki__load.html#gaf91b09d357b426f387123767e4a4fec1" title="Load a table containing refined offsets.">hawki_load_refined_offsets</a>(<span class="keyword">const</span> cpl_frame * offsets_frame);
+<a name="l00049"></a>00049 cpl_image * <a class="code" href="group__hawki__load.html#ga2e96e882a8e61743837030dcc2db02df" title="Rebuild the 4 quadrants.">hawki_rebuild_quadrants</a>(<span class="keyword">const</span> cpl_image *, <span class="keyword">const</span> cpl_image *,
+<a name="l00050"></a>00050 <span class="keyword">const</span> cpl_image *, <span class="keyword">const</span> cpl_image *) ;
+<a name="l00051"></a>00051 cpl_image * <a class="code" href="group__hawki__load.html#ga0ee685ab967af593a9fd9f5f90cc7dd0" title="Rebuild the 4 chips.">hawki_rebuild_detectors</a>(<span class="keyword">const</span> cpl_image *, <span class="keyword">const</span> cpl_image *,
+<a name="l00052"></a>00052 <span class="keyword">const</span> cpl_image *, <span class="keyword">const</span> cpl_image *) ;
+<a name="l00053"></a>00053 <span class="keywordtype">int</span> <a class="code" href="group__hawki__load.html#gac57166de157def8422f2e7e2d12dd756" title="Get the chip to store in the wished extension.">hawki_get_detector_from_ext</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>) ;
+<a name="l00054"></a>00054 <span class="keywordtype">int</span> <a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">int</span>) ;
+<a name="l00055"></a>00055 <span class="keywordtype">int</span> * <a class="code" href="group__hawki__load.html#ga509bd22f6e838f82f7b2c6bc97ccc3a9" title="Get the mapping between extensions and detectors.">hawki_get_ext_detector_mapping</a>
+<a name="l00056"></a>00056 (<span class="keyword">const</span> <span class="keywordtype">char</span> * fname);
+<a name="l00057"></a>00057 CPL_END_DECLS
+<a name="l00058"></a>00058
+<a name="l00059"></a>00059 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__mask_8c_source.html b/html/hawki__mask_8c_source.html
index 2c123ae..6ac5dd0 100644
--- a/html/hawki__mask_8c_source.html
+++ b/html/hawki__mask_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/03/12 12:55:17 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.3 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -169,7 +169,7 @@
<a name="l00131"></a>00131
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__mask_8h_source.html b/html/hawki__mask_8h_source.html
index 5614183..576d41c 100644
--- a/html/hawki__mask_8h_source.html
+++ b/html/hawki__mask_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/11/26 09:51:54 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_MASK_H</span>
@@ -90,7 +90,7 @@
<a name="l00043"></a>00043 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__match__cats_8c_source.html b/html/hawki__match__cats_8c_source.html
index 46d8040..11578bd 100644
--- a/html/hawki__match__cats_8c_source.html
+++ b/html/hawki__match__cats_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/11/26 09:52:32 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -127,7 +127,7 @@
<a name="l00105"></a>00105
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__match__cats_8h_source.html b/html/hawki__match__cats_8h_source.html
index 1014677..9de54e8 100644
--- a/html/hawki__match__cats_8h_source.html
+++ b/html/hawki__match__cats_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/11/26 09:52:32 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_MATCH_CATS_H</span>
@@ -90,7 +90,7 @@
<a name="l00043"></a>00043 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__obj__det_8c_source.html b/html/hawki__obj__det_8c_source.html
index 887487e..9af5333 100644
--- a/html/hawki__obj__det_8c_source.html
+++ b/html/hawki__obj__det_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/09/29 09:13:00 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.2 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -150,7 +150,7 @@
<a name="l00120"></a>00120
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__obj__det_8h_source.html b/html/hawki__obj__det_8h_source.html
index d05ec5a..481fc17 100644
--- a/html/hawki__obj__det_8h_source.html
+++ b/html/hawki__obj__det_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2008/10/22 10:42:04 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_OBJ_DET_H</span>
@@ -87,7 +87,7 @@
<a name="l00040"></a>00040 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__pfits_8c_source.html b/html/hawki__pfits_8c_source.html
index 6003fce..f6a7bde 100644
--- a/html/hawki__pfits_8c_source.html
+++ b/html/hawki__pfits_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/02/23 10:58:44 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.18 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -492,7 +492,7 @@
<a name="l00722"></a>00722
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__pfits_8h_source.html b/html/hawki__pfits_8h_source.html
index 7fc7393..666c188 100644
--- a/html/hawki__pfits_8h_source.html
+++ b/html/hawki__pfits_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_pfits.h</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_pfits.h,v 1.14 2010/02/23 10:58:49 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_pfits.h,v 1.15 2012/12/07 13:45:43 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/02/23 10:58:49 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.14 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/07 13:45:43 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.15 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_PFITS_H</span>
@@ -85,64 +85,66 @@
<a name="l00038"></a>00038 <span class="comment"> Functions prototypes</span>
<a name="l00039"></a>00039 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00040"></a>00040
-<a name="l00041"></a>00041 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#ga5161743d5b650a637d543959b5bd54ea" title="find out the extname">hawki_pfits_get_extname</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00042"></a>00042 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga4e7f03745ede13d9d2db3eddccd857df" title="find out airmass start">hawki_pfits_get_airmass_start</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00043"></a>00043 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gafccabad8d0fcc65a0ed27d1dff7ae8e3" title="find out airmass end">hawki_pfits_get_airmass_end</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00044"></a>00044 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga643c35f35f7f49a3e1c6bafd022e364a" title="find out the humidity level">hawki_pfits_get_humidity_level</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00045"></a>00045 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga36892dc77006059ba553e9a98c9b55fc" title="find out the target RA">hawki_pfits_get_targ_alpha</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00046"></a>00046 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga0330c53376304376257417ea4edbee5c" title="find out the target DEC">hawki_pfits_get_targ_delta</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00047"></a>00047 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga662be8ce410cbfa244f51ec8e5f0baad" title="find out the target equinox">hawki_pfits_get_targ_equinox</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00048"></a>00048 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga07110c618d0772882174838d8ce9a168" title="find out the target epoch">hawki_pfits_get_targ_epoch</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00049"></a>00049 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga6f490d48a329331dc3b1bc48c1e9ed1d" title="find out the RA">hawki_pfits_get_ra</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00050"></a>00050 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaca47ff94f05c2bb322ea83ce4cf9b4d4" title="find out the DEC">hawki_pfits_get_dec</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00051"></a>00051 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#gae4f45ff97625d37b9354392b0c5e1056" title="find out the arcfile">hawki_pfits_get_arcfile</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00052"></a>00052 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#gad9c95c0d3bc75d347bf9acbcb8fe549d" title="find out the PRO.CATG">hawki_pfits_get_procatg</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00053"></a>00053 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#ga87aca0d821694845e43e06dca5ace1a0" title="find out the date of observation">hawki_pfits_get_date_obs</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00054"></a>00054 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#ga509576593bbfc282745eae7d29a89102" title="Get the number of pixels in axis 1.">hawki_pfits_get_naxis1</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00055"></a>00055 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#gaabcefe7bbad8cb43ad652970057d0356" title="Get the number of pixels in axis 2.">hawki_pfits_get_naxis2</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00056"></a>00056 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga98f777c6f085878ba095b1ccd40ef6ea" title="find out the value in WCS coordinates of the reference pixel (axe 1)">hawki_pfits_get_crval1</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00057"></a>00057 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga7fbf6de80172c991e4a9d7f427741692" title="find out the value in WCS coordinates of the reference pixel (axe 2)">hawki_pfits_get_crval2</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00058"></a>00058 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaaeee5723004e441f48fb8cc804370f80" title="find out the reference pixel in axe 1">hawki_pfits_get_crpix1</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00059"></a>00059 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaab4e70f9071230674a49cb8df1975f10" title="find out the reference pixel in axe 1">hawki_pfits_get_crpix2</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00060"></a>00060 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga39d06faa1dcc2d3601e07e79064f9e78" title="find out the increment of coordinate in one pixel (axe 1)">hawki_pfits_get_cdelta1</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00061"></a>00061 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaeea4d2dba260fc663a4aa5d5a616086c" title="find out the increment of coordinate in one pixel (axe 2)">hawki_pfits_get_cdelta2</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00062"></a>00062 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga79c432e5ab5585c45472cfa86b2d146b" title="find out the pixel scale">hawki_pfits_get_pixscale</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00063"></a>00063 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga62ff6ef5b06d163b64e8eff779e5fb53" title="find out the cumulative offset in alpha">hawki_pfits_get_cumoffseta</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00064"></a>00064 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga0f4a0efe2116535b882eddeeb272042d" title="find out the cumulative offset in delta">hawki_pfits_get_cumoffsetd</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00065"></a>00065 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga8074b7ef4524abfeb10bef68c4cfdf5e" title="find out the cumulative offset in X">hawki_pfits_get_cumoffsetx</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00066"></a>00066 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga21f640e98b8f695ac6229e9f15d46aca" title="find out the cumulative offset in Y">hawki_pfits_get_cumoffsety</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00067"></a>00067 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga88a2db02738f3881bad0e2bde2768951" title="find out the position angle">hawki_pfits_get_posangle</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00068"></a>00068 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#gae157c2c48d5b4e41ffafef1348c939d2" title="find out the NEXP value">hawki_pfits_get_nexp</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00069"></a>00069 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#ga7c2b338fdf41bdeb1149b60af82c0788" title="find out the NDIT value">hawki_pfits_get_ndit</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00070"></a>00070 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#ga0d1ccf97334b28566b2bc8fe17786190" title="find out the NDSAMPLES value">hawki_pfits_get_ndsamples</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00071"></a>00071 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga1971ab60e27df384b5fd533461e7356f" title="find out the DIT value">hawki_pfits_get_dit</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00072"></a>00072 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#ga3ad06f5c4dea6ec8adcc437e7f9f5501" title="find out which wave band is active">hawki_pfits_get_filter</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00073"></a>00073 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga1cd57f592c68d5e084ee049bdbe979a4" title="find out the focus position of M2">hawki_pfits_get_focus</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
-<a name="l00074"></a>00074 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga965d40d225307d5a40d697a0a532f246" title="find out the telescope altitude">hawki_pfits_get_elevation</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00075"></a>00075 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaf18030b75b198e924f296cdd13356b58" title="find out the telescope azimut">hawki_pfits_get_azimut</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00076"></a>00076 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gafc9299ed697db3ecfd1bb4c7e548cf3b" title="find out the relative humidity">hawki_pfits_get_relhum</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00077"></a>00077 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaab1203aaa32935d1e81db6bb0aeec96b" title="find out the average coherence time">hawki_pfits_get_tau0</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00078"></a>00078 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gae4c54267b67c5efdcf93afb99ecaeb3b" title="find out the ambient temperatur">hawki_pfits_get_obs_temp</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00079"></a>00079 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga7bd674c51f4cd62ce34c208888cea125" title="find out the wind direction">hawki_pfits_get_wind_dir</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00080"></a>00080 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga45e0b30ba22df26f4d061dee26735708" title="find out the wind speed">hawki_pfits_get_wind_speed</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00081"></a>00081 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gac9b88815381f3f61c10dc88730d77121" title="find out the fwhm from the AO system">hawki_pfits_get_ao_fwhm</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00082"></a>00082 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaa91a5e47c4661209f97f4399cbceb9d2" title="find out the absolute rotator position at start">hawki_pfits_get_rotator_start</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00083"></a>00083 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gac8b9879cdc3c2e82f3b169eef3355ef2" title="find out the absolute rotator position at end">hawki_pfits_get_rotator_end</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00084"></a>00084 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gae005518fe79a76ee9b1cea2c3403a259" title="find out the observatory seeing at start">hawki_pfits_get_obs_seeing_start</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00085"></a>00085 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaa400a879086340c841865fc6c2a1cc21" title="find out the observatory seeing at end">hawki_pfits_get_obs_seeing_end</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00086"></a>00086 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga87d6ba1cd310181f2eab02fc4688bad4" title="find out the observatory atmospheric pressure at start">hawki_pfits_get_pressure_start</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00087"></a>00087 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga11eecff7f4c8031ff6ea929e15c20813" title="find out the observatory atmospheric pressure at end">hawki_pfits_get_pressure_end</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00088"></a>00088 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga2dc1b31621ecbeec49d3e390ad601274" title="find out the paralactic angle at start">hawki_pfits_get_parangle_start</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00089"></a>00089 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga3465a5cbb9e21e8cbd7680affc75355b" title="find out the paralactic angle at start">hawki_pfits_get_parangle_end</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00090"></a>00090 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga24483514187ce9bcf0860cc654b8508c" title="find out the cumulative X offset of the combined image">hawki_pfits_get_comb_cumoffsetx</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00091"></a>00091 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gadc1b3f141f5474486b5b32502634b29a" title="find out the cumulative Y offset of the combined image">hawki_pfits_get_comb_cumoffsety</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00092"></a>00092 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga88f1a9b44888686b6489fba06921f5a1" title="find out the relative X offset of the combined image wrt first image">hawki_pfits_get_comb_posx</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00093"></a>00093 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga5408b902329bdad15fd408d73fa6376e" title="find out the relative Y offset of the combined image wrt first image">hawki_pfits_get_comb_posy</a>(<span class="keyword">const</span> cpl_propertylist * plist);
-<a name="l00094"></a>00094
-<a name="l00095"></a>00095 <span class="preprocessor">#endif</span>
+<a name="l00041"></a>00041 CPL_BEGIN_DECLS
+<a name="l00042"></a>00042 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#ga5161743d5b650a637d543959b5bd54ea" title="find out the extname">hawki_pfits_get_extname</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00043"></a>00043 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga4e7f03745ede13d9d2db3eddccd857df" title="find out airmass start">hawki_pfits_get_airmass_start</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00044"></a>00044 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gafccabad8d0fcc65a0ed27d1dff7ae8e3" title="find out airmass end">hawki_pfits_get_airmass_end</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00045"></a>00045 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga643c35f35f7f49a3e1c6bafd022e364a" title="find out the humidity level">hawki_pfits_get_humidity_level</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00046"></a>00046 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga36892dc77006059ba553e9a98c9b55fc" title="find out the target RA">hawki_pfits_get_targ_alpha</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00047"></a>00047 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga0330c53376304376257417ea4edbee5c" title="find out the target DEC">hawki_pfits_get_targ_delta</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00048"></a>00048 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga662be8ce410cbfa244f51ec8e5f0baad" title="find out the target equinox">hawki_pfits_get_targ_equinox</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00049"></a>00049 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga07110c618d0772882174838d8ce9a168" title="find out the target epoch">hawki_pfits_get_targ_epoch</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00050"></a>00050 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga6f490d48a329331dc3b1bc48c1e9ed1d" title="find out the RA">hawki_pfits_get_ra</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00051"></a>00051 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaca47ff94f05c2bb322ea83ce4cf9b4d4" title="find out the DEC">hawki_pfits_get_dec</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00052"></a>00052 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#gae4f45ff97625d37b9354392b0c5e1056" title="find out the arcfile">hawki_pfits_get_arcfile</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00053"></a>00053 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#gad9c95c0d3bc75d347bf9acbcb8fe549d" title="find out the PRO.CATG">hawki_pfits_get_procatg</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00054"></a>00054 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#ga87aca0d821694845e43e06dca5ace1a0" title="find out the date of observation">hawki_pfits_get_date_obs</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00055"></a>00055 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#ga509576593bbfc282745eae7d29a89102" title="Get the number of pixels in axis 1.">hawki_pfits_get_naxis1</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00056"></a>00056 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#gaabcefe7bbad8cb43ad652970057d0356" title="Get the number of pixels in axis 2.">hawki_pfits_get_naxis2</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00057"></a>00057 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga98f777c6f085878ba095b1ccd40ef6ea" title="find out the value in WCS coordinates of the reference pixel (axe 1)">hawki_pfits_get_crval1</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00058"></a>00058 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga7fbf6de80172c991e4a9d7f427741692" title="find out the value in WCS coordinates of the reference pixel (axe 2)">hawki_pfits_get_crval2</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00059"></a>00059 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaaeee5723004e441f48fb8cc804370f80" title="find out the reference pixel in axe 1">hawki_pfits_get_crpix1</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00060"></a>00060 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaab4e70f9071230674a49cb8df1975f10" title="find out the reference pixel in axe 1">hawki_pfits_get_crpix2</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00061"></a>00061 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga39d06faa1dcc2d3601e07e79064f9e78" title="find out the increment of coordinate in one pixel (axe 1)">hawki_pfits_get_cdelta1</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00062"></a>00062 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaeea4d2dba260fc663a4aa5d5a616086c" title="find out the increment of coordinate in one pixel (axe 2)">hawki_pfits_get_cdelta2</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00063"></a>00063 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga79c432e5ab5585c45472cfa86b2d146b" title="find out the pixel scale">hawki_pfits_get_pixscale</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00064"></a>00064 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga62ff6ef5b06d163b64e8eff779e5fb53" title="find out the cumulative offset in alpha">hawki_pfits_get_cumoffseta</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00065"></a>00065 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga0f4a0efe2116535b882eddeeb272042d" title="find out the cumulative offset in delta">hawki_pfits_get_cumoffsetd</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00066"></a>00066 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga8074b7ef4524abfeb10bef68c4cfdf5e" title="find out the cumulative offset in X">hawki_pfits_get_cumoffsetx</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00067"></a>00067 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga21f640e98b8f695ac6229e9f15d46aca" title="find out the cumulative offset in Y">hawki_pfits_get_cumoffsety</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00068"></a>00068 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga88a2db02738f3881bad0e2bde2768951" title="find out the position angle">hawki_pfits_get_posangle</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00069"></a>00069 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#gae157c2c48d5b4e41ffafef1348c939d2" title="find out the NEXP value">hawki_pfits_get_nexp</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00070"></a>00070 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#ga7c2b338fdf41bdeb1149b60af82c0788" title="find out the NDIT value">hawki_pfits_get_ndit</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00071"></a>00071 <span class="keywordtype">int</span> <a class="code" href="group__hawki__pfits.html#ga0d1ccf97334b28566b2bc8fe17786190" title="find out the NDSAMPLES value">hawki_pfits_get_ndsamples</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00072"></a>00072 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga1971ab60e27df384b5fd533461e7356f" title="find out the DIT value">hawki_pfits_get_dit</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00073"></a>00073 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__pfits.html#ga3ad06f5c4dea6ec8adcc437e7f9f5501" title="find out which wave band is active">hawki_pfits_get_filter</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00074"></a>00074 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga1cd57f592c68d5e084ee049bdbe979a4" title="find out the focus position of M2">hawki_pfits_get_focus</a>(<span class="keyword">const</span> cpl_propertylist * plist) ;
+<a name="l00075"></a>00075 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga965d40d225307d5a40d697a0a532f246" title="find out the telescope altitude">hawki_pfits_get_elevation</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00076"></a>00076 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaf18030b75b198e924f296cdd13356b58" title="find out the telescope azimut">hawki_pfits_get_azimut</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00077"></a>00077 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gafc9299ed697db3ecfd1bb4c7e548cf3b" title="find out the relative humidity">hawki_pfits_get_relhum</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00078"></a>00078 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaab1203aaa32935d1e81db6bb0aeec96b" title="find out the average coherence time">hawki_pfits_get_tau0</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00079"></a>00079 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gae4c54267b67c5efdcf93afb99ecaeb3b" title="find out the ambient temperatur">hawki_pfits_get_obs_temp</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00080"></a>00080 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga7bd674c51f4cd62ce34c208888cea125" title="find out the wind direction">hawki_pfits_get_wind_dir</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00081"></a>00081 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga45e0b30ba22df26f4d061dee26735708" title="find out the wind speed">hawki_pfits_get_wind_speed</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00082"></a>00082 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gac9b88815381f3f61c10dc88730d77121" title="find out the fwhm from the AO system">hawki_pfits_get_ao_fwhm</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00083"></a>00083 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaa91a5e47c4661209f97f4399cbceb9d2" title="find out the absolute rotator position at start">hawki_pfits_get_rotator_start</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00084"></a>00084 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gac8b9879cdc3c2e82f3b169eef3355ef2" title="find out the absolute rotator position at end">hawki_pfits_get_rotator_end</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00085"></a>00085 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gae005518fe79a76ee9b1cea2c3403a259" title="find out the observatory seeing at start">hawki_pfits_get_obs_seeing_start</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00086"></a>00086 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gaa400a879086340c841865fc6c2a1cc21" title="find out the observatory seeing at end">hawki_pfits_get_obs_seeing_end</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00087"></a>00087 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga87d6ba1cd310181f2eab02fc4688bad4" title="find out the observatory atmospheric pressure at start">hawki_pfits_get_pressure_start</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00088"></a>00088 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga11eecff7f4c8031ff6ea929e15c20813" title="find out the observatory atmospheric pressure at end">hawki_pfits_get_pressure_end</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00089"></a>00089 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga2dc1b31621ecbeec49d3e390ad601274" title="find out the paralactic angle at start">hawki_pfits_get_parangle_start</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00090"></a>00090 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga3465a5cbb9e21e8cbd7680affc75355b" title="find out the paralactic angle at start">hawki_pfits_get_parangle_end</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00091"></a>00091 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga24483514187ce9bcf0860cc654b8508c" title="find out the cumulative X offset of the combined image">hawki_pfits_get_comb_cumoffsetx</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00092"></a>00092 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#gadc1b3f141f5474486b5b32502634b29a" title="find out the cumulative Y offset of the combined image">hawki_pfits_get_comb_cumoffsety</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00093"></a>00093 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga88f1a9b44888686b6489fba06921f5a1" title="find out the relative X offset of the combined image wrt first image">hawki_pfits_get_comb_posx</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00094"></a>00094 <span class="keywordtype">double</span> <a class="code" href="group__hawki__pfits.html#ga5408b902329bdad15fd408d73fa6376e" title="find out the relative Y offset of the combined image wrt first image">hawki_pfits_get_comb_posy</a>(<span class="keyword">const</span> cpl_propertylist * plist);
+<a name="l00095"></a>00095 CPL_END_DECLS
+<a name="l00096"></a>00096
+<a name="l00097"></a>00097 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__properties__tel_8c_source.html b/html/hawki__properties__tel_8c_source.html
index ccd1bcc..bd627c2 100644
--- a/html/hawki__properties__tel_8c_source.html
+++ b/html/hawki__properties__tel_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2008/07/08 14:23:18 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.2 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -839,7 +839,7 @@
<a name="l00834"></a>00834
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__properties__tel_8h_source.html b/html/hawki__properties__tel_8h_source.html
index 272447b..3364556 100644
--- a/html/hawki__properties__tel_8h_source.html
+++ b/html/hawki__properties__tel_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2008/06/25 13:04:25 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.1 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_PROPERTIES_TEL_H</span>
@@ -95,7 +95,7 @@
<a name="l00048"></a>00048 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__saa_8c_source.html b/html/hawki__saa_8c_source.html
index 6cd6ab2..b169d6d 100644
--- a/html/hawki__saa_8c_source.html
+++ b/html/hawki__saa_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/03/08 16:20:54 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.10 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -166,7 +166,7 @@
<a name="l00127"></a>00127 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__saa_8h_source.html b/html/hawki__saa_8h_source.html
index ce1c73a..e85fd19 100644
--- a/html/hawki__saa_8h_source.html
+++ b/html/hawki__saa_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/02/05 12:51:14 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.5 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_SAA_H</span>
@@ -99,7 +99,7 @@
<a name="l00052"></a>00052 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__save_8c_source.html b/html/hawki__save_8c_source.html
index ccf4ec6..d578a82 100644
--- a/html/hawki__save_8c_source.html
+++ b/html/hawki__save_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2010/11/29 03:37:15 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.11 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -644,7 +644,7 @@
<a name="l00701"></a>00701
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__save_8h_source.html b/html/hawki__save_8h_source.html
index a6c06bc..df83172 100644
--- a/html/hawki__save_8h_source.html
+++ b/html/hawki__save_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_save.h</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_save.h,v 1.4 2009/11/25 16:25:08 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_save.h,v 1.5 2012/12/05 14:57:03 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/11/25 16:25:08 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.4 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/05 14:57:03 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.5 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_SAVE_H</span>
@@ -85,70 +85,72 @@
<a name="l00038"></a>00038 <span class="comment"> Functions prototypes</span>
<a name="l00039"></a>00039 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00040"></a>00040
-<a name="l00041"></a>00041 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#ga98c1ab4685617ddf7ea51d6e1337695d" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_imagelist_save</a>
-<a name="l00042"></a>00042 (cpl_frameset * allframes,
-<a name="l00043"></a>00043 <span class="keyword">const</span> cpl_parameterlist * parlist,
-<a name="l00044"></a>00044 <span class="keyword">const</span> cpl_frameset * usedframes,
-<a name="l00045"></a>00045 <span class="keyword">const</span> cpl_imagelist * images,
-<a name="l00046"></a>00046 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
-<a name="l00047"></a>00047 <span class="keyword">const</span> <span class="keywordtype">char</span> * procat,
-<a name="l00048"></a>00048 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype,
-<a name="l00049"></a>00049 <span class="keyword">const</span> cpl_propertylist * applist,
-<a name="l00050"></a>00050 <span class="keyword">const</span> cpl_propertylist ** applists,
-<a name="l00051"></a>00051 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
-<a name="l00052"></a>00052 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>
-<a name="l00053"></a>00053 (cpl_frameset * allframes,
-<a name="l00054"></a>00054 <span class="keyword">const</span> cpl_parameterlist * parlist,
-<a name="l00055"></a>00055 <span class="keyword">const</span> cpl_frameset * usedframes,
-<a name="l00056"></a>00056 <span class="keyword">const</span> cpl_image ** images,
-<a name="l00057"></a>00057 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
-<a name="l00058"></a>00058 <span class="keyword">const</span> <span class="keywordtype">char</span> * procat,
-<a name="l00059"></a>00059 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype,
-<a name="l00060"></a>00060 <span class="keyword">const</span> cpl_propertylist * applist,
-<a name="l00061"></a>00061 <span class="keyword">const</span> cpl_propertylist ** applists,
-<a name="l00062"></a>00062 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
-<a name="l00063"></a>00063 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>
-<a name="l00064"></a>00064 (cpl_frameset * allframes,
-<a name="l00065"></a>00065 <span class="keyword">const</span> cpl_parameterlist * parlist,
-<a name="l00066"></a>00066 <span class="keyword">const</span> cpl_frameset * usedframes,
-<a name="l00067"></a>00067 <span class="keyword">const</span> cpl_table ** tables,
-<a name="l00068"></a>00068 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
-<a name="l00069"></a>00069 <span class="keyword">const</span> <span class="keywordtype">char</span> * procat,
-<a name="l00070"></a>00070 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype,
-<a name="l00071"></a>00071 <span class="keyword">const</span> cpl_propertylist * applist,
-<a name="l00072"></a>00072 <span class="keyword">const</span> cpl_propertylist ** applists,
-<a name="l00073"></a>00073 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
-<a name="l00074"></a>00074 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#ga7dd654e4062ef0cf42274ebf274f0089" title="Save a HAWKI_NB_DETECTORS extensions HAWKI distortion images.">hawki_distortion_save</a>
-<a name="l00075"></a>00075 (cpl_frameset * allframes,
-<a name="l00076"></a>00076 <span class="keyword">const</span> cpl_parameterlist * parlist,
-<a name="l00077"></a>00077 <span class="keyword">const</span> cpl_frameset * usedframes,
-<a name="l00078"></a>00078 <span class="keyword">const</span> hawki_distortion ** distortion,
-<a name="l00079"></a>00079 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
-<a name="l00080"></a>00080 <span class="keyword">const</span> cpl_propertylist * applist,
-<a name="l00081"></a>00081 <span class="keyword">const</span> cpl_propertylist ** applists,
-<a name="l00082"></a>00082 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename_x,
-<a name="l00083"></a>00083 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename_y);
-<a name="l00084"></a>00084 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#gaebd68d7422dd13901e999db3c951bd54" title="Save a main header and prepare it to store additional data units later on.">hawki_main_header_save</a>
-<a name="l00085"></a>00085 (cpl_frameset * allframes,
-<a name="l00086"></a>00086 <span class="keyword">const</span> cpl_parameterlist * parlist,
-<a name="l00087"></a>00087 <span class="keyword">const</span> cpl_frameset * usedframes,
-<a name="l00088"></a>00088 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
-<a name="l00089"></a>00089 <span class="keyword">const</span> <span class="keywordtype">char</span> * procat,
-<a name="l00090"></a>00090 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype,
-<a name="l00091"></a>00091 <span class="keyword">const</span> cpl_propertylist * applist,
-<a name="l00092"></a>00092 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
-<a name="l00093"></a>00093 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#gab2873c1ec09ba834aaa284f003bc6acc" title="Save an image into a given extension.">hawki_image_ext_save</a>
-<a name="l00094"></a>00094 (<span class="keyword">const</span> cpl_frameset * allframes,
-<a name="l00095"></a>00095 <span class="keyword">const</span> cpl_image * image,
-<a name="l00096"></a>00096 <span class="keywordtype">int</span> iext,
-<a name="l00097"></a>00097 <span class="keyword">const</span> cpl_propertylist * ext_prop_list,
-<a name="l00098"></a>00098 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
-<a name="l00099"></a>00099 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__save.html#gab9a3907dcbad413de986ee2e286a6536" title="Locate a filename where the extension <--> chip id relation can be derived.">hawki_get_extref_file</a>(<span class="keyword">const</span> cpl_frameset *);
-<a name="l00100"></a>00100
-<a name="l00101"></a>00101 <span class="preprocessor">#endif</span>
+<a name="l00041"></a>00041 CPL_BEGIN_DECLS
+<a name="l00042"></a>00042 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#ga98c1ab4685617ddf7ea51d6e1337695d" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_imagelist_save</a>
+<a name="l00043"></a>00043 (cpl_frameset * allframes,
+<a name="l00044"></a>00044 <span class="keyword">const</span> cpl_parameterlist * parlist,
+<a name="l00045"></a>00045 <span class="keyword">const</span> cpl_frameset * usedframes,
+<a name="l00046"></a>00046 <span class="keyword">const</span> cpl_imagelist * images,
+<a name="l00047"></a>00047 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
+<a name="l00048"></a>00048 <span class="keyword">const</span> <span class="keywordtype">char</span> * procat,
+<a name="l00049"></a>00049 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype,
+<a name="l00050"></a>00050 <span class="keyword">const</span> cpl_propertylist * applist,
+<a name="l00051"></a>00051 <span class="keyword">const</span> cpl_propertylist ** applists,
+<a name="l00052"></a>00052 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
+<a name="l00053"></a>00053 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>
+<a name="l00054"></a>00054 (cpl_frameset * allframes,
+<a name="l00055"></a>00055 <span class="keyword">const</span> cpl_parameterlist * parlist,
+<a name="l00056"></a>00056 <span class="keyword">const</span> cpl_frameset * usedframes,
+<a name="l00057"></a>00057 <span class="keyword">const</span> cpl_image ** images,
+<a name="l00058"></a>00058 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
+<a name="l00059"></a>00059 <span class="keyword">const</span> <span class="keywordtype">char</span> * procat,
+<a name="l00060"></a>00060 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype,
+<a name="l00061"></a>00061 <span class="keyword">const</span> cpl_propertylist * applist,
+<a name="l00062"></a>00062 <span class="keyword">const</span> cpl_propertylist ** applists,
+<a name="l00063"></a>00063 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
+<a name="l00064"></a>00064 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>
+<a name="l00065"></a>00065 (cpl_frameset * allframes,
+<a name="l00066"></a>00066 <span class="keyword">const</span> cpl_parameterlist * parlist,
+<a name="l00067"></a>00067 <span class="keyword">const</span> cpl_frameset * usedframes,
+<a name="l00068"></a>00068 <span class="keyword">const</span> cpl_table ** tables,
+<a name="l00069"></a>00069 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
+<a name="l00070"></a>00070 <span class="keyword">const</span> <span class="keywordtype">char</span> * procat,
+<a name="l00071"></a>00071 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype,
+<a name="l00072"></a>00072 <span class="keyword">const</span> cpl_propertylist * applist,
+<a name="l00073"></a>00073 <span class="keyword">const</span> cpl_propertylist ** applists,
+<a name="l00074"></a>00074 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
+<a name="l00075"></a>00075 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#ga7dd654e4062ef0cf42274ebf274f0089" title="Save a HAWKI_NB_DETECTORS extensions HAWKI distortion images.">hawki_distortion_save</a>
+<a name="l00076"></a>00076 (cpl_frameset * allframes,
+<a name="l00077"></a>00077 <span class="keyword">const</span> cpl_parameterlist * parlist,
+<a name="l00078"></a>00078 <span class="keyword">const</span> cpl_frameset * usedframes,
+<a name="l00079"></a>00079 <span class="keyword">const</span> hawki_distortion ** distortion,
+<a name="l00080"></a>00080 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
+<a name="l00081"></a>00081 <span class="keyword">const</span> cpl_propertylist * applist,
+<a name="l00082"></a>00082 <span class="keyword">const</span> cpl_propertylist ** applists,
+<a name="l00083"></a>00083 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename_x,
+<a name="l00084"></a>00084 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename_y);
+<a name="l00085"></a>00085 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#gaebd68d7422dd13901e999db3c951bd54" title="Save a main header and prepare it to store additional data units later on.">hawki_main_header_save</a>
+<a name="l00086"></a>00086 (cpl_frameset * allframes,
+<a name="l00087"></a>00087 <span class="keyword">const</span> cpl_parameterlist * parlist,
+<a name="l00088"></a>00088 <span class="keyword">const</span> cpl_frameset * usedframes,
+<a name="l00089"></a>00089 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe,
+<a name="l00090"></a>00090 <span class="keyword">const</span> <span class="keywordtype">char</span> * procat,
+<a name="l00091"></a>00091 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype,
+<a name="l00092"></a>00092 <span class="keyword">const</span> cpl_propertylist * applist,
+<a name="l00093"></a>00093 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
+<a name="l00094"></a>00094 <span class="keywordtype">int</span> <a class="code" href="group__hawki__save.html#gab2873c1ec09ba834aaa284f003bc6acc" title="Save an image into a given extension.">hawki_image_ext_save</a>
+<a name="l00095"></a>00095 (<span class="keyword">const</span> cpl_frameset * allframes,
+<a name="l00096"></a>00096 <span class="keyword">const</span> cpl_image * image,
+<a name="l00097"></a>00097 <span class="keywordtype">int</span> iext,
+<a name="l00098"></a>00098 <span class="keyword">const</span> cpl_propertylist * ext_prop_list,
+<a name="l00099"></a>00099 <span class="keyword">const</span> <span class="keywordtype">char</span> * filename);
+<a name="l00100"></a>00100 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__save.html#gab9a3907dcbad413de986ee2e286a6536" title="Locate a filename where the extension <--> chip id relation can be derived.">hawki_get_extref_file</a>(<span class="keyword">const</span> cpl_frameset *);
+<a name="l00101"></a>00101 CPL_END_DECLS
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__sci__jitter_8c_source.html b/html/hawki__sci__jitter_8c_source.html
index 0f762ff..78c2d57 100644
--- a/html/hawki__sci__jitter_8c_source.html
+++ b/html/hawki__sci__jitter_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_sci_jitter.c</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_sci_jitter.c,v 1.30 2011/12/22 15:27:06 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_sci_jitter.c,v 1.31 2012/12/04 09:41:34 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/12/22 15:27:06 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.30 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/04 09:41:34 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.31 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -111,2052 +111,2082 @@
<a name="l00064"></a>00064 <span class="comment"> Functions prototypes</span>
<a name="l00065"></a>00065 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00066"></a>00066
-<a name="l00067"></a>00067 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_create(cpl_plugin *) ;
-<a name="l00068"></a>00068 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_exec(cpl_plugin *) ;
-<a name="l00069"></a>00069 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_destroy(cpl_plugin *) ;
-<a name="l00070"></a>00070 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter(cpl_parameterlist *, cpl_frameset *) ;
+<a name="l00067"></a>00067 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00068"></a>00068 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
+<a name="l00069"></a>00069 <span class="preprocessor">#endif</span>
+<a name="l00070"></a>00070 <span class="preprocessor"></span><span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list);
<a name="l00071"></a>00071
-<a name="l00072"></a>00072 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_retrieve_input_param
-<a name="l00073"></a>00073 (cpl_parameterlist * parlist);
-<a name="l00074"></a>00074 <span class="keyword">static</span> cpl_image ** hawki_sci_jitter_reduce
-<a name="l00075"></a>00075 (cpl_frameset * jitters,
-<a name="l00076"></a>00076 cpl_frameset * sky,
-<a name="l00077"></a>00077 <span class="keyword">const</span> <span class="keywordtype">char</span> * flat,
-<a name="l00078"></a>00078 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark,
-<a name="l00079"></a>00079 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm,
-<a name="l00080"></a>00080 cpl_table ** bkg_stats);
-<a name="l00081"></a>00081 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_sky
-<a name="l00082"></a>00082 (cpl_imagelist * jitters,
-<a name="l00083"></a>00083 cpl_imagelist * skys,
-<a name="l00084"></a>00084 cpl_table ** bkg_stats,
-<a name="l00085"></a>00085 <span class="keywordtype">int</span> idet);
-<a name="l00086"></a>00086 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_sky_running
-<a name="l00087"></a>00087 (cpl_imagelist * in,
-<a name="l00088"></a>00088 cpl_table ** bkg_stats,
-<a name="l00089"></a>00089 <span class="keywordtype">int</span> idet);
-<a name="l00090"></a>00090 <span class="keyword">static</span> cpl_image ** hawki_sci_jitter_saa(cpl_imagelist **, cpl_bivector *,
-<a name="l00091"></a>00091 <span class="keywordtype">double</span> *, <span class="keywordtype">double</span> *);
-<a name="l00092"></a>00092 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_qc
-<a name="l00093"></a>00093 (cpl_frameset * science_frames,
-<a name="l00094"></a>00094 cpl_image ** combined,
-<a name="l00095"></a>00095 cpl_table ** obj_charac);
-<a name="l00096"></a>00096 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_read_calib
-<a name="l00097"></a>00097 (<span class="keyword">const</span> <span class="keywordtype">char</span> * flat,
-<a name="l00098"></a>00098 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark,
-<a name="l00099"></a>00099 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm,
-<a name="l00100"></a>00100 cpl_image ** flat_image,
-<a name="l00101"></a>00101 cpl_image ** dark_image,
-<a name="l00102"></a>00102 cpl_image ** bpm_image,
-<a name="l00103"></a>00103 <span class="keywordtype">int</span> idet);
-<a name="l00104"></a>00104 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_save
-<a name="l00105"></a>00105 (cpl_image ** combined,
-<a name="l00106"></a>00106 cpl_image * stitched,
-<a name="l00107"></a>00107 cpl_table ** objs_charac,
-<a name="l00108"></a>00108 cpl_table ** raw_jitter_stats,
-<a name="l00109"></a>00109 cpl_table ** bkg_stats,
-<a name="l00110"></a>00110 <span class="keyword">const</span> cpl_table * raw_obj_tel_info,
-<a name="l00111"></a>00111 cpl_frameset * science_frames,
-<a name="l00112"></a>00112 cpl_frameset * calib_frames,
-<a name="l00113"></a>00113 cpl_parameterlist * parlist,
-<a name="l00114"></a>00114 cpl_frameset * <span class="keyword">set</span>);
-<a name="l00115"></a>00115 <span class="keywordtype">int</span> hawki_sci_jitter_whole_image_algo
-<a name="l00116"></a>00116 (cpl_frameset * obj,
-<a name="l00117"></a>00117 cpl_table ** raw_jitter_stats,
-<a name="l00118"></a>00118 cpl_table * raw_obj_tel_info,
-<a name="l00119"></a>00119 cpl_parameterlist * parlist,
-<a name="l00120"></a>00120 cpl_frameset * recipe_set);
-<a name="l00121"></a>00121 <span class="keywordtype">int</span> hawki_sci_jitter_save_stats
-<a name="l00122"></a>00122 (cpl_table ** raw_jitter_stats,
+<a name="l00072"></a>00072 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_create(cpl_plugin *) ;
+<a name="l00073"></a>00073 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_exec(cpl_plugin *) ;
+<a name="l00074"></a>00074 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_destroy(cpl_plugin *) ;
+<a name="l00075"></a>00075 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter(cpl_parameterlist *, cpl_frameset *) ;
+<a name="l00076"></a>00076
+<a name="l00077"></a>00077 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_retrieve_input_param
+<a name="l00078"></a>00078 (cpl_parameterlist * parlist);
+<a name="l00079"></a>00079 <span class="keyword">static</span> cpl_image ** hawki_sci_jitter_reduce
+<a name="l00080"></a>00080 (cpl_frameset * jitters,
+<a name="l00081"></a>00081 cpl_frameset * sky,
+<a name="l00082"></a>00082 <span class="keyword">const</span> <span class="keywordtype">char</span> * flat,
+<a name="l00083"></a>00083 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark,
+<a name="l00084"></a>00084 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm,
+<a name="l00085"></a>00085 cpl_table ** bkg_stats);
+<a name="l00086"></a>00086 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_sky
+<a name="l00087"></a>00087 (cpl_imagelist * jitters,
+<a name="l00088"></a>00088 cpl_imagelist * skys,
+<a name="l00089"></a>00089 cpl_table ** bkg_stats,
+<a name="l00090"></a>00090 <span class="keywordtype">int</span> idet);
+<a name="l00091"></a>00091 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_sky_running
+<a name="l00092"></a>00092 (cpl_imagelist * in,
+<a name="l00093"></a>00093 cpl_table ** bkg_stats,
+<a name="l00094"></a>00094 <span class="keywordtype">int</span> idet);
+<a name="l00095"></a>00095 <span class="keyword">static</span> cpl_image ** hawki_sci_jitter_saa(cpl_imagelist **, cpl_bivector *,
+<a name="l00096"></a>00096 <span class="keywordtype">double</span> *, <span class="keywordtype">double</span> *);
+<a name="l00097"></a>00097 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_qc
+<a name="l00098"></a>00098 (cpl_frameset * science_frames,
+<a name="l00099"></a>00099 cpl_image ** combined,
+<a name="l00100"></a>00100 cpl_table ** obj_charac);
+<a name="l00101"></a>00101 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_read_calib
+<a name="l00102"></a>00102 (<span class="keyword">const</span> <span class="keywordtype">char</span> * flat,
+<a name="l00103"></a>00103 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark,
+<a name="l00104"></a>00104 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm,
+<a name="l00105"></a>00105 cpl_image ** flat_image,
+<a name="l00106"></a>00106 cpl_image ** dark_image,
+<a name="l00107"></a>00107 cpl_image ** bpm_image,
+<a name="l00108"></a>00108 <span class="keywordtype">int</span> idet);
+<a name="l00109"></a>00109 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_save
+<a name="l00110"></a>00110 (cpl_image ** combined,
+<a name="l00111"></a>00111 cpl_image * stitched,
+<a name="l00112"></a>00112 cpl_table ** objs_charac,
+<a name="l00113"></a>00113 cpl_table ** raw_jitter_stats,
+<a name="l00114"></a>00114 cpl_table ** bkg_stats,
+<a name="l00115"></a>00115 <span class="keyword">const</span> cpl_table * raw_obj_tel_info,
+<a name="l00116"></a>00116 cpl_frameset * science_frames,
+<a name="l00117"></a>00117 cpl_frameset * calib_frames,
+<a name="l00118"></a>00118 cpl_parameterlist * parlist,
+<a name="l00119"></a>00119 cpl_frameset * <span class="keyword">set</span>);
+<a name="l00120"></a>00120 <span class="keywordtype">int</span> hawki_sci_jitter_whole_image_algo
+<a name="l00121"></a>00121 (cpl_frameset * obj,
+<a name="l00122"></a>00122 cpl_table ** raw_jitter_stats,
<a name="l00123"></a>00123 cpl_table * raw_obj_tel_info,
-<a name="l00124"></a>00124 cpl_frameset * jitter_frames,
-<a name="l00125"></a>00125 cpl_parameterlist * parlist,
-<a name="l00126"></a>00126 cpl_frameset * recipe_set);
-<a name="l00127"></a>00127
-<a name="l00128"></a>00128 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00129"></a>00129 <span class="comment"> Static variables</span>
-<a name="l00130"></a>00130 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00131"></a>00131
-<a name="l00132"></a>00132 <span class="keyword">static</span> <span class="keyword">struct </span>
-<a name="l00133"></a>00133 {
-<a name="l00134"></a>00134 <span class="comment">/* Inputs */</span>
-<a name="l00135"></a>00135 <span class="keyword">const</span> <span class="keywordtype">char</span> * offsets ;
-<a name="l00136"></a>00136 <span class="keyword">const</span> <span class="keywordtype">char</span> * objects ;
-<a name="l00137"></a>00137 <span class="keywordtype">int</span> offset_max ;
-<a name="l00138"></a>00138 <span class="keywordtype">int</span> sky_minnb ;
-<a name="l00139"></a>00139 <span class="keywordtype">int</span> sky_halfw ;
-<a name="l00140"></a>00140 <span class="keywordtype">int</span> sky_rejmin ;
-<a name="l00141"></a>00141 <span class="keywordtype">int</span> sky_rejmax ;
-<a name="l00142"></a>00142 <span class="keywordtype">int</span> refine ;
-<a name="l00143"></a>00143 <span class="keywordtype">int</span> sx ;
-<a name="l00144"></a>00144 <span class="keywordtype">int</span> sy ;
-<a name="l00145"></a>00145 <span class="keywordtype">int</span> mx ;
-<a name="l00146"></a>00146 <span class="keywordtype">int</span> my ;
-<a name="l00147"></a>00147 <span class="keywordtype">int</span> borders ;
-<a name="l00148"></a>00148 cpl_geom_combine comb_meth ;
-<a name="l00149"></a>00149 <span class="keywordtype">int</span> rej_low ;
-<a name="l00150"></a>00150 <span class="keywordtype">int</span> rej_high ;
-<a name="l00151"></a>00151 <span class="keywordtype">int</span> max_njitter;
-<a name="l00152"></a>00152 } hawki_sci_jitter_config;
-<a name="l00153"></a>00153
-<a name="l00154"></a>00154 <span class="keyword">static</span> <span class="keyword">struct </span>
-<a name="l00155"></a>00155 {
-<a name="l00156"></a>00156 <span class="comment">/* Outputs */</span>
-<a name="l00157"></a>00157 <span class="keywordtype">double</span> pixscale;
-<a name="l00158"></a>00158 <span class="keywordtype">double</span> dit;
-<a name="l00159"></a>00159 <span class="keywordtype">double</span> mean_airmass;
-<a name="l00160"></a>00160 <span class="keywordtype">double</span> iq[HAWKI_NB_DETECTORS];
-<a name="l00161"></a>00161 <span class="keywordtype">int</span> nbobjs[HAWKI_NB_DETECTORS];
-<a name="l00162"></a>00162 <span class="keywordtype">double</span> fwhm_pix[HAWKI_NB_DETECTORS];
-<a name="l00163"></a>00163 <span class="keywordtype">double</span> fwhm_arcsec[HAWKI_NB_DETECTORS];
-<a name="l00164"></a>00164 <span class="keywordtype">double</span> fwhm_mode[HAWKI_NB_DETECTORS];
-<a name="l00165"></a>00165 <span class="keywordtype">double</span> combined_pos_x[HAWKI_NB_DETECTORS];
-<a name="l00166"></a>00166 <span class="keywordtype">double</span> combined_pos_y[HAWKI_NB_DETECTORS];
-<a name="l00167"></a>00167 <span class="keywordtype">double</span> combined_cumoffset_x[HAWKI_NB_DETECTORS];
-<a name="l00168"></a>00168 <span class="keywordtype">double</span> combined_cumoffset_y[HAWKI_NB_DETECTORS];
-<a name="l00169"></a>00169 <span class="keywordtype">int</span> ncomb[HAWKI_NB_DETECTORS];
-<a name="l00170"></a>00170 } hawki_sci_jitter_output;
-<a name="l00171"></a>00171
-<a name="l00172"></a>00172 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_sci_jitter_description[] =
-<a name="l00173"></a>00173 <span class="stringliteral">"hawki_sci_jitter -- hawki imaging jitter recipe.\n\n"</span>
-<a name="l00174"></a>00174 <span class="stringliteral">"The input of the recipe files listed in the Set Of Frames (sof-file)\n"</span>
-<a name="l00175"></a>00175 <span class="stringliteral">"must be tagged as:\n"</span>
-<a name="l00176"></a>00176 <span class="stringliteral">"raw-file.fits "</span>HAWKI_IMG_JITTER_RAW<span class="stringliteral">" or\n"</span>
-<a name="l00177"></a>00177 <span class="stringliteral">"raw-file.fits "</span>HAWKI_IMG_JITTER_SKY_RAW<span class="stringliteral">" or\n"</span>
-<a name="l00178"></a>00178 <span class="stringliteral">"flat-file.fits "</span>HAWKI_CALPRO_FLAT<span class="stringliteral">" or\n"</span>
-<a name="l00179"></a>00179 <span class="stringliteral">"dark-file.fits "</span>HAWKI_CALPRO_DARK<span class="stringliteral">" \n"</span>
-<a name="l00180"></a>00180 <span class="stringliteral">"bpm-file.fits "</span>HAWKI_CALPRO_BPM<span class="stringliteral">"\n"</span>
-<a name="l00181"></a>00181 <span class="stringliteral">"distortion_x-file.fits "</span>HAWKI_CALPRO_DISTORTION_X<span class="stringliteral">"\n"</span>
-<a name="l00182"></a>00182 <span class="stringliteral">"distortion_y-file.fits "</span>HAWKI_CALPRO_DISTORTION_Y<span class="stringliteral">"\n\n"</span>
-<a name="l00183"></a>00183 <span class="stringliteral">"The recipe creates as an output:\n"</span>
-<a name="l00184"></a>00184 <span class="stringliteral">"hawki_sci_jitter.fits ("</span>HAWKI_CALPRO_COMBINED<span class="stringliteral">")\n"</span>
-<a name="l00185"></a>00185 <span class="stringliteral">"hawki_sci_jitter_stitched.fits ("</span>HAWKI_CALPRO_STITCHED<span class="stringliteral">")\n"</span>
-<a name="l00186"></a>00186 <span class="stringliteral">"hawki_sci_jitter_stars.fits ("</span>HAWKI_CALPRO_OBJ_PARAM<span class="stringliteral">"): Detected objects properties\n"</span>
-<a name="l00187"></a>00187 <span class="stringliteral">"hawki_sci_jitter_stats.fits ("</span>HAWKI_CALPRO_JITTER_STATS<span class="stringliteral">"): Stats of the individual images\n"</span>
-<a name="l00188"></a>00188 <span class="stringliteral">"hawki_sci_jitter_bkg_stats.fits ("</span>HAWKI_CALPRO_JITTER_BKG_STATS<span class="stringliteral">"): Statistics on the bkg\n\n"</span>
-<a name="l00189"></a>00189 <span class="stringliteral">"The recipe performs the following steps:\n"</span>
-<a name="l00190"></a>00190 <span class="stringliteral">"1) Frame statistics\n"</span>
-<a name="l00191"></a>00191 <span class="stringliteral">"2) Basic reduction (using "</span>HAWKI_CALPRO_FLAT<span class="stringliteral">" and "</span>HAWKI_CALPRO_BPM<span class="stringliteral">")\n"</span>
-<a name="l00192"></a>00192 <span class="stringliteral">"3) Background computation (the algorithm depends on parameter --sky_par) \n"</span>
-<a name="l00193"></a>00193 <span class="stringliteral">"4) Offset refinement (uses parameters --off, --refine and --xcorr)\n"</span>
-<a name="l00194"></a>00194 <span class="stringliteral">"5) Stacking of jitter frames (uses --comb_meth, --rej,\n"</span>
-<a name="l00195"></a>00195 <span class="stringliteral">" --offset_max, --borders, --max_njitter)\n"</span>
-<a name="l00196"></a>00196 <span class="stringliteral">"6) Stitching of the four detectors into one image\n"</span>
-<a name="l00197"></a>00197 <span class="stringliteral">"7) Object detection in the stacked image\n\n"</span>
-<a name="l00198"></a>00198 <span class="stringliteral">"Return code:\n"</span>
-<a name="l00199"></a>00199 <span class="stringliteral">"esorex exits with an error code of 0 if the recipe completes successfully\n"</span>
-<a name="l00200"></a>00200 <span class="stringliteral">"or 1 otherwise"</span>;
-<a name="l00201"></a>00201
-<a name="l00202"></a>00202 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00203"></a>00203 <span class="comment"> Functions code</span>
-<a name="l00204"></a>00204 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00205"></a>00205
-<a name="l00206"></a>00206 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00214"></a>00214 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00215"></a>00215 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
-<a name="l00216"></a>00216 {
-<a name="l00217"></a>00217 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
-<a name="l00218"></a>00218 cpl_plugin * plugin = &recipe->interface ;
-<a name="l00219"></a>00219
-<a name="l00220"></a>00220 cpl_plugin_init(plugin,
-<a name="l00221"></a>00221 CPL_PLUGIN_API,
-<a name="l00222"></a>00222 HAWKI_BINARY_VERSION,
-<a name="l00223"></a>00223 CPL_PLUGIN_TYPE_RECIPE,
-<a name="l00224"></a>00224 <span class="stringliteral">"hawki_sci_jitter"</span>,
-<a name="l00225"></a>00225 <span class="stringliteral">"Jitter recipe"</span>,
-<a name="l00226"></a>00226 hawki_sci_jitter_description,
-<a name="l00227"></a>00227 <span class="stringliteral">"Cesar Enrique Garcia"</span>,
-<a name="l00228"></a>00228 PACKAGE_BUGREPORT,
-<a name="l00229"></a>00229 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
-<a name="l00230"></a>00230 hawki_sci_jitter_create,
-<a name="l00231"></a>00231 hawki_sci_jitter_exec,
-<a name="l00232"></a>00232 hawki_sci_jitter_destroy) ;
-<a name="l00233"></a>00233
-<a name="l00234"></a>00234 cpl_pluginlist_append(list, plugin) ;
-<a name="l00235"></a>00235
-<a name="l00236"></a>00236 <span class="keywordflow">return</span> 0;
-<a name="l00237"></a>00237 }
+<a name="l00124"></a>00124 cpl_parameterlist * parlist,
+<a name="l00125"></a>00125 cpl_frameset * recipe_set);
+<a name="l00126"></a>00126 <span class="keywordtype">int</span> hawki_sci_jitter_save_stats
+<a name="l00127"></a>00127 (cpl_table ** raw_jitter_stats,
+<a name="l00128"></a>00128 cpl_table * raw_obj_tel_info,
+<a name="l00129"></a>00129 cpl_frameset * jitter_frames,
+<a name="l00130"></a>00130 cpl_parameterlist * parlist,
+<a name="l00131"></a>00131 cpl_frameset * recipe_set);
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00134"></a>00134 <span class="comment"> Static variables</span>
+<a name="l00135"></a>00135 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00136"></a>00136
+<a name="l00137"></a>00137 <span class="keyword">static</span> <span class="keyword">struct </span>
+<a name="l00138"></a>00138 {
+<a name="l00139"></a>00139 <span class="comment">/* Inputs */</span>
+<a name="l00140"></a>00140 <span class="keyword">const</span> <span class="keywordtype">char</span> * offsets ;
+<a name="l00141"></a>00141 <span class="keyword">const</span> <span class="keywordtype">char</span> * objects ;
+<a name="l00142"></a>00142 <span class="keywordtype">int</span> offset_max ;
+<a name="l00143"></a>00143 <span class="keywordtype">int</span> sky_minnb ;
+<a name="l00144"></a>00144 <span class="keywordtype">int</span> sky_halfw ;
+<a name="l00145"></a>00145 <span class="keywordtype">int</span> sky_rejmin ;
+<a name="l00146"></a>00146 <span class="keywordtype">int</span> sky_rejmax ;
+<a name="l00147"></a>00147 <span class="keywordtype">int</span> refine ;
+<a name="l00148"></a>00148 <span class="keywordtype">int</span> sx ;
+<a name="l00149"></a>00149 <span class="keywordtype">int</span> sy ;
+<a name="l00150"></a>00150 <span class="keywordtype">int</span> mx ;
+<a name="l00151"></a>00151 <span class="keywordtype">int</span> my ;
+<a name="l00152"></a>00152 <span class="keywordtype">int</span> borders ;
+<a name="l00153"></a>00153 cpl_geom_combine comb_meth ;
+<a name="l00154"></a>00154 <span class="keywordtype">int</span> rej_low ;
+<a name="l00155"></a>00155 <span class="keywordtype">int</span> rej_high ;
+<a name="l00156"></a>00156 <span class="keywordtype">int</span> max_njitter;
+<a name="l00157"></a>00157 } hawki_sci_jitter_config;
+<a name="l00158"></a>00158
+<a name="l00159"></a>00159 <span class="keyword">static</span> <span class="keyword">struct </span>
+<a name="l00160"></a>00160 {
+<a name="l00161"></a>00161 <span class="comment">/* Outputs */</span>
+<a name="l00162"></a>00162 <span class="keywordtype">double</span> pixscale;
+<a name="l00163"></a>00163 <span class="keywordtype">double</span> dit;
+<a name="l00164"></a>00164 <span class="keywordtype">double</span> mean_airmass;
+<a name="l00165"></a>00165 <span class="keywordtype">double</span> iq[HAWKI_NB_DETECTORS];
+<a name="l00166"></a>00166 <span class="keywordtype">int</span> nbobjs[HAWKI_NB_DETECTORS];
+<a name="l00167"></a>00167 <span class="keywordtype">double</span> fwhm_pix[HAWKI_NB_DETECTORS];
+<a name="l00168"></a>00168 <span class="keywordtype">double</span> fwhm_arcsec[HAWKI_NB_DETECTORS];
+<a name="l00169"></a>00169 <span class="keywordtype">double</span> fwhm_mode[HAWKI_NB_DETECTORS];
+<a name="l00170"></a>00170 <span class="keywordtype">double</span> combined_pos_x[HAWKI_NB_DETECTORS];
+<a name="l00171"></a>00171 <span class="keywordtype">double</span> combined_pos_y[HAWKI_NB_DETECTORS];
+<a name="l00172"></a>00172 <span class="keywordtype">double</span> combined_cumoffset_x[HAWKI_NB_DETECTORS];
+<a name="l00173"></a>00173 <span class="keywordtype">double</span> combined_cumoffset_y[HAWKI_NB_DETECTORS];
+<a name="l00174"></a>00174 <span class="keywordtype">int</span> ncomb[HAWKI_NB_DETECTORS];
+<a name="l00175"></a>00175 } hawki_sci_jitter_output;
+<a name="l00176"></a>00176
+<a name="l00177"></a>00177 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_sci_jitter_description[] =
+<a name="l00178"></a>00178 <span class="stringliteral">"hawki_sci_jitter -- hawki imaging jitter recipe.\n\n"</span>
+<a name="l00179"></a>00179 <span class="stringliteral">"The input of the recipe files listed in the Set Of Frames (sof-file)\n"</span>
+<a name="l00180"></a>00180 <span class="stringliteral">"must be tagged as:\n"</span>
+<a name="l00181"></a>00181 <span class="stringliteral">"raw-file.fits "</span>HAWKI_IMG_JITTER_RAW<span class="stringliteral">" or\n"</span>
+<a name="l00182"></a>00182 <span class="stringliteral">"raw-file.fits "</span>HAWKI_IMG_JITTER_SKY_RAW<span class="stringliteral">" or\n"</span>
+<a name="l00183"></a>00183 <span class="stringliteral">"flat-file.fits "</span>HAWKI_CALPRO_FLAT<span class="stringliteral">" or\n"</span>
+<a name="l00184"></a>00184 <span class="stringliteral">"dark-file.fits "</span>HAWKI_CALPRO_DARK<span class="stringliteral">" \n"</span>
+<a name="l00185"></a>00185 <span class="stringliteral">"bpm-file.fits "</span>HAWKI_CALPRO_BPM<span class="stringliteral">"\n"</span>
+<a name="l00186"></a>00186 <span class="stringliteral">"distortion_x-file.fits "</span>HAWKI_CALPRO_DISTORTION_X<span class="stringliteral">"\n"</span>
+<a name="l00187"></a>00187 <span class="stringliteral">"distortion_y-file.fits "</span>HAWKI_CALPRO_DISTORTION_Y<span class="stringliteral">"\n\n"</span>
+<a name="l00188"></a>00188 <span class="stringliteral">"The recipe creates as an output:\n"</span>
+<a name="l00189"></a>00189 <span class="stringliteral">"hawki_sci_jitter.fits ("</span>HAWKI_CALPRO_COMBINED<span class="stringliteral">")\n"</span>
+<a name="l00190"></a>00190 <span class="stringliteral">"hawki_sci_jitter_stitched.fits ("</span>HAWKI_CALPRO_STITCHED<span class="stringliteral">")\n"</span>
+<a name="l00191"></a>00191 <span class="stringliteral">"hawki_sci_jitter_stars.fits ("</span>HAWKI_CALPRO_OBJ_PARAM<span class="stringliteral">"): Detected objects properties\n"</span>
+<a name="l00192"></a>00192 <span class="stringliteral">"hawki_sci_jitter_stats.fits ("</span>HAWKI_CALPRO_JITTER_STATS<span class="stringliteral">"): Stats of the individual images\n"</span>
+<a name="l00193"></a>00193 <span class="stringliteral">"hawki_sci_jitter_bkg_stats.fits ("</span>HAWKI_CALPRO_JITTER_BKG_STATS<span class="stringliteral">"): Statistics on the bkg\n\n"</span>
+<a name="l00194"></a>00194 <span class="stringliteral">"The recipe performs the following steps:\n"</span>
+<a name="l00195"></a>00195 <span class="stringliteral">"1) Frame statistics\n"</span>
+<a name="l00196"></a>00196 <span class="stringliteral">"2) Basic reduction (using "</span>HAWKI_CALPRO_FLAT<span class="stringliteral">" and "</span>HAWKI_CALPRO_BPM<span class="stringliteral">")\n"</span>
+<a name="l00197"></a>00197 <span class="stringliteral">"3) Background computation (the algorithm depends on parameter --sky_par) \n"</span>
+<a name="l00198"></a>00198 <span class="stringliteral">"4) Offset refinement (uses parameters --off, --refine and --xcorr)\n"</span>
+<a name="l00199"></a>00199 <span class="stringliteral">"5) Stacking of jitter frames (uses --comb_meth, --rej,\n"</span>
+<a name="l00200"></a>00200 <span class="stringliteral">" --offset_max, --borders, --max_njitter)\n"</span>
+<a name="l00201"></a>00201 <span class="stringliteral">"6) Stitching of the four detectors into one image\n"</span>
+<a name="l00202"></a>00202 <span class="stringliteral">"7) Object detection in the stacked image\n\n"</span>
+<a name="l00203"></a>00203 <span class="stringliteral">"Return code:\n"</span>
+<a name="l00204"></a>00204 <span class="stringliteral">"esorex exits with an error code of 0 if the recipe completes successfully\n"</span>
+<a name="l00205"></a>00205 <span class="stringliteral">"or 1 otherwise"</span>;
+<a name="l00206"></a>00206
+<a name="l00207"></a>00207 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00208"></a>00208 <span class="comment"> Functions code</span>
+<a name="l00209"></a>00209 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00210"></a>00210
+<a name="l00211"></a>00211 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00219"></a>00219 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00220"></a>00220 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
+<a name="l00221"></a>00221 {
+<a name="l00222"></a>00222 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
+<a name="l00223"></a>00223 cpl_plugin * plugin = &recipe->interface ;
+<a name="l00224"></a>00224
+<a name="l00225"></a>00225 cpl_plugin_init(plugin,
+<a name="l00226"></a>00226 CPL_PLUGIN_API,
+<a name="l00227"></a>00227 HAWKI_BINARY_VERSION,
+<a name="l00228"></a>00228 CPL_PLUGIN_TYPE_RECIPE,
+<a name="l00229"></a>00229 <span class="stringliteral">"hawki_sci_jitter"</span>,
+<a name="l00230"></a>00230 <span class="stringliteral">"Jitter recipe"</span>,
+<a name="l00231"></a>00231 hawki_sci_jitter_description,
+<a name="l00232"></a>00232 <span class="stringliteral">"Cesar Enrique Garcia"</span>,
+<a name="l00233"></a>00233 PACKAGE_BUGREPORT,
+<a name="l00234"></a>00234 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
+<a name="l00235"></a>00235 hawki_sci_jitter_create,
+<a name="l00236"></a>00236 hawki_sci_jitter_exec,
+<a name="l00237"></a>00237 hawki_sci_jitter_destroy) ;
<a name="l00238"></a>00238
-<a name="l00239"></a>00239 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00248"></a>00248 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00249"></a>00249 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_create(cpl_plugin * plugin)
-<a name="l00250"></a>00250 {
-<a name="l00251"></a>00251 cpl_recipe * recipe ;
-<a name="l00252"></a>00252 cpl_parameter * p ;
-<a name="l00253"></a>00253
-<a name="l00254"></a>00254 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00255"></a>00255 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00256"></a>00256 recipe = (cpl_recipe *)plugin ;
-<a name="l00257"></a>00257 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00239"></a>00239 cpl_pluginlist_append(list, plugin) ;
+<a name="l00240"></a>00240
+<a name="l00241"></a>00241 <span class="keywordflow">return</span> 0;
+<a name="l00242"></a>00242 }
+<a name="l00243"></a>00243
+<a name="l00244"></a>00244 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00253"></a>00253 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00254"></a>00254 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_create(cpl_plugin * plugin)
+<a name="l00255"></a>00255 {
+<a name="l00256"></a>00256 cpl_recipe * recipe ;
+<a name="l00257"></a>00257 cpl_parameter * p ;
<a name="l00258"></a>00258
-<a name="l00259"></a>00259 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
-<a name="l00260"></a>00260 recipe->parameters = cpl_parameterlist_new() ;
-<a name="l00261"></a>00261 <span class="keywordflow">if</span> (recipe->parameters == NULL)
-<a name="l00262"></a>00262 <span class="keywordflow">return</span> 1;
+<a name="l00259"></a>00259 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00260"></a>00260 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00261"></a>00261 recipe = (cpl_recipe *)plugin ;
+<a name="l00262"></a>00262 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
<a name="l00263"></a>00263
-<a name="l00264"></a>00264 <span class="comment">/* Fill the parameters list */</span>
-<a name="l00265"></a>00265 <span class="comment">/* --offsets */</span>
-<a name="l00266"></a>00266 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.offsets"</span>,
-<a name="l00267"></a>00267 CPL_TYPE_STRING, <span class="stringliteral">"offsets file"</span>, <span class="stringliteral">"hawki.hawki_sci_jitter"</span>, NULL) ;
-<a name="l00268"></a>00268 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"offsets"</span>) ;
-<a name="l00269"></a>00269 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00270"></a>00270 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00271"></a>00271
-<a name="l00272"></a>00272 <span class="comment">/* --objects */</span>
-<a name="l00273"></a>00273 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.objects"</span>,
-<a name="l00274"></a>00274 CPL_TYPE_STRING, <span class="stringliteral">"objects file"</span>, <span class="stringliteral">"hawki.hawki_sci_jitter"</span>, NULL) ;
-<a name="l00275"></a>00275 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"objects"</span>) ;
-<a name="l00276"></a>00276 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00277"></a>00277 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00278"></a>00278
-<a name="l00279"></a>00279 <span class="comment">/* --offset_max */</span>
-<a name="l00280"></a>00280 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.offset_max"</span>,
-<a name="l00281"></a>00281 CPL_TYPE_INT,
-<a name="l00282"></a>00282 <span class="stringliteral">"Maximum offset allowed"</span>,
-<a name="l00283"></a>00283 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
-<a name="l00284"></a>00284 1500) ;
-<a name="l00285"></a>00285 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"offset_max"</span>) ;
-<a name="l00286"></a>00286 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00287"></a>00287 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00288"></a>00288
-<a name="l00289"></a>00289 <span class="comment">/* --sky_par */</span>
-<a name="l00290"></a>00290 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.sky_par"</span>,
-<a name="l00291"></a>00291 CPL_TYPE_STRING,
-<a name="l00292"></a>00292 <span class="stringliteral">"Rejection parameters for sky filtering"</span>,
-<a name="l00293"></a>00293 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
-<a name="l00294"></a>00294 <span class="stringliteral">"10,7,3,3"</span>) ;
-<a name="l00295"></a>00295 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"sky_par"</span>) ;
-<a name="l00296"></a>00296 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00297"></a>00297 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00298"></a>00298
-<a name="l00299"></a>00299 <span class="comment">/* --refine */</span>
-<a name="l00300"></a>00300 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.refine"</span>,
-<a name="l00301"></a>00301 CPL_TYPE_BOOL, <span class="stringliteral">"refine offsets"</span>, <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
-<a name="l00302"></a>00302 FALSE);
-<a name="l00303"></a>00303 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"refine"</span>) ;
-<a name="l00304"></a>00304 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00305"></a>00305 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00306"></a>00306
-<a name="l00307"></a>00307 <span class="comment">/* --xcorr */</span>
-<a name="l00308"></a>00308 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.xcorr"</span>,
-<a name="l00309"></a>00309 CPL_TYPE_STRING,
-<a name="l00310"></a>00310 <span class="stringliteral">"Cross correlation search and measure sizes"</span>,
-<a name="l00311"></a>00311 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
-<a name="l00312"></a>00312 <span class="stringliteral">"20,20,25,25"</span>) ;
-<a name="l00313"></a>00313 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"xcorr"</span>) ;
-<a name="l00314"></a>00314 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00315"></a>00315 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00316"></a>00316
-<a name="l00317"></a>00317 <span class="comment">/* --comb_meth */</span>
-<a name="l00318"></a>00318 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.comb_meth"</span>,
-<a name="l00319"></a>00319 CPL_TYPE_STRING, <span class="stringliteral">"union / inter / first"</span>, <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
-<a name="l00320"></a>00320 <span class="stringliteral">"union"</span>) ;
-<a name="l00321"></a>00321 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"comb_meth"</span>) ;
-<a name="l00322"></a>00322 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00323"></a>00323 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00324"></a>00324
-<a name="l00325"></a>00325 <span class="comment">/* --rej */</span>
-<a name="l00326"></a>00326 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.rej"</span>,
-<a name="l00327"></a>00327 CPL_TYPE_STRING,
-<a name="l00328"></a>00328 <span class="stringliteral">"Low and high number of rejected values"</span>,
-<a name="l00329"></a>00329 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
-<a name="l00330"></a>00330 <span class="stringliteral">"1,1"</span>) ;
-<a name="l00331"></a>00331 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"rej"</span>) ;
-<a name="l00332"></a>00332 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00333"></a>00333 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00334"></a>00334
-<a name="l00335"></a>00335 <span class="comment">/* --borders */</span>
-<a name="l00336"></a>00336 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.borders"</span>,
-<a name="l00337"></a>00337 CPL_TYPE_INT,
-<a name="l00338"></a>00338 <span class="stringliteral">"Borders rejected"</span>,
-<a name="l00339"></a>00339 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
-<a name="l00340"></a>00340 4) ;
-<a name="l00341"></a>00341 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"borders"</span>) ;
-<a name="l00342"></a>00342 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00343"></a>00343 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00344"></a>00344
-<a name="l00345"></a>00345 <span class="comment">/* --max_njitter */</span>
-<a name="l00346"></a>00346 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.max_njitter"</span>,
-<a name="l00347"></a>00347 CPL_TYPE_INT,
-<a name="l00348"></a>00348 <span class="stringliteral">"Maximum numbers of jitter frames to combine"</span>,
-<a name="l00349"></a>00349 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
-<a name="l00350"></a>00350 -1);
-<a name="l00351"></a>00351 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"max_njitter"</span>);
-<a name="l00352"></a>00352 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);
-<a name="l00353"></a>00353 cpl_parameterlist_append(recipe->parameters, p);
-<a name="l00354"></a>00354
-<a name="l00355"></a>00355 <span class="comment">/* Return */</span>
-<a name="l00356"></a>00356 <span class="keywordflow">return</span> 0;
-<a name="l00357"></a>00357 }
-<a name="l00358"></a>00358
-<a name="l00359"></a>00359 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00365"></a>00365 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00366"></a>00366 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_exec(cpl_plugin * plugin)
-<a name="l00367"></a>00367 {
-<a name="l00368"></a>00368 cpl_recipe * recipe ;
-<a name="l00369"></a>00369
-<a name="l00370"></a>00370 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00371"></a>00371 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00372"></a>00372 recipe = (cpl_recipe *)plugin ;
-<a name="l00373"></a>00373 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00264"></a>00264 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
+<a name="l00265"></a>00265 recipe->parameters = cpl_parameterlist_new() ;
+<a name="l00266"></a>00266 <span class="keywordflow">if</span> (recipe->parameters == NULL)
+<a name="l00267"></a>00267 <span class="keywordflow">return</span> 1;
+<a name="l00268"></a>00268
+<a name="l00269"></a>00269 <span class="comment">/* Fill the parameters list */</span>
+<a name="l00270"></a>00270 <span class="comment">/* --offsets */</span>
+<a name="l00271"></a>00271 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.offsets"</span>,
+<a name="l00272"></a>00272 CPL_TYPE_STRING, <span class="stringliteral">"offsets file"</span>, <span class="stringliteral">"hawki.hawki_sci_jitter"</span>, NULL) ;
+<a name="l00273"></a>00273 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"offsets"</span>) ;
+<a name="l00274"></a>00274 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00275"></a>00275 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00276"></a>00276
+<a name="l00277"></a>00277 <span class="comment">/* --objects */</span>
+<a name="l00278"></a>00278 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.objects"</span>,
+<a name="l00279"></a>00279 CPL_TYPE_STRING, <span class="stringliteral">"objects file"</span>, <span class="stringliteral">"hawki.hawki_sci_jitter"</span>, NULL) ;
+<a name="l00280"></a>00280 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"objects"</span>) ;
+<a name="l00281"></a>00281 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00282"></a>00282 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00283"></a>00283
+<a name="l00284"></a>00284 <span class="comment">/* --offset_max */</span>
+<a name="l00285"></a>00285 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.offset_max"</span>,
+<a name="l00286"></a>00286 CPL_TYPE_INT,
+<a name="l00287"></a>00287 <span class="stringliteral">"Maximum offset allowed"</span>,
+<a name="l00288"></a>00288 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
+<a name="l00289"></a>00289 1500) ;
+<a name="l00290"></a>00290 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"offset_max"</span>) ;
+<a name="l00291"></a>00291 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00292"></a>00292 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00293"></a>00293
+<a name="l00294"></a>00294 <span class="comment">/* --sky_par */</span>
+<a name="l00295"></a>00295 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.sky_par"</span>,
+<a name="l00296"></a>00296 CPL_TYPE_STRING,
+<a name="l00297"></a>00297 <span class="stringliteral">"Rejection parameters for sky filtering"</span>,
+<a name="l00298"></a>00298 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
+<a name="l00299"></a>00299 <span class="stringliteral">"10,7,3,3"</span>) ;
+<a name="l00300"></a>00300 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"sky_par"</span>) ;
+<a name="l00301"></a>00301 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00302"></a>00302 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00303"></a>00303
+<a name="l00304"></a>00304 <span class="comment">/* --refine */</span>
+<a name="l00305"></a>00305 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.refine"</span>,
+<a name="l00306"></a>00306 CPL_TYPE_BOOL, <span class="stringliteral">"refine offsets"</span>, <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
+<a name="l00307"></a>00307 FALSE);
+<a name="l00308"></a>00308 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"refine"</span>) ;
+<a name="l00309"></a>00309 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00310"></a>00310 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00311"></a>00311
+<a name="l00312"></a>00312 <span class="comment">/* --xcorr */</span>
+<a name="l00313"></a>00313 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.xcorr"</span>,
+<a name="l00314"></a>00314 CPL_TYPE_STRING,
+<a name="l00315"></a>00315 <span class="stringliteral">"Cross correlation search and measure sizes"</span>,
+<a name="l00316"></a>00316 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
+<a name="l00317"></a>00317 <span class="stringliteral">"20,20,25,25"</span>) ;
+<a name="l00318"></a>00318 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"xcorr"</span>) ;
+<a name="l00319"></a>00319 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00320"></a>00320 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00321"></a>00321
+<a name="l00322"></a>00322 <span class="comment">/* --comb_meth */</span>
+<a name="l00323"></a>00323 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.comb_meth"</span>,
+<a name="l00324"></a>00324 CPL_TYPE_STRING, <span class="stringliteral">"union / inter / first"</span>, <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
+<a name="l00325"></a>00325 <span class="stringliteral">"union"</span>) ;
+<a name="l00326"></a>00326 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"comb_meth"</span>) ;
+<a name="l00327"></a>00327 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00328"></a>00328 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00329"></a>00329
+<a name="l00330"></a>00330 <span class="comment">/* --rej */</span>
+<a name="l00331"></a>00331 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.rej"</span>,
+<a name="l00332"></a>00332 CPL_TYPE_STRING,
+<a name="l00333"></a>00333 <span class="stringliteral">"Low and high number of rejected values"</span>,
+<a name="l00334"></a>00334 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
+<a name="l00335"></a>00335 <span class="stringliteral">"1,1"</span>) ;
+<a name="l00336"></a>00336 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"rej"</span>) ;
+<a name="l00337"></a>00337 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00338"></a>00338 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00339"></a>00339
+<a name="l00340"></a>00340 <span class="comment">/* --borders */</span>
+<a name="l00341"></a>00341 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.borders"</span>,
+<a name="l00342"></a>00342 CPL_TYPE_INT,
+<a name="l00343"></a>00343 <span class="stringliteral">"Borders rejected"</span>,
+<a name="l00344"></a>00344 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
+<a name="l00345"></a>00345 4) ;
+<a name="l00346"></a>00346 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"borders"</span>) ;
+<a name="l00347"></a>00347 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00348"></a>00348 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00349"></a>00349
+<a name="l00350"></a>00350 <span class="comment">/* --max_njitter */</span>
+<a name="l00351"></a>00351 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_sci_jitter.max_njitter"</span>,
+<a name="l00352"></a>00352 CPL_TYPE_INT,
+<a name="l00353"></a>00353 <span class="stringliteral">"Maximum numbers of jitter frames to combine"</span>,
+<a name="l00354"></a>00354 <span class="stringliteral">"hawki.hawki_sci_jitter"</span>,
+<a name="l00355"></a>00355 -1);
+<a name="l00356"></a>00356 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"max_njitter"</span>);
+<a name="l00357"></a>00357 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);
+<a name="l00358"></a>00358 cpl_parameterlist_append(recipe->parameters, p);
+<a name="l00359"></a>00359
+<a name="l00360"></a>00360 <span class="comment">/* Return */</span>
+<a name="l00361"></a>00361 <span class="keywordflow">return</span> 0;
+<a name="l00362"></a>00362 }
+<a name="l00363"></a>00363
+<a name="l00364"></a>00364 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00370"></a>00370 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00371"></a>00371 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_exec(cpl_plugin * plugin)
+<a name="l00372"></a>00372 {
+<a name="l00373"></a>00373 cpl_recipe * recipe ;
<a name="l00374"></a>00374
-<a name="l00375"></a>00375 <span class="comment">/* Issue a banner */</span>
-<a name="l00376"></a>00376 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
-<a name="l00377"></a>00377
-<a name="l00378"></a>00378 <span class="keywordflow">return</span> hawki_sci_jitter(recipe->parameters, recipe->frames) ;
-<a name="l00379"></a>00379 }
-<a name="l00380"></a>00380
-<a name="l00381"></a>00381 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00387"></a>00387 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00388"></a>00388 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_destroy(cpl_plugin * plugin)
-<a name="l00389"></a>00389 {
-<a name="l00390"></a>00390 cpl_recipe * recipe ;
-<a name="l00391"></a>00391
-<a name="l00392"></a>00392 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00393"></a>00393 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00394"></a>00394 recipe = (cpl_recipe *)plugin ;
-<a name="l00395"></a>00395 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00375"></a>00375 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00376"></a>00376 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00377"></a>00377 recipe = (cpl_recipe *)plugin ;
+<a name="l00378"></a>00378 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00379"></a>00379
+<a name="l00380"></a>00380 <span class="comment">/* Issue a banner */</span>
+<a name="l00381"></a>00381 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
+<a name="l00382"></a>00382
+<a name="l00383"></a>00383 <span class="keywordflow">return</span> hawki_sci_jitter(recipe->parameters, recipe->frames) ;
+<a name="l00384"></a>00384 }
+<a name="l00385"></a>00385
+<a name="l00386"></a>00386 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00392"></a>00392 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00393"></a>00393 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_destroy(cpl_plugin * plugin)
+<a name="l00394"></a>00394 {
+<a name="l00395"></a>00395 cpl_recipe * recipe ;
<a name="l00396"></a>00396
-<a name="l00397"></a>00397 cpl_parameterlist_delete(recipe->parameters) ;
-<a name="l00398"></a>00398 <span class="keywordflow">return</span> 0 ;
-<a name="l00399"></a>00399 }
-<a name="l00400"></a>00400
-<a name="l00401"></a>00401 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00408"></a>00408 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00409"></a>00409 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter(
-<a name="l00410"></a>00410 cpl_parameterlist * parlist,
-<a name="l00411"></a>00411 cpl_frameset * framelist)
-<a name="l00412"></a>00412 {
-<a name="l00413"></a>00413 <span class="keyword">const</span> <span class="keywordtype">char</span> * flat;
-<a name="l00414"></a>00414 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark;
-<a name="l00415"></a>00415 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm;
-<a name="l00416"></a>00416 <span class="keyword">const</span> cpl_frame * distx;
-<a name="l00417"></a>00417 <span class="keyword">const</span> cpl_frame * disty;
-<a name="l00418"></a>00418 cpl_frameset * jitterframes ;
-<a name="l00419"></a>00419 cpl_frameset * skyframes ;
-<a name="l00420"></a>00420 cpl_frameset * science_frames;
-<a name="l00421"></a>00421 cpl_frameset * calib_frames;
-<a name="l00422"></a>00422 cpl_image ** combined ;
-<a name="l00423"></a>00423 cpl_table ** obj_charac;
-<a name="l00424"></a>00424 cpl_table ** raw_jitter_stats;
-<a name="l00425"></a>00425 cpl_table ** bkg_stats;
-<a name="l00426"></a>00426 cpl_table * raw_obj_tel_info;
-<a name="l00427"></a>00427 cpl_image * stitched ;
-<a name="l00428"></a>00428 <span class="keywordtype">int</span> i;
-<a name="l00429"></a>00429
-<a name="l00430"></a>00430 <span class="comment">/* Initialise */</span>
-<a name="l00431"></a>00431 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00432"></a>00432 {
-<a name="l00433"></a>00433 hawki_sci_jitter_output.iq[i] = -1.0 ;
-<a name="l00434"></a>00434 hawki_sci_jitter_output.nbobjs[i] = -1 ;
-<a name="l00435"></a>00435 hawki_sci_jitter_output.fwhm_pix[i] = -1.0 ;
-<a name="l00436"></a>00436 hawki_sci_jitter_output.fwhm_arcsec[i] = -1.0 ;
-<a name="l00437"></a>00437 hawki_sci_jitter_output.fwhm_mode[i] = -1.0 ;
-<a name="l00438"></a>00438 hawki_sci_jitter_output.combined_pos_x[i] = -1.0 ;
-<a name="l00439"></a>00439 hawki_sci_jitter_output.combined_pos_y[i] = -1.0 ;
-<a name="l00440"></a>00440 hawki_sci_jitter_output.combined_cumoffset_x[i] = -1.0 ;
-<a name="l00441"></a>00441 hawki_sci_jitter_output.combined_cumoffset_y[i] = -1.0 ;
-<a name="l00442"></a>00442 }
-<a name="l00443"></a>00443 hawki_sci_jitter_output.pixscale = -1.0 ;
-<a name="l00444"></a>00444 hawki_sci_jitter_output.dit = -1.0 ;
-<a name="l00445"></a>00445 hawki_sci_jitter_config.offsets = NULL ;
-<a name="l00446"></a>00446 hawki_sci_jitter_config.objects = NULL ;
-<a name="l00447"></a>00447 calib_frames = cpl_frameset_new();
-<a name="l00448"></a>00448
-<a name="l00449"></a>00449 <span class="comment">/* Retrieve input parameters */</span>
-<a name="l00450"></a>00450 <span class="keywordflow">if</span>(hawki_sci_jitter_retrieve_input_param(parlist))
-<a name="l00451"></a>00451 {
-<a name="l00452"></a>00452 cpl_msg_error(cpl_func, <span class="stringliteral">"Wrong parameters"</span>);
-<a name="l00453"></a>00453 cpl_frameset_delete(calib_frames);
-<a name="l00454"></a>00454 <span class="keywordflow">return</span> -1;
-<a name="l00455"></a>00455 }
-<a name="l00456"></a>00456
-<a name="l00457"></a>00457 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
-<a name="l00458"></a>00458 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist)) {
-<a name="l00459"></a>00459 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
-<a name="l00460"></a>00460 cpl_frameset_delete(calib_frames);
-<a name="l00461"></a>00461 <span class="keywordflow">return</span> -1 ;
-<a name="l00462"></a>00462 }
-<a name="l00463"></a>00463
-<a name="l00464"></a>00464 <span class="comment">/* Retrieve calibration data */</span>
-<a name="l00465"></a>00465 flat = <a class="code" href="group__hawki__utils.html#ga0ee9f37ad441f9fcc16865b34f9459a9" title="Extract the filename ffor the first frame of the given tag.">hawki_extract_first_filename</a>(framelist, HAWKI_CALPRO_FLAT) ;
-<a name="l00466"></a>00466 dark = <a class="code" href="group__hawki__utils.html#ga0ee9f37ad441f9fcc16865b34f9459a9" title="Extract the filename ffor the first frame of the given tag.">hawki_extract_first_filename</a>(framelist, HAWKI_CALPRO_DARK);
-<a name="l00467"></a>00467 bpm = <a class="code" href="group__hawki__utils.html#ga0ee9f37ad441f9fcc16865b34f9459a9" title="Extract the filename ffor the first frame of the given tag.">hawki_extract_first_filename</a>(framelist, HAWKI_CALPRO_BPM) ;
-<a name="l00468"></a>00468 distx = cpl_frameset_find_const(framelist, HAWKI_CALPRO_DISTORTION_X);
-<a name="l00469"></a>00469 disty = cpl_frameset_find_const(framelist, HAWKI_CALPRO_DISTORTION_Y);
-<a name="l00470"></a>00470 <span class="keywordflow">if</span>((distx == NULL && disty !=NULL) || (distx != NULL && disty ==NULL))
-<a name="l00471"></a>00471 {
-<a name="l00472"></a>00472 cpl_msg_error(cpl_func, <span class="stringliteral">"Both distortion in X (%s) and Y (%s) must be provided"</span>,
-<a name="l00473"></a>00473 HAWKI_CALPRO_DISTORTION_X, HAWKI_CALPRO_DISTORTION_Y);
-<a name="l00474"></a>00474 cpl_frameset_delete(calib_frames);
-<a name="l00475"></a>00475 <span class="keywordflow">return</span> -1 ;
-<a name="l00476"></a>00476 }
-<a name="l00477"></a>00477 <span class="keywordflow">if</span>(flat)
-<a name="l00478"></a>00478 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(
-<a name="l00479"></a>00479 cpl_frameset_find_const(framelist, HAWKI_CALPRO_FLAT)));
-<a name="l00480"></a>00480 <span class="keywordflow">if</span>(dark)
-<a name="l00481"></a>00481 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(
-<a name="l00482"></a>00482 cpl_frameset_find_const(framelist, HAWKI_CALPRO_DARK)));
-<a name="l00483"></a>00483 <span class="keywordflow">if</span>(bpm)
-<a name="l00484"></a>00484 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(
-<a name="l00485"></a>00485 cpl_frameset_find_const(framelist, HAWKI_CALPRO_BPM)));
-<a name="l00486"></a>00486 <span class="keywordflow">if</span>(distx)
-<a name="l00487"></a>00487 {
-<a name="l00488"></a>00488 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(distx));
-<a name="l00489"></a>00489 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(disty));
-<a name="l00490"></a>00490 }
-<a name="l00491"></a>00491
-<a name="l00492"></a>00492
-<a name="l00493"></a>00493 <span class="comment">/* Retrieve raw frames */</span>
-<a name="l00494"></a>00494 jitterframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_IMG_JITTER_RAW) ;
-<a name="l00495"></a>00495 <span class="keywordflow">if</span> (jitterframes == NULL) {
-<a name="l00496"></a>00496 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot find jitter frames in the input list (%s)"</span>,
-<a name="l00497"></a>00497 HAWKI_IMG_JITTER_RAW);
-<a name="l00498"></a>00498 cpl_frameset_delete(calib_frames);
-<a name="l00499"></a>00499 <span class="keywordflow">return</span> -1 ;
-<a name="l00500"></a>00500 }
-<a name="l00501"></a>00501 science_frames = cpl_frameset_duplicate(jitterframes);
-<a name="l00502"></a>00502 skyframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_IMG_JITTER_SKY_RAW) ;
-<a name="l00503"></a>00503 <span class="keywordflow">if</span> (skyframes != NULL)
-<a name="l00504"></a>00504 {
-<a name="l00505"></a>00505 <span class="keywordtype">int</span> isky;
-<a name="l00506"></a>00506 <span class="keywordflow">for</span>(isky = 0; isky< cpl_frameset_get_size(skyframes); ++isky)
-<a name="l00507"></a>00507 cpl_frameset_insert(science_frames,
-<a name="l00508"></a>00508 cpl_frame_duplicate(cpl_frameset_get_frame(skyframes, isky)));
-<a name="l00509"></a>00509 }
-<a name="l00510"></a>00510
-<a name="l00511"></a>00511 <span class="comment">/* Create the statistics table */</span>
-<a name="l00512"></a>00512 raw_jitter_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table *));
-<a name="l00513"></a>00513 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00514"></a>00514 {
-<a name="l00515"></a>00515 raw_jitter_stats[i] = cpl_table_new(cpl_frameset_get_size(jitterframes));
-<a name="l00516"></a>00516 }
-<a name="l00517"></a>00517 <a class="code" href="group__hawki__image__stats.html#ga788a4b7f6fba705eddcebd1f2fe26fd6" title="Initialize the table with all the statistics columns.">hawki_image_stats_initialize</a>(raw_jitter_stats);
-<a name="l00518"></a>00518 bkg_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table *));
-<a name="l00519"></a>00519 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00520"></a>00520 {
-<a name="l00521"></a>00521 bkg_stats[i] = cpl_table_new(cpl_frameset_get_size(jitterframes));
-<a name="l00522"></a>00522 }
-<a name="l00523"></a>00523 <a class="code" href="group__hawki__image__stats.html#ga788a4b7f6fba705eddcebd1f2fe26fd6" title="Initialize the table with all the statistics columns.">hawki_image_stats_initialize</a>(bkg_stats);
-<a name="l00524"></a>00524
-<a name="l00525"></a>00525 <span class="comment">/* Create the telescope statistics parameters from the raw images */</span>
-<a name="l00526"></a>00526 raw_obj_tel_info = cpl_table_new(cpl_frameset_get_size(jitterframes));
-<a name="l00527"></a>00527 <span class="comment">/* Add the proper columns of the pcs table */</span>
-<a name="l00528"></a>00528 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__properties__tel.html#ga2895d7c995564a2bbbdcab5c195cfac9" title="Initialize the table with all the telescope data columns.">hawki_prop_tel_initialize</a>(raw_obj_tel_info))
-<a name="l00529"></a>00529 {
-<a name="l00530"></a>00530 cpl_msg_error(cpl_func,<span class="stringliteral">"Could not initialize the pcs table"</span>);
-<a name="l00531"></a>00531 cpl_frameset_delete(jitterframes) ;
-<a name="l00532"></a>00532 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00533"></a>00533 {
-<a name="l00534"></a>00534 cpl_table_delete(raw_jitter_stats[i]) ;
-<a name="l00535"></a>00535 cpl_table_delete(bkg_stats[i]) ;
-<a name="l00536"></a>00536 }
-<a name="l00537"></a>00537 cpl_free(raw_jitter_stats) ;
-<a name="l00538"></a>00538 cpl_free(bkg_stats) ;
-<a name="l00539"></a>00539 cpl_table_delete(raw_obj_tel_info);
-<a name="l00540"></a>00540 <span class="keywordflow">if</span> (skyframes) cpl_frameset_delete(skyframes) ;
-<a name="l00541"></a>00541 cpl_frameset_delete(calib_frames);
-<a name="l00542"></a>00542 cpl_msg_indent_less() ;
-<a name="l00543"></a>00543 <span class="keywordflow">return</span> -1;
-<a name="l00544"></a>00544 }
-<a name="l00545"></a>00545
-<a name="l00546"></a>00546 <span class="comment">/* Do the algorithms that need the whole image */</span>
-<a name="l00547"></a>00547 hawki_sci_jitter_whole_image_algo(jitterframes,
-<a name="l00548"></a>00548 raw_jitter_stats,
-<a name="l00549"></a>00549 raw_obj_tel_info,
-<a name="l00550"></a>00550 parlist,
-<a name="l00551"></a>00551 framelist);
-<a name="l00552"></a>00552
-<a name="l00553"></a>00553 <span class="comment">/* Apply the reduction */</span>
-<a name="l00554"></a>00554 <span class="comment">/* Do the algorithms that can be applied to subsection of the images */</span>
-<a name="l00555"></a>00555 cpl_msg_info(cpl_func, <span class="stringliteral">"Apply the data combination"</span>) ;
-<a name="l00556"></a>00556 cpl_msg_indent_more() ;
-<a name="l00557"></a>00557 <span class="keywordflow">if</span> ((combined = hawki_sci_jitter_reduce(jitterframes, skyframes, flat, dark,
-<a name="l00558"></a>00558 bpm, bkg_stats)) == NULL)
-<a name="l00559"></a>00559 {
-<a name="l00560"></a>00560 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot recombine the data"</span>);
-<a name="l00561"></a>00561 cpl_frameset_delete(jitterframes);
-<a name="l00562"></a>00562 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00563"></a>00563 {
-<a name="l00564"></a>00564 cpl_table_delete(raw_jitter_stats[i]) ;
-<a name="l00565"></a>00565 cpl_table_delete(bkg_stats[i]) ;
-<a name="l00566"></a>00566 }
-<a name="l00567"></a>00567 cpl_free(raw_jitter_stats) ;
-<a name="l00568"></a>00568 cpl_free(bkg_stats) ;
-<a name="l00569"></a>00569 cpl_table_delete(raw_obj_tel_info);
-<a name="l00570"></a>00570 <span class="keywordflow">if</span> (skyframes) cpl_frameset_delete(skyframes) ;
-<a name="l00571"></a>00571 cpl_frameset_delete(calib_frames);
-<a name="l00572"></a>00572 cpl_msg_indent_less() ;
-<a name="l00573"></a>00573 <span class="keywordflow">return</span> -1 ;
-<a name="l00574"></a>00574 }
-<a name="l00575"></a>00575 cpl_msg_indent_less() ;
-<a name="l00576"></a>00576
-<a name="l00577"></a>00577 <span class="comment">/* Compute QC parameters from the combined image */</span>
-<a name="l00578"></a>00578 cpl_msg_info(cpl_func, <span class="stringliteral">"Compute QC parameters from the combined images"</span>) ;
-<a name="l00579"></a>00579 cpl_msg_indent_more() ;
-<a name="l00580"></a>00580 obj_charac = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table*)) ;
-<a name="l00581"></a>00581 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00582"></a>00582 {
-<a name="l00583"></a>00583 obj_charac[i] = cpl_table_new(0);
-<a name="l00584"></a>00584 }
-<a name="l00585"></a>00585 <span class="keywordflow">if</span> ((hawki_sci_jitter_qc(jitterframes, combined, obj_charac)) != 0)
-<a name="l00586"></a>00586 {
-<a name="l00587"></a>00587 cpl_msg_warning(cpl_func, <span class="stringliteral">"Cannot compute all parameters"</span>) ;
-<a name="l00588"></a>00588 }
-<a name="l00589"></a>00589 cpl_msg_indent_less();
-<a name="l00590"></a>00590 cpl_frameset_delete(jitterframes);
-<a name="l00591"></a>00591 <span class="keywordflow">if</span> (skyframes) cpl_frameset_delete(skyframes);
-<a name="l00592"></a>00592
-<a name="l00593"></a>00593
-<a name="l00594"></a>00594 <span class="comment">/* Correct for the distortion */</span>
-<a name="l00595"></a>00595 <span class="keywordflow">if</span> (distx && disty)
-<a name="l00596"></a>00596 {
-<a name="l00597"></a>00597 cpl_msg_info(cpl_func, <span class="stringliteral">"Applying the distortion correction"</span>) ;
-<a name="l00598"></a>00598 cpl_msg_indent_more() ;
-<a name="l00599"></a>00599 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__distortion.html#ga52da9acfab98a1592e65df9c6bfba484" title="Apply the distortion correction.">hawki_distortion_correct_alldetectors</a>(combined, distx, disty) == -1)
-<a name="l00600"></a>00600 {
-<a name="l00601"></a>00601 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot correct the distortion"</span>) ;
-<a name="l00602"></a>00602 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00603"></a>00603 cpl_image_delete(combined[i]) ;
-<a name="l00604"></a>00604 cpl_free(combined) ;
-<a name="l00605"></a>00605 <span class="keywordflow">if</span> (obj_charac) {
-<a name="l00606"></a>00606 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00607"></a>00607 cpl_table_delete(obj_charac[i]) ;
-<a name="l00608"></a>00608 cpl_free(obj_charac);
-<a name="l00609"></a>00609 }
-<a name="l00610"></a>00610 cpl_table_delete(raw_obj_tel_info);
-<a name="l00611"></a>00611 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00612"></a>00612 {
-<a name="l00613"></a>00613 cpl_table_delete(raw_jitter_stats[i]);
-<a name="l00614"></a>00614 cpl_table_delete(bkg_stats[i]);
-<a name="l00615"></a>00615 }
-<a name="l00616"></a>00616 cpl_free(raw_jitter_stats);
-<a name="l00617"></a>00617 cpl_free(bkg_stats);
-<a name="l00618"></a>00618 cpl_frameset_delete(calib_frames);
-<a name="l00619"></a>00619 cpl_frameset_delete(science_frames);
-<a name="l00620"></a>00620 cpl_msg_indent_less() ;
-<a name="l00621"></a>00621 <span class="keywordflow">return</span> -1;
-<a name="l00622"></a>00622 }
-<a name="l00623"></a>00623 cpl_msg_indent_less() ;
-<a name="l00624"></a>00624 }
-<a name="l00625"></a>00625
-<a name="l00626"></a>00626 <span class="comment">/* Compute the stitched image */</span>
-<a name="l00627"></a>00627 cpl_msg_info(cpl_func, <span class="stringliteral">"Compute the stiched image"</span>) ;
-<a name="l00628"></a>00628 <span class="keywordflow">if</span> ((stitched = <a class="code" href="group__hawki__utils.html#ga7f6d3694df0e3a441b20267a1e5894db" title="Apply the stitching.">hawki_images_stitch</a>(combined,
-<a name="l00629"></a>00629 hawki_sci_jitter_output.combined_pos_x,
-<a name="l00630"></a>00630 hawki_sci_jitter_output.combined_pos_y)) == NULL)
-<a name="l00631"></a>00631 {
-<a name="l00632"></a>00632 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot stitch the images"</span>) ;
-<a name="l00633"></a>00633 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00634"></a>00634 cpl_image_delete(combined[i]) ;
-<a name="l00635"></a>00635 cpl_free(combined) ;
-<a name="l00636"></a>00636 <span class="keywordflow">if</span> (obj_charac) {
-<a name="l00637"></a>00637 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00638"></a>00638 cpl_table_delete(obj_charac[i]) ;
-<a name="l00639"></a>00639 cpl_free(obj_charac);
-<a name="l00640"></a>00640 }
-<a name="l00641"></a>00641 cpl_table_delete(raw_obj_tel_info);
-<a name="l00642"></a>00642 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00643"></a>00643 {
-<a name="l00644"></a>00644 cpl_table_delete(raw_jitter_stats[i]);
-<a name="l00645"></a>00645 cpl_table_delete(bkg_stats[i]);
-<a name="l00646"></a>00646 }
-<a name="l00647"></a>00647 cpl_free(raw_jitter_stats);
-<a name="l00648"></a>00648 cpl_free(bkg_stats);
-<a name="l00649"></a>00649 cpl_frameset_delete(calib_frames);
-<a name="l00650"></a>00650 cpl_frameset_delete(science_frames);
-<a name="l00651"></a>00651 <span class="keywordflow">return</span> -1;
-<a name="l00652"></a>00652 }
-<a name="l00653"></a>00653
-<a name="l00654"></a>00654 <span class="comment">/* Save the products */</span>
-<a name="l00655"></a>00655 cpl_msg_info(cpl_func, <span class="stringliteral">"Save the products"</span>) ;
-<a name="l00656"></a>00656 cpl_msg_indent_more() ;
-<a name="l00657"></a>00657 <span class="keywordflow">if</span> (hawki_sci_jitter_save(combined, stitched, obj_charac,
-<a name="l00658"></a>00658 raw_jitter_stats, bkg_stats,
-<a name="l00659"></a>00659 raw_obj_tel_info,
-<a name="l00660"></a>00660 science_frames,
-<a name="l00661"></a>00661 calib_frames,
-<a name="l00662"></a>00662 parlist, framelist) == -1)
-<a name="l00663"></a>00663 cpl_msg_warning(cpl_func,<span class="stringliteral">"Some data could not be saved. "</span>
-<a name="l00664"></a>00664 <span class="stringliteral">"Check permisions or disk space"</span>);
-<a name="l00665"></a>00665
-<a name="l00666"></a>00666 <span class="comment">/* Return */</span>
-<a name="l00667"></a>00667 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00668"></a>00668 cpl_image_delete(combined[i]) ;
-<a name="l00669"></a>00669 cpl_free(combined) ;
-<a name="l00670"></a>00670 <span class="keywordflow">if</span> (obj_charac) {
-<a name="l00671"></a>00671 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00672"></a>00672 cpl_table_delete(obj_charac[i]) ;
-<a name="l00673"></a>00673 cpl_free(obj_charac);
-<a name="l00674"></a>00674 }
-<a name="l00675"></a>00675 <span class="keywordflow">if</span> (stitched) cpl_image_delete(stitched) ;
-<a name="l00676"></a>00676 cpl_table_delete(raw_obj_tel_info);
-<a name="l00677"></a>00677 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00678"></a>00678 {
-<a name="l00679"></a>00679 cpl_table_delete(raw_jitter_stats[i]);
-<a name="l00680"></a>00680 cpl_table_delete(bkg_stats[i]);
-<a name="l00681"></a>00681 }
-<a name="l00682"></a>00682 cpl_free(raw_jitter_stats);
-<a name="l00683"></a>00683 cpl_free(bkg_stats);
-<a name="l00684"></a>00684 cpl_frameset_delete(calib_frames);
-<a name="l00685"></a>00685 cpl_frameset_delete(science_frames);
-<a name="l00686"></a>00686 cpl_msg_indent_less() ;
-<a name="l00687"></a>00687
-<a name="l00688"></a>00688 <span class="comment">/* Return */</span>
-<a name="l00689"></a>00689 <span class="keywordflow">if</span> (cpl_error_get_code())
-<a name="l00690"></a>00690 {
-<a name="l00691"></a>00691 cpl_msg_error(cpl_func,
-<a name="l00692"></a>00692 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
-<a name="l00693"></a>00693 <span class="keywordflow">return</span> -1 ;
-<a name="l00694"></a>00694 }
-<a name="l00695"></a>00695 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
-<a name="l00696"></a>00696 }
-<a name="l00697"></a>00697
-<a name="l00698"></a>00698 <span class="keywordtype">int</span> hawki_sci_jitter_retrieve_input_param
-<a name="l00699"></a>00699 (cpl_parameterlist * parlist)
-<a name="l00700"></a>00700 {
-<a name="l00701"></a>00701 cpl_parameter * par ;
-<a name="l00702"></a>00702 <span class="keyword">const</span> <span class="keywordtype">char</span> * sval ;
-<a name="l00703"></a>00703 par = NULL ;
-<a name="l00704"></a>00704 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.offsets"</span>);
-<a name="l00705"></a>00705 hawki_sci_jitter_config.offsets = cpl_parameter_get_string(par);
-<a name="l00706"></a>00706 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.objects"</span>);
-<a name="l00707"></a>00707 hawki_sci_jitter_config.objects = cpl_parameter_get_string(par);
-<a name="l00708"></a>00708 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.offset_max"</span>);
-<a name="l00709"></a>00709 hawki_sci_jitter_config.offset_max = cpl_parameter_get_int(par);
-<a name="l00710"></a>00710 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.sky_par"</span>);
-<a name="l00711"></a>00711 sval = cpl_parameter_get_string(par);
-<a name="l00712"></a>00712 <span class="keywordflow">if</span> (sscanf(sval, <span class="stringliteral">"%d,%d,%d,%d"</span>,
-<a name="l00713"></a>00713 &hawki_sci_jitter_config.sky_minnb,
-<a name="l00714"></a>00714 &hawki_sci_jitter_config.sky_halfw,
-<a name="l00715"></a>00715 &hawki_sci_jitter_config.sky_rejmin,
-<a name="l00716"></a>00716 &hawki_sci_jitter_config.sky_rejmax)!=4)
-<a name="l00717"></a>00717 {
-<a name="l00718"></a>00718 <span class="keywordflow">return</span> -1;
-<a name="l00719"></a>00719 }
-<a name="l00720"></a>00720 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.xcorr"</span>);
-<a name="l00721"></a>00721 sval = cpl_parameter_get_string(par);
-<a name="l00722"></a>00722 <span class="keywordflow">if</span> (sscanf(sval, <span class="stringliteral">"%d,%d,%d,%d"</span>,
-<a name="l00723"></a>00723 &hawki_sci_jitter_config.sx,
-<a name="l00724"></a>00724 &hawki_sci_jitter_config.sy,
-<a name="l00725"></a>00725 &hawki_sci_jitter_config.mx,
-<a name="l00726"></a>00726 &hawki_sci_jitter_config.my)!=4)
-<a name="l00727"></a>00727 {
-<a name="l00728"></a>00728 <span class="keywordflow">return</span> -1;
-<a name="l00729"></a>00729 }
-<a name="l00730"></a>00730 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.refine"</span>);
-<a name="l00731"></a>00731 hawki_sci_jitter_config.refine = cpl_parameter_get_bool(par);
-<a name="l00732"></a>00732 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.comb_meth"</span>);
-<a name="l00733"></a>00733 sval = cpl_parameter_get_string(par);
-<a name="l00734"></a>00734 <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"union"</span>))
-<a name="l00735"></a>00735 hawki_sci_jitter_config.comb_meth = CPL_GEOM_UNION;
-<a name="l00736"></a>00736 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"inter"</span>))
-<a name="l00737"></a>00737 hawki_sci_jitter_config.comb_meth = CPL_GEOM_INTERSECT;
-<a name="l00738"></a>00738 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"first"</span>))
-<a name="l00739"></a>00739 hawki_sci_jitter_config.comb_meth = CPL_GEOM_FIRST;
-<a name="l00740"></a>00740 <span class="keywordflow">else</span>
-<a name="l00741"></a>00741 {
-<a name="l00742"></a>00742 cpl_msg_error(cpl_func, <span class="stringliteral">"Invalid combine method specified"</span>);
-<a name="l00743"></a>00743 <span class="keywordflow">return</span> -1;
-<a name="l00744"></a>00744 }
-<a name="l00745"></a>00745 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.borders"</span>);
-<a name="l00746"></a>00746 hawki_sci_jitter_config.borders = cpl_parameter_get_int(par);
-<a name="l00747"></a>00747 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.rej"</span>);
-<a name="l00748"></a>00748 sval = cpl_parameter_get_string(par);
-<a name="l00749"></a>00749 <span class="keywordflow">if</span> (sscanf(sval, <span class="stringliteral">"%d,%d"</span>,
-<a name="l00750"></a>00750 &hawki_sci_jitter_config.rej_low,
-<a name="l00751"></a>00751 &hawki_sci_jitter_config.rej_high)!=2)
-<a name="l00752"></a>00752 {
-<a name="l00753"></a>00753 <span class="keywordflow">return</span> -1;
-<a name="l00754"></a>00754 }
-<a name="l00755"></a>00755 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.max_njitter"</span>);
-<a name="l00756"></a>00756 hawki_sci_jitter_config.max_njitter = cpl_parameter_get_int(par);
-<a name="l00757"></a>00757 <span class="keywordflow">return</span> 0;
-<a name="l00758"></a>00758 }
-<a name="l00759"></a>00759
-<a name="l00760"></a>00760
-<a name="l00761"></a>00761
-<a name="l00762"></a>00762 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00773"></a>00773 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00774"></a>00774 <span class="keyword">static</span> cpl_image ** hawki_sci_jitter_reduce
-<a name="l00775"></a>00775 (cpl_frameset * jitters,
-<a name="l00776"></a>00776 cpl_frameset * sky,
-<a name="l00777"></a>00777 <span class="keyword">const</span> <span class="keywordtype">char</span> * flat,
-<a name="l00778"></a>00778 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark,
-<a name="l00779"></a>00779 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm,
-<a name="l00780"></a>00780 cpl_table ** bkg_stats)
-<a name="l00781"></a>00781 {
-<a name="l00782"></a>00782 cpl_frame * frame ;
-<a name="l00783"></a>00783 cpl_propertylist * plist ;
-<a name="l00784"></a>00784 cpl_image ** comb_chip ;
-<a name="l00785"></a>00785 cpl_image ** combined ;
-<a name="l00786"></a>00786 cpl_bivector * offsets ;
-<a name="l00787"></a>00787 cpl_vector * offset_x_sort;
-<a name="l00788"></a>00788 cpl_vector * offset_y_sort;
-<a name="l00789"></a>00789 <span class="keywordtype">double</span> * offs_est_x ;
-<a name="l00790"></a>00790 <span class="keywordtype">double</span> * offs_est_y ;
-<a name="l00791"></a>00791 <span class="keywordtype">double</span> off_0_x;
-<a name="l00792"></a>00792 <span class="keywordtype">double</span> off_0_y;
-<a name="l00793"></a>00793 <span class="keywordtype">double</span> max_x, max_y ;
-<a name="l00794"></a>00794 <span class="keywordtype">int</span> idet;
-<a name="l00795"></a>00795 <span class="keywordtype">int</span> ioff;
-<a name="l00796"></a>00796
-<a name="l00797"></a>00797 <span class="comment">/* Get the header infos */</span>
-<a name="l00798"></a>00798 frame = cpl_frameset_get_frame(jitters, 0) ;
-<a name="l00799"></a>00799 plist=cpl_propertylist_load(cpl_frame_get_filename(frame), 0) ;
-<a name="l00800"></a>00800 hawki_sci_jitter_output.pixscale = <a class="code" href="group__hawki__pfits.html#ga79c432e5ab5585c45472cfa86b2d146b" title="find out the pixel scale">hawki_pfits_get_pixscale</a>(plist) ;
-<a name="l00801"></a>00801 hawki_sci_jitter_output.dit = <a class="code" href="group__hawki__pfits.html#ga1971ab60e27df384b5fd533461e7356f" title="find out the DIT value">hawki_pfits_get_dit</a>(plist) ;
-<a name="l00802"></a>00802 cpl_propertylist_delete(plist) ;
-<a name="l00803"></a>00803 <span class="keywordflow">if</span> (cpl_error_get_code()) {
-<a name="l00804"></a>00804 cpl_msg_error(cpl_func, <span class="stringliteral">"Missing keyword in FITS header"</span>) ;
-<a name="l00805"></a>00805 <span class="keywordflow">return</span> NULL ;
-<a name="l00806"></a>00806 }
-<a name="l00807"></a>00807
-<a name="l00808"></a>00808 <span class="comment">/* Check that DIT/NDIT and NDSAMPLES are the same for all the frames */</span>
-<a name="l00809"></a>00809 <span class="keywordflow">if</span>(!<a class="code" href="group__hawki__utils.html#ga4c041169d43f161a8c9d7f23d7fc57a7" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_double_keys</a>(jitters, &<a class="code" href="group__hawki__pfits.html#ga1971ab60e27df384b5fd533461e7356f" title="find out the DIT value">hawki_pfits_get_dit</a>) ||
-<a name="l00810"></a>00810 !<a class="code" href="group__hawki__utils.html#ga8c1508e389b7fd0da8fbda451ffd1663" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_int_keys</a>(jitters, &<a class="code" href="group__hawki__pfits.html#ga7c2b338fdf41bdeb1149b60af82c0788" title="find out the NDIT value">hawki_pfits_get_ndit</a>)||
-<a name="l00811"></a>00811 !<a class="code" href="group__hawki__utils.html#ga8c1508e389b7fd0da8fbda451ffd1663" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_int_keys</a>(jitters, &<a class="code" href="group__hawki__pfits.html#ga0d1ccf97334b28566b2bc8fe17786190" title="find out the NDSAMPLES value">hawki_pfits_get_ndsamples</a>))
-<a name="l00812"></a>00812 {
-<a name="l00813"></a>00813 cpl_msg_error(__func__, <span class="stringliteral">"Not all input science have the same "</span>
-<a name="l00814"></a>00814 <span class="stringliteral">"DIT/NDIT/NDSAMPLES values"</span>);
-<a name="l00815"></a>00815 cpl_msg_indent_less() ;
-<a name="l00816"></a>00816 <span class="keywordflow">return</span> NULL;
-<a name="l00817"></a>00817 }
-<a name="l00818"></a>00818
-<a name="l00819"></a>00819 <span class="comment">/* Get the offsets */</span>
-<a name="l00820"></a>00820 <span class="keywordflow">if</span> ((offsets = <a class="code" href="group__hawki__utils.html#ga4c2e0ffe688ffdfd93f0d61c60ac91fd" title="Get the nominal header offsets from a set of frames.">hawki_get_header_tel_offsets</a>(jitters)) == NULL) {
-<a name="l00821"></a>00821 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot load the offsets"</span>) ;
-<a name="l00822"></a>00822 <span class="keywordflow">return</span> NULL ;
-<a name="l00823"></a>00823 }
-<a name="l00824"></a>00824 offs_est_x = cpl_bivector_get_x_data(offsets) ;
-<a name="l00825"></a>00825 offs_est_y = cpl_bivector_get_y_data(offsets) ;
-<a name="l00826"></a>00826
-<a name="l00827"></a>00827 <span class="comment">/* Print the header offsets */</span>
-<a name="l00828"></a>00828 <span class="keywordflow">for</span> (ioff=0 ; ioff<cpl_bivector_get_size(offsets) ; ioff++) {
-<a name="l00829"></a>00829 cpl_msg_info(cpl_func, <span class="stringliteral">"Telescope offsets (Frame %d): %g %g"</span>, ioff+1,
-<a name="l00830"></a>00830 offs_est_x[ioff], offs_est_y[ioff]) ;
-<a name="l00831"></a>00831 }
-<a name="l00832"></a>00832
-<a name="l00833"></a>00833 <span class="comment">/* Subtract the first offset to all offsets */</span>
-<a name="l00834"></a>00834 off_0_x = -offs_est_x[0]; <span class="comment">// This is to get the cpl convention</span>
-<a name="l00835"></a>00835 off_0_y = -offs_est_y[0];
-<a name="l00836"></a>00836 <span class="keywordflow">for</span> (ioff=1 ; ioff<cpl_bivector_get_size(offsets) ; ioff++)
-<a name="l00837"></a>00837 {
-<a name="l00838"></a>00838 offs_est_x[ioff] -= offs_est_x[0] ;
-<a name="l00839"></a>00839 offs_est_y[ioff] -= offs_est_y[0] ;
-<a name="l00840"></a>00840 }
-<a name="l00841"></a>00841 offs_est_x[0] = offs_est_y[0] = 0.00 ;
-<a name="l00842"></a>00842
-<a name="l00843"></a>00843 <span class="comment">/* Check if the max offset is not too big */</span>
-<a name="l00844"></a>00844 <span class="comment">/* The criteria is that for a given frame, the closest frame cannot be </span>
-<a name="l00845"></a>00845 <span class="comment"> * further than hawki_sci_jitter_config.offset_max (in both dimensions) */</span>
-<a name="l00846"></a>00846 offset_x_sort = cpl_vector_duplicate(cpl_bivector_get_x(offsets));
-<a name="l00847"></a>00847 offset_y_sort = cpl_vector_duplicate(cpl_bivector_get_y(offsets));
-<a name="l00848"></a>00848 cpl_vector_sort(offset_x_sort, +1);
-<a name="l00849"></a>00849 cpl_vector_sort(offset_y_sort, +1);
-<a name="l00850"></a>00850 <span class="keywordflow">for</span> (ioff=0 ; ioff<cpl_bivector_get_size(offsets) - 1 ; ioff++)
-<a name="l00851"></a>00851 {
-<a name="l00852"></a>00852 <span class="keywordtype">double</span> diff_x, diff_y;
-<a name="l00853"></a>00853 diff_x = cpl_vector_get(offset_x_sort,ioff+1)-cpl_vector_get(offset_x_sort,ioff);
-<a name="l00854"></a>00854 cpl_vector_set(offset_x_sort, ioff, diff_x);
-<a name="l00855"></a>00855 diff_y = cpl_vector_get(offset_y_sort,ioff+1)-cpl_vector_get(offset_y_sort,ioff);
-<a name="l00856"></a>00856 cpl_vector_set(offset_y_sort, ioff, diff_y);
-<a name="l00857"></a>00857 }
-<a name="l00858"></a>00858 cpl_vector_set(offset_x_sort, cpl_bivector_get_size(offsets)-1, 0.);
-<a name="l00859"></a>00859 cpl_vector_set(offset_y_sort, cpl_bivector_get_size(offsets)-1, 0.);
-<a name="l00860"></a>00860 max_x = cpl_vector_get_max(offset_x_sort);
-<a name="l00861"></a>00861 max_y = cpl_vector_get_max(offset_y_sort);
-<a name="l00862"></a>00862 cpl_vector_delete(offset_x_sort);
-<a name="l00863"></a>00863 cpl_vector_delete(offset_y_sort);
-<a name="l00864"></a>00864
-<a name="l00865"></a>00865 <span class="keywordflow">if</span> (max_x > hawki_sci_jitter_config.offset_max ||
-<a name="l00866"></a>00866 max_y > hawki_sci_jitter_config.offset_max)
-<a name="l00867"></a>00867 {
-<a name="l00868"></a>00868 cpl_msg_error(cpl_func, <span class="stringliteral">"Sorry, no support for frames further than %d from its closest neighbour"</span>,
-<a name="l00869"></a>00869 hawki_sci_jitter_config.offset_max) ;
-<a name="l00870"></a>00870 cpl_bivector_delete(offsets);
-<a name="l00871"></a>00871 <span class="keywordflow">return</span> NULL ;
-<a name="l00872"></a>00872 }
-<a name="l00873"></a>00873
-<a name="l00874"></a>00874 <span class="comment">/* Create output object */</span>
-<a name="l00875"></a>00875 combined = cpl_malloc(HAWKI_NB_DETECTORS*<span class="keyword">sizeof</span>(cpl_image*)) ;
-<a name="l00876"></a>00876
-<a name="l00877"></a>00877 <span class="comment">/* Loop on the detectors */</span>
-<a name="l00878"></a>00878 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00879"></a>00879 {
-<a name="l00880"></a>00880 cpl_frameset * selected_jitter;
-<a name="l00881"></a>00881 cpl_bivector * selected_offsets;
-<a name="l00882"></a>00882 cpl_image * flat_ima = NULL;
-<a name="l00883"></a>00883 cpl_image * dark_ima = NULL;
-<a name="l00884"></a>00884 cpl_image * bpm_ima = NULL;
-<a name="l00885"></a>00885 cpl_imagelist * in = NULL;
-<a name="l00886"></a>00886 cpl_imagelist * in_sky = NULL;
-<a name="l00887"></a>00887 <span class="keywordtype">int</span> nrejected;
-<a name="l00888"></a>00888
-<a name="l00889"></a>00889 cpl_msg_info(cpl_func, <span class="stringliteral">"Combine chip number %d"</span>, idet+1) ;
-<a name="l00890"></a>00890 cpl_msg_indent_more() ;
-<a name="l00891"></a>00891
-<a name="l00892"></a>00892 <span class="comment">/* Apply frame selection based on offset values */</span>
-<a name="l00893"></a>00893 selected_jitter = cpl_frameset_duplicate(jitters);
-<a name="l00894"></a>00894 selected_offsets = cpl_bivector_duplicate(offsets);
-<a name="l00895"></a>00895 <span class="keywordflow">if</span>(hawki_sci_jitter_config.max_njitter != -1)
-<a name="l00896"></a>00896 {
-<a name="l00897"></a>00897 <span class="keywordflow">if</span>(hawki_sci_jitter_config.max_njitter <
-<a name="l00898"></a>00898 cpl_frameset_get_size(selected_jitter))
-<a name="l00899"></a>00899 {
-<a name="l00900"></a>00900 <span class="keywordflow">while</span>(cpl_frameset_get_size(selected_jitter) >
-<a name="l00901"></a>00901 hawki_sci_jitter_config.max_njitter)
-<a name="l00902"></a>00902 {
-<a name="l00903"></a>00903 <span class="keywordtype">int</span> irm = cpl_frameset_get_size(selected_jitter) - 1;
-<a name="l00904"></a>00904 cpl_frameset_erase_frame
-<a name="l00905"></a>00905 (selected_jitter,
-<a name="l00906"></a>00906 cpl_frameset_get_frame(selected_jitter,irm));
-<a name="l00907"></a>00907 }
-<a name="l00908"></a>00908 cpl_vector_set_size(cpl_bivector_get_x(selected_offsets),
-<a name="l00909"></a>00909 hawki_sci_jitter_config.max_njitter);
-<a name="l00910"></a>00910 cpl_vector_set_size(cpl_bivector_get_y(selected_offsets),
-<a name="l00911"></a>00911 hawki_sci_jitter_config.max_njitter);
-<a name="l00912"></a>00912 }
-<a name="l00913"></a>00913 }
-<a name="l00914"></a>00914 hawki_sci_jitter_output.ncomb[idet] =
-<a name="l00915"></a>00915 cpl_frameset_get_size(selected_jitter);
-<a name="l00916"></a>00916 nrejected = cpl_frameset_get_size(selected_jitter) -
-<a name="l00917"></a>00917 cpl_frameset_get_size(jitters);
-<a name="l00918"></a>00918 <span class="keywordflow">if</span>(nrejected != 0)
-<a name="l00919"></a>00919 cpl_msg_info(cpl_func,<span class="stringliteral">"%d frames reject due to large offsets"</span>,
-<a name="l00920"></a>00920 nrejected);
-<a name="l00921"></a>00921
-<a name="l00922"></a>00922
-<a name="l00923"></a>00923 <span class="comment">/* Load the input data */</span>
-<a name="l00924"></a>00924 cpl_msg_info(cpl_func, <span class="stringliteral">"Load the input data"</span>) ;
-<a name="l00925"></a>00925 cpl_msg_indent_more() ;
-<a name="l00926"></a>00926 <span class="keywordflow">if</span> ((in = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(selected_jitter,
-<a name="l00927"></a>00927 idet+1, CPL_TYPE_FLOAT)) == NULL) {
-<a name="l00928"></a>00928 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot load chip %d"</span>, idet+1) ;
-<a name="l00929"></a>00929 cpl_free(combined) ;
-<a name="l00930"></a>00930 cpl_bivector_delete(offsets) ;
-<a name="l00931"></a>00931 cpl_msg_indent_less() ;
-<a name="l00932"></a>00932 cpl_msg_indent_less() ;
-<a name="l00933"></a>00933 <span class="keywordflow">return</span> NULL ;
-<a name="l00934"></a>00934 }
-<a name="l00935"></a>00935 <span class="keywordflow">if</span> (sky) {
-<a name="l00936"></a>00936 <span class="keywordflow">if</span> ((in_sky = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(sky, idet+1, CPL_TYPE_FLOAT)) == NULL)
-<a name="l00937"></a>00937 {
-<a name="l00938"></a>00938 cpl_msg_warning(cpl_func, <span class="stringliteral">"Cannot load sky for chip %d"</span>,idet+1);
-<a name="l00939"></a>00939 }
-<a name="l00940"></a>00940 } <span class="keywordflow">else</span> in_sky = NULL ;
-<a name="l00941"></a>00941 cpl_msg_indent_less() ;
-<a name="l00942"></a>00942
-<a name="l00943"></a>00943 <span class="comment">/* Read the calibrations */</span>
-<a name="l00944"></a>00944 cpl_msg_info(cpl_func, <span class="stringliteral">"Load the calibration data"</span>) ;
-<a name="l00945"></a>00945 <span class="keywordflow">if</span>(hawki_sci_jitter_read_calib(flat, dark, bpm,
-<a name="l00946"></a>00946 &flat_ima, &dark_ima, &bpm_ima,
-<a name="l00947"></a>00947 idet) != 0)
-<a name="l00948"></a>00948 {
-<a name="l00949"></a>00949 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot read some of the calibrations"</span>);
-<a name="l00950"></a>00950 cpl_imagelist_delete(in);
-<a name="l00951"></a>00951 cpl_free(combined);
-<a name="l00952"></a>00952 <span class="keywordflow">if</span> (in_sky) cpl_imagelist_delete(in_sky);
-<a name="l00953"></a>00953 cpl_bivector_delete(offsets);
-<a name="l00954"></a>00954 cpl_msg_indent_less();
-<a name="l00955"></a>00955 cpl_msg_indent_less();
-<a name="l00956"></a>00956 <span class="keywordflow">return</span> NULL ;
-<a name="l00957"></a>00957 }
-<a name="l00958"></a>00958
-<a name="l00959"></a>00959 <span class="comment">/* Apply the calibrations */</span>
-<a name="l00960"></a>00960 <span class="keywordflow">if</span> (flat || dark || bpm )
-<a name="l00961"></a>00961 {
-<a name="l00962"></a>00962 cpl_msg_info(cpl_func, <span class="stringliteral">"Apply the calibrations"</span>) ;
-<a name="l00963"></a>00963 cpl_msg_indent_more() ;
-<a name="l00964"></a>00964 <span class="comment">/* Basic calibration of the OBJECTS */</span>
-<a name="l00965"></a>00965 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__calib.html#ga5602d5f6a5703dff30afa41235c9686d" title="Apply the calibration to the images.">hawki_flat_dark_bpm_detector_calib</a>
-<a name="l00966"></a>00966 (in, flat_ima, dark_ima, bpm_ima) == -1)
-<a name="l00967"></a>00967 {
-<a name="l00968"></a>00968 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot calibrate the objects"</span>) ;
-<a name="l00969"></a>00969 cpl_imagelist_delete(in) ;
-<a name="l00970"></a>00970 cpl_free(combined) ;
-<a name="l00971"></a>00971 <span class="keywordflow">if</span> (in_sky) cpl_imagelist_delete(in_sky) ;
-<a name="l00972"></a>00972 cpl_bivector_delete(offsets) ;
-<a name="l00973"></a>00973 cpl_image_delete(flat_ima);
-<a name="l00974"></a>00974 cpl_image_delete(dark_ima);
-<a name="l00975"></a>00975 cpl_image_delete(bpm_ima);
-<a name="l00976"></a>00976 cpl_msg_indent_less() ;
-<a name="l00977"></a>00977 cpl_msg_indent_less() ;
-<a name="l00978"></a>00978 <span class="keywordflow">return</span> NULL ;
-<a name="l00979"></a>00979 }
-<a name="l00980"></a>00980 <span class="comment">/* Basic calibration of the SKY */</span>
-<a name="l00981"></a>00981 <span class="keywordflow">if</span> (in_sky) {
-<a name="l00982"></a>00982 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__calib.html#ga5602d5f6a5703dff30afa41235c9686d" title="Apply the calibration to the images.">hawki_flat_dark_bpm_detector_calib</a>
-<a name="l00983"></a>00983 (in_sky, flat_ima, dark_ima, bpm_ima) == -1)
-<a name="l00984"></a>00984 {
-<a name="l00985"></a>00985 cpl_msg_warning(cpl_func, <span class="stringliteral">"Cannot calibrate the sky"</span>) ;
-<a name="l00986"></a>00986 cpl_imagelist_delete(in_sky) ;
-<a name="l00987"></a>00987 in_sky = NULL ;
-<a name="l00988"></a>00988 }
-<a name="l00989"></a>00989 }
-<a name="l00990"></a>00990 cpl_msg_indent_less() ;
-<a name="l00991"></a>00991 }
-<a name="l00992"></a>00992 cpl_image_delete(flat_ima);
-<a name="l00993"></a>00993 cpl_image_delete(dark_ima);
-<a name="l00994"></a>00994 cpl_image_delete(bpm_ima);
-<a name="l00995"></a>00995
-<a name="l00996"></a>00996 <span class="comment">/* Apply the sky correction */</span>
-<a name="l00997"></a>00997 cpl_msg_info(cpl_func, <span class="stringliteral">"Sky estimation and correction"</span>) ;
-<a name="l00998"></a>00998 cpl_msg_indent_more() ;
-<a name="l00999"></a>00999 <span class="keywordflow">if</span> (hawki_sci_jitter_sky(in, in_sky, bkg_stats, idet) == -1)
-<a name="l01000"></a>01000 {
-<a name="l01001"></a>01001 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot estimate the sky"</span>) ;
-<a name="l01002"></a>01002 cpl_imagelist_delete(in) ;
-<a name="l01003"></a>01003 <span class="keywordflow">if</span> (in_sky) cpl_imagelist_delete(in_sky) ;
-<a name="l01004"></a>01004 cpl_free(combined) ;
-<a name="l01005"></a>01005 cpl_bivector_delete(offsets) ;
-<a name="l01006"></a>01006 cpl_msg_indent_less() ;
-<a name="l01007"></a>01007 cpl_msg_indent_less() ;
-<a name="l01008"></a>01008 <span class="keywordflow">return</span> NULL ;
-<a name="l01009"></a>01009 }
-<a name="l01010"></a>01010 <span class="keywordflow">if</span> (in_sky) cpl_imagelist_delete(in_sky) ;
-<a name="l01011"></a>01011 cpl_msg_indent_less() ;
-<a name="l01012"></a>01012
-<a name="l01013"></a>01013 <span class="comment">/* Apply the shift and add */</span>
-<a name="l01014"></a>01014 cpl_msg_info(cpl_func, <span class="stringliteral">"Shift and stacking"</span>) ;
-<a name="l01015"></a>01015 cpl_msg_indent_more() ;
-<a name="l01016"></a>01016 comb_chip = hawki_sci_jitter_saa(&in, selected_offsets,
-<a name="l01017"></a>01017 &(hawki_sci_jitter_output.combined_pos_x[idet]),
-<a name="l01018"></a>01018 &(hawki_sci_jitter_output.combined_pos_y[idet])) ;
-<a name="l01019"></a>01019 hawki_sci_jitter_output.combined_cumoffset_x[idet] =
-<a name="l01020"></a>01020 hawki_sci_jitter_output.combined_pos_x[idet] - off_0_x;
-<a name="l01021"></a>01021 hawki_sci_jitter_output.combined_cumoffset_y[idet] =
-<a name="l01022"></a>01022 hawki_sci_jitter_output.combined_pos_y[idet] - off_0_y;
-<a name="l01023"></a>01023 <span class="keywordflow">if</span> (comb_chip == NULL) {
-<a name="l01024"></a>01024 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot apply the shift and add"</span>) ;
-<a name="l01025"></a>01025 cpl_imagelist_delete(in) ;
-<a name="l01026"></a>01026 cpl_free(combined) ;
-<a name="l01027"></a>01027 cpl_bivector_delete(offsets) ;
-<a name="l01028"></a>01028 cpl_msg_indent_less() ;
-<a name="l01029"></a>01029 cpl_msg_indent_less() ;
-<a name="l01030"></a>01030 <span class="keywordflow">return</span> NULL ;
-<a name="l01031"></a>01031 }
-<a name="l01032"></a>01032 cpl_imagelist_delete(in) ;
-<a name="l01033"></a>01033 cpl_msg_indent_less() ;
-<a name="l01034"></a>01034
-<a name="l01035"></a>01035 <span class="comment">/* Put the results in the image list */</span>
-<a name="l01036"></a>01036 combined[idet] = comb_chip[0] ;
-<a name="l01037"></a>01037 cpl_image_delete(comb_chip[1]) ;
-<a name="l01038"></a>01038 cpl_free(comb_chip) ;
-<a name="l01039"></a>01039 cpl_msg_indent_less() ;
-<a name="l01040"></a>01040
-<a name="l01041"></a>01041 <span class="comment">/* Free */</span>
-<a name="l01042"></a>01042 cpl_frameset_delete(selected_jitter);
-<a name="l01043"></a>01043 cpl_bivector_delete(selected_offsets);
-<a name="l01044"></a>01044 }
-<a name="l01045"></a>01045 cpl_bivector_delete(offsets) ;
-<a name="l01046"></a>01046
-<a name="l01047"></a>01047 <span class="keywordflow">return</span> combined ;
-<a name="l01048"></a>01048 }
-<a name="l01049"></a>01049
-<a name="l01050"></a>01050 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01057"></a>01057 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01058"></a>01058 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_sky
-<a name="l01059"></a>01059 (cpl_imagelist * objs,
-<a name="l01060"></a>01060 cpl_imagelist * skys,
-<a name="l01061"></a>01061 cpl_table ** bkg_stats,
-<a name="l01062"></a>01062 <span class="keywordtype">int</span> idet)
-<a name="l01063"></a>01063 {
-<a name="l01064"></a>01064 cpl_image * sky ;
-<a name="l01065"></a>01065 <span class="keywordtype">int</span> nframes;
-<a name="l01066"></a>01066 <span class="keywordtype">double</span> median ;
-<a name="l01067"></a>01067 cpl_image * cur_ima ;
-<a name="l01068"></a>01068 <span class="keywordtype">int</span> i ;
-<a name="l01069"></a>01069
-<a name="l01070"></a>01070 <span class="comment">/* Initialise */</span>
-<a name="l01071"></a>01071 nframes = cpl_imagelist_get_size(objs) ;
-<a name="l01072"></a>01072
-<a name="l01073"></a>01073 <span class="comment">/* Compute the sky frame */</span>
-<a name="l01074"></a>01074 <span class="keywordflow">if</span> (skys != NULL) {
-<a name="l01075"></a>01075 cpl_msg_info(cpl_func, <span class="stringliteral">"Median of sky images"</span>) ;
-<a name="l01076"></a>01076 <span class="comment">/* Use sky images */</span>
-<a name="l01077"></a>01077 <span class="keywordflow">if</span> ((sky = cpl_imagelist_collapse_median_create(skys)) == NULL) {
-<a name="l01078"></a>01078 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot compute the median of sky images"</span>) ;
-<a name="l01079"></a>01079 <span class="keywordflow">return</span> -1;
-<a name="l01080"></a>01080 }
-<a name="l01081"></a>01081
-<a name="l01082"></a>01082 <span class="comment">/* Statistics on the background */</span>
-<a name="l01083"></a>01083 <span class="keywordflow">if</span>(bkg_stats != NULL)
-<a name="l01084"></a>01084 {
-<a name="l01085"></a>01085 cpl_table_set_size(bkg_stats[idet], 1);
-<a name="l01086"></a>01086 <a class="code" href="group__hawki__image__stats.html#gaddd6e9623519487c0775de8c3a0aee0f" title="Fills a table with the statistics of an image.">hawki_image_stats_fill_from_image</a>
-<a name="l01087"></a>01087 (bkg_stats, sky,
-<a name="l01088"></a>01088 1,
-<a name="l01089"></a>01089 1,
-<a name="l01090"></a>01090 cpl_image_get_size_x(sky),
-<a name="l01091"></a>01091 cpl_image_get_size_y(sky),
-<a name="l01092"></a>01092 idet, 0);
-<a name="l01093"></a>01093 }
-<a name="l01094"></a>01094
-<a name="l01095"></a>01095 <span class="comment">/* Correct the objects images */</span>
-<a name="l01096"></a>01096 <span class="keywordflow">if</span> (cpl_imagelist_subtract_image(objs, sky) != CPL_ERROR_NONE) {
-<a name="l01097"></a>01097 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot corr. the obj images from the sky"</span>);
-<a name="l01098"></a>01098 cpl_image_delete(sky) ;
-<a name="l01099"></a>01099 <span class="keywordflow">return</span> -1;
-<a name="l01100"></a>01100 }
-<a name="l01101"></a>01101 cpl_image_delete(sky) ;
-<a name="l01102"></a>01102 <span class="comment">/* Normalise the object planes */</span>
-<a name="l01103"></a>01103 <span class="keywordflow">for</span> (i=0 ; i<nframes ; i++) {
-<a name="l01104"></a>01104 cur_ima = cpl_imagelist_get(objs, i) ;
-<a name="l01105"></a>01105 median = cpl_image_get_median(cur_ima) ;
-<a name="l01106"></a>01106 cpl_image_subtract_scalar(cur_ima, median) ;
-<a name="l01107"></a>01107 }
-<a name="l01108"></a>01108 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (hawki_sci_jitter_config.sky_minnb > nframes) {
-<a name="l01109"></a>01109 cpl_msg_info(cpl_func, <span class="stringliteral">"Median of object images"</span>) ;
-<a name="l01110"></a>01110 <span class="comment">/* Use objs images */</span>
-<a name="l01111"></a>01111 <span class="keywordflow">if</span> ((sky = cpl_imagelist_collapse_median_create(objs)) == NULL) {
-<a name="l01112"></a>01112 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot compute the median of obj images"</span>) ;
-<a name="l01113"></a>01113 <span class="keywordflow">return</span> -1;
-<a name="l01114"></a>01114 }
-<a name="l01115"></a>01115
-<a name="l01116"></a>01116 <span class="comment">/* Statistics on the background */</span>
-<a name="l01117"></a>01117 <span class="keywordflow">if</span>(bkg_stats != NULL)
-<a name="l01118"></a>01118 {
-<a name="l01119"></a>01119 cpl_table_set_size(bkg_stats[idet], 1);
-<a name="l01120"></a>01120 <a class="code" href="group__hawki__image__stats.html#gaddd6e9623519487c0775de8c3a0aee0f" title="Fills a table with the statistics of an image.">hawki_image_stats_fill_from_image</a>
-<a name="l01121"></a>01121 (bkg_stats, sky,
-<a name="l01122"></a>01122 1,
-<a name="l01123"></a>01123 1,
-<a name="l01124"></a>01124 cpl_image_get_size_x(sky),
-<a name="l01125"></a>01125 cpl_image_get_size_y(sky),
-<a name="l01126"></a>01126 idet, 0);
-<a name="l01127"></a>01127 }
-<a name="l01128"></a>01128
-<a name="l01129"></a>01129 <span class="comment">/* Correct the objects images */</span>
-<a name="l01130"></a>01130 <span class="keywordflow">if</span> (cpl_imagelist_subtract_image(objs, sky) != CPL_ERROR_NONE) {
-<a name="l01131"></a>01131 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot corr. the obj images from the sky"</span>);
-<a name="l01132"></a>01132 cpl_image_delete(sky) ;
-<a name="l01133"></a>01133 <span class="keywordflow">return</span> -1;
-<a name="l01134"></a>01134 }
-<a name="l01135"></a>01135 <span class="comment">/* Normalise the object planes */</span>
-<a name="l01136"></a>01136 <span class="keywordflow">for</span> (i=0 ; i<nframes ; i++) {
-<a name="l01137"></a>01137 cur_ima = cpl_imagelist_get(objs, i) ;
-<a name="l01138"></a>01138 median = cpl_image_get_median(cur_ima) ;
-<a name="l01139"></a>01139 cpl_image_subtract_scalar(cur_ima, median) ;
-<a name="l01140"></a>01140 }
-<a name="l01141"></a>01141 <span class="comment">/* Delete sky image */</span>
-<a name="l01142"></a>01142 cpl_image_delete(sky) ;
-<a name="l01143"></a>01143 } <span class="keywordflow">else</span> {
-<a name="l01144"></a>01144 cpl_msg_info(cpl_func, <span class="stringliteral">"Computing running median on jitter images"</span>) ;
-<a name="l01145"></a>01145 <span class="comment">/* Use objects images */</span>
-<a name="l01146"></a>01146 <span class="keywordflow">if</span> (hawki_sci_jitter_sky_running(objs, bkg_stats, idet) == -1)
-<a name="l01147"></a>01147 {
-<a name="l01148"></a>01148 cpl_msg_error(cpl_func,
-<a name="l01149"></a>01149 <span class="stringliteral">"Cannot apply the running median"</span>);
-<a name="l01150"></a>01150 <span class="keywordflow">return</span> -1;
-<a name="l01151"></a>01151 }
-<a name="l01152"></a>01152 }
-<a name="l01153"></a>01153 <span class="keywordflow">return</span> 0;
-<a name="l01154"></a>01154 }
-<a name="l01155"></a>01155
-<a name="l01156"></a>01156 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01175"></a>01175 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01176"></a>01176 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_sky_running
-<a name="l01177"></a>01177 (cpl_imagelist * in,
-<a name="l01178"></a>01178 cpl_table ** bkg_stats,
-<a name="l01179"></a>01179 <span class="keywordtype">int</span> idet)
-<a name="l01180"></a>01180 {
-<a name="l01181"></a>01181 <span class="keywordtype">int</span> rejmin, rejmax, halfw;
-<a name="l01182"></a>01182 cpl_imagelist * result_buffer;
-<a name="l01183"></a>01183 <span class="keywordtype">int</span> ni, nx, ny;
-<a name="l01184"></a>01184 cpl_vector * medians;
-<a name="l01185"></a>01185 cpl_image * cur_ima;
-<a name="l01186"></a>01186 cpl_image * tmp_ima;
-<a name="l01187"></a>01187 <span class="keywordtype">double</span> one_med;
-<a name="l01188"></a>01188 <span class="keywordtype">int</span> i, k;
-<a name="l01189"></a>01189 <span class="keywordtype">int</span> first_buffered = 0;
-<a name="l01190"></a>01190 <span class="keywordtype">int</span> next_not_to_be_used;
-<a name="l01191"></a>01191
-<a name="l01192"></a>01192 <span class="comment">/* Test entries */</span>
-<a name="l01193"></a>01193 <span class="keywordflow">if</span> (in==NULL) <span class="keywordflow">return</span> -1;
-<a name="l01194"></a>01194
-<a name="l01195"></a>01195 <span class="comment">/* Initialise */</span>
-<a name="l01196"></a>01196 rejmin = hawki_sci_jitter_config.sky_rejmin ;
-<a name="l01197"></a>01197 rejmax = hawki_sci_jitter_config.sky_rejmax ;
-<a name="l01198"></a>01198 halfw = hawki_sci_jitter_config.sky_halfw ;
-<a name="l01199"></a>01199 ni = cpl_imagelist_get_size(in) ;
-<a name="l01200"></a>01200 cur_ima = cpl_imagelist_get(in, 0) ;
-<a name="l01201"></a>01201 nx = cpl_image_get_size_x(cur_ima) ;
-<a name="l01202"></a>01202 ny = cpl_image_get_size_y(cur_ima) ;
-<a name="l01203"></a>01203
-<a name="l01204"></a>01204 <span class="comment">/* Tests on validity of rejection parameters */</span>
-<a name="l01205"></a>01205 <span class="keywordflow">if</span> (((rejmin+rejmax)>=halfw) || (halfw<1) || (rejmin<0) || (rejmax<0)) {
-<a name="l01206"></a>01206 cpl_msg_error(cpl_func, <span class="stringliteral">"cannot run filter with rej parms %d (%d-%d)"</span>,
-<a name="l01207"></a>01207 halfw, rejmin, rejmax);
-<a name="l01208"></a>01208 <span class="keywordflow">return</span> -1;
-<a name="l01209"></a>01209 }
-<a name="l01210"></a>01210 <span class="comment">/* Pre-compute median value in each plane */</span>
-<a name="l01211"></a>01211 medians = cpl_vector_new(ni) ;
-<a name="l01212"></a>01212 <span class="keywordflow">for</span> (i=0 ; i<ni ; i++) {
-<a name="l01213"></a>01213 cur_ima = cpl_imagelist_get(in, i) ;
-<a name="l01214"></a>01214 cpl_vector_set(medians, i, cpl_image_get_median(cur_ima)) ;
-<a name="l01215"></a>01215 }
-<a name="l01216"></a>01216 <span class="comment">/* Allocate output cube */</span>
-<a name="l01217"></a>01217 result_buffer = cpl_imagelist_new() ;
-<a name="l01218"></a>01218
-<a name="l01219"></a>01219 <span class="comment">/* Allocate output bg stats */</span>
-<a name="l01220"></a>01220 cpl_table_set_size(bkg_stats[idet], ni);
-<a name="l01221"></a>01221
-<a name="l01222"></a>01222 <span class="comment">/* Main loop over input planes */</span>
-<a name="l01223"></a>01223 <span class="keywordflow">for</span> (k=0 ; k<ni ; k++)
-<a name="l01224"></a>01224 {
-<a name="l01225"></a>01225 cpl_image * bkg;
-<a name="l01226"></a>01226
-<a name="l01227"></a>01227 <span class="comment">/* Create the background image, to later compute stats */</span>
-<a name="l01228"></a>01228 bkg = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
-<a name="l01229"></a>01229
-<a name="l01230"></a>01230 <a class="code" href="group__hawki__image__stats.html#ga5c5f3ead9c1f168f90e1b8bd42dd07af" title="Computes the running mean for a set of object images using their masks.">hawki_bkg_from_running_mean_detector</a>
-<a name="l01231"></a>01231 (in, medians, k, halfw, rejmin, rejmax, bkg);
+<a name="l00397"></a>00397 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00398"></a>00398 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00399"></a>00399 recipe = (cpl_recipe *)plugin ;
+<a name="l00400"></a>00400 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00401"></a>00401
+<a name="l00402"></a>00402 cpl_parameterlist_delete(recipe->parameters) ;
+<a name="l00403"></a>00403 <span class="keywordflow">return</span> 0 ;
+<a name="l00404"></a>00404 }
+<a name="l00405"></a>00405
+<a name="l00406"></a>00406 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00413"></a>00413 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00414"></a>00414 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter(
+<a name="l00415"></a>00415 cpl_parameterlist * parlist,
+<a name="l00416"></a>00416 cpl_frameset * framelist)
+<a name="l00417"></a>00417 {
+<a name="l00418"></a>00418 <span class="keyword">const</span> <span class="keywordtype">char</span> * flat;
+<a name="l00419"></a>00419 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark;
+<a name="l00420"></a>00420 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm;
+<a name="l00421"></a>00421 <span class="keyword">const</span> cpl_frame * distx;
+<a name="l00422"></a>00422 <span class="keyword">const</span> cpl_frame * disty;
+<a name="l00423"></a>00423 cpl_frameset * jitterframes ;
+<a name="l00424"></a>00424 cpl_frameset * skyframes ;
+<a name="l00425"></a>00425 cpl_frameset * science_frames;
+<a name="l00426"></a>00426 cpl_frameset * calib_frames;
+<a name="l00427"></a>00427 cpl_image ** combined ;
+<a name="l00428"></a>00428 cpl_table ** obj_charac;
+<a name="l00429"></a>00429 cpl_table ** raw_jitter_stats;
+<a name="l00430"></a>00430 cpl_table ** bkg_stats;
+<a name="l00431"></a>00431 cpl_table * raw_obj_tel_info;
+<a name="l00432"></a>00432 cpl_image * stitched ;
+<a name="l00433"></a>00433 <span class="keywordtype">int</span> i;
+<a name="l00434"></a>00434
+<a name="l00435"></a>00435 <span class="comment">/* Initialise */</span>
+<a name="l00436"></a>00436 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00437"></a>00437 {
+<a name="l00438"></a>00438 hawki_sci_jitter_output.iq[i] = -1.0 ;
+<a name="l00439"></a>00439 hawki_sci_jitter_output.nbobjs[i] = -1 ;
+<a name="l00440"></a>00440 hawki_sci_jitter_output.fwhm_pix[i] = -1.0 ;
+<a name="l00441"></a>00441 hawki_sci_jitter_output.fwhm_arcsec[i] = -1.0 ;
+<a name="l00442"></a>00442 hawki_sci_jitter_output.fwhm_mode[i] = -1.0 ;
+<a name="l00443"></a>00443 hawki_sci_jitter_output.combined_pos_x[i] = -1.0 ;
+<a name="l00444"></a>00444 hawki_sci_jitter_output.combined_pos_y[i] = -1.0 ;
+<a name="l00445"></a>00445 hawki_sci_jitter_output.combined_cumoffset_x[i] = -1.0 ;
+<a name="l00446"></a>00446 hawki_sci_jitter_output.combined_cumoffset_y[i] = -1.0 ;
+<a name="l00447"></a>00447 }
+<a name="l00448"></a>00448 hawki_sci_jitter_output.pixscale = -1.0 ;
+<a name="l00449"></a>00449 hawki_sci_jitter_output.dit = -1.0 ;
+<a name="l00450"></a>00450 hawki_sci_jitter_config.offsets = NULL ;
+<a name="l00451"></a>00451 hawki_sci_jitter_config.objects = NULL ;
+<a name="l00452"></a>00452 calib_frames = cpl_frameset_new();
+<a name="l00453"></a>00453
+<a name="l00454"></a>00454 <span class="comment">/* Retrieve input parameters */</span>
+<a name="l00455"></a>00455 <span class="keywordflow">if</span>(hawki_sci_jitter_retrieve_input_param(parlist))
+<a name="l00456"></a>00456 {
+<a name="l00457"></a>00457 cpl_msg_error(cpl_func, <span class="stringliteral">"Wrong parameters"</span>);
+<a name="l00458"></a>00458 cpl_frameset_delete(calib_frames);
+<a name="l00459"></a>00459 <span class="keywordflow">return</span> -1;
+<a name="l00460"></a>00460 }
+<a name="l00461"></a>00461
+<a name="l00462"></a>00462 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
+<a name="l00463"></a>00463 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist)) {
+<a name="l00464"></a>00464 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
+<a name="l00465"></a>00465 cpl_frameset_delete(calib_frames);
+<a name="l00466"></a>00466 <span class="keywordflow">return</span> -1 ;
+<a name="l00467"></a>00467 }
+<a name="l00468"></a>00468
+<a name="l00469"></a>00469 <span class="comment">/* Retrieve calibration data */</span>
+<a name="l00470"></a>00470 flat = <a class="code" href="group__hawki__utils.html#ga0ee9f37ad441f9fcc16865b34f9459a9" title="Extract the filename ffor the first frame of the given tag.">hawki_extract_first_filename</a>(framelist, HAWKI_CALPRO_FLAT) ;
+<a name="l00471"></a>00471 dark = <a class="code" href="group__hawki__utils.html#ga0ee9f37ad441f9fcc16865b34f9459a9" title="Extract the filename ffor the first frame of the given tag.">hawki_extract_first_filename</a>(framelist, HAWKI_CALPRO_DARK);
+<a name="l00472"></a>00472 bpm = <a class="code" href="group__hawki__utils.html#ga0ee9f37ad441f9fcc16865b34f9459a9" title="Extract the filename ffor the first frame of the given tag.">hawki_extract_first_filename</a>(framelist, HAWKI_CALPRO_BPM) ;
+<a name="l00473"></a>00473 distx = cpl_frameset_find_const(framelist, HAWKI_CALPRO_DISTORTION_X);
+<a name="l00474"></a>00474 disty = cpl_frameset_find_const(framelist, HAWKI_CALPRO_DISTORTION_Y);
+<a name="l00475"></a>00475 <span class="keywordflow">if</span>((distx == NULL && disty !=NULL) || (distx != NULL && disty ==NULL))
+<a name="l00476"></a>00476 {
+<a name="l00477"></a>00477 cpl_msg_error(cpl_func, <span class="stringliteral">"Both distortion in X (%s) and Y (%s) must be provided"</span>,
+<a name="l00478"></a>00478 HAWKI_CALPRO_DISTORTION_X, HAWKI_CALPRO_DISTORTION_Y);
+<a name="l00479"></a>00479 cpl_frameset_delete(calib_frames);
+<a name="l00480"></a>00480 <span class="keywordflow">return</span> -1 ;
+<a name="l00481"></a>00481 }
+<a name="l00482"></a>00482 <span class="keywordflow">if</span>(flat)
+<a name="l00483"></a>00483 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(
+<a name="l00484"></a>00484 cpl_frameset_find_const(framelist, HAWKI_CALPRO_FLAT)));
+<a name="l00485"></a>00485 <span class="keywordflow">if</span>(dark)
+<a name="l00486"></a>00486 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(
+<a name="l00487"></a>00487 cpl_frameset_find_const(framelist, HAWKI_CALPRO_DARK)));
+<a name="l00488"></a>00488 <span class="keywordflow">if</span>(bpm)
+<a name="l00489"></a>00489 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(
+<a name="l00490"></a>00490 cpl_frameset_find_const(framelist, HAWKI_CALPRO_BPM)));
+<a name="l00491"></a>00491 <span class="keywordflow">if</span>(distx)
+<a name="l00492"></a>00492 {
+<a name="l00493"></a>00493 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(distx));
+<a name="l00494"></a>00494 cpl_frameset_insert(calib_frames, cpl_frame_duplicate(disty));
+<a name="l00495"></a>00495 }
+<a name="l00496"></a>00496
+<a name="l00497"></a>00497
+<a name="l00498"></a>00498 <span class="comment">/* Retrieve raw frames */</span>
+<a name="l00499"></a>00499 jitterframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_IMG_JITTER_RAW) ;
+<a name="l00500"></a>00500 <span class="keywordflow">if</span> (jitterframes == NULL) {
+<a name="l00501"></a>00501 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot find jitter frames in the input list (%s)"</span>,
+<a name="l00502"></a>00502 HAWKI_IMG_JITTER_RAW);
+<a name="l00503"></a>00503 cpl_frameset_delete(calib_frames);
+<a name="l00504"></a>00504 <span class="keywordflow">return</span> -1 ;
+<a name="l00505"></a>00505 }
+<a name="l00506"></a>00506 science_frames = cpl_frameset_duplicate(jitterframes);
+<a name="l00507"></a>00507 skyframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_IMG_JITTER_SKY_RAW) ;
+<a name="l00508"></a>00508 <span class="keywordflow">if</span> (skyframes != NULL)
+<a name="l00509"></a>00509 {
+<a name="l00510"></a>00510 <span class="keywordtype">int</span> isky;
+<a name="l00511"></a>00511 <span class="keywordflow">for</span>(isky = 0; isky< cpl_frameset_get_size(skyframes); ++isky)
+<a name="l00512"></a>00512 cpl_frameset_insert(science_frames,
+<a name="l00513"></a>00513 cpl_frame_duplicate(cpl_frameset_get_frame(skyframes, isky)));
+<a name="l00514"></a>00514 }
+<a name="l00515"></a>00515
+<a name="l00516"></a>00516 <span class="comment">/* Create the statistics table */</span>
+<a name="l00517"></a>00517 raw_jitter_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table *));
+<a name="l00518"></a>00518 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00519"></a>00519 {
+<a name="l00520"></a>00520 raw_jitter_stats[i] = cpl_table_new(cpl_frameset_get_size(jitterframes));
+<a name="l00521"></a>00521 }
+<a name="l00522"></a>00522 <a class="code" href="group__hawki__image__stats.html#ga788a4b7f6fba705eddcebd1f2fe26fd6" title="Initialize the table with all the statistics columns.">hawki_image_stats_initialize</a>(raw_jitter_stats);
+<a name="l00523"></a>00523 bkg_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table *));
+<a name="l00524"></a>00524 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00525"></a>00525 {
+<a name="l00526"></a>00526 bkg_stats[i] = cpl_table_new(cpl_frameset_get_size(jitterframes));
+<a name="l00527"></a>00527 }
+<a name="l00528"></a>00528 <a class="code" href="group__hawki__image__stats.html#ga788a4b7f6fba705eddcebd1f2fe26fd6" title="Initialize the table with all the statistics columns.">hawki_image_stats_initialize</a>(bkg_stats);
+<a name="l00529"></a>00529
+<a name="l00530"></a>00530 <span class="comment">/* Create the telescope statistics parameters from the raw images */</span>
+<a name="l00531"></a>00531 raw_obj_tel_info = cpl_table_new(cpl_frameset_get_size(jitterframes));
+<a name="l00532"></a>00532 <span class="comment">/* Add the proper columns of the pcs table */</span>
+<a name="l00533"></a>00533 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__properties__tel.html#ga2895d7c995564a2bbbdcab5c195cfac9" title="Initialize the table with all the telescope data columns.">hawki_prop_tel_initialize</a>(raw_obj_tel_info))
+<a name="l00534"></a>00534 {
+<a name="l00535"></a>00535 cpl_msg_error(cpl_func,<span class="stringliteral">"Could not initialize the pcs table"</span>);
+<a name="l00536"></a>00536 cpl_frameset_delete(jitterframes) ;
+<a name="l00537"></a>00537 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00538"></a>00538 {
+<a name="l00539"></a>00539 cpl_table_delete(raw_jitter_stats[i]) ;
+<a name="l00540"></a>00540 cpl_table_delete(bkg_stats[i]) ;
+<a name="l00541"></a>00541 }
+<a name="l00542"></a>00542 cpl_free(raw_jitter_stats) ;
+<a name="l00543"></a>00543 cpl_free(bkg_stats) ;
+<a name="l00544"></a>00544 cpl_table_delete(raw_obj_tel_info);
+<a name="l00545"></a>00545 <span class="keywordflow">if</span> (skyframes) cpl_frameset_delete(skyframes) ;
+<a name="l00546"></a>00546 cpl_frameset_delete(calib_frames);
+<a name="l00547"></a>00547 cpl_msg_indent_less() ;
+<a name="l00548"></a>00548 <span class="keywordflow">return</span> -1;
+<a name="l00549"></a>00549 }
+<a name="l00550"></a>00550
+<a name="l00551"></a>00551 <span class="comment">/* Do the algorithms that need the whole image */</span>
+<a name="l00552"></a>00552 hawki_sci_jitter_whole_image_algo(jitterframes,
+<a name="l00553"></a>00553 raw_jitter_stats,
+<a name="l00554"></a>00554 raw_obj_tel_info,
+<a name="l00555"></a>00555 parlist,
+<a name="l00556"></a>00556 framelist);
+<a name="l00557"></a>00557
+<a name="l00558"></a>00558 <span class="comment">/* Apply the reduction */</span>
+<a name="l00559"></a>00559 <span class="comment">/* Do the algorithms that can be applied to subsection of the images */</span>
+<a name="l00560"></a>00560 cpl_msg_info(cpl_func, <span class="stringliteral">"Apply the data combination"</span>) ;
+<a name="l00561"></a>00561 cpl_msg_indent_more() ;
+<a name="l00562"></a>00562 <span class="keywordflow">if</span> ((combined = hawki_sci_jitter_reduce(jitterframes, skyframes, flat, dark,
+<a name="l00563"></a>00563 bpm, bkg_stats)) == NULL)
+<a name="l00564"></a>00564 {
+<a name="l00565"></a>00565 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot recombine the data"</span>);
+<a name="l00566"></a>00566 cpl_frameset_delete(jitterframes);
+<a name="l00567"></a>00567 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00568"></a>00568 {
+<a name="l00569"></a>00569 cpl_table_delete(raw_jitter_stats[i]) ;
+<a name="l00570"></a>00570 cpl_table_delete(bkg_stats[i]) ;
+<a name="l00571"></a>00571 }
+<a name="l00572"></a>00572 cpl_free(raw_jitter_stats) ;
+<a name="l00573"></a>00573 cpl_free(bkg_stats) ;
+<a name="l00574"></a>00574 cpl_table_delete(raw_obj_tel_info);
+<a name="l00575"></a>00575 <span class="keywordflow">if</span> (skyframes) cpl_frameset_delete(skyframes) ;
+<a name="l00576"></a>00576 cpl_frameset_delete(calib_frames);
+<a name="l00577"></a>00577 cpl_msg_indent_less() ;
+<a name="l00578"></a>00578 <span class="keywordflow">return</span> -1 ;
+<a name="l00579"></a>00579 }
+<a name="l00580"></a>00580 cpl_msg_indent_less() ;
+<a name="l00581"></a>00581
+<a name="l00582"></a>00582 <span class="comment">/* Compute QC parameters from the combined image */</span>
+<a name="l00583"></a>00583 cpl_msg_info(cpl_func, <span class="stringliteral">"Compute QC parameters from the combined images"</span>) ;
+<a name="l00584"></a>00584 cpl_msg_indent_more() ;
+<a name="l00585"></a>00585 obj_charac = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table*)) ;
+<a name="l00586"></a>00586 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00587"></a>00587 {
+<a name="l00588"></a>00588 obj_charac[i] = cpl_table_new(0);
+<a name="l00589"></a>00589 }
+<a name="l00590"></a>00590 <span class="keywordflow">if</span> ((hawki_sci_jitter_qc(jitterframes, combined, obj_charac)) != 0)
+<a name="l00591"></a>00591 {
+<a name="l00592"></a>00592 cpl_msg_warning(cpl_func, <span class="stringliteral">"Cannot compute all parameters"</span>) ;
+<a name="l00593"></a>00593 }
+<a name="l00594"></a>00594 cpl_msg_indent_less();
+<a name="l00595"></a>00595 cpl_frameset_delete(jitterframes);
+<a name="l00596"></a>00596 <span class="keywordflow">if</span> (skyframes) cpl_frameset_delete(skyframes);
+<a name="l00597"></a>00597
+<a name="l00598"></a>00598
+<a name="l00599"></a>00599 <span class="comment">/* Correct for the distortion */</span>
+<a name="l00600"></a>00600 <span class="keywordflow">if</span> (distx && disty)
+<a name="l00601"></a>00601 {
+<a name="l00602"></a>00602 cpl_msg_info(cpl_func, <span class="stringliteral">"Applying the distortion correction"</span>) ;
+<a name="l00603"></a>00603 cpl_msg_indent_more() ;
+<a name="l00604"></a>00604 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__distortion.html#ga52da9acfab98a1592e65df9c6bfba484" title="Apply the distortion correction.">hawki_distortion_correct_alldetectors</a>(combined, distx, disty) == -1)
+<a name="l00605"></a>00605 {
+<a name="l00606"></a>00606 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot correct the distortion"</span>) ;
+<a name="l00607"></a>00607 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00608"></a>00608 cpl_image_delete(combined[i]) ;
+<a name="l00609"></a>00609 cpl_free(combined) ;
+<a name="l00610"></a>00610 <span class="keywordflow">if</span> (obj_charac) {
+<a name="l00611"></a>00611 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00612"></a>00612 cpl_table_delete(obj_charac[i]) ;
+<a name="l00613"></a>00613 cpl_free(obj_charac);
+<a name="l00614"></a>00614 }
+<a name="l00615"></a>00615 cpl_table_delete(raw_obj_tel_info);
+<a name="l00616"></a>00616 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00617"></a>00617 {
+<a name="l00618"></a>00618 cpl_table_delete(raw_jitter_stats[i]);
+<a name="l00619"></a>00619 cpl_table_delete(bkg_stats[i]);
+<a name="l00620"></a>00620 }
+<a name="l00621"></a>00621 cpl_free(raw_jitter_stats);
+<a name="l00622"></a>00622 cpl_free(bkg_stats);
+<a name="l00623"></a>00623 cpl_frameset_delete(calib_frames);
+<a name="l00624"></a>00624 cpl_frameset_delete(science_frames);
+<a name="l00625"></a>00625 cpl_msg_indent_less() ;
+<a name="l00626"></a>00626 <span class="keywordflow">return</span> -1;
+<a name="l00627"></a>00627 }
+<a name="l00628"></a>00628 cpl_msg_indent_less() ;
+<a name="l00629"></a>00629 }
+<a name="l00630"></a>00630
+<a name="l00631"></a>00631 <span class="comment">/* Compute the stitched image */</span>
+<a name="l00632"></a>00632 cpl_msg_info(cpl_func, <span class="stringliteral">"Compute the stiched image"</span>) ;
+<a name="l00633"></a>00633 <span class="keywordflow">if</span> ((stitched = <a class="code" href="group__hawki__utils.html#ga7f6d3694df0e3a441b20267a1e5894db" title="Apply the stitching.">hawki_images_stitch</a>(combined,
+<a name="l00634"></a>00634 hawki_sci_jitter_output.combined_pos_x,
+<a name="l00635"></a>00635 hawki_sci_jitter_output.combined_pos_y)) == NULL)
+<a name="l00636"></a>00636 {
+<a name="l00637"></a>00637 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot stitch the images"</span>) ;
+<a name="l00638"></a>00638 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00639"></a>00639 cpl_image_delete(combined[i]) ;
+<a name="l00640"></a>00640 cpl_free(combined) ;
+<a name="l00641"></a>00641 <span class="keywordflow">if</span> (obj_charac) {
+<a name="l00642"></a>00642 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00643"></a>00643 cpl_table_delete(obj_charac[i]) ;
+<a name="l00644"></a>00644 cpl_free(obj_charac);
+<a name="l00645"></a>00645 }
+<a name="l00646"></a>00646 cpl_table_delete(raw_obj_tel_info);
+<a name="l00647"></a>00647 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00648"></a>00648 {
+<a name="l00649"></a>00649 cpl_table_delete(raw_jitter_stats[i]);
+<a name="l00650"></a>00650 cpl_table_delete(bkg_stats[i]);
+<a name="l00651"></a>00651 }
+<a name="l00652"></a>00652 cpl_free(raw_jitter_stats);
+<a name="l00653"></a>00653 cpl_free(bkg_stats);
+<a name="l00654"></a>00654 cpl_frameset_delete(calib_frames);
+<a name="l00655"></a>00655 cpl_frameset_delete(science_frames);
+<a name="l00656"></a>00656 <span class="keywordflow">return</span> -1;
+<a name="l00657"></a>00657 }
+<a name="l00658"></a>00658
+<a name="l00659"></a>00659 <span class="comment">/* Save the products */</span>
+<a name="l00660"></a>00660 cpl_msg_info(cpl_func, <span class="stringliteral">"Save the products"</span>) ;
+<a name="l00661"></a>00661 cpl_msg_indent_more() ;
+<a name="l00662"></a>00662 <span class="keywordflow">if</span> (hawki_sci_jitter_save(combined, stitched, obj_charac,
+<a name="l00663"></a>00663 raw_jitter_stats, bkg_stats,
+<a name="l00664"></a>00664 raw_obj_tel_info,
+<a name="l00665"></a>00665 science_frames,
+<a name="l00666"></a>00666 calib_frames,
+<a name="l00667"></a>00667 parlist, framelist) == -1)
+<a name="l00668"></a>00668 cpl_msg_warning(cpl_func,<span class="stringliteral">"Some data could not be saved. "</span>
+<a name="l00669"></a>00669 <span class="stringliteral">"Check permisions or disk space"</span>);
+<a name="l00670"></a>00670
+<a name="l00671"></a>00671 <span class="comment">/* Return */</span>
+<a name="l00672"></a>00672 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00673"></a>00673 cpl_image_delete(combined[i]) ;
+<a name="l00674"></a>00674 cpl_free(combined) ;
+<a name="l00675"></a>00675 <span class="keywordflow">if</span> (obj_charac) {
+<a name="l00676"></a>00676 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00677"></a>00677 cpl_table_delete(obj_charac[i]) ;
+<a name="l00678"></a>00678 cpl_free(obj_charac);
+<a name="l00679"></a>00679 }
+<a name="l00680"></a>00680 <span class="keywordflow">if</span> (stitched) cpl_image_delete(stitched) ;
+<a name="l00681"></a>00681 cpl_table_delete(raw_obj_tel_info);
+<a name="l00682"></a>00682 <span class="keywordflow">for</span>( i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00683"></a>00683 {
+<a name="l00684"></a>00684 cpl_table_delete(raw_jitter_stats[i]);
+<a name="l00685"></a>00685 cpl_table_delete(bkg_stats[i]);
+<a name="l00686"></a>00686 }
+<a name="l00687"></a>00687 cpl_free(raw_jitter_stats);
+<a name="l00688"></a>00688 cpl_free(bkg_stats);
+<a name="l00689"></a>00689 cpl_frameset_delete(calib_frames);
+<a name="l00690"></a>00690 cpl_frameset_delete(science_frames);
+<a name="l00691"></a>00691 cpl_msg_indent_less() ;
+<a name="l00692"></a>00692
+<a name="l00693"></a>00693 <span class="comment">/* Return */</span>
+<a name="l00694"></a>00694 <span class="keywordflow">if</span> (cpl_error_get_code())
+<a name="l00695"></a>00695 {
+<a name="l00696"></a>00696 cpl_msg_error(cpl_func,
+<a name="l00697"></a>00697 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
+<a name="l00698"></a>00698 <span class="keywordflow">return</span> -1 ;
+<a name="l00699"></a>00699 }
+<a name="l00700"></a>00700 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
+<a name="l00701"></a>00701 }
+<a name="l00702"></a>00702
+<a name="l00703"></a>00703 <span class="keywordtype">int</span> hawki_sci_jitter_retrieve_input_param
+<a name="l00704"></a>00704 (cpl_parameterlist * parlist)
+<a name="l00705"></a>00705 {
+<a name="l00706"></a>00706 cpl_parameter * par ;
+<a name="l00707"></a>00707 <span class="keyword">const</span> <span class="keywordtype">char</span> * sval ;
+<a name="l00708"></a>00708 par = NULL ;
+<a name="l00709"></a>00709 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.offsets"</span>);
+<a name="l00710"></a>00710 hawki_sci_jitter_config.offsets = cpl_parameter_get_string(par);
+<a name="l00711"></a>00711 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.objects"</span>);
+<a name="l00712"></a>00712 hawki_sci_jitter_config.objects = cpl_parameter_get_string(par);
+<a name="l00713"></a>00713 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.offset_max"</span>);
+<a name="l00714"></a>00714 hawki_sci_jitter_config.offset_max = cpl_parameter_get_int(par);
+<a name="l00715"></a>00715 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.sky_par"</span>);
+<a name="l00716"></a>00716 sval = cpl_parameter_get_string(par);
+<a name="l00717"></a>00717 <span class="keywordflow">if</span> (sscanf(sval, <span class="stringliteral">"%d,%d,%d,%d"</span>,
+<a name="l00718"></a>00718 &hawki_sci_jitter_config.sky_minnb,
+<a name="l00719"></a>00719 &hawki_sci_jitter_config.sky_halfw,
+<a name="l00720"></a>00720 &hawki_sci_jitter_config.sky_rejmin,
+<a name="l00721"></a>00721 &hawki_sci_jitter_config.sky_rejmax)!=4)
+<a name="l00722"></a>00722 {
+<a name="l00723"></a>00723 <span class="keywordflow">return</span> -1;
+<a name="l00724"></a>00724 }
+<a name="l00725"></a>00725 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.xcorr"</span>);
+<a name="l00726"></a>00726 sval = cpl_parameter_get_string(par);
+<a name="l00727"></a>00727 <span class="keywordflow">if</span> (sscanf(sval, <span class="stringliteral">"%d,%d,%d,%d"</span>,
+<a name="l00728"></a>00728 &hawki_sci_jitter_config.sx,
+<a name="l00729"></a>00729 &hawki_sci_jitter_config.sy,
+<a name="l00730"></a>00730 &hawki_sci_jitter_config.mx,
+<a name="l00731"></a>00731 &hawki_sci_jitter_config.my)!=4)
+<a name="l00732"></a>00732 {
+<a name="l00733"></a>00733 <span class="keywordflow">return</span> -1;
+<a name="l00734"></a>00734 }
+<a name="l00735"></a>00735 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.refine"</span>);
+<a name="l00736"></a>00736 hawki_sci_jitter_config.refine = cpl_parameter_get_bool(par);
+<a name="l00737"></a>00737 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.comb_meth"</span>);
+<a name="l00738"></a>00738 sval = cpl_parameter_get_string(par);
+<a name="l00739"></a>00739 <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"union"</span>))
+<a name="l00740"></a>00740 hawki_sci_jitter_config.comb_meth = CPL_GEOM_UNION;
+<a name="l00741"></a>00741 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"inter"</span>))
+<a name="l00742"></a>00742 hawki_sci_jitter_config.comb_meth = CPL_GEOM_INTERSECT;
+<a name="l00743"></a>00743 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"first"</span>))
+<a name="l00744"></a>00744 hawki_sci_jitter_config.comb_meth = CPL_GEOM_FIRST;
+<a name="l00745"></a>00745 <span class="keywordflow">else</span>
+<a name="l00746"></a>00746 {
+<a name="l00747"></a>00747 cpl_msg_error(cpl_func, <span class="stringliteral">"Invalid combine method specified"</span>);
+<a name="l00748"></a>00748 <span class="keywordflow">return</span> -1;
+<a name="l00749"></a>00749 }
+<a name="l00750"></a>00750 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.borders"</span>);
+<a name="l00751"></a>00751 hawki_sci_jitter_config.borders = cpl_parameter_get_int(par);
+<a name="l00752"></a>00752 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.rej"</span>);
+<a name="l00753"></a>00753 sval = cpl_parameter_get_string(par);
+<a name="l00754"></a>00754 <span class="keywordflow">if</span> (sscanf(sval, <span class="stringliteral">"%d,%d"</span>,
+<a name="l00755"></a>00755 &hawki_sci_jitter_config.rej_low,
+<a name="l00756"></a>00756 &hawki_sci_jitter_config.rej_high)!=2)
+<a name="l00757"></a>00757 {
+<a name="l00758"></a>00758 <span class="keywordflow">return</span> -1;
+<a name="l00759"></a>00759 }
+<a name="l00760"></a>00760 par = cpl_parameterlist_find(parlist, <span class="stringliteral">"hawki.hawki_sci_jitter.max_njitter"</span>);
+<a name="l00761"></a>00761 hawki_sci_jitter_config.max_njitter = cpl_parameter_get_int(par);
+<a name="l00762"></a>00762 <span class="keywordflow">return</span> 0;
+<a name="l00763"></a>00763 }
+<a name="l00764"></a>00764
+<a name="l00765"></a>00765
+<a name="l00766"></a>00766
+<a name="l00767"></a>00767 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00778"></a>00778 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00779"></a>00779 <span class="keyword">static</span> cpl_image ** hawki_sci_jitter_reduce
+<a name="l00780"></a>00780 (cpl_frameset * jitters,
+<a name="l00781"></a>00781 cpl_frameset * sky,
+<a name="l00782"></a>00782 <span class="keyword">const</span> <span class="keywordtype">char</span> * flat,
+<a name="l00783"></a>00783 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark,
+<a name="l00784"></a>00784 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm,
+<a name="l00785"></a>00785 cpl_table ** bkg_stats)
+<a name="l00786"></a>00786 {
+<a name="l00787"></a>00787 cpl_frame * frame ;
+<a name="l00788"></a>00788 cpl_propertylist * plist ;
+<a name="l00789"></a>00789 cpl_image ** comb_chip ;
+<a name="l00790"></a>00790 cpl_image ** combined ;
+<a name="l00791"></a>00791 cpl_bivector * offsets ;
+<a name="l00792"></a>00792 cpl_vector * offset_x_sort;
+<a name="l00793"></a>00793 cpl_vector * offset_y_sort;
+<a name="l00794"></a>00794 <span class="keywordtype">double</span> * offs_est_x ;
+<a name="l00795"></a>00795 <span class="keywordtype">double</span> * offs_est_y ;
+<a name="l00796"></a>00796 <span class="keywordtype">double</span> off_0_x;
+<a name="l00797"></a>00797 <span class="keywordtype">double</span> off_0_y;
+<a name="l00798"></a>00798 <span class="keywordtype">double</span> max_x, max_y ;
+<a name="l00799"></a>00799 <span class="keywordtype">int</span> idet;
+<a name="l00800"></a>00800 <span class="keywordtype">int</span> ioff;
+<a name="l00801"></a>00801
+<a name="l00802"></a>00802 <span class="comment">/* Get the header infos */</span>
+<a name="l00803"></a>00803 frame = cpl_frameset_get_frame(jitters, 0) ;
+<a name="l00804"></a>00804 plist=cpl_propertylist_load(cpl_frame_get_filename(frame), 0) ;
+<a name="l00805"></a>00805 hawki_sci_jitter_output.pixscale = <a class="code" href="group__hawki__pfits.html#ga79c432e5ab5585c45472cfa86b2d146b" title="find out the pixel scale">hawki_pfits_get_pixscale</a>(plist) ;
+<a name="l00806"></a>00806 hawki_sci_jitter_output.dit = <a class="code" href="group__hawki__pfits.html#ga1971ab60e27df384b5fd533461e7356f" title="find out the DIT value">hawki_pfits_get_dit</a>(plist) ;
+<a name="l00807"></a>00807 cpl_propertylist_delete(plist) ;
+<a name="l00808"></a>00808 <span class="keywordflow">if</span> (cpl_error_get_code()) {
+<a name="l00809"></a>00809 cpl_msg_error(cpl_func, <span class="stringliteral">"Missing keyword in FITS header"</span>) ;
+<a name="l00810"></a>00810 <span class="keywordflow">return</span> NULL ;
+<a name="l00811"></a>00811 }
+<a name="l00812"></a>00812
+<a name="l00813"></a>00813 <span class="comment">/* Check that DIT/NDIT and NDSAMPLES are the same for all the frames */</span>
+<a name="l00814"></a>00814 <span class="keywordflow">if</span>(!<a class="code" href="group__hawki__utils.html#ga4c041169d43f161a8c9d7f23d7fc57a7" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_double_keys</a>(jitters, &<a class="code" href="group__hawki__pfits.html#ga1971ab60e27df384b5fd533461e7356f" title="find out the DIT value">hawki_pfits_get_dit</a>) ||
+<a name="l00815"></a>00815 !<a class="code" href="group__hawki__utils.html#ga8c1508e389b7fd0da8fbda451ffd1663" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_int_keys</a>(jitters, &<a class="code" href="group__hawki__pfits.html#ga7c2b338fdf41bdeb1149b60af82c0788" title="find out the NDIT value">hawki_pfits_get_ndit</a>)||
+<a name="l00816"></a>00816 !<a class="code" href="group__hawki__utils.html#ga8c1508e389b7fd0da8fbda451ffd1663" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_int_keys</a>(jitters, &<a class="code" href="group__hawki__pfits.html#ga0d1ccf97334b28566b2bc8fe17786190" title="find out the NDSAMPLES value">hawki_pfits_get_ndsamples</a>))
+<a name="l00817"></a>00817 {
+<a name="l00818"></a>00818 cpl_msg_error(__func__, <span class="stringliteral">"Not all input science have the same "</span>
+<a name="l00819"></a>00819 <span class="stringliteral">"DIT/NDIT/NDSAMPLES values"</span>);
+<a name="l00820"></a>00820 cpl_msg_indent_less() ;
+<a name="l00821"></a>00821 <span class="keywordflow">return</span> NULL;
+<a name="l00822"></a>00822 }
+<a name="l00823"></a>00823
+<a name="l00824"></a>00824 <span class="comment">/* Get the offsets */</span>
+<a name="l00825"></a>00825 <span class="keywordflow">if</span> ((offsets = <a class="code" href="group__hawki__utils.html#ga4c2e0ffe688ffdfd93f0d61c60ac91fd" title="Get the nominal header offsets from a set of frames.">hawki_get_header_tel_offsets</a>(jitters)) == NULL) {
+<a name="l00826"></a>00826 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot load the offsets"</span>) ;
+<a name="l00827"></a>00827 <span class="keywordflow">return</span> NULL ;
+<a name="l00828"></a>00828 }
+<a name="l00829"></a>00829 offs_est_x = cpl_bivector_get_x_data(offsets) ;
+<a name="l00830"></a>00830 offs_est_y = cpl_bivector_get_y_data(offsets) ;
+<a name="l00831"></a>00831
+<a name="l00832"></a>00832 <span class="comment">/* Print the header offsets */</span>
+<a name="l00833"></a>00833 <span class="keywordflow">for</span> (ioff=0 ; ioff<cpl_bivector_get_size(offsets) ; ioff++) {
+<a name="l00834"></a>00834 cpl_msg_info(cpl_func, <span class="stringliteral">"Telescope offsets (Frame %d): %g %g"</span>, ioff+1,
+<a name="l00835"></a>00835 offs_est_x[ioff], offs_est_y[ioff]) ;
+<a name="l00836"></a>00836 }
+<a name="l00837"></a>00837
+<a name="l00838"></a>00838 <span class="comment">/* Subtract the first offset to all offsets */</span>
+<a name="l00839"></a>00839 off_0_x = -offs_est_x[0]; <span class="comment">// This is to get the cpl convention</span>
+<a name="l00840"></a>00840 off_0_y = -offs_est_y[0];
+<a name="l00841"></a>00841 <span class="keywordflow">for</span> (ioff=1 ; ioff<cpl_bivector_get_size(offsets) ; ioff++)
+<a name="l00842"></a>00842 {
+<a name="l00843"></a>00843 offs_est_x[ioff] -= offs_est_x[0] ;
+<a name="l00844"></a>00844 offs_est_y[ioff] -= offs_est_y[0] ;
+<a name="l00845"></a>00845 }
+<a name="l00846"></a>00846 offs_est_x[0] = offs_est_y[0] = 0.00 ;
+<a name="l00847"></a>00847
+<a name="l00848"></a>00848 <span class="comment">/* Check if the max offset is not too big */</span>
+<a name="l00849"></a>00849 <span class="comment">/* The criteria is that for a given frame, the closest frame cannot be </span>
+<a name="l00850"></a>00850 <span class="comment"> * further than hawki_sci_jitter_config.offset_max (in both dimensions) */</span>
+<a name="l00851"></a>00851 offset_x_sort = cpl_vector_duplicate(cpl_bivector_get_x(offsets));
+<a name="l00852"></a>00852 offset_y_sort = cpl_vector_duplicate(cpl_bivector_get_y(offsets));
+<a name="l00853"></a>00853 cpl_vector_sort(offset_x_sort, +1);
+<a name="l00854"></a>00854 cpl_vector_sort(offset_y_sort, +1);
+<a name="l00855"></a>00855 <span class="keywordflow">for</span> (ioff=0 ; ioff<cpl_bivector_get_size(offsets) - 1 ; ioff++)
+<a name="l00856"></a>00856 {
+<a name="l00857"></a>00857 <span class="keywordtype">double</span> diff_x, diff_y;
+<a name="l00858"></a>00858 diff_x = cpl_vector_get(offset_x_sort,ioff+1)-cpl_vector_get(offset_x_sort,ioff);
+<a name="l00859"></a>00859 cpl_vector_set(offset_x_sort, ioff, diff_x);
+<a name="l00860"></a>00860 diff_y = cpl_vector_get(offset_y_sort,ioff+1)-cpl_vector_get(offset_y_sort,ioff);
+<a name="l00861"></a>00861 cpl_vector_set(offset_y_sort, ioff, diff_y);
+<a name="l00862"></a>00862 }
+<a name="l00863"></a>00863 cpl_vector_set(offset_x_sort, cpl_bivector_get_size(offsets)-1, 0.);
+<a name="l00864"></a>00864 cpl_vector_set(offset_y_sort, cpl_bivector_get_size(offsets)-1, 0.);
+<a name="l00865"></a>00865 max_x = cpl_vector_get_max(offset_x_sort);
+<a name="l00866"></a>00866 max_y = cpl_vector_get_max(offset_y_sort);
+<a name="l00867"></a>00867 cpl_vector_delete(offset_x_sort);
+<a name="l00868"></a>00868 cpl_vector_delete(offset_y_sort);
+<a name="l00869"></a>00869
+<a name="l00870"></a>00870 <span class="keywordflow">if</span> (max_x > hawki_sci_jitter_config.offset_max ||
+<a name="l00871"></a>00871 max_y > hawki_sci_jitter_config.offset_max)
+<a name="l00872"></a>00872 {
+<a name="l00873"></a>00873 cpl_msg_error(cpl_func, <span class="stringliteral">"Sorry, no support for frames further than %d from its closest neighbour"</span>,
+<a name="l00874"></a>00874 hawki_sci_jitter_config.offset_max) ;
+<a name="l00875"></a>00875 cpl_bivector_delete(offsets);
+<a name="l00876"></a>00876 <span class="keywordflow">return</span> NULL ;
+<a name="l00877"></a>00877 }
+<a name="l00878"></a>00878
+<a name="l00879"></a>00879 <span class="comment">/* Create output object */</span>
+<a name="l00880"></a>00880 combined = cpl_malloc(HAWKI_NB_DETECTORS*<span class="keyword">sizeof</span>(cpl_image*)) ;
+<a name="l00881"></a>00881
+<a name="l00882"></a>00882 <span class="comment">/* Loop on the detectors */</span>
+<a name="l00883"></a>00883 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00884"></a>00884 {
+<a name="l00885"></a>00885 cpl_frameset * selected_jitter;
+<a name="l00886"></a>00886 cpl_bivector * selected_offsets;
+<a name="l00887"></a>00887 cpl_image * flat_ima = NULL;
+<a name="l00888"></a>00888 cpl_image * dark_ima = NULL;
+<a name="l00889"></a>00889 cpl_image * bpm_ima = NULL;
+<a name="l00890"></a>00890 cpl_imagelist * in = NULL;
+<a name="l00891"></a>00891 cpl_imagelist * in_sky = NULL;
+<a name="l00892"></a>00892 <span class="keywordtype">int</span> nrejected;
+<a name="l00893"></a>00893
+<a name="l00894"></a>00894 cpl_msg_info(cpl_func, <span class="stringliteral">"Combine chip number %d"</span>, idet+1) ;
+<a name="l00895"></a>00895 cpl_msg_indent_more() ;
+<a name="l00896"></a>00896
+<a name="l00897"></a>00897 <span class="comment">/* Apply frame selection based on offset values */</span>
+<a name="l00898"></a>00898 selected_jitter = cpl_frameset_duplicate(jitters);
+<a name="l00899"></a>00899 selected_offsets = cpl_bivector_duplicate(offsets);
+<a name="l00900"></a>00900 <span class="keywordflow">if</span>(hawki_sci_jitter_config.max_njitter != -1)
+<a name="l00901"></a>00901 {
+<a name="l00902"></a>00902 <span class="keywordflow">if</span>(hawki_sci_jitter_config.max_njitter <
+<a name="l00903"></a>00903 cpl_frameset_get_size(selected_jitter))
+<a name="l00904"></a>00904 {
+<a name="l00905"></a>00905 <span class="keywordflow">while</span>(cpl_frameset_get_size(selected_jitter) >
+<a name="l00906"></a>00906 hawki_sci_jitter_config.max_njitter)
+<a name="l00907"></a>00907 {
+<a name="l00908"></a>00908 <span class="keywordtype">int</span> irm = cpl_frameset_get_size(selected_jitter) - 1;
+<a name="l00909"></a>00909 cpl_frameset_erase_frame
+<a name="l00910"></a>00910 (selected_jitter,
+<a name="l00911"></a>00911 cpl_frameset_get_frame(selected_jitter,irm));
+<a name="l00912"></a>00912 }
+<a name="l00913"></a>00913 cpl_vector_set_size(cpl_bivector_get_x(selected_offsets),
+<a name="l00914"></a>00914 hawki_sci_jitter_config.max_njitter);
+<a name="l00915"></a>00915 cpl_vector_set_size(cpl_bivector_get_y(selected_offsets),
+<a name="l00916"></a>00916 hawki_sci_jitter_config.max_njitter);
+<a name="l00917"></a>00917 }
+<a name="l00918"></a>00918 }
+<a name="l00919"></a>00919 hawki_sci_jitter_output.ncomb[idet] =
+<a name="l00920"></a>00920 cpl_frameset_get_size(selected_jitter);
+<a name="l00921"></a>00921 nrejected = cpl_frameset_get_size(selected_jitter) -
+<a name="l00922"></a>00922 cpl_frameset_get_size(jitters);
+<a name="l00923"></a>00923 <span class="keywordflow">if</span>(nrejected != 0)
+<a name="l00924"></a>00924 cpl_msg_info(cpl_func,<span class="stringliteral">"%d frames reject due to large offsets"</span>,
+<a name="l00925"></a>00925 nrejected);
+<a name="l00926"></a>00926
+<a name="l00927"></a>00927
+<a name="l00928"></a>00928 <span class="comment">/* Load the input data */</span>
+<a name="l00929"></a>00929 cpl_msg_info(cpl_func, <span class="stringliteral">"Load the input data"</span>) ;
+<a name="l00930"></a>00930 cpl_msg_indent_more() ;
+<a name="l00931"></a>00931 <span class="keywordflow">if</span> ((in = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(selected_jitter,
+<a name="l00932"></a>00932 idet+1, CPL_TYPE_FLOAT)) == NULL) {
+<a name="l00933"></a>00933 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot load chip %d"</span>, idet+1) ;
+<a name="l00934"></a>00934 cpl_free(combined) ;
+<a name="l00935"></a>00935 cpl_bivector_delete(offsets) ;
+<a name="l00936"></a>00936 cpl_msg_indent_less() ;
+<a name="l00937"></a>00937 cpl_msg_indent_less() ;
+<a name="l00938"></a>00938 <span class="keywordflow">return</span> NULL ;
+<a name="l00939"></a>00939 }
+<a name="l00940"></a>00940 <span class="keywordflow">if</span> (sky) {
+<a name="l00941"></a>00941 <span class="keywordflow">if</span> ((in_sky = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(sky, idet+1, CPL_TYPE_FLOAT)) == NULL)
+<a name="l00942"></a>00942 {
+<a name="l00943"></a>00943 cpl_msg_warning(cpl_func, <span class="stringliteral">"Cannot load sky for chip %d"</span>,idet+1);
+<a name="l00944"></a>00944 }
+<a name="l00945"></a>00945 } <span class="keywordflow">else</span> in_sky = NULL ;
+<a name="l00946"></a>00946 cpl_msg_indent_less() ;
+<a name="l00947"></a>00947
+<a name="l00948"></a>00948 <span class="comment">/* Read the calibrations */</span>
+<a name="l00949"></a>00949 cpl_msg_info(cpl_func, <span class="stringliteral">"Load the calibration data"</span>) ;
+<a name="l00950"></a>00950 <span class="keywordflow">if</span>(hawki_sci_jitter_read_calib(flat, dark, bpm,
+<a name="l00951"></a>00951 &flat_ima, &dark_ima, &bpm_ima,
+<a name="l00952"></a>00952 idet) != 0)
+<a name="l00953"></a>00953 {
+<a name="l00954"></a>00954 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot read some of the calibrations"</span>);
+<a name="l00955"></a>00955 cpl_imagelist_delete(in);
+<a name="l00956"></a>00956 cpl_free(combined);
+<a name="l00957"></a>00957 <span class="keywordflow">if</span> (in_sky) cpl_imagelist_delete(in_sky);
+<a name="l00958"></a>00958 cpl_bivector_delete(offsets);
+<a name="l00959"></a>00959 cpl_msg_indent_less();
+<a name="l00960"></a>00960 cpl_msg_indent_less();
+<a name="l00961"></a>00961 <span class="keywordflow">return</span> NULL ;
+<a name="l00962"></a>00962 }
+<a name="l00963"></a>00963
+<a name="l00964"></a>00964 <span class="comment">/* Apply the calibrations */</span>
+<a name="l00965"></a>00965 <span class="keywordflow">if</span> (flat || dark || bpm )
+<a name="l00966"></a>00966 {
+<a name="l00967"></a>00967 cpl_msg_info(cpl_func, <span class="stringliteral">"Apply the calibrations"</span>) ;
+<a name="l00968"></a>00968 cpl_msg_indent_more() ;
+<a name="l00969"></a>00969 <span class="comment">/* Basic calibration of the OBJECTS */</span>
+<a name="l00970"></a>00970 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__calib.html#ga5602d5f6a5703dff30afa41235c9686d" title="Apply the calibration to the images.">hawki_flat_dark_bpm_detector_calib</a>
+<a name="l00971"></a>00971 (in, flat_ima, dark_ima, bpm_ima) == -1)
+<a name="l00972"></a>00972 {
+<a name="l00973"></a>00973 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot calibrate the objects"</span>) ;
+<a name="l00974"></a>00974 cpl_imagelist_delete(in) ;
+<a name="l00975"></a>00975 cpl_free(combined) ;
+<a name="l00976"></a>00976 <span class="keywordflow">if</span> (in_sky) cpl_imagelist_delete(in_sky) ;
+<a name="l00977"></a>00977 cpl_bivector_delete(offsets) ;
+<a name="l00978"></a>00978 cpl_image_delete(flat_ima);
+<a name="l00979"></a>00979 cpl_image_delete(dark_ima);
+<a name="l00980"></a>00980 cpl_image_delete(bpm_ima);
+<a name="l00981"></a>00981 cpl_msg_indent_less() ;
+<a name="l00982"></a>00982 cpl_msg_indent_less() ;
+<a name="l00983"></a>00983 <span class="keywordflow">return</span> NULL ;
+<a name="l00984"></a>00984 }
+<a name="l00985"></a>00985 <span class="comment">/* Basic calibration of the SKY */</span>
+<a name="l00986"></a>00986 <span class="keywordflow">if</span> (in_sky) {
+<a name="l00987"></a>00987 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__calib.html#ga5602d5f6a5703dff30afa41235c9686d" title="Apply the calibration to the images.">hawki_flat_dark_bpm_detector_calib</a>
+<a name="l00988"></a>00988 (in_sky, flat_ima, dark_ima, bpm_ima) == -1)
+<a name="l00989"></a>00989 {
+<a name="l00990"></a>00990 cpl_msg_warning(cpl_func, <span class="stringliteral">"Cannot calibrate the sky"</span>) ;
+<a name="l00991"></a>00991 cpl_imagelist_delete(in_sky) ;
+<a name="l00992"></a>00992 in_sky = NULL ;
+<a name="l00993"></a>00993 }
+<a name="l00994"></a>00994 }
+<a name="l00995"></a>00995 cpl_msg_indent_less() ;
+<a name="l00996"></a>00996 }
+<a name="l00997"></a>00997 cpl_image_delete(flat_ima);
+<a name="l00998"></a>00998 cpl_image_delete(dark_ima);
+<a name="l00999"></a>00999 cpl_image_delete(bpm_ima);
+<a name="l01000"></a>01000
+<a name="l01001"></a>01001 <span class="comment">/* Apply the sky correction */</span>
+<a name="l01002"></a>01002 cpl_msg_info(cpl_func, <span class="stringliteral">"Sky estimation and correction"</span>) ;
+<a name="l01003"></a>01003 cpl_msg_indent_more() ;
+<a name="l01004"></a>01004 <span class="keywordflow">if</span> (hawki_sci_jitter_sky(in, in_sky, bkg_stats, idet) == -1)
+<a name="l01005"></a>01005 {
+<a name="l01006"></a>01006 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot estimate the sky"</span>) ;
+<a name="l01007"></a>01007 cpl_imagelist_delete(in) ;
+<a name="l01008"></a>01008 <span class="keywordflow">if</span> (in_sky) cpl_imagelist_delete(in_sky) ;
+<a name="l01009"></a>01009 cpl_free(combined) ;
+<a name="l01010"></a>01010 cpl_bivector_delete(offsets) ;
+<a name="l01011"></a>01011 cpl_msg_indent_less() ;
+<a name="l01012"></a>01012 cpl_msg_indent_less() ;
+<a name="l01013"></a>01013 <span class="keywordflow">return</span> NULL ;
+<a name="l01014"></a>01014 }
+<a name="l01015"></a>01015 <span class="keywordflow">if</span> (in_sky) cpl_imagelist_delete(in_sky) ;
+<a name="l01016"></a>01016 cpl_msg_indent_less() ;
+<a name="l01017"></a>01017
+<a name="l01018"></a>01018 <span class="comment">/* Apply the shift and add */</span>
+<a name="l01019"></a>01019 cpl_msg_info(cpl_func, <span class="stringliteral">"Shift and stacking"</span>) ;
+<a name="l01020"></a>01020 cpl_msg_indent_more() ;
+<a name="l01021"></a>01021 comb_chip = hawki_sci_jitter_saa(&in, selected_offsets,
+<a name="l01022"></a>01022 &(hawki_sci_jitter_output.combined_pos_x[idet]),
+<a name="l01023"></a>01023 &(hawki_sci_jitter_output.combined_pos_y[idet])) ;
+<a name="l01024"></a>01024 hawki_sci_jitter_output.combined_cumoffset_x[idet] =
+<a name="l01025"></a>01025 hawki_sci_jitter_output.combined_pos_x[idet] - off_0_x;
+<a name="l01026"></a>01026 hawki_sci_jitter_output.combined_cumoffset_y[idet] =
+<a name="l01027"></a>01027 hawki_sci_jitter_output.combined_pos_y[idet] - off_0_y;
+<a name="l01028"></a>01028 <span class="keywordflow">if</span> (comb_chip == NULL) {
+<a name="l01029"></a>01029 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot apply the shift and add"</span>) ;
+<a name="l01030"></a>01030 cpl_imagelist_delete(in) ;
+<a name="l01031"></a>01031 cpl_free(combined) ;
+<a name="l01032"></a>01032 cpl_bivector_delete(offsets) ;
+<a name="l01033"></a>01033 cpl_msg_indent_less() ;
+<a name="l01034"></a>01034 cpl_msg_indent_less() ;
+<a name="l01035"></a>01035 <span class="keywordflow">return</span> NULL ;
+<a name="l01036"></a>01036 }
+<a name="l01037"></a>01037 cpl_imagelist_delete(in) ;
+<a name="l01038"></a>01038 cpl_msg_indent_less() ;
+<a name="l01039"></a>01039
+<a name="l01040"></a>01040 <span class="comment">/* Put the results in the image list */</span>
+<a name="l01041"></a>01041 combined[idet] = comb_chip[0] ;
+<a name="l01042"></a>01042 cpl_image_delete(comb_chip[1]) ;
+<a name="l01043"></a>01043 cpl_free(comb_chip) ;
+<a name="l01044"></a>01044 cpl_msg_indent_less() ;
+<a name="l01045"></a>01045
+<a name="l01046"></a>01046 <span class="comment">/* Free */</span>
+<a name="l01047"></a>01047 cpl_frameset_delete(selected_jitter);
+<a name="l01048"></a>01048 cpl_bivector_delete(selected_offsets);
+<a name="l01049"></a>01049 }
+<a name="l01050"></a>01050 cpl_bivector_delete(offsets) ;
+<a name="l01051"></a>01051
+<a name="l01052"></a>01052 <span class="keywordflow">return</span> combined ;
+<a name="l01053"></a>01053 }
+<a name="l01054"></a>01054
+<a name="l01055"></a>01055 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01062"></a>01062 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01063"></a>01063 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_sky
+<a name="l01064"></a>01064 (cpl_imagelist * objs,
+<a name="l01065"></a>01065 cpl_imagelist * skys,
+<a name="l01066"></a>01066 cpl_table ** bkg_stats,
+<a name="l01067"></a>01067 <span class="keywordtype">int</span> idet)
+<a name="l01068"></a>01068 {
+<a name="l01069"></a>01069 cpl_image * sky ;
+<a name="l01070"></a>01070 <span class="keywordtype">int</span> nframes;
+<a name="l01071"></a>01071 <span class="keywordtype">double</span> median ;
+<a name="l01072"></a>01072 cpl_image * cur_ima ;
+<a name="l01073"></a>01073 <span class="keywordtype">int</span> i ;
+<a name="l01074"></a>01074
+<a name="l01075"></a>01075 <span class="comment">/* Initialise */</span>
+<a name="l01076"></a>01076 nframes = cpl_imagelist_get_size(objs) ;
+<a name="l01077"></a>01077
+<a name="l01078"></a>01078 <span class="comment">/* Compute the sky frame */</span>
+<a name="l01079"></a>01079 <span class="keywordflow">if</span> (skys != NULL) {
+<a name="l01080"></a>01080 cpl_msg_info(cpl_func, <span class="stringliteral">"Median of sky images"</span>) ;
+<a name="l01081"></a>01081 <span class="comment">/* Use sky images */</span>
+<a name="l01082"></a>01082 <span class="keywordflow">if</span> ((sky = cpl_imagelist_collapse_median_create(skys)) == NULL) {
+<a name="l01083"></a>01083 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot compute the median of sky images"</span>) ;
+<a name="l01084"></a>01084 <span class="keywordflow">return</span> -1;
+<a name="l01085"></a>01085 }
+<a name="l01086"></a>01086
+<a name="l01087"></a>01087 <span class="comment">/* Statistics on the background */</span>
+<a name="l01088"></a>01088 <span class="keywordflow">if</span>(bkg_stats != NULL)
+<a name="l01089"></a>01089 {
+<a name="l01090"></a>01090 cpl_table_set_size(bkg_stats[idet], 1);
+<a name="l01091"></a>01091 <a class="code" href="group__hawki__image__stats.html#gaddd6e9623519487c0775de8c3a0aee0f" title="Fills a table with the statistics of an image.">hawki_image_stats_fill_from_image</a>
+<a name="l01092"></a>01092 (bkg_stats, sky,
+<a name="l01093"></a>01093 1,
+<a name="l01094"></a>01094 1,
+<a name="l01095"></a>01095 cpl_image_get_size_x(sky),
+<a name="l01096"></a>01096 cpl_image_get_size_y(sky),
+<a name="l01097"></a>01097 idet, 0);
+<a name="l01098"></a>01098 }
+<a name="l01099"></a>01099
+<a name="l01100"></a>01100 <span class="comment">/* Correct the objects images */</span>
+<a name="l01101"></a>01101 <span class="keywordflow">if</span> (cpl_imagelist_subtract_image(objs, sky) != CPL_ERROR_NONE) {
+<a name="l01102"></a>01102 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot corr. the obj images from the sky"</span>);
+<a name="l01103"></a>01103 cpl_image_delete(sky) ;
+<a name="l01104"></a>01104 <span class="keywordflow">return</span> -1;
+<a name="l01105"></a>01105 }
+<a name="l01106"></a>01106 cpl_image_delete(sky) ;
+<a name="l01107"></a>01107 <span class="comment">/* Normalise the object planes */</span>
+<a name="l01108"></a>01108 <span class="keywordflow">for</span> (i=0 ; i<nframes ; i++) {
+<a name="l01109"></a>01109 cur_ima = cpl_imagelist_get(objs, i) ;
+<a name="l01110"></a>01110 median = cpl_image_get_median(cur_ima) ;
+<a name="l01111"></a>01111 cpl_image_subtract_scalar(cur_ima, median) ;
+<a name="l01112"></a>01112 }
+<a name="l01113"></a>01113 } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (hawki_sci_jitter_config.sky_minnb > nframes) {
+<a name="l01114"></a>01114 cpl_msg_info(cpl_func, <span class="stringliteral">"Median of object images"</span>) ;
+<a name="l01115"></a>01115 <span class="comment">/* Use objs images */</span>
+<a name="l01116"></a>01116 <span class="keywordflow">if</span> ((sky = cpl_imagelist_collapse_median_create(objs)) == NULL) {
+<a name="l01117"></a>01117 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot compute the median of obj images"</span>) ;
+<a name="l01118"></a>01118 <span class="keywordflow">return</span> -1;
+<a name="l01119"></a>01119 }
+<a name="l01120"></a>01120
+<a name="l01121"></a>01121 <span class="comment">/* Statistics on the background */</span>
+<a name="l01122"></a>01122 <span class="keywordflow">if</span>(bkg_stats != NULL)
+<a name="l01123"></a>01123 {
+<a name="l01124"></a>01124 cpl_table_set_size(bkg_stats[idet], 1);
+<a name="l01125"></a>01125 <a class="code" href="group__hawki__image__stats.html#gaddd6e9623519487c0775de8c3a0aee0f" title="Fills a table with the statistics of an image.">hawki_image_stats_fill_from_image</a>
+<a name="l01126"></a>01126 (bkg_stats, sky,
+<a name="l01127"></a>01127 1,
+<a name="l01128"></a>01128 1,
+<a name="l01129"></a>01129 cpl_image_get_size_x(sky),
+<a name="l01130"></a>01130 cpl_image_get_size_y(sky),
+<a name="l01131"></a>01131 idet, 0);
+<a name="l01132"></a>01132 }
+<a name="l01133"></a>01133
+<a name="l01134"></a>01134 <span class="comment">/* Correct the objects images */</span>
+<a name="l01135"></a>01135 <span class="keywordflow">if</span> (cpl_imagelist_subtract_image(objs, sky) != CPL_ERROR_NONE) {
+<a name="l01136"></a>01136 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot corr. the obj images from the sky"</span>);
+<a name="l01137"></a>01137 cpl_image_delete(sky) ;
+<a name="l01138"></a>01138 <span class="keywordflow">return</span> -1;
+<a name="l01139"></a>01139 }
+<a name="l01140"></a>01140 <span class="comment">/* Normalise the object planes */</span>
+<a name="l01141"></a>01141 <span class="keywordflow">for</span> (i=0 ; i<nframes ; i++) {
+<a name="l01142"></a>01142 cur_ima = cpl_imagelist_get(objs, i) ;
+<a name="l01143"></a>01143 median = cpl_image_get_median(cur_ima) ;
+<a name="l01144"></a>01144 cpl_image_subtract_scalar(cur_ima, median) ;
+<a name="l01145"></a>01145 }
+<a name="l01146"></a>01146 <span class="comment">/* Delete sky image */</span>
+<a name="l01147"></a>01147 cpl_image_delete(sky) ;
+<a name="l01148"></a>01148 } <span class="keywordflow">else</span> {
+<a name="l01149"></a>01149 cpl_msg_info(cpl_func, <span class="stringliteral">"Computing running median on jitter images"</span>) ;
+<a name="l01150"></a>01150 <span class="comment">/* Use objects images */</span>
+<a name="l01151"></a>01151 <span class="keywordflow">if</span> (hawki_sci_jitter_sky_running(objs, bkg_stats, idet) == -1)
+<a name="l01152"></a>01152 {
+<a name="l01153"></a>01153 cpl_msg_error(cpl_func,
+<a name="l01154"></a>01154 <span class="stringliteral">"Cannot apply the running median"</span>);
+<a name="l01155"></a>01155 <span class="keywordflow">return</span> -1;
+<a name="l01156"></a>01156 }
+<a name="l01157"></a>01157 }
+<a name="l01158"></a>01158 <span class="keywordflow">return</span> 0;
+<a name="l01159"></a>01159 }
+<a name="l01160"></a>01160
+<a name="l01161"></a>01161 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01180"></a>01180 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01181"></a>01181 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_sky_running
+<a name="l01182"></a>01182 (cpl_imagelist * in,
+<a name="l01183"></a>01183 cpl_table ** bkg_stats,
+<a name="l01184"></a>01184 <span class="keywordtype">int</span> idet)
+<a name="l01185"></a>01185 {
+<a name="l01186"></a>01186 <span class="keywordtype">int</span> rejmin, rejmax, halfw;
+<a name="l01187"></a>01187 cpl_imagelist * result_buffer;
+<a name="l01188"></a>01188 <span class="keywordtype">int</span> ni, nx, ny;
+<a name="l01189"></a>01189 cpl_vector * medians;
+<a name="l01190"></a>01190 cpl_image * cur_ima;
+<a name="l01191"></a>01191 cpl_image * tmp_ima;
+<a name="l01192"></a>01192 <span class="keywordtype">double</span> one_med;
+<a name="l01193"></a>01193 <span class="keywordtype">int</span> i, k;
+<a name="l01194"></a>01194 <span class="keywordtype">int</span> first_buffered = 0;
+<a name="l01195"></a>01195 <span class="keywordtype">int</span> next_not_to_be_used;
+<a name="l01196"></a>01196
+<a name="l01197"></a>01197 <span class="comment">/* Test entries */</span>
+<a name="l01198"></a>01198 <span class="keywordflow">if</span> (in==NULL) <span class="keywordflow">return</span> -1;
+<a name="l01199"></a>01199
+<a name="l01200"></a>01200 <span class="comment">/* Initialise */</span>
+<a name="l01201"></a>01201 rejmin = hawki_sci_jitter_config.sky_rejmin ;
+<a name="l01202"></a>01202 rejmax = hawki_sci_jitter_config.sky_rejmax ;
+<a name="l01203"></a>01203 halfw = hawki_sci_jitter_config.sky_halfw ;
+<a name="l01204"></a>01204 ni = cpl_imagelist_get_size(in) ;
+<a name="l01205"></a>01205 cur_ima = cpl_imagelist_get(in, 0) ;
+<a name="l01206"></a>01206 nx = cpl_image_get_size_x(cur_ima) ;
+<a name="l01207"></a>01207 ny = cpl_image_get_size_y(cur_ima) ;
+<a name="l01208"></a>01208
+<a name="l01209"></a>01209 <span class="comment">/* Tests on validity of rejection parameters */</span>
+<a name="l01210"></a>01210 <span class="keywordflow">if</span> (((rejmin+rejmax)>=halfw) || (halfw<1) || (rejmin<0) || (rejmax<0)) {
+<a name="l01211"></a>01211 cpl_msg_error(cpl_func, <span class="stringliteral">"cannot compute running median with "</span>
+<a name="l01212"></a>01212 <span class="stringliteral">"rejection parameters %d (%d-%d)"</span>,
+<a name="l01213"></a>01213 halfw, rejmin, rejmax);
+<a name="l01214"></a>01214 <span class="keywordflow">return</span> -1;
+<a name="l01215"></a>01215 }
+<a name="l01216"></a>01216 <span class="comment">/* Pre-compute median value in each plane */</span>
+<a name="l01217"></a>01217 medians = cpl_vector_new(ni) ;
+<a name="l01218"></a>01218 <span class="keywordflow">for</span> (i=0 ; i<ni ; i++) {
+<a name="l01219"></a>01219 cur_ima = cpl_imagelist_get(in, i) ;
+<a name="l01220"></a>01220 cpl_vector_set(medians, i, cpl_image_get_median(cur_ima)) ;
+<a name="l01221"></a>01221 }
+<a name="l01222"></a>01222 <span class="comment">/* Allocate output cube */</span>
+<a name="l01223"></a>01223 result_buffer = cpl_imagelist_new() ;
+<a name="l01224"></a>01224
+<a name="l01225"></a>01225 <span class="comment">/* Allocate output bg stats */</span>
+<a name="l01226"></a>01226 cpl_table_set_size(bkg_stats[idet], ni);
+<a name="l01227"></a>01227
+<a name="l01228"></a>01228 <span class="comment">/* Main loop over input planes */</span>
+<a name="l01229"></a>01229 <span class="keywordflow">for</span> (k=0 ; k<ni ; k++)
+<a name="l01230"></a>01230 {
+<a name="l01231"></a>01231 cpl_image * bkg;
<a name="l01232"></a>01232
-<a name="l01233"></a>01233 <span class="comment">/* Subtract the background from the current image */</span>
-<a name="l01234"></a>01234 tmp_ima = cpl_image_subtract_create(cpl_imagelist_get(in, k), bkg);
-<a name="l01235"></a>01235
-<a name="l01236"></a>01236 <span class="comment">/* Statistics on the background */</span>
-<a name="l01237"></a>01237 <span class="keywordflow">if</span>(bkg_stats != NULL)
-<a name="l01238"></a>01238 {
-<a name="l01239"></a>01239 <a class="code" href="group__hawki__image__stats.html#gaddd6e9623519487c0775de8c3a0aee0f" title="Fills a table with the statistics of an image.">hawki_image_stats_fill_from_image</a>
-<a name="l01240"></a>01240 (bkg_stats, bkg,
-<a name="l01241"></a>01241 1, 1, nx, ny,
-<a name="l01242"></a>01242 idet, k);
-<a name="l01243"></a>01243 }
-<a name="l01244"></a>01244 cpl_image_delete(bkg);
-<a name="l01245"></a>01245
-<a name="l01246"></a>01246 <span class="comment">/* Place the new image in a result buffer */</span>
-<a name="l01247"></a>01247 cpl_imagelist_set(result_buffer, tmp_ima,
-<a name="l01248"></a>01248 cpl_imagelist_get_size(result_buffer));
-<a name="l01249"></a>01249
-<a name="l01250"></a>01250 <span class="comment">/* Empty the buffer as much as possible */</span>
-<a name="l01251"></a>01251 next_not_to_be_used = k - halfw;
-<a name="l01252"></a>01252 <span class="keywordflow">while</span>(next_not_to_be_used >= first_buffered)
-<a name="l01253"></a>01253 {
-<a name="l01254"></a>01254 cpl_imagelist_set(in, cpl_imagelist_unset(result_buffer, 0),
-<a name="l01255"></a>01255 first_buffered);
-<a name="l01256"></a>01256 first_buffered++;
-<a name="l01257"></a>01257 }
-<a name="l01258"></a>01258 }
-<a name="l01259"></a>01259 <span class="comment">/* Empty the buffer finally */</span>
-<a name="l01260"></a>01260 next_not_to_be_used = ni - 1;
-<a name="l01261"></a>01261 <span class="keywordflow">while</span>(next_not_to_be_used >= first_buffered)
-<a name="l01262"></a>01262 {
-<a name="l01263"></a>01263 cpl_imagelist_set(in, cpl_imagelist_unset(result_buffer, 0),
-<a name="l01264"></a>01264 first_buffered);
-<a name="l01265"></a>01265 first_buffered++;
-<a name="l01266"></a>01266 }
-<a name="l01267"></a>01267 cpl_imagelist_delete(result_buffer);
-<a name="l01268"></a>01268 cpl_vector_delete(medians);
-<a name="l01269"></a>01269
-<a name="l01270"></a>01270 <span class="comment">/* Subtract median from each frame */</span>
-<a name="l01271"></a>01271 <span class="keywordflow">for</span> (i=0 ; i<ni ; i++) {
-<a name="l01272"></a>01272 cur_ima = cpl_imagelist_get(in, i);
-<a name="l01273"></a>01273 one_med = cpl_image_get_median(cur_ima) ;
-<a name="l01274"></a>01274 cpl_image_subtract_scalar(cur_ima, one_med) ;
-<a name="l01275"></a>01275 }
-<a name="l01276"></a>01276 <span class="keywordflow">return</span> 0;
-<a name="l01277"></a>01277 }
-<a name="l01278"></a>01278
-<a name="l01279"></a>01279 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01288"></a>01288 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01289"></a>01289 <span class="keyword">static</span> cpl_image ** hawki_sci_jitter_saa(
-<a name="l01290"></a>01290 cpl_imagelist ** in,
-<a name="l01291"></a>01291 cpl_bivector * offsets,
-<a name="l01292"></a>01292 <span class="keywordtype">double</span> * pos_x,
-<a name="l01293"></a>01293 <span class="keywordtype">double</span> * pos_y)
-<a name="l01294"></a>01294 {
-<a name="l01295"></a>01295 cpl_bivector * offs_est;
-<a name="l01296"></a>01296 cpl_bivector * offs_used;
-<a name="l01297"></a>01297 cpl_bivector * objs ;
-<a name="l01298"></a>01298 cpl_image ** combined ;
-<a name="l01299"></a>01299 <span class="keywordtype">int</span> nfiles, ngood, nima, nx, ny ;
-<a name="l01300"></a>01300 <span class="keywordtype">int</span> i;
-<a name="l01301"></a>01301
-<a name="l01302"></a>01302 <span class="comment">/* Check entries */</span>
-<a name="l01303"></a>01303 <span class="keywordflow">if</span> (pos_x == NULL || pos_y == NULL) <span class="keywordflow">return</span> NULL ;
-<a name="l01304"></a>01304 <span class="keywordflow">if</span> (offsets == NULL) <span class="keywordflow">return</span> NULL ;
-<a name="l01305"></a>01305
-<a name="l01306"></a>01306 <span class="comment">/* Get the number of images */</span>
-<a name="l01307"></a>01307 nfiles = cpl_imagelist_get_size(*in) ;
-<a name="l01308"></a>01308 <span class="keywordflow">if</span> (cpl_bivector_get_size(offsets) != nfiles) {
-<a name="l01309"></a>01309 cpl_msg_error(cpl_func, <span class="stringliteral">"Invalid input objects sizes"</span>) ;
-<a name="l01310"></a>01310 <span class="keywordflow">return</span> NULL ;
-<a name="l01311"></a>01311 }
-<a name="l01312"></a>01312
-<a name="l01313"></a>01313 <span class="comment">/* Get the offsets estimation of each input file pair */</span>
-<a name="l01314"></a>01314 cpl_msg_info(cpl_func, <span class="stringliteral">"Get the offsets estimation"</span>) ;
-<a name="l01315"></a>01315 offs_est = NULL ;
-<a name="l01316"></a>01316 <span class="keywordflow">if</span> (hawki_sci_jitter_config.offsets &&
-<a name="l01317"></a>01317 hawki_sci_jitter_config.offsets[0] != (<span class="keywordtype">char</span>)0) {
-<a name="l01318"></a>01318 <span class="comment">/* A file has been provided on the command line */</span>
-<a name="l01319"></a>01319 offs_est = cpl_bivector_read((<span class="keywordtype">char</span>*)hawki_sci_jitter_config.offsets);
-<a name="l01320"></a>01320 <span class="keywordflow">if</span> ((offs_est==NULL)||(cpl_bivector_get_size(offs_est)!=nfiles)) {
-<a name="l01321"></a>01321 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot get offsets from %s"</span>,
-<a name="l01322"></a>01322 hawki_sci_jitter_config.offsets) ;
-<a name="l01323"></a>01323 <span class="keywordflow">return</span> NULL ;
-<a name="l01324"></a>01324 }
-<a name="l01325"></a>01325 } <span class="keywordflow">else</span> {
-<a name="l01326"></a>01326 <span class="comment">/* Use the offsets from the header */</span>
-<a name="l01327"></a>01327 offs_est = cpl_bivector_duplicate(offsets) ;
-<a name="l01328"></a>01328 cpl_vector_multiply_scalar(cpl_bivector_get_x(offs_est), -1.0) ;
-<a name="l01329"></a>01329 cpl_vector_multiply_scalar(cpl_bivector_get_y(offs_est), -1.0) ;
-<a name="l01330"></a>01330 }
-<a name="l01331"></a>01331
-<a name="l01332"></a>01332 <span class="comment">/* Read the provided objects file if provided */</span>
-<a name="l01333"></a>01333 objs = NULL ;
-<a name="l01334"></a>01334 <span class="keywordflow">if</span> (hawki_sci_jitter_config.refine &&
-<a name="l01335"></a>01335 hawki_sci_jitter_config.objects &&
-<a name="l01336"></a>01336 hawki_sci_jitter_config.objects[0] != (<span class="keywordtype">char</span>)0) {
-<a name="l01337"></a>01337 cpl_msg_info(cpl_func, <span class="stringliteral">"Get the user provided correlation objects"</span>) ;
-<a name="l01338"></a>01338 <span class="comment">/* A file has been provided on the command line */</span>
-<a name="l01339"></a>01339 objs = cpl_bivector_read((<span class="keywordtype">char</span>*)hawki_sci_jitter_config.objects) ;
-<a name="l01340"></a>01340 <span class="keywordflow">if</span> (objs==NULL) {
-<a name="l01341"></a>01341 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot get objects from %s"</span>,
-<a name="l01342"></a>01342 hawki_sci_jitter_config.objects) ;
-<a name="l01343"></a>01343 cpl_bivector_delete(offs_est) ;
-<a name="l01344"></a>01344 <span class="keywordflow">return</span> NULL ;
-<a name="l01345"></a>01345 }
-<a name="l01346"></a>01346 }
-<a name="l01347"></a>01347
-<a name="l01348"></a>01348 <span class="comment">/* Get a correlation point from the difference of the first images */</span>
-<a name="l01349"></a>01349 <span class="keywordflow">if</span> (hawki_sci_jitter_config.refine && objs == NULL) {
-<a name="l01350"></a>01350 cpl_apertures * aperts;
-<a name="l01351"></a>01351 cpl_image * detect_image;
-<a name="l01352"></a>01352 cpl_vector * thresh_vect;
-<a name="l01353"></a>01353 <span class="keywordtype">double</span> * objs_x ;
-<a name="l01354"></a>01354 <span class="keywordtype">double</span> * objs_y ;
-<a name="l01355"></a>01355 cpl_msg_info(cpl_func, <span class="stringliteral">"Get a cross-correlation point"</span>) ;
-<a name="l01356"></a>01356 thresh_vect = cpl_vector_new(4) ;
-<a name="l01357"></a>01357 cpl_vector_set(thresh_vect, 0, 5.0) ;
-<a name="l01358"></a>01358 cpl_vector_set(thresh_vect, 1, 2.0) ;
-<a name="l01359"></a>01359 cpl_vector_set(thresh_vect, 2, 1.0) ;
-<a name="l01360"></a>01360 cpl_vector_set(thresh_vect, 3, 0.5) ;
-<a name="l01361"></a>01361 detect_image = cpl_imagelist_get(*in, 0);
-<a name="l01362"></a>01362 <span class="keywordflow">if</span> ((aperts = cpl_apertures_extract_window(detect_image, thresh_vect,
-<a name="l01363"></a>01363 400, 400, 1600, 1600, NULL)) == NULL) {
-<a name="l01364"></a>01364 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot find any cross-correlation point"</span>) ;
-<a name="l01365"></a>01365 cpl_bivector_delete(offs_est) ;
-<a name="l01366"></a>01366 cpl_vector_delete(thresh_vect) ;
-<a name="l01367"></a>01367 <span class="keywordflow">return</span> NULL ;
-<a name="l01368"></a>01368 }
-<a name="l01369"></a>01369 cpl_vector_delete(thresh_vect) ;
-<a name="l01370"></a>01370 cpl_apertures_sort_by_npix(aperts) ;
-<a name="l01371"></a>01371 objs = cpl_bivector_new(1) ;
-<a name="l01372"></a>01372 objs_x = cpl_bivector_get_x_data(objs) ;
-<a name="l01373"></a>01373 objs_y = cpl_bivector_get_y_data(objs) ;
-<a name="l01374"></a>01374 objs_x[0] = cpl_apertures_get_pos_x(aperts, 1) ;
-<a name="l01375"></a>01375 objs_y[0] = cpl_apertures_get_pos_y(aperts, 1) ;
-<a name="l01376"></a>01376 cpl_apertures_delete(aperts) ;
-<a name="l01377"></a>01377 <span class="keywordflow">if</span> (objs == NULL) {
-<a name="l01378"></a>01378 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot find any cross-correlation point"</span>) ;
-<a name="l01379"></a>01379 cpl_bivector_delete(offs_est) ;
-<a name="l01380"></a>01380 <span class="keywordflow">return</span> NULL ;
-<a name="l01381"></a>01381 }
-<a name="l01382"></a>01382 cpl_msg_info(cpl_func,
-<a name="l01383"></a>01383 <span class="stringliteral">"Correlation point: %g %g\n"</span>, objs_x[0], objs_y[0]);
-<a name="l01384"></a>01384 }
-<a name="l01385"></a>01385
-<a name="l01386"></a>01386 <span class="comment">/* Refine the offsets */</span>
-<a name="l01387"></a>01387 <span class="keywordflow">if</span> (hawki_sci_jitter_config.refine) {
-<a name="l01388"></a>01388 cpl_bivector * offs_refined;
-<a name="l01389"></a>01389 <span class="keywordtype">double</span> * offs_refined_x;
-<a name="l01390"></a>01390 <span class="keywordtype">double</span> * offs_refined_y;
-<a name="l01391"></a>01391 <span class="keywordtype">double</span> * offs_est_x;
-<a name="l01392"></a>01392 <span class="keywordtype">double</span> * offs_est_y;
-<a name="l01393"></a>01393 cpl_vector * correl ;
-<a name="l01394"></a>01394 <span class="keywordtype">double</span> * correl_data ;
-<a name="l01395"></a>01395 cpl_msg_info(cpl_func, <span class="stringliteral">"Refine the offsets"</span>);
-<a name="l01396"></a>01396 cpl_msg_indent_more() ;
-<a name="l01397"></a>01397 nima = cpl_imagelist_get_size(*in) ;
-<a name="l01398"></a>01398 correl = cpl_vector_new(nima) ;
-<a name="l01399"></a>01399 <span class="keywordflow">if</span> ((offs_refined = cpl_geom_img_offset_fine(*in, offs_est, objs,
-<a name="l01400"></a>01400 hawki_sci_jitter_config.sx,
-<a name="l01401"></a>01401 hawki_sci_jitter_config.sy,
-<a name="l01402"></a>01402 hawki_sci_jitter_config.mx,
-<a name="l01403"></a>01403 hawki_sci_jitter_config.my,
-<a name="l01404"></a>01404 correl)) == NULL) {
-<a name="l01405"></a>01405 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot refine the offsets"</span>);
-<a name="l01406"></a>01406 cpl_bivector_delete(offs_est) ;
-<a name="l01407"></a>01407 <span class="keywordflow">if</span> (objs != NULL) cpl_bivector_delete(objs) ;
-<a name="l01408"></a>01408 cpl_vector_delete(correl) ;
-<a name="l01409"></a>01409 <span class="keywordflow">return</span> NULL ;
-<a name="l01410"></a>01410 }
-<a name="l01411"></a>01411 <span class="keywordflow">if</span> (objs != NULL) cpl_bivector_delete(objs) ;
-<a name="l01412"></a>01412
-<a name="l01413"></a>01413 <span class="comment">/* Display the results */</span>
-<a name="l01414"></a>01414 offs_est_x = cpl_bivector_get_x_data(offs_est);
-<a name="l01415"></a>01415 offs_est_y = cpl_bivector_get_y_data(offs_est);
-<a name="l01416"></a>01416 offs_refined_x = cpl_bivector_get_x_data(offs_refined);
-<a name="l01417"></a>01417 offs_refined_y = cpl_bivector_get_y_data(offs_refined) ;
-<a name="l01418"></a>01418 correl_data = cpl_vector_get_data(correl) ;
-<a name="l01419"></a>01419 cpl_msg_info(cpl_func, <span class="stringliteral">"Refined offsets [correlation factor]"</span>) ;
-<a name="l01420"></a>01420 ngood = 0 ;
-<a name="l01421"></a>01421 <span class="keywordflow">for</span> (i=0 ; i<nima ; i++) {
-<a name="l01422"></a>01422 cpl_msg_info(cpl_func, <span class="stringliteral">"#%02d: %8.2f %8.2f [%12.2f]"</span>,
-<a name="l01423"></a>01423 i+1, offs_refined_x[i], offs_refined_y[i], correl_data[i]);
-<a name="l01424"></a>01424 <span class="keywordflow">if</span> (correl_data[i] > -0.5) ngood++ ;
-<a name="l01425"></a>01425 }
-<a name="l01426"></a>01426 <span class="keywordflow">if</span> (ngood == 0) {
-<a name="l01427"></a>01427 cpl_msg_error(cpl_func, <span class="stringliteral">"No frame correctly correlated"</span>) ;
-<a name="l01428"></a>01428 cpl_bivector_delete(offs_est);
-<a name="l01429"></a>01429 cpl_bivector_delete(offs_refined);
-<a name="l01430"></a>01430 cpl_vector_delete(correl);
-<a name="l01431"></a>01431 <span class="keywordflow">return</span> NULL ;
-<a name="l01432"></a>01432 }
-<a name="l01433"></a>01433 cpl_msg_indent_less();
-<a name="l01434"></a>01434
-<a name="l01435"></a>01435 <span class="comment">/* Replace bad correlated images with the nominal offsets */</span>
-<a name="l01436"></a>01436 cpl_msg_info(cpl_func, <span class="stringliteral">"Using nominal offsets for badly "</span>
-<a name="l01437"></a>01437 <span class="stringliteral">"correlated images (%d out of %d)"</span>, nima-ngood, nima);
-<a name="l01438"></a>01438 <span class="keywordflow">for</span> (i=0 ; i<nima ; i++) {
-<a name="l01439"></a>01439 <span class="keywordflow">if</span> (correl_data[i] < -0.5) {
-<a name="l01440"></a>01440 offs_refined_x[i] = offs_est_x[i];
-<a name="l01441"></a>01441 offs_refined_y[i] = offs_est_y[i];
-<a name="l01442"></a>01442 }
-<a name="l01443"></a>01443 }
-<a name="l01444"></a>01444 offs_used = cpl_bivector_duplicate(offs_refined);
-<a name="l01445"></a>01445 cpl_bivector_delete(offs_est);
-<a name="l01446"></a>01446 cpl_bivector_delete(offs_refined);
-<a name="l01447"></a>01447 cpl_vector_delete(correl);
-<a name="l01448"></a>01448 }
-<a name="l01449"></a>01449 <span class="keywordflow">else</span>
-<a name="l01450"></a>01450 {
-<a name="l01451"></a>01451 offs_used = cpl_bivector_duplicate(offs_est);
-<a name="l01452"></a>01452 cpl_bivector_delete(offs_est);
-<a name="l01453"></a>01453 }
-<a name="l01454"></a>01454
-<a name="l01455"></a>01455 <span class="comment">/* Discard the pixels on the sides */</span>
-<a name="l01456"></a>01456 <span class="keywordflow">if</span> (hawki_sci_jitter_config.borders > 0) {
-<a name="l01457"></a>01457 cpl_imagelist * in_ext ;
-<a name="l01458"></a>01458 cpl_image * tmp1 ;
-<a name="l01459"></a>01459 cpl_image * tmp2 ;
-<a name="l01460"></a>01460 nx = cpl_image_get_size_x(cpl_imagelist_get(*in, 0)) ;
-<a name="l01461"></a>01461 ny = cpl_image_get_size_y(cpl_imagelist_get(*in, 0)) ;
-<a name="l01462"></a>01462 in_ext = cpl_imagelist_new() ;
-<a name="l01463"></a>01463 <span class="keywordflow">while</span>(cpl_imagelist_get_size(*in) > 0)
-<a name="l01464"></a>01464 {
-<a name="l01465"></a>01465 tmp1 = cpl_imagelist_unset(*in, 0);
-<a name="l01466"></a>01466 tmp2 = cpl_image_extract(tmp1,
-<a name="l01467"></a>01467 hawki_sci_jitter_config.borders+1,
-<a name="l01468"></a>01468 hawki_sci_jitter_config.borders+1,
-<a name="l01469"></a>01469 nx-hawki_sci_jitter_config.borders,
-<a name="l01470"></a>01470 ny-hawki_sci_jitter_config.borders) ;
-<a name="l01471"></a>01471 cpl_image_delete(tmp1);
-<a name="l01472"></a>01472 cpl_imagelist_set(in_ext, tmp2, cpl_imagelist_get_size(in_ext)) ;
-<a name="l01473"></a>01473 }
-<a name="l01474"></a>01474 cpl_imagelist_delete(*in) ;
-<a name="l01475"></a>01475 *in = in_ext ;
-<a name="l01476"></a>01476 }
-<a name="l01477"></a>01477
-<a name="l01478"></a>01478 <span class="comment">/* Apply the shift & add */</span>
-<a name="l01479"></a>01479 cpl_msg_info(cpl_func, <span class="stringliteral">"Recombine the images set"</span>) ;
-<a name="l01480"></a>01480 cpl_msg_indent_more() ;
-<a name="l01481"></a>01481 <span class="keywordflow">if</span> ((combined=cpl_geom_img_offset_saa(*in, offs_used,
-<a name="l01482"></a>01482 CPL_KERNEL_DEFAULT,
-<a name="l01483"></a>01483 hawki_sci_jitter_config.rej_low,
-<a name="l01484"></a>01484 hawki_sci_jitter_config.rej_high,
-<a name="l01485"></a>01485 hawki_sci_jitter_config.comb_meth,
-<a name="l01486"></a>01486 pos_x, pos_y)) == NULL) {
-<a name="l01487"></a>01487 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot apply the shift and add"</span>) ;
-<a name="l01488"></a>01488 cpl_bivector_delete(offs_used) ;
-<a name="l01489"></a>01489 cpl_msg_indent_less() ;
-<a name="l01490"></a>01490 <span class="keywordflow">return</span> NULL ;
-<a name="l01491"></a>01491 }
-<a name="l01492"></a>01492 cpl_msg_indent_less() ;
-<a name="l01493"></a>01493 *pos_x -= hawki_sci_jitter_config.borders ;
-<a name="l01494"></a>01494 *pos_y -= hawki_sci_jitter_config.borders ;
-<a name="l01495"></a>01495
-<a name="l01496"></a>01496 <span class="comment">/* Free and return */</span>
-<a name="l01497"></a>01497 cpl_bivector_delete(offs_used) ;
-<a name="l01498"></a>01498 <span class="keywordflow">return</span> combined ;
-<a name="l01499"></a>01499 }
-<a name="l01500"></a>01500
-<a name="l01501"></a>01501 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01508"></a>01508 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01509"></a>01509 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_qc
-<a name="l01510"></a>01510 (cpl_frameset * science_frames,
-<a name="l01511"></a>01511 cpl_image ** combined_images,
-<a name="l01512"></a>01512 cpl_table ** obj_charac)
-<a name="l01513"></a>01513 {
-<a name="l01514"></a>01514 cpl_vector * thresh_vec ;
-<a name="l01515"></a>01515 cpl_apertures * aperts ;
-<a name="l01516"></a>01516 <span class="keywordtype">int</span> nb_objs ;
-<a name="l01517"></a>01517 <span class="keywordtype">double</span> angle ;
-<a name="l01518"></a>01518 <span class="keywordtype">double</span> * fwhms_x ;
-<a name="l01519"></a>01519 <span class="keywordtype">double</span> * fwhms_y ;
-<a name="l01520"></a>01520 cpl_bivector * iqe ;
-<a name="l01521"></a>01521 <span class="keywordtype">int</span> nb_good ;
-<a name="l01522"></a>01522 cpl_vector * fwhms_good ;
-<a name="l01523"></a>01523 <span class="keywordtype">double</span> * fwhms_good_data ;
-<a name="l01524"></a>01524 <span class="keywordtype">double</span> f_min, f_max, fr, fx, fy ;
-<a name="l01525"></a>01525 <span class="keywordtype">int</span> chip;
-<a name="l01526"></a>01526 <span class="keywordtype">int</span> iobj;
-<a name="l01527"></a>01527 <span class="keywordtype">int</span> j;
-<a name="l01528"></a>01528
-<a name="l01529"></a>01529 <span class="comment">/* Initialise */</span>
-<a name="l01530"></a>01530 <span class="keywordtype">double</span> seeing_min_arcsec = 0.1 ;
-<a name="l01531"></a>01531 <span class="keywordtype">double</span> seeing_max_arcsec = 5.0 ;
-<a name="l01532"></a>01532 <span class="keywordtype">double</span> seeing_fwhm_var = 0.2 ;
-<a name="l01533"></a>01533
-<a name="l01534"></a>01534 <span class="comment">/* Check entries */</span>
-<a name="l01535"></a>01535 <span class="keywordflow">if</span> (combined_images == NULL) <span class="keywordflow">return</span> -1 ;
-<a name="l01536"></a>01536 <span class="keywordflow">if</span> (obj_charac == NULL) <span class="keywordflow">return</span> -1 ;
-<a name="l01537"></a>01537
-<a name="l01538"></a>01538 <span class="comment">/* Create the vector for the detection thresholds */</span>
-<a name="l01539"></a>01539 thresh_vec = cpl_vector_new(11) ;
-<a name="l01540"></a>01540 cpl_vector_set(thresh_vec, 0, 100.0) ;
-<a name="l01541"></a>01541 cpl_vector_set(thresh_vec, 0, 90.0) ;
-<a name="l01542"></a>01542 cpl_vector_set(thresh_vec, 0, 80.0) ;
-<a name="l01543"></a>01543 cpl_vector_set(thresh_vec, 0, 70.0) ;
-<a name="l01544"></a>01544 cpl_vector_set(thresh_vec, 0, 60.0) ;
-<a name="l01545"></a>01545 cpl_vector_set(thresh_vec, 0, 50.0) ;
-<a name="l01546"></a>01546 cpl_vector_set(thresh_vec, 1, 40.0) ;
-<a name="l01547"></a>01547 cpl_vector_set(thresh_vec, 1, 30.0) ;
-<a name="l01548"></a>01548 cpl_vector_set(thresh_vec, 1, 20.0) ;
-<a name="l01549"></a>01549 cpl_vector_set(thresh_vec, 1, 10.0) ;
-<a name="l01550"></a>01550 cpl_vector_set(thresh_vec, 2, 5.0) ;
-<a name="l01551"></a>01551
-<a name="l01552"></a>01552 <span class="comment">/* Get the mean airmass */</span>
-<a name="l01553"></a>01553 hawki_sci_jitter_output.mean_airmass =
-<a name="l01554"></a>01554 <a class="code" href="group__hawki__utils.html#ga7b165e9e91b6c6519595109b36d4fb46" title="Get the mean airmass for a set of frames.">hawki_get_mean_airmass</a>(science_frames);;
-<a name="l01555"></a>01555
-<a name="l01556"></a>01556 <span class="comment">/* Loop on the HAWK-I detectors */</span>
-<a name="l01557"></a>01557 <span class="keywordflow">for</span> (chip=0 ; chip<HAWKI_NB_DETECTORS ; chip++)
-<a name="l01558"></a>01558 {
-<a name="l01559"></a>01559 <span class="comment">/* Check entries */</span>
-<a name="l01560"></a>01560 <span class="keywordflow">if</span> (combined_images[chip] == NULL) <span class="keywordflow">return</span> -1 ;
-<a name="l01561"></a>01561 <span class="keywordflow">if</span> (obj_charac[chip] == NULL) <span class="keywordflow">return</span> -1 ;
-<a name="l01562"></a>01562
-<a name="l01563"></a>01563 <span class="comment">/* Detect apertures */</span>
-<a name="l01564"></a>01564 <span class="keywordflow">if</span> ((aperts = cpl_apertures_extract
-<a name="l01565"></a>01565 (combined_images[chip], thresh_vec, NULL)) == NULL) {
-<a name="l01566"></a>01566 cpl_msg_warning(cpl_func, <span class="stringliteral">"Cannot detect any aperture on chip %d"</span>,
-<a name="l01567"></a>01567 chip+1) ;
-<a name="l01568"></a>01568 <span class="keywordflow">continue</span>;
-<a name="l01569"></a>01569 }
-<a name="l01570"></a>01570
-<a name="l01571"></a>01571 <span class="comment">/* Number of detected objects */</span>
-<a name="l01572"></a>01572 nb_objs = cpl_apertures_get_size(aperts);
-<a name="l01573"></a>01573 cpl_msg_info(cpl_func, <span class="stringliteral">"%d objects detected on chip %d"</span>,nb_objs,chip+1);
-<a name="l01574"></a>01574 hawki_sci_jitter_output.nbobjs[chip] = nb_objs ;
-<a name="l01575"></a>01575 fwhms_x = cpl_malloc(nb_objs * <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>)) ;
-<a name="l01576"></a>01576 fwhms_y = cpl_malloc(nb_objs * <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>)) ;
-<a name="l01577"></a>01577
-<a name="l01578"></a>01578 <span class="comment">/* Initialize the output table */</span>
-<a name="l01579"></a>01579 cpl_table_set_size(obj_charac[chip], nb_objs);
-<a name="l01580"></a>01580 cpl_table_new_column
-<a name="l01581"></a>01581 (obj_charac[chip], HAWKI_COL_OBJ_POSX, CPL_TYPE_DOUBLE);
-<a name="l01582"></a>01582 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_POSX,<span class="stringliteral">"pix"</span>);
-<a name="l01583"></a>01583 cpl_table_new_column
-<a name="l01584"></a>01584 (obj_charac[chip], HAWKI_COL_OBJ_POSY, CPL_TYPE_DOUBLE);
-<a name="l01585"></a>01585 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_POSY,<span class="stringliteral">"pix"</span>);
+<a name="l01233"></a>01233 <span class="comment">/* Create the background image, to later compute stats */</span>
+<a name="l01234"></a>01234 bkg = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
+<a name="l01235"></a>01235
+<a name="l01236"></a>01236 hawki_bkg_from_running_mean
+<a name="l01237"></a>01237 (in, medians, k, halfw, rejmin, rejmax, bkg);
+<a name="l01238"></a>01238
+<a name="l01239"></a>01239 <span class="comment">/* Subtract the background from the current image */</span>
+<a name="l01240"></a>01240 tmp_ima = cpl_image_subtract_create(cpl_imagelist_get(in, k), bkg);
+<a name="l01241"></a>01241
+<a name="l01242"></a>01242 <span class="comment">/* Statistics on the background */</span>
+<a name="l01243"></a>01243 <span class="keywordflow">if</span>(bkg_stats != NULL)
+<a name="l01244"></a>01244 {
+<a name="l01245"></a>01245 <a class="code" href="group__hawki__image__stats.html#gaddd6e9623519487c0775de8c3a0aee0f" title="Fills a table with the statistics of an image.">hawki_image_stats_fill_from_image</a>
+<a name="l01246"></a>01246 (bkg_stats, bkg,
+<a name="l01247"></a>01247 1, 1, nx, ny,
+<a name="l01248"></a>01248 idet, k);
+<a name="l01249"></a>01249 }
+<a name="l01250"></a>01250 cpl_image_delete(bkg);
+<a name="l01251"></a>01251
+<a name="l01252"></a>01252 <span class="comment">/* Place the new image in a result buffer */</span>
+<a name="l01253"></a>01253 cpl_imagelist_set(result_buffer, tmp_ima,
+<a name="l01254"></a>01254 cpl_imagelist_get_size(result_buffer));
+<a name="l01255"></a>01255
+<a name="l01256"></a>01256 <span class="comment">/* Empty the buffer as much as possible */</span>
+<a name="l01257"></a>01257 next_not_to_be_used = k - halfw;
+<a name="l01258"></a>01258 <span class="keywordflow">while</span>(next_not_to_be_used >= first_buffered)
+<a name="l01259"></a>01259 {
+<a name="l01260"></a>01260 cpl_imagelist_set(in, cpl_imagelist_unset(result_buffer, 0),
+<a name="l01261"></a>01261 first_buffered);
+<a name="l01262"></a>01262 first_buffered++;
+<a name="l01263"></a>01263 }
+<a name="l01264"></a>01264 }
+<a name="l01265"></a>01265 <span class="comment">/* Empty the buffer finally */</span>
+<a name="l01266"></a>01266 next_not_to_be_used = ni - 1;
+<a name="l01267"></a>01267 <span class="keywordflow">while</span>(next_not_to_be_used >= first_buffered)
+<a name="l01268"></a>01268 {
+<a name="l01269"></a>01269 cpl_imagelist_set(in, cpl_imagelist_unset(result_buffer, 0),
+<a name="l01270"></a>01270 first_buffered);
+<a name="l01271"></a>01271 first_buffered++;
+<a name="l01272"></a>01272 }
+<a name="l01273"></a>01273 cpl_imagelist_delete(result_buffer);
+<a name="l01274"></a>01274 cpl_vector_delete(medians);
+<a name="l01275"></a>01275
+<a name="l01276"></a>01276 <span class="comment">/* Subtract median from each frame */</span>
+<a name="l01277"></a>01277 <span class="keywordflow">for</span> (i=0 ; i<ni ; i++) {
+<a name="l01278"></a>01278 cur_ima = cpl_imagelist_get(in, i);
+<a name="l01279"></a>01279 one_med = cpl_image_get_median(cur_ima) ;
+<a name="l01280"></a>01280 cpl_image_subtract_scalar(cur_ima, one_med) ;
+<a name="l01281"></a>01281 }
+<a name="l01282"></a>01282 <span class="keywordflow">return</span> 0;
+<a name="l01283"></a>01283 }
+<a name="l01284"></a>01284
+<a name="l01285"></a>01285 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01294"></a>01294 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01295"></a>01295 <span class="keyword">static</span> cpl_image ** hawki_sci_jitter_saa(
+<a name="l01296"></a>01296 cpl_imagelist ** in,
+<a name="l01297"></a>01297 cpl_bivector * offsets,
+<a name="l01298"></a>01298 <span class="keywordtype">double</span> * pos_x,
+<a name="l01299"></a>01299 <span class="keywordtype">double</span> * pos_y)
+<a name="l01300"></a>01300 {
+<a name="l01301"></a>01301 cpl_bivector * offs_est;
+<a name="l01302"></a>01302 cpl_bivector * offs_used;
+<a name="l01303"></a>01303 cpl_bivector * objs ;
+<a name="l01304"></a>01304 cpl_image ** combined ;
+<a name="l01305"></a>01305 <span class="keywordtype">int</span> nfiles, ngood, nima, nx, ny ;
+<a name="l01306"></a>01306 <span class="keywordtype">int</span> i;
+<a name="l01307"></a>01307
+<a name="l01308"></a>01308 <span class="comment">/* Check entries */</span>
+<a name="l01309"></a>01309 <span class="keywordflow">if</span> (pos_x == NULL || pos_y == NULL) <span class="keywordflow">return</span> NULL ;
+<a name="l01310"></a>01310 <span class="keywordflow">if</span> (offsets == NULL) <span class="keywordflow">return</span> NULL ;
+<a name="l01311"></a>01311
+<a name="l01312"></a>01312 <span class="comment">/* Get the number of images */</span>
+<a name="l01313"></a>01313 nfiles = cpl_imagelist_get_size(*in) ;
+<a name="l01314"></a>01314 <span class="keywordflow">if</span> (cpl_bivector_get_size(offsets) != nfiles) {
+<a name="l01315"></a>01315 cpl_msg_error(cpl_func, <span class="stringliteral">"Invalid input objects sizes"</span>) ;
+<a name="l01316"></a>01316 <span class="keywordflow">return</span> NULL ;
+<a name="l01317"></a>01317 }
+<a name="l01318"></a>01318
+<a name="l01319"></a>01319 <span class="comment">/* Get the offsets estimation of each input file pair */</span>
+<a name="l01320"></a>01320 cpl_msg_info(cpl_func, <span class="stringliteral">"Get the offsets estimation"</span>) ;
+<a name="l01321"></a>01321 offs_est = NULL ;
+<a name="l01322"></a>01322 <span class="keywordflow">if</span> (hawki_sci_jitter_config.offsets &&
+<a name="l01323"></a>01323 hawki_sci_jitter_config.offsets[0] != (<span class="keywordtype">char</span>)0) {
+<a name="l01324"></a>01324 <span class="comment">/* A file has been provided on the command line */</span>
+<a name="l01325"></a>01325 offs_est = cpl_bivector_read((<span class="keywordtype">char</span>*)hawki_sci_jitter_config.offsets);
+<a name="l01326"></a>01326 <span class="keywordflow">if</span> ((offs_est==NULL)||(cpl_bivector_get_size(offs_est)!=nfiles)) {
+<a name="l01327"></a>01327 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot get offsets from %s"</span>,
+<a name="l01328"></a>01328 hawki_sci_jitter_config.offsets) ;
+<a name="l01329"></a>01329 <span class="keywordflow">return</span> NULL ;
+<a name="l01330"></a>01330 }
+<a name="l01331"></a>01331 } <span class="keywordflow">else</span> {
+<a name="l01332"></a>01332 <span class="comment">/* Use the offsets from the header */</span>
+<a name="l01333"></a>01333 offs_est = cpl_bivector_duplicate(offsets) ;
+<a name="l01334"></a>01334 cpl_vector_multiply_scalar(cpl_bivector_get_x(offs_est), -1.0) ;
+<a name="l01335"></a>01335 cpl_vector_multiply_scalar(cpl_bivector_get_y(offs_est), -1.0) ;
+<a name="l01336"></a>01336 }
+<a name="l01337"></a>01337
+<a name="l01338"></a>01338 <span class="comment">/* Read the provided objects file if provided */</span>
+<a name="l01339"></a>01339 objs = NULL ;
+<a name="l01340"></a>01340 <span class="keywordflow">if</span> (hawki_sci_jitter_config.refine &&
+<a name="l01341"></a>01341 hawki_sci_jitter_config.objects &&
+<a name="l01342"></a>01342 hawki_sci_jitter_config.objects[0] != (<span class="keywordtype">char</span>)0) {
+<a name="l01343"></a>01343 cpl_msg_info(cpl_func, <span class="stringliteral">"Get the user provided correlation objects"</span>) ;
+<a name="l01344"></a>01344 <span class="comment">/* A file has been provided on the command line */</span>
+<a name="l01345"></a>01345 objs = cpl_bivector_read((<span class="keywordtype">char</span>*)hawki_sci_jitter_config.objects) ;
+<a name="l01346"></a>01346 <span class="keywordflow">if</span> (objs==NULL) {
+<a name="l01347"></a>01347 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot get objects from %s"</span>,
+<a name="l01348"></a>01348 hawki_sci_jitter_config.objects) ;
+<a name="l01349"></a>01349 cpl_bivector_delete(offs_est) ;
+<a name="l01350"></a>01350 <span class="keywordflow">return</span> NULL ;
+<a name="l01351"></a>01351 }
+<a name="l01352"></a>01352 }
+<a name="l01353"></a>01353
+<a name="l01354"></a>01354 <span class="comment">/* Get a correlation point from the difference of the first images */</span>
+<a name="l01355"></a>01355 <span class="keywordflow">if</span> (hawki_sci_jitter_config.refine && objs == NULL) {
+<a name="l01356"></a>01356 cpl_apertures * aperts;
+<a name="l01357"></a>01357 cpl_image * detect_image;
+<a name="l01358"></a>01358 cpl_vector * thresh_vect;
+<a name="l01359"></a>01359 <span class="keywordtype">double</span> * objs_x ;
+<a name="l01360"></a>01360 <span class="keywordtype">double</span> * objs_y ;
+<a name="l01361"></a>01361 cpl_msg_info(cpl_func, <span class="stringliteral">"Get a cross-correlation point"</span>) ;
+<a name="l01362"></a>01362 thresh_vect = cpl_vector_new(4) ;
+<a name="l01363"></a>01363 cpl_vector_set(thresh_vect, 0, 5.0) ;
+<a name="l01364"></a>01364 cpl_vector_set(thresh_vect, 1, 2.0) ;
+<a name="l01365"></a>01365 cpl_vector_set(thresh_vect, 2, 1.0) ;
+<a name="l01366"></a>01366 cpl_vector_set(thresh_vect, 3, 0.5) ;
+<a name="l01367"></a>01367 detect_image = cpl_imagelist_get(*in, 0);
+<a name="l01368"></a>01368 <span class="keywordflow">if</span> ((aperts = cpl_apertures_extract_window(detect_image, thresh_vect,
+<a name="l01369"></a>01369 400, 400, 1600, 1600, NULL)) == NULL) {
+<a name="l01370"></a>01370 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot find any cross-correlation point"</span>) ;
+<a name="l01371"></a>01371 cpl_bivector_delete(offs_est) ;
+<a name="l01372"></a>01372 cpl_vector_delete(thresh_vect) ;
+<a name="l01373"></a>01373 <span class="keywordflow">return</span> NULL ;
+<a name="l01374"></a>01374 }
+<a name="l01375"></a>01375 cpl_vector_delete(thresh_vect) ;
+<a name="l01376"></a>01376 cpl_apertures_sort_by_npix(aperts) ;
+<a name="l01377"></a>01377 objs = cpl_bivector_new(1) ;
+<a name="l01378"></a>01378 objs_x = cpl_bivector_get_x_data(objs) ;
+<a name="l01379"></a>01379 objs_y = cpl_bivector_get_y_data(objs) ;
+<a name="l01380"></a>01380 objs_x[0] = cpl_apertures_get_pos_x(aperts, 1) ;
+<a name="l01381"></a>01381 objs_y[0] = cpl_apertures_get_pos_y(aperts, 1) ;
+<a name="l01382"></a>01382 cpl_apertures_delete(aperts) ;
+<a name="l01383"></a>01383 <span class="keywordflow">if</span> (objs == NULL) {
+<a name="l01384"></a>01384 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot find any cross-correlation point"</span>) ;
+<a name="l01385"></a>01385 cpl_bivector_delete(offs_est) ;
+<a name="l01386"></a>01386 <span class="keywordflow">return</span> NULL ;
+<a name="l01387"></a>01387 }
+<a name="l01388"></a>01388 cpl_msg_info(cpl_func,
+<a name="l01389"></a>01389 <span class="stringliteral">"Correlation point: %g %g\n"</span>, objs_x[0], objs_y[0]);
+<a name="l01390"></a>01390 }
+<a name="l01391"></a>01391
+<a name="l01392"></a>01392 <span class="comment">/* Refine the offsets */</span>
+<a name="l01393"></a>01393 <span class="keywordflow">if</span> (hawki_sci_jitter_config.refine) {
+<a name="l01394"></a>01394 cpl_bivector * offs_refined;
+<a name="l01395"></a>01395 <span class="keywordtype">double</span> * offs_refined_x;
+<a name="l01396"></a>01396 <span class="keywordtype">double</span> * offs_refined_y;
+<a name="l01397"></a>01397 <span class="keywordtype">double</span> * offs_est_x;
+<a name="l01398"></a>01398 <span class="keywordtype">double</span> * offs_est_y;
+<a name="l01399"></a>01399 cpl_vector * correl ;
+<a name="l01400"></a>01400 <span class="keywordtype">double</span> * correl_data ;
+<a name="l01401"></a>01401 cpl_msg_info(cpl_func, <span class="stringliteral">"Refine the offsets"</span>);
+<a name="l01402"></a>01402 cpl_msg_indent_more() ;
+<a name="l01403"></a>01403 nima = cpl_imagelist_get_size(*in) ;
+<a name="l01404"></a>01404 correl = cpl_vector_new(nima) ;
+<a name="l01405"></a>01405 <span class="keywordflow">if</span> ((offs_refined = cpl_geom_img_offset_fine(*in, offs_est, objs,
+<a name="l01406"></a>01406 hawki_sci_jitter_config.sx,
+<a name="l01407"></a>01407 hawki_sci_jitter_config.sy,
+<a name="l01408"></a>01408 hawki_sci_jitter_config.mx,
+<a name="l01409"></a>01409 hawki_sci_jitter_config.my,
+<a name="l01410"></a>01410 correl)) == NULL) {
+<a name="l01411"></a>01411 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot refine the offsets"</span>);
+<a name="l01412"></a>01412 cpl_bivector_delete(offs_est) ;
+<a name="l01413"></a>01413 <span class="keywordflow">if</span> (objs != NULL) cpl_bivector_delete(objs) ;
+<a name="l01414"></a>01414 cpl_vector_delete(correl) ;
+<a name="l01415"></a>01415 <span class="keywordflow">return</span> NULL ;
+<a name="l01416"></a>01416 }
+<a name="l01417"></a>01417 <span class="keywordflow">if</span> (objs != NULL) cpl_bivector_delete(objs) ;
+<a name="l01418"></a>01418
+<a name="l01419"></a>01419 <span class="comment">/* Display the results */</span>
+<a name="l01420"></a>01420 offs_est_x = cpl_bivector_get_x_data(offs_est);
+<a name="l01421"></a>01421 offs_est_y = cpl_bivector_get_y_data(offs_est);
+<a name="l01422"></a>01422 offs_refined_x = cpl_bivector_get_x_data(offs_refined);
+<a name="l01423"></a>01423 offs_refined_y = cpl_bivector_get_y_data(offs_refined) ;
+<a name="l01424"></a>01424 correl_data = cpl_vector_get_data(correl) ;
+<a name="l01425"></a>01425 cpl_msg_info(cpl_func, <span class="stringliteral">"Refined offsets [correlation factor]"</span>) ;
+<a name="l01426"></a>01426 ngood = 0 ;
+<a name="l01427"></a>01427 <span class="keywordflow">for</span> (i=0 ; i<nima ; i++) {
+<a name="l01428"></a>01428 cpl_msg_info(cpl_func, <span class="stringliteral">"#%02d: %8.2f %8.2f [%12.2f]"</span>,
+<a name="l01429"></a>01429 i+1, offs_refined_x[i], offs_refined_y[i], correl_data[i]);
+<a name="l01430"></a>01430 <span class="keywordflow">if</span> (correl_data[i] > -0.5) ngood++ ;
+<a name="l01431"></a>01431 }
+<a name="l01432"></a>01432 <span class="keywordflow">if</span> (ngood == 0) {
+<a name="l01433"></a>01433 cpl_msg_error(cpl_func, <span class="stringliteral">"No frame correctly correlated"</span>) ;
+<a name="l01434"></a>01434 cpl_bivector_delete(offs_est);
+<a name="l01435"></a>01435 cpl_bivector_delete(offs_refined);
+<a name="l01436"></a>01436 cpl_vector_delete(correl);
+<a name="l01437"></a>01437 <span class="keywordflow">return</span> NULL ;
+<a name="l01438"></a>01438 }
+<a name="l01439"></a>01439 cpl_msg_indent_less();
+<a name="l01440"></a>01440
+<a name="l01441"></a>01441 <span class="comment">/* Replace bad correlated images with the nominal offsets */</span>
+<a name="l01442"></a>01442 cpl_msg_info(cpl_func, <span class="stringliteral">"Using nominal offsets for badly "</span>
+<a name="l01443"></a>01443 <span class="stringliteral">"correlated images (%d out of %d)"</span>, nima-ngood, nima);
+<a name="l01444"></a>01444 <span class="keywordflow">for</span> (i=0 ; i<nima ; i++) {
+<a name="l01445"></a>01445 <span class="keywordflow">if</span> (correl_data[i] < -0.5) {
+<a name="l01446"></a>01446 offs_refined_x[i] = offs_est_x[i];
+<a name="l01447"></a>01447 offs_refined_y[i] = offs_est_y[i];
+<a name="l01448"></a>01448 }
+<a name="l01449"></a>01449 }
+<a name="l01450"></a>01450 offs_used = cpl_bivector_duplicate(offs_refined);
+<a name="l01451"></a>01451 cpl_bivector_delete(offs_est);
+<a name="l01452"></a>01452 cpl_bivector_delete(offs_refined);
+<a name="l01453"></a>01453 cpl_vector_delete(correl);
+<a name="l01454"></a>01454 }
+<a name="l01455"></a>01455 <span class="keywordflow">else</span>
+<a name="l01456"></a>01456 {
+<a name="l01457"></a>01457 offs_used = cpl_bivector_duplicate(offs_est);
+<a name="l01458"></a>01458 cpl_bivector_delete(offs_est);
+<a name="l01459"></a>01459 }
+<a name="l01460"></a>01460
+<a name="l01461"></a>01461 <span class="comment">/* Discard the pixels on the sides */</span>
+<a name="l01462"></a>01462 <span class="keywordflow">if</span> (hawki_sci_jitter_config.borders > 0) {
+<a name="l01463"></a>01463 cpl_imagelist * in_ext ;
+<a name="l01464"></a>01464 cpl_image * tmp1 ;
+<a name="l01465"></a>01465 cpl_image * tmp2 ;
+<a name="l01466"></a>01466 nx = cpl_image_get_size_x(cpl_imagelist_get(*in, 0)) ;
+<a name="l01467"></a>01467 ny = cpl_image_get_size_y(cpl_imagelist_get(*in, 0)) ;
+<a name="l01468"></a>01468 in_ext = cpl_imagelist_new() ;
+<a name="l01469"></a>01469 <span class="keywordflow">while</span>(cpl_imagelist_get_size(*in) > 0)
+<a name="l01470"></a>01470 {
+<a name="l01471"></a>01471 tmp1 = cpl_imagelist_unset(*in, 0);
+<a name="l01472"></a>01472 tmp2 = cpl_image_extract(tmp1,
+<a name="l01473"></a>01473 hawki_sci_jitter_config.borders+1,
+<a name="l01474"></a>01474 hawki_sci_jitter_config.borders+1,
+<a name="l01475"></a>01475 nx-hawki_sci_jitter_config.borders,
+<a name="l01476"></a>01476 ny-hawki_sci_jitter_config.borders) ;
+<a name="l01477"></a>01477 cpl_image_delete(tmp1);
+<a name="l01478"></a>01478 cpl_imagelist_set(in_ext, tmp2, cpl_imagelist_get_size(in_ext)) ;
+<a name="l01479"></a>01479 }
+<a name="l01480"></a>01480 cpl_imagelist_delete(*in) ;
+<a name="l01481"></a>01481 *in = in_ext ;
+<a name="l01482"></a>01482 }
+<a name="l01483"></a>01483
+<a name="l01484"></a>01484 <span class="comment">/* Apply the shift & add */</span>
+<a name="l01485"></a>01485 cpl_msg_info(cpl_func, <span class="stringliteral">"Recombine the images set"</span>) ;
+<a name="l01486"></a>01486 cpl_msg_indent_more() ;
+<a name="l01487"></a>01487 <span class="keywordflow">if</span> ((combined=cpl_geom_img_offset_saa(*in, offs_used,
+<a name="l01488"></a>01488 CPL_KERNEL_DEFAULT,
+<a name="l01489"></a>01489 hawki_sci_jitter_config.rej_low,
+<a name="l01490"></a>01490 hawki_sci_jitter_config.rej_high,
+<a name="l01491"></a>01491 hawki_sci_jitter_config.comb_meth,
+<a name="l01492"></a>01492 pos_x, pos_y)) == NULL) {
+<a name="l01493"></a>01493 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot apply the shift and add"</span>) ;
+<a name="l01494"></a>01494 cpl_bivector_delete(offs_used) ;
+<a name="l01495"></a>01495 cpl_msg_indent_less() ;
+<a name="l01496"></a>01496 <span class="keywordflow">return</span> NULL ;
+<a name="l01497"></a>01497 }
+<a name="l01498"></a>01498 cpl_msg_indent_less() ;
+<a name="l01499"></a>01499 *pos_x -= hawki_sci_jitter_config.borders ;
+<a name="l01500"></a>01500 *pos_y -= hawki_sci_jitter_config.borders ;
+<a name="l01501"></a>01501
+<a name="l01502"></a>01502 <span class="comment">/* Free and return */</span>
+<a name="l01503"></a>01503 cpl_bivector_delete(offs_used) ;
+<a name="l01504"></a>01504 <span class="keywordflow">return</span> combined ;
+<a name="l01505"></a>01505 }
+<a name="l01506"></a>01506
+<a name="l01507"></a>01507 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01514"></a>01514 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01515"></a>01515 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_qc
+<a name="l01516"></a>01516 (cpl_frameset * science_frames,
+<a name="l01517"></a>01517 cpl_image ** combined_images,
+<a name="l01518"></a>01518 cpl_table ** obj_charac)
+<a name="l01519"></a>01519 {
+<a name="l01520"></a>01520 cpl_vector * thresh_vec ;
+<a name="l01521"></a>01521 cpl_apertures * aperts ;
+<a name="l01522"></a>01522 <span class="keywordtype">int</span> nb_objs ;
+<a name="l01523"></a>01523 <span class="keywordtype">double</span> angle ;
+<a name="l01524"></a>01524 <span class="keywordtype">double</span> * fwhms_x ;
+<a name="l01525"></a>01525 <span class="keywordtype">double</span> * fwhms_y ;
+<a name="l01526"></a>01526 cpl_bivector * iqe ;
+<a name="l01527"></a>01527 <span class="keywordtype">int</span> nb_good ;
+<a name="l01528"></a>01528 cpl_vector * fwhms_good ;
+<a name="l01529"></a>01529 <span class="keywordtype">double</span> * fwhms_good_data ;
+<a name="l01530"></a>01530 <span class="keywordtype">double</span> f_min, f_max, fr, fx, fy ;
+<a name="l01531"></a>01531 <span class="keywordtype">int</span> chip;
+<a name="l01532"></a>01532 <span class="keywordtype">int</span> iobj;
+<a name="l01533"></a>01533 <span class="keywordtype">int</span> j;
+<a name="l01534"></a>01534
+<a name="l01535"></a>01535 <span class="comment">/* Initialise */</span>
+<a name="l01536"></a>01536 <span class="keywordtype">double</span> seeing_min_arcsec = 0.1 ;
+<a name="l01537"></a>01537 <span class="keywordtype">double</span> seeing_max_arcsec = 5.0 ;
+<a name="l01538"></a>01538 <span class="keywordtype">double</span> seeing_fwhm_var = 0.2 ;
+<a name="l01539"></a>01539
+<a name="l01540"></a>01540 <span class="comment">/* Check entries */</span>
+<a name="l01541"></a>01541 <span class="keywordflow">if</span> (combined_images == NULL) <span class="keywordflow">return</span> -1 ;
+<a name="l01542"></a>01542 <span class="keywordflow">if</span> (obj_charac == NULL) <span class="keywordflow">return</span> -1 ;
+<a name="l01543"></a>01543
+<a name="l01544"></a>01544 <span class="comment">/* Create the vector for the detection thresholds */</span>
+<a name="l01545"></a>01545 thresh_vec = cpl_vector_new(11) ;
+<a name="l01546"></a>01546 cpl_vector_set(thresh_vec, 0, 100.0) ;
+<a name="l01547"></a>01547 cpl_vector_set(thresh_vec, 0, 90.0) ;
+<a name="l01548"></a>01548 cpl_vector_set(thresh_vec, 0, 80.0) ;
+<a name="l01549"></a>01549 cpl_vector_set(thresh_vec, 0, 70.0) ;
+<a name="l01550"></a>01550 cpl_vector_set(thresh_vec, 0, 60.0) ;
+<a name="l01551"></a>01551 cpl_vector_set(thresh_vec, 0, 50.0) ;
+<a name="l01552"></a>01552 cpl_vector_set(thresh_vec, 1, 40.0) ;
+<a name="l01553"></a>01553 cpl_vector_set(thresh_vec, 1, 30.0) ;
+<a name="l01554"></a>01554 cpl_vector_set(thresh_vec, 1, 20.0) ;
+<a name="l01555"></a>01555 cpl_vector_set(thresh_vec, 1, 10.0) ;
+<a name="l01556"></a>01556 cpl_vector_set(thresh_vec, 2, 5.0) ;
+<a name="l01557"></a>01557
+<a name="l01558"></a>01558 <span class="comment">/* Get the mean airmass */</span>
+<a name="l01559"></a>01559 hawki_sci_jitter_output.mean_airmass =
+<a name="l01560"></a>01560 <a class="code" href="group__hawki__utils.html#ga7b165e9e91b6c6519595109b36d4fb46" title="Get the mean airmass for a set of frames.">hawki_get_mean_airmass</a>(science_frames);;
+<a name="l01561"></a>01561
+<a name="l01562"></a>01562 <span class="comment">/* Loop on the HAWK-I detectors */</span>
+<a name="l01563"></a>01563 <span class="keywordflow">for</span> (chip=0 ; chip<HAWKI_NB_DETECTORS ; chip++)
+<a name="l01564"></a>01564 {
+<a name="l01565"></a>01565 <span class="comment">/* Check entries */</span>
+<a name="l01566"></a>01566 <span class="keywordflow">if</span> (combined_images[chip] == NULL) <span class="keywordflow">return</span> -1 ;
+<a name="l01567"></a>01567 <span class="keywordflow">if</span> (obj_charac[chip] == NULL) <span class="keywordflow">return</span> -1 ;
+<a name="l01568"></a>01568
+<a name="l01569"></a>01569 <span class="comment">/* Detect apertures */</span>
+<a name="l01570"></a>01570 <span class="keywordflow">if</span> ((aperts = cpl_apertures_extract
+<a name="l01571"></a>01571 (combined_images[chip], thresh_vec, NULL)) == NULL) {
+<a name="l01572"></a>01572 cpl_msg_warning(cpl_func, <span class="stringliteral">"Cannot detect any aperture on chip %d"</span>,
+<a name="l01573"></a>01573 chip+1) ;
+<a name="l01574"></a>01574 <span class="keywordflow">continue</span>;
+<a name="l01575"></a>01575 }
+<a name="l01576"></a>01576
+<a name="l01577"></a>01577 <span class="comment">/* Number of detected objects */</span>
+<a name="l01578"></a>01578 nb_objs = cpl_apertures_get_size(aperts);
+<a name="l01579"></a>01579 cpl_msg_info(cpl_func, <span class="stringliteral">"%d objects detected on chip %d"</span>,nb_objs,chip+1);
+<a name="l01580"></a>01580 hawki_sci_jitter_output.nbobjs[chip] = nb_objs ;
+<a name="l01581"></a>01581 fwhms_x = cpl_malloc(nb_objs * <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>)) ;
+<a name="l01582"></a>01582 fwhms_y = cpl_malloc(nb_objs * <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>)) ;
+<a name="l01583"></a>01583
+<a name="l01584"></a>01584 <span class="comment">/* Initialize the output table */</span>
+<a name="l01585"></a>01585 cpl_table_set_size(obj_charac[chip], nb_objs);
<a name="l01586"></a>01586 cpl_table_new_column
-<a name="l01587"></a>01587 (obj_charac[chip], HAWKI_COL_OBJ_ANGLE, CPL_TYPE_DOUBLE);
-<a name="l01588"></a>01588 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_ANGLE,<span class="stringliteral">"grad"</span>);
+<a name="l01587"></a>01587 (obj_charac[chip], HAWKI_COL_OBJ_POSX, CPL_TYPE_DOUBLE);
+<a name="l01588"></a>01588 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_POSX,<span class="stringliteral">"pix"</span>);
<a name="l01589"></a>01589 cpl_table_new_column
-<a name="l01590"></a>01590 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MAJAX, CPL_TYPE_DOUBLE);
-<a name="l01591"></a>01591 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FWHM_MAJAX,<span class="stringliteral">"pix"</span>);
+<a name="l01590"></a>01590 (obj_charac[chip], HAWKI_COL_OBJ_POSY, CPL_TYPE_DOUBLE);
+<a name="l01591"></a>01591 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_POSY,<span class="stringliteral">"pix"</span>);
<a name="l01592"></a>01592 cpl_table_new_column
-<a name="l01593"></a>01593 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MINAX, CPL_TYPE_DOUBLE);
-<a name="l01594"></a>01594 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FWHM_MINAX,<span class="stringliteral">"pix"</span>);
+<a name="l01593"></a>01593 (obj_charac[chip], HAWKI_COL_OBJ_ANGLE, CPL_TYPE_DOUBLE);
+<a name="l01594"></a>01594 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_ANGLE,<span class="stringliteral">"grad"</span>);
<a name="l01595"></a>01595 cpl_table_new_column
-<a name="l01596"></a>01596 (obj_charac[chip], HAWKI_COL_OBJ_ELLIP, CPL_TYPE_DOUBLE);
-<a name="l01597"></a>01597 cpl_table_new_column
-<a name="l01598"></a>01598 (obj_charac[chip], HAWKI_COL_OBJ_FLUX, CPL_TYPE_DOUBLE);
-<a name="l01599"></a>01599 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FLUX,<span class="stringliteral">"ADU"</span>);
-<a name="l01600"></a>01600 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l01601"></a>01601 {
-<a name="l01602"></a>01602 <span class="comment">/* Fill with the already known information */</span>
-<a name="l01603"></a>01603 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_POSX, iobj,
-<a name="l01604"></a>01604 cpl_apertures_get_centroid_x(aperts, iobj+1));
-<a name="l01605"></a>01605 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_POSY, iobj,
-<a name="l01606"></a>01606 cpl_apertures_get_centroid_y(aperts, iobj+1));
-<a name="l01607"></a>01607 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_FLUX, iobj,
-<a name="l01608"></a>01608 cpl_apertures_get_flux(aperts, iobj+1)) ;
-<a name="l01609"></a>01609 <span class="comment">/* Compute the FWHM informations */</span>
-<a name="l01610"></a>01610 <span class="keywordflow">if</span> ((iqe = cpl_image_iqe(combined_images[chip],
-<a name="l01611"></a>01611 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_x(aperts, iobj+1) - 10,
-<a name="l01612"></a>01612 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_y(aperts, iobj+1) - 10,
-<a name="l01613"></a>01613 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_x(aperts, iobj+1) + 10,
-<a name="l01614"></a>01614 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_y(aperts, iobj+1) + 10))==NULL)
-<a name="l01615"></a>01615 {
-<a name="l01616"></a>01616 cpl_error_reset() ;
-<a name="l01617"></a>01617 cpl_msg_debug(cpl_func, <span class="stringliteral">"Cannot get FWHM for obj at pos %g %g"</span>,
-<a name="l01618"></a>01618 cpl_apertures_get_centroid_x(aperts, iobj+1),
-<a name="l01619"></a>01619 cpl_apertures_get_centroid_y(aperts, iobj+1)) ;
-<a name="l01620"></a>01620 fwhms_x[iobj] = -1.0 ;
-<a name="l01621"></a>01621 fwhms_y[iobj] = -1.0 ;
-<a name="l01622"></a>01622 angle = 0.0 ;
-<a name="l01623"></a>01623 }
-<a name="l01624"></a>01624 <span class="keywordflow">else</span>
-<a name="l01625"></a>01625 {
-<a name="l01626"></a>01626 fwhms_x[iobj] = cpl_vector_get(cpl_bivector_get_x(iqe), 2) ;
-<a name="l01627"></a>01627 fwhms_y[iobj] = cpl_vector_get(cpl_bivector_get_x(iqe), 3) ;
-<a name="l01628"></a>01628 angle = cpl_vector_get(cpl_bivector_get_x(iqe), 4) ;
-<a name="l01629"></a>01629 cpl_bivector_delete(iqe) ;
-<a name="l01630"></a>01630 cpl_msg_debug(cpl_func,
-<a name="l01631"></a>01631 <span class="stringliteral">"FWHM for obj at pos %g %g: %g x %g (%g)"</span>,
-<a name="l01632"></a>01632 cpl_apertures_get_centroid_x(aperts, iobj+1),
-<a name="l01633"></a>01633 cpl_apertures_get_centroid_y(aperts, iobj+1),
-<a name="l01634"></a>01634 fwhms_x[iobj], fwhms_y[iobj], angle) ;
-<a name="l01635"></a>01635 }
-<a name="l01636"></a>01636 cpl_table_set_double
-<a name="l01637"></a>01637 (obj_charac[chip], HAWKI_COL_OBJ_ANGLE, iobj, angle) ;
-<a name="l01638"></a>01638 cpl_table_set_double
-<a name="l01639"></a>01639 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MAJAX, iobj,
-<a name="l01640"></a>01640 fwhms_x[iobj]);
-<a name="l01641"></a>01641 cpl_table_set_double
-<a name="l01642"></a>01642 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MINAX, iobj,
-<a name="l01643"></a>01643 fwhms_y[iobj]);
+<a name="l01596"></a>01596 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MAJAX, CPL_TYPE_DOUBLE);
+<a name="l01597"></a>01597 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FWHM_MAJAX,<span class="stringliteral">"pix"</span>);
+<a name="l01598"></a>01598 cpl_table_new_column
+<a name="l01599"></a>01599 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MINAX, CPL_TYPE_DOUBLE);
+<a name="l01600"></a>01600 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FWHM_MINAX,<span class="stringliteral">"pix"</span>);
+<a name="l01601"></a>01601 cpl_table_new_column
+<a name="l01602"></a>01602 (obj_charac[chip], HAWKI_COL_OBJ_ELLIP, CPL_TYPE_DOUBLE);
+<a name="l01603"></a>01603 cpl_table_new_column
+<a name="l01604"></a>01604 (obj_charac[chip], HAWKI_COL_OBJ_FLUX, CPL_TYPE_DOUBLE);
+<a name="l01605"></a>01605 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FLUX,<span class="stringliteral">"ADU"</span>);
+<a name="l01606"></a>01606 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l01607"></a>01607 {
+<a name="l01608"></a>01608 <span class="comment">/* Fill with the already known information */</span>
+<a name="l01609"></a>01609 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_POSX, iobj,
+<a name="l01610"></a>01610 cpl_apertures_get_centroid_x(aperts, iobj+1));
+<a name="l01611"></a>01611 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_POSY, iobj,
+<a name="l01612"></a>01612 cpl_apertures_get_centroid_y(aperts, iobj+1));
+<a name="l01613"></a>01613 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_FLUX, iobj,
+<a name="l01614"></a>01614 cpl_apertures_get_flux(aperts, iobj+1)) ;
+<a name="l01615"></a>01615 <span class="comment">/* Compute the FWHM informations */</span>
+<a name="l01616"></a>01616 <span class="keywordflow">if</span> ((iqe = cpl_image_iqe(combined_images[chip],
+<a name="l01617"></a>01617 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_x(aperts, iobj+1) - 10,
+<a name="l01618"></a>01618 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_y(aperts, iobj+1) - 10,
+<a name="l01619"></a>01619 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_x(aperts, iobj+1) + 10,
+<a name="l01620"></a>01620 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_y(aperts, iobj+1) + 10))==NULL)
+<a name="l01621"></a>01621 {
+<a name="l01622"></a>01622 cpl_error_reset() ;
+<a name="l01623"></a>01623 cpl_msg_debug(cpl_func, <span class="stringliteral">"Cannot get FWHM for obj at pos %g %g"</span>,
+<a name="l01624"></a>01624 cpl_apertures_get_centroid_x(aperts, iobj+1),
+<a name="l01625"></a>01625 cpl_apertures_get_centroid_y(aperts, iobj+1)) ;
+<a name="l01626"></a>01626 fwhms_x[iobj] = -1.0 ;
+<a name="l01627"></a>01627 fwhms_y[iobj] = -1.0 ;
+<a name="l01628"></a>01628 angle = 0.0 ;
+<a name="l01629"></a>01629 }
+<a name="l01630"></a>01630 <span class="keywordflow">else</span>
+<a name="l01631"></a>01631 {
+<a name="l01632"></a>01632 fwhms_x[iobj] = cpl_vector_get(cpl_bivector_get_x(iqe), 2) ;
+<a name="l01633"></a>01633 fwhms_y[iobj] = cpl_vector_get(cpl_bivector_get_x(iqe), 3) ;
+<a name="l01634"></a>01634 angle = cpl_vector_get(cpl_bivector_get_x(iqe), 4) ;
+<a name="l01635"></a>01635 cpl_bivector_delete(iqe) ;
+<a name="l01636"></a>01636 cpl_msg_debug(cpl_func,
+<a name="l01637"></a>01637 <span class="stringliteral">"FWHM for obj at pos %g %g: %g x %g (%g)"</span>,
+<a name="l01638"></a>01638 cpl_apertures_get_centroid_x(aperts, iobj+1),
+<a name="l01639"></a>01639 cpl_apertures_get_centroid_y(aperts, iobj+1),
+<a name="l01640"></a>01640 fwhms_x[iobj], fwhms_y[iobj], angle) ;
+<a name="l01641"></a>01641 }
+<a name="l01642"></a>01642 cpl_table_set_double
+<a name="l01643"></a>01643 (obj_charac[chip], HAWKI_COL_OBJ_ANGLE, iobj, angle) ;
<a name="l01644"></a>01644 cpl_table_set_double
-<a name="l01645"></a>01645 (obj_charac[chip], HAWKI_COL_OBJ_ELLIP, iobj,
-<a name="l01646"></a>01646 1 - fwhms_y[iobj] / fwhms_x[iobj]);
-<a name="l01647"></a>01647 }
-<a name="l01648"></a>01648 cpl_apertures_delete(aperts) ;
-<a name="l01649"></a>01649
-<a name="l01650"></a>01650 <span class="comment">/* Get the number of good values */</span>
-<a name="l01651"></a>01651 nb_good = 0 ;
-<a name="l01652"></a>01652 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l01653"></a>01653 {
-<a name="l01654"></a>01654 <span class="keywordflow">if</span> ((fwhms_x[iobj] > 0.0) && (fwhms_y[iobj] > 0.0)) nb_good++ ;
-<a name="l01655"></a>01655 }
-<a name="l01656"></a>01656 <span class="keywordflow">if</span> (nb_good == 0)
-<a name="l01657"></a>01657 {
-<a name="l01658"></a>01658 cpl_msg_warning(cpl_func, <span class="stringliteral">"No objects to compute FWHM on chip %d"</span>,
-<a name="l01659"></a>01659 chip+1);
-<a name="l01660"></a>01660 cpl_free(fwhms_x) ;
-<a name="l01661"></a>01661 cpl_free(fwhms_y) ;
-<a name="l01662"></a>01662 <span class="keywordflow">continue</span>;
-<a name="l01663"></a>01663 }
-<a name="l01664"></a>01664
-<a name="l01665"></a>01665 <span class="comment">/* Get the good values */</span>
-<a name="l01666"></a>01666 fwhms_good = cpl_vector_new(nb_good) ;
-<a name="l01667"></a>01667 fwhms_good_data = cpl_vector_get_data(fwhms_good) ;
-<a name="l01668"></a>01668 j=0 ;
-<a name="l01669"></a>01669 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l01670"></a>01670 {
-<a name="l01671"></a>01671 <span class="keywordflow">if</span> ((fwhms_x[iobj] > 0.0) && (fwhms_y[iobj] > 0.0))
-<a name="l01672"></a>01672 {
-<a name="l01673"></a>01673 fwhms_good_data[j] = (fwhms_x[iobj]+fwhms_y[iobj])/2.0 ;
-<a name="l01674"></a>01674 j++ ;
-<a name="l01675"></a>01675 }
-<a name="l01676"></a>01676 }
-<a name="l01677"></a>01677
-<a name="l01678"></a>01678 <span class="comment">/* Compute the fwhm */</span>
-<a name="l01679"></a>01679 <span class="keywordflow">if</span> (nb_good < 3)
-<a name="l01680"></a>01680 {
-<a name="l01681"></a>01681 <span class="comment">/* Too few values to compute the median */</span>
-<a name="l01682"></a>01682 hawki_sci_jitter_output.fwhm_pix[chip] = fwhms_good_data[0] ;
-<a name="l01683"></a>01683 }
-<a name="l01684"></a>01684 <span class="keywordflow">else</span>
-<a name="l01685"></a>01685 {
-<a name="l01686"></a>01686 <span class="comment">/* Compute the median */</span>
-<a name="l01687"></a>01687 hawki_sci_jitter_output.fwhm_pix[chip] =
-<a name="l01688"></a>01688 cpl_vector_get_median_const(fwhms_good) ;
-<a name="l01689"></a>01689 }
-<a name="l01690"></a>01690 hawki_sci_jitter_output.fwhm_arcsec[chip] =
-<a name="l01691"></a>01691 hawki_sci_jitter_output.fwhm_pix[chip] *
-<a name="l01692"></a>01692 hawki_sci_jitter_output.pixscale ;
-<a name="l01693"></a>01693
-<a name="l01694"></a>01694 <span class="comment">/* Compute the mode of the FWHMs */</span>
-<a name="l01695"></a>01695 <span class="keywordflow">if</span> (nb_good > 5)
-<a name="l01696"></a>01696 {
-<a name="l01697"></a>01697 hawki_sci_jitter_output.fwhm_mode[chip] =
-<a name="l01698"></a>01698 <a class="code" href="group__hawki__utils.html#gac64c154f22c4d25e242833fbe75da886" title="Compute the histogram mode.">hawki_vector_get_mode</a>(fwhms_good);
-<a name="l01699"></a>01699 hawki_sci_jitter_output.fwhm_mode[chip] *=
-<a name="l01700"></a>01700 hawki_sci_jitter_output.pixscale ;
-<a name="l01701"></a>01701 }
-<a name="l01702"></a>01702 cpl_vector_delete(fwhms_good) ;
-<a name="l01703"></a>01703
-<a name="l01704"></a>01704 <span class="comment">/* IQ is the median of the (fwhm_x+fwhm_y/2) of the good stars */</span>
-<a name="l01705"></a>01705 <span class="comment">/* Compute f_min and f_max */</span>
-<a name="l01706"></a>01706 f_min = seeing_min_arcsec / hawki_sci_jitter_output.pixscale ;
-<a name="l01707"></a>01707 f_max = seeing_max_arcsec / hawki_sci_jitter_output.pixscale ;
-<a name="l01708"></a>01708
-<a name="l01709"></a>01709 <span class="comment">/* Get the number of good values */</span>
-<a name="l01710"></a>01710 nb_good = 0 ;
-<a name="l01711"></a>01711 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l01712"></a>01712 {
-<a name="l01713"></a>01713 fx = fwhms_x[iobj] ;
-<a name="l01714"></a>01714 fy = fwhms_y[iobj] ;
-<a name="l01715"></a>01715 fr = 2.0 * fabs(fx-fy) / (fx+fy) ;
-<a name="l01716"></a>01716 <span class="keywordflow">if</span> ((fx > f_min) && (fx < f_max) && (fy > f_min) && (fy < f_max) &&
-<a name="l01717"></a>01717 (fr < seeing_fwhm_var)) nb_good++ ;
-<a name="l01718"></a>01718 }
-<a name="l01719"></a>01719 <span class="keywordflow">if</span> (nb_good == 0)
-<a name="l01720"></a>01720 {
-<a name="l01721"></a>01721 cpl_msg_warning(cpl_func, <span class="stringliteral">"No objects to compute IQ on chip %d"</span>,
-<a name="l01722"></a>01722 chip+1);
-<a name="l01723"></a>01723 cpl_free(fwhms_x) ;
-<a name="l01724"></a>01724 cpl_free(fwhms_y) ;
-<a name="l01725"></a>01725 <span class="keywordflow">continue</span>;
-<a name="l01726"></a>01726 }
-<a name="l01727"></a>01727
-<a name="l01728"></a>01728 <span class="comment">/* Get the good values */</span>
-<a name="l01729"></a>01729 fwhms_good = cpl_vector_new(nb_good) ;
-<a name="l01730"></a>01730 fwhms_good_data = cpl_vector_get_data(fwhms_good) ;
-<a name="l01731"></a>01731 j=0 ;
-<a name="l01732"></a>01732 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l01733"></a>01733 {
-<a name="l01734"></a>01734 fx = fwhms_x[iobj] ;
-<a name="l01735"></a>01735 fy = fwhms_y[iobj] ;
-<a name="l01736"></a>01736 fr = 2.0 * fabs(fx-fy) / (fx+fy) ;
-<a name="l01737"></a>01737 <span class="keywordflow">if</span> ((fx > f_min) && (fx < f_max) && (fy > f_min) && (fy < f_max) &&
-<a name="l01738"></a>01738 (fr < seeing_fwhm_var))
-<a name="l01739"></a>01739 {
-<a name="l01740"></a>01740 fwhms_good_data[j] = (fx + fy)/2.0 ;
-<a name="l01741"></a>01741 j++ ;
-<a name="l01742"></a>01742 }
-<a name="l01743"></a>01743 }
-<a name="l01744"></a>01744 cpl_free(fwhms_x) ;
-<a name="l01745"></a>01745 cpl_free(fwhms_y) ;
-<a name="l01746"></a>01746
-<a name="l01747"></a>01747 <span class="comment">/* Compute the fwhm */</span>
-<a name="l01748"></a>01748 <span class="keywordflow">if</span> (nb_good < 3)
-<a name="l01749"></a>01749 {
-<a name="l01750"></a>01750 <span class="comment">/* Too few values to compute the median */</span>
-<a name="l01751"></a>01751 hawki_sci_jitter_output.iq[chip] = fwhms_good_data[0] ;
-<a name="l01752"></a>01752 }
-<a name="l01753"></a>01753 <span class="keywordflow">else</span>
-<a name="l01754"></a>01754 {
-<a name="l01755"></a>01755 <span class="comment">/* Compute the median */</span>
-<a name="l01756"></a>01756 hawki_sci_jitter_output.iq[chip] =
-<a name="l01757"></a>01757 cpl_vector_get_median_const(fwhms_good) ;
+<a name="l01645"></a>01645 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MAJAX, iobj,
+<a name="l01646"></a>01646 fwhms_x[iobj]);
+<a name="l01647"></a>01647 cpl_table_set_double
+<a name="l01648"></a>01648 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MINAX, iobj,
+<a name="l01649"></a>01649 fwhms_y[iobj]);
+<a name="l01650"></a>01650 cpl_table_set_double
+<a name="l01651"></a>01651 (obj_charac[chip], HAWKI_COL_OBJ_ELLIP, iobj,
+<a name="l01652"></a>01652 1 - fwhms_y[iobj] / fwhms_x[iobj]);
+<a name="l01653"></a>01653 }
+<a name="l01654"></a>01654 cpl_apertures_delete(aperts) ;
+<a name="l01655"></a>01655
+<a name="l01656"></a>01656 <span class="comment">/* Get the number of good values */</span>
+<a name="l01657"></a>01657 nb_good = 0 ;
+<a name="l01658"></a>01658 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l01659"></a>01659 {
+<a name="l01660"></a>01660 <span class="keywordflow">if</span> ((fwhms_x[iobj] > 0.0) && (fwhms_y[iobj] > 0.0)) nb_good++ ;
+<a name="l01661"></a>01661 }
+<a name="l01662"></a>01662 <span class="keywordflow">if</span> (nb_good == 0)
+<a name="l01663"></a>01663 {
+<a name="l01664"></a>01664 cpl_msg_warning(cpl_func, <span class="stringliteral">"No objects to compute FWHM on chip %d"</span>,
+<a name="l01665"></a>01665 chip+1);
+<a name="l01666"></a>01666 cpl_free(fwhms_x) ;
+<a name="l01667"></a>01667 cpl_free(fwhms_y) ;
+<a name="l01668"></a>01668 <span class="keywordflow">continue</span>;
+<a name="l01669"></a>01669 }
+<a name="l01670"></a>01670
+<a name="l01671"></a>01671 <span class="comment">/* Get the good values */</span>
+<a name="l01672"></a>01672 fwhms_good = cpl_vector_new(nb_good) ;
+<a name="l01673"></a>01673 fwhms_good_data = cpl_vector_get_data(fwhms_good) ;
+<a name="l01674"></a>01674 j=0 ;
+<a name="l01675"></a>01675 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l01676"></a>01676 {
+<a name="l01677"></a>01677 <span class="keywordflow">if</span> ((fwhms_x[iobj] > 0.0) && (fwhms_y[iobj] > 0.0))
+<a name="l01678"></a>01678 {
+<a name="l01679"></a>01679 fwhms_good_data[j] = (fwhms_x[iobj]+fwhms_y[iobj])/2.0 ;
+<a name="l01680"></a>01680 j++ ;
+<a name="l01681"></a>01681 }
+<a name="l01682"></a>01682 }
+<a name="l01683"></a>01683
+<a name="l01684"></a>01684 <span class="comment">/* Compute the fwhm */</span>
+<a name="l01685"></a>01685 <span class="keywordflow">if</span> (nb_good < 3)
+<a name="l01686"></a>01686 {
+<a name="l01687"></a>01687 <span class="comment">/* Too few values to compute the median */</span>
+<a name="l01688"></a>01688 hawki_sci_jitter_output.fwhm_pix[chip] = fwhms_good_data[0] ;
+<a name="l01689"></a>01689 }
+<a name="l01690"></a>01690 <span class="keywordflow">else</span>
+<a name="l01691"></a>01691 {
+<a name="l01692"></a>01692 <span class="comment">/* Compute the median */</span>
+<a name="l01693"></a>01693 hawki_sci_jitter_output.fwhm_pix[chip] =
+<a name="l01694"></a>01694 cpl_vector_get_median_const(fwhms_good) ;
+<a name="l01695"></a>01695 }
+<a name="l01696"></a>01696 hawki_sci_jitter_output.fwhm_arcsec[chip] =
+<a name="l01697"></a>01697 hawki_sci_jitter_output.fwhm_pix[chip] *
+<a name="l01698"></a>01698 hawki_sci_jitter_output.pixscale ;
+<a name="l01699"></a>01699
+<a name="l01700"></a>01700 <span class="comment">/* Compute the mode of the FWHMs */</span>
+<a name="l01701"></a>01701 <span class="keywordflow">if</span> (nb_good > 5)
+<a name="l01702"></a>01702 {
+<a name="l01703"></a>01703 hawki_sci_jitter_output.fwhm_mode[chip] =
+<a name="l01704"></a>01704 <a class="code" href="group__hawki__utils.html#gac64c154f22c4d25e242833fbe75da886" title="Compute the histogram mode.">hawki_vector_get_mode</a>(fwhms_good);
+<a name="l01705"></a>01705 hawki_sci_jitter_output.fwhm_mode[chip] *=
+<a name="l01706"></a>01706 hawki_sci_jitter_output.pixscale ;
+<a name="l01707"></a>01707 }
+<a name="l01708"></a>01708 cpl_vector_delete(fwhms_good) ;
+<a name="l01709"></a>01709
+<a name="l01710"></a>01710 <span class="comment">/* IQ is the median of the (fwhm_x+fwhm_y/2) of the good stars */</span>
+<a name="l01711"></a>01711 <span class="comment">/* Compute f_min and f_max */</span>
+<a name="l01712"></a>01712 f_min = seeing_min_arcsec / hawki_sci_jitter_output.pixscale ;
+<a name="l01713"></a>01713 f_max = seeing_max_arcsec / hawki_sci_jitter_output.pixscale ;
+<a name="l01714"></a>01714
+<a name="l01715"></a>01715 <span class="comment">/* Get the number of good values */</span>
+<a name="l01716"></a>01716 nb_good = 0 ;
+<a name="l01717"></a>01717 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l01718"></a>01718 {
+<a name="l01719"></a>01719 fx = fwhms_x[iobj] ;
+<a name="l01720"></a>01720 fy = fwhms_y[iobj] ;
+<a name="l01721"></a>01721 fr = 2.0 * fabs(fx-fy) / (fx+fy) ;
+<a name="l01722"></a>01722 <span class="keywordflow">if</span> ((fx > f_min) && (fx < f_max) && (fy > f_min) && (fy < f_max) &&
+<a name="l01723"></a>01723 (fr < seeing_fwhm_var)) nb_good++ ;
+<a name="l01724"></a>01724 }
+<a name="l01725"></a>01725 <span class="keywordflow">if</span> (nb_good == 0)
+<a name="l01726"></a>01726 {
+<a name="l01727"></a>01727 cpl_msg_warning(cpl_func, <span class="stringliteral">"No objects to compute IQ on chip %d"</span>,
+<a name="l01728"></a>01728 chip+1);
+<a name="l01729"></a>01729 cpl_free(fwhms_x) ;
+<a name="l01730"></a>01730 cpl_free(fwhms_y) ;
+<a name="l01731"></a>01731 <span class="keywordflow">continue</span>;
+<a name="l01732"></a>01732 }
+<a name="l01733"></a>01733
+<a name="l01734"></a>01734 <span class="comment">/* Get the good values */</span>
+<a name="l01735"></a>01735 fwhms_good = cpl_vector_new(nb_good) ;
+<a name="l01736"></a>01736 fwhms_good_data = cpl_vector_get_data(fwhms_good) ;
+<a name="l01737"></a>01737 j=0 ;
+<a name="l01738"></a>01738 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l01739"></a>01739 {
+<a name="l01740"></a>01740 fx = fwhms_x[iobj] ;
+<a name="l01741"></a>01741 fy = fwhms_y[iobj] ;
+<a name="l01742"></a>01742 fr = 2.0 * fabs(fx-fy) / (fx+fy) ;
+<a name="l01743"></a>01743 <span class="keywordflow">if</span> ((fx > f_min) && (fx < f_max) && (fy > f_min) && (fy < f_max) &&
+<a name="l01744"></a>01744 (fr < seeing_fwhm_var))
+<a name="l01745"></a>01745 {
+<a name="l01746"></a>01746 fwhms_good_data[j] = (fx + fy)/2.0 ;
+<a name="l01747"></a>01747 j++ ;
+<a name="l01748"></a>01748 }
+<a name="l01749"></a>01749 }
+<a name="l01750"></a>01750 cpl_free(fwhms_x) ;
+<a name="l01751"></a>01751 cpl_free(fwhms_y) ;
+<a name="l01752"></a>01752
+<a name="l01753"></a>01753 <span class="comment">/* Compute the fwhm */</span>
+<a name="l01754"></a>01754 <span class="keywordflow">if</span> (nb_good < 3)
+<a name="l01755"></a>01755 {
+<a name="l01756"></a>01756 <span class="comment">/* Too few values to compute the median */</span>
+<a name="l01757"></a>01757 hawki_sci_jitter_output.iq[chip] = fwhms_good_data[0] ;
<a name="l01758"></a>01758 }
-<a name="l01759"></a>01759 cpl_vector_delete(fwhms_good) ;
-<a name="l01760"></a>01760 hawki_sci_jitter_output.iq[chip] *= hawki_sci_jitter_output.pixscale ;
-<a name="l01761"></a>01761 }
-<a name="l01762"></a>01762
-<a name="l01763"></a>01763 <span class="comment">/* Cleanup */</span>
-<a name="l01764"></a>01764 cpl_vector_delete(thresh_vec) ;
-<a name="l01765"></a>01765
-<a name="l01766"></a>01766 <span class="keywordflow">return</span> 0;
-<a name="l01767"></a>01767 }
-<a name="l01768"></a>01768
-<a name="l01769"></a>01769 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01781"></a>01781 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01782"></a>01782 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_read_calib
-<a name="l01783"></a>01783 (<span class="keyword">const</span> <span class="keywordtype">char</span> * flat,
-<a name="l01784"></a>01784 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark,
-<a name="l01785"></a>01785 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm,
-<a name="l01786"></a>01786 cpl_image ** flat_image,
-<a name="l01787"></a>01787 cpl_image ** dark_image,
-<a name="l01788"></a>01788 cpl_image ** bpm_image,
-<a name="l01789"></a>01789 <span class="keywordtype">int</span> idet)
-<a name="l01790"></a>01790 {
-<a name="l01791"></a>01791 <span class="keyword">const</span> <span class="keywordtype">char</span> * reffile;
-<a name="l01792"></a>01792 <span class="keywordtype">int</span> ext_nb;
-<a name="l01793"></a>01793
-<a name="l01794"></a>01794 <span class="keywordflow">if</span>(flat == NULL && dark == NULL && bpm == NULL)
-<a name="l01795"></a>01795 <span class="keywordflow">return</span> 0;
-<a name="l01796"></a>01796 <span class="keywordflow">if</span>(*flat_image != NULL || *dark_image != NULL || *bpm_image != NULL)
-<a name="l01797"></a>01797 <span class="keywordflow">return</span> 0;
-<a name="l01798"></a>01798
-<a name="l01799"></a>01799 <span class="comment">/* Get the extension number for this detector */</span>
-<a name="l01800"></a>01800 <span class="keywordflow">if</span>(flat != NULL)
-<a name="l01801"></a>01801 reffile = flat;
-<a name="l01802"></a>01802 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(dark != NULL)
-<a name="l01803"></a>01803 reffile = dark;
-<a name="l01804"></a>01804 <span class="keywordflow">else</span>
-<a name="l01805"></a>01805 reffile = bpm;
-<a name="l01806"></a>01806
-<a name="l01807"></a>01807 <span class="comment">/* Guess which is the extension to read */</span>
-<a name="l01808"></a>01808 <span class="keywordflow">if</span> ((ext_nb = <a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(reffile, idet + 1)) == -1) {
-<a name="l01809"></a>01809 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot get the extension with detector %d"</span>,
-<a name="l01810"></a>01810 idet + 1);
-<a name="l01811"></a>01811 <span class="keywordflow">return</span> -1;
-<a name="l01812"></a>01812 }
-<a name="l01813"></a>01813
-<a name="l01814"></a>01814 <span class="comment">/* Load the dark image */</span>
-<a name="l01815"></a>01815 <span class="keywordflow">if</span>(dark != NULL)
-<a name="l01816"></a>01816 *dark_image = cpl_image_load(dark, CPL_TYPE_FLOAT, 0, ext_nb);
-<a name="l01817"></a>01817 <span class="comment">/* Load the flat image */</span>
-<a name="l01818"></a>01818 <span class="keywordflow">if</span>(flat != NULL)
-<a name="l01819"></a>01819 *flat_image = cpl_image_load(flat, CPL_TYPE_FLOAT, 0, ext_nb);
-<a name="l01820"></a>01820 <span class="comment">/* Load the bpm image */</span>
-<a name="l01821"></a>01821 <span class="keywordflow">if</span>(bpm != NULL)
-<a name="l01822"></a>01822 *bpm_image = cpl_image_load(bpm, CPL_TYPE_FLOAT, 0, ext_nb);
-<a name="l01823"></a>01823
-<a name="l01824"></a>01824 <span class="comment">/* Multiply the dark image by the science exposure time */</span>
-<a name="l01825"></a>01825 <span class="keywordflow">if</span>(dark != NULL)
-<a name="l01826"></a>01826 cpl_image_multiply_scalar(*dark_image, hawki_sci_jitter_output.dit);
-<a name="l01827"></a>01827
-<a name="l01828"></a>01828 <span class="comment">/* Return */</span>
-<a name="l01829"></a>01829 <span class="keywordflow">return</span> 0;
-<a name="l01830"></a>01830 }
-<a name="l01831"></a>01831
-<a name="l01832"></a>01832 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01841"></a>01841 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01842"></a>01842 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_save
-<a name="l01843"></a>01843 (cpl_image ** combined,
-<a name="l01844"></a>01844 cpl_image * stitched,
-<a name="l01845"></a>01845 cpl_table ** obj_charac,
-<a name="l01846"></a>01846 cpl_table ** raw_jitter_stats,
-<a name="l01847"></a>01847 cpl_table ** bkg_stats,
-<a name="l01848"></a>01848 <span class="keyword">const</span> cpl_table * raw_obj_tel_info,
-<a name="l01849"></a>01849 cpl_frameset * science_frames,
-<a name="l01850"></a>01850 cpl_frameset * calib_frames,
-<a name="l01851"></a>01851 cpl_parameterlist * parlist,
-<a name="l01852"></a>01852 cpl_frameset * <span class="keyword">set</span>)
-<a name="l01853"></a>01853 {
-<a name="l01854"></a>01854 cpl_propertylist * plist ;
-<a name="l01855"></a>01855 <span class="keywordtype">double</span> pscale, dit, bg_mean, bg_stdev, bg_instmag ;
-<a name="l01856"></a>01856 cpl_propertylist ** qclists ;
-<a name="l01857"></a>01857 <span class="keyword">const</span> cpl_frame * ref_frame ;
-<a name="l01858"></a>01858 cpl_frameset * used_frames;
-<a name="l01859"></a>01859 cpl_propertylist * wcslist ;
-<a name="l01860"></a>01860 cpl_propertylist * telstats;
-<a name="l01861"></a>01861 cpl_propertylist * inputlist ;
-<a name="l01862"></a>01862 <span class="keywordtype">double</span> crpix1, crpix2 ;
-<a name="l01863"></a>01863 <span class="keywordtype">int</span> ext_nb ;
-<a name="l01864"></a>01864 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_sci_jitter"</span> ;
-<a name="l01865"></a>01865 <span class="keywordtype">int</span> i;
-<a name="l01866"></a>01866 <span class="keywordtype">int</span> ext_chip_1;
-<a name="l01867"></a>01867 cpl_errorstate error_prevstate = cpl_errorstate_get();
-<a name="l01868"></a>01868
-<a name="l01869"></a>01869 <span class="comment">/* Initialise */</span>
-<a name="l01870"></a>01870 pscale = hawki_sci_jitter_output.pixscale;
-<a name="l01871"></a>01871 dit = hawki_sci_jitter_output.dit;
-<a name="l01872"></a>01872
-<a name="l01873"></a>01873 <span class="comment">/* Get reference frame */</span>
-<a name="l01874"></a>01874 ref_frame = irplib_frameset_get_first_from_group(<span class="keyword">set</span>, CPL_FRAME_GROUP_RAW);
-<a name="l01875"></a>01875
-<a name="l01876"></a>01876 <span class="comment">/* Get the used frames */</span>
-<a name="l01877"></a>01877 used_frames = cpl_frameset_duplicate(science_frames);
-<a name="l01878"></a>01878 <span class="keywordflow">for</span>(i = 0; i< cpl_frameset_get_size(calib_frames); ++i)
-<a name="l01879"></a>01879 cpl_frameset_insert(used_frames,
-<a name="l01880"></a>01880 cpl_frame_duplicate(cpl_frameset_get_frame(calib_frames, i)));
+<a name="l01759"></a>01759 <span class="keywordflow">else</span>
+<a name="l01760"></a>01760 {
+<a name="l01761"></a>01761 <span class="comment">/* Compute the median */</span>
+<a name="l01762"></a>01762 hawki_sci_jitter_output.iq[chip] =
+<a name="l01763"></a>01763 cpl_vector_get_median_const(fwhms_good) ;
+<a name="l01764"></a>01764 }
+<a name="l01765"></a>01765 cpl_vector_delete(fwhms_good) ;
+<a name="l01766"></a>01766 hawki_sci_jitter_output.iq[chip] *= hawki_sci_jitter_output.pixscale ;
+<a name="l01767"></a>01767 }
+<a name="l01768"></a>01768
+<a name="l01769"></a>01769 <span class="comment">/* Cleanup */</span>
+<a name="l01770"></a>01770 cpl_vector_delete(thresh_vec) ;
+<a name="l01771"></a>01771
+<a name="l01772"></a>01772 <span class="keywordflow">return</span> 0;
+<a name="l01773"></a>01773 }
+<a name="l01774"></a>01774
+<a name="l01775"></a>01775 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01787"></a>01787 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01788"></a>01788 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_read_calib
+<a name="l01789"></a>01789 (<span class="keyword">const</span> <span class="keywordtype">char</span> * flat,
+<a name="l01790"></a>01790 <span class="keyword">const</span> <span class="keywordtype">char</span> * dark,
+<a name="l01791"></a>01791 <span class="keyword">const</span> <span class="keywordtype">char</span> * bpm,
+<a name="l01792"></a>01792 cpl_image ** flat_image,
+<a name="l01793"></a>01793 cpl_image ** dark_image,
+<a name="l01794"></a>01794 cpl_image ** bpm_image,
+<a name="l01795"></a>01795 <span class="keywordtype">int</span> idet)
+<a name="l01796"></a>01796 {
+<a name="l01797"></a>01797 <span class="keyword">const</span> <span class="keywordtype">char</span> * reffile;
+<a name="l01798"></a>01798 <span class="keywordtype">int</span> ext_nb;
+<a name="l01799"></a>01799
+<a name="l01800"></a>01800 <span class="keywordflow">if</span>(flat == NULL && dark == NULL && bpm == NULL)
+<a name="l01801"></a>01801 <span class="keywordflow">return</span> 0;
+<a name="l01802"></a>01802 <span class="keywordflow">if</span>(*flat_image != NULL || *dark_image != NULL || *bpm_image != NULL)
+<a name="l01803"></a>01803 <span class="keywordflow">return</span> 0;
+<a name="l01804"></a>01804
+<a name="l01805"></a>01805 <span class="comment">/* Get the extension number for this detector */</span>
+<a name="l01806"></a>01806 <span class="keywordflow">if</span>(flat != NULL)
+<a name="l01807"></a>01807 reffile = flat;
+<a name="l01808"></a>01808 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(dark != NULL)
+<a name="l01809"></a>01809 reffile = dark;
+<a name="l01810"></a>01810 <span class="keywordflow">else</span>
+<a name="l01811"></a>01811 reffile = bpm;
+<a name="l01812"></a>01812
+<a name="l01813"></a>01813 <span class="comment">/* Guess which is the extension to read */</span>
+<a name="l01814"></a>01814 <span class="keywordflow">if</span> ((ext_nb = <a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(reffile, idet + 1)) == -1) {
+<a name="l01815"></a>01815 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot get the extension with detector %d"</span>,
+<a name="l01816"></a>01816 idet + 1);
+<a name="l01817"></a>01817 <span class="keywordflow">return</span> -1;
+<a name="l01818"></a>01818 }
+<a name="l01819"></a>01819
+<a name="l01820"></a>01820 <span class="comment">/* Load the dark image */</span>
+<a name="l01821"></a>01821 <span class="keywordflow">if</span>(dark != NULL)
+<a name="l01822"></a>01822 *dark_image = cpl_image_load(dark, CPL_TYPE_FLOAT, 0, ext_nb);
+<a name="l01823"></a>01823 <span class="comment">/* Load the flat image */</span>
+<a name="l01824"></a>01824 <span class="keywordflow">if</span>(flat != NULL)
+<a name="l01825"></a>01825 *flat_image = cpl_image_load(flat, CPL_TYPE_FLOAT, 0, ext_nb);
+<a name="l01826"></a>01826 <span class="comment">/* Load the bpm image */</span>
+<a name="l01827"></a>01827 <span class="keywordflow">if</span>(bpm != NULL)
+<a name="l01828"></a>01828 *bpm_image = cpl_image_load(bpm, CPL_TYPE_FLOAT, 0, ext_nb);
+<a name="l01829"></a>01829
+<a name="l01830"></a>01830 <span class="comment">/* Multiply the dark image by the science exposure time */</span>
+<a name="l01831"></a>01831 <span class="keywordflow">if</span>(dark != NULL)
+<a name="l01832"></a>01832 cpl_image_multiply_scalar(*dark_image, hawki_sci_jitter_output.dit);
+<a name="l01833"></a>01833
+<a name="l01834"></a>01834 <span class="comment">/* Return */</span>
+<a name="l01835"></a>01835 <span class="keywordflow">return</span> 0;
+<a name="l01836"></a>01836 }
+<a name="l01837"></a>01837
+<a name="l01838"></a>01838 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01847"></a>01847 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l01848"></a>01848 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_sci_jitter_save
+<a name="l01849"></a>01849 (cpl_image ** combined,
+<a name="l01850"></a>01850 cpl_image * stitched,
+<a name="l01851"></a>01851 cpl_table ** obj_charac,
+<a name="l01852"></a>01852 cpl_table ** raw_jitter_stats,
+<a name="l01853"></a>01853 cpl_table ** bkg_stats,
+<a name="l01854"></a>01854 <span class="keyword">const</span> cpl_table * raw_obj_tel_info,
+<a name="l01855"></a>01855 cpl_frameset * science_frames,
+<a name="l01856"></a>01856 cpl_frameset * calib_frames,
+<a name="l01857"></a>01857 cpl_parameterlist * parlist,
+<a name="l01858"></a>01858 cpl_frameset * <span class="keyword">set</span>)
+<a name="l01859"></a>01859 {
+<a name="l01860"></a>01860 cpl_propertylist * plist ;
+<a name="l01861"></a>01861 <span class="keywordtype">double</span> pscale, dit, bg_mean, bg_stdev, bg_instmag ;
+<a name="l01862"></a>01862 cpl_propertylist ** qclists ;
+<a name="l01863"></a>01863 <span class="keyword">const</span> cpl_frame * ref_frame ;
+<a name="l01864"></a>01864 cpl_frameset * used_frames;
+<a name="l01865"></a>01865 cpl_propertylist * wcslist ;
+<a name="l01866"></a>01866 cpl_propertylist * telstats;
+<a name="l01867"></a>01867 cpl_propertylist * inputlist ;
+<a name="l01868"></a>01868 <span class="keywordtype">double</span> crpix1, crpix2 ;
+<a name="l01869"></a>01869 <span class="keywordtype">int</span> ext_nb ;
+<a name="l01870"></a>01870 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_sci_jitter"</span> ;
+<a name="l01871"></a>01871 <span class="keywordtype">int</span> i;
+<a name="l01872"></a>01872 <span class="keywordtype">int</span> ext_chip_1;
+<a name="l01873"></a>01873 cpl_errorstate error_prevstate = cpl_errorstate_get();
+<a name="l01874"></a>01874
+<a name="l01875"></a>01875 <span class="comment">/* Initialise */</span>
+<a name="l01876"></a>01876 pscale = hawki_sci_jitter_output.pixscale;
+<a name="l01877"></a>01877 dit = hawki_sci_jitter_output.dit;
+<a name="l01878"></a>01878
+<a name="l01879"></a>01879 <span class="comment">/* Get reference frame */</span>
+<a name="l01880"></a>01880 ref_frame = irplib_frameset_get_first_from_group(<span class="keyword">set</span>, CPL_FRAME_GROUP_RAW);
<a name="l01881"></a>01881
-<a name="l01882"></a>01882 <span class="comment">/* Create the telescope data statistics */</span>
-<a name="l01883"></a>01883 telstats = cpl_propertylist_new();
-<a name="l01884"></a>01884 hawki_compute_prop_tel_qc_stats(raw_obj_tel_info, telstats);
-<a name="l01885"></a>01885
-<a name="l01886"></a>01886 <span class="comment">/* Create the QC lists */</span>
-<a name="l01887"></a>01887 qclists = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*)) ;
-<a name="l01888"></a>01888 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++) {
-<a name="l01889"></a>01889
-<a name="l01890"></a>01890 <span class="comment">/* Get the extension number */</span>
-<a name="l01891"></a>01891 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(cpl_frame_get_filename(ref_frame), i+1);
-<a name="l01892"></a>01892
-<a name="l01893"></a>01893 <span class="comment">/* Handle WCS keys */</span>
-<a name="l01894"></a>01894 wcslist = cpl_propertylist_load_regexp(
-<a name="l01895"></a>01895 cpl_frame_get_filename(ref_frame), ext_nb, HAWKI_HEADER_WCS, 0);
-<a name="l01896"></a>01896 qclists[i] = cpl_propertylist_new() ;
-<a name="l01897"></a>01897
-<a name="l01898"></a>01898 <span class="comment">/* Compute bg_instmag */</span>
-<a name="l01899"></a>01899 bg_mean = cpl_table_get_column_mean(bkg_stats[i], HAWKI_COL_STAT_MEAN);
-<a name="l01900"></a>01900 <span class="keywordflow">if</span> (cpl_table_get_nrow(bkg_stats[i]) < 2) bg_stdev = 0 ;
-<a name="l01901"></a>01901 <span class="keywordflow">else</span> bg_stdev = cpl_table_get_column_stdev
-<a name="l01902"></a>01902 (bkg_stats[i], HAWKI_COL_STAT_MEAN);
-<a name="l01903"></a>01903 <span class="keywordflow">if</span>(bg_mean >= 0)
-<a name="l01904"></a>01904 bg_instmag = -2.5 * log10(bg_mean/(pscale*pscale*dit));
-<a name="l01905"></a>01905 <span class="keywordflow">else</span>
-<a name="l01906"></a>01906 bg_instmag = 0;
-<a name="l01907"></a>01907
-<a name="l01908"></a>01908 <span class="comment">/* Fill the QC */</span>
-<a name="l01909"></a>01909 cpl_propertylist_append_double
-<a name="l01910"></a>01910 (qclists[i], <span class="stringliteral">"ESO QC BACKGD MEAN"</span>, bg_mean) ;
-<a name="l01911"></a>01911 cpl_propertylist_append_double
-<a name="l01912"></a>01912 (qclists[i], <span class="stringliteral">"ESO QC BACKGD STDEV"</span>, bg_stdev);
-<a name="l01913"></a>01913 cpl_propertylist_append_double
-<a name="l01914"></a>01914 (qclists[i], <span class="stringliteral">"ESO QC BACKGD INSTMAG"</span>, bg_instmag) ;
-<a name="l01915"></a>01915 cpl_propertylist_append_int
-<a name="l01916"></a>01916 (qclists[i], <span class="stringliteral">"ESO QC NBOBJS"</span>, hawki_sci_jitter_output.nbobjs[i]);
-<a name="l01917"></a>01917 cpl_propertylist_append_double
-<a name="l01918"></a>01918 (qclists[i], <span class="stringliteral">"ESO QC IQ"</span>, hawki_sci_jitter_output.iq[i]);
+<a name="l01882"></a>01882 <span class="comment">/* Get the used frames */</span>
+<a name="l01883"></a>01883 used_frames = cpl_frameset_duplicate(science_frames);
+<a name="l01884"></a>01884 <span class="keywordflow">for</span>(i = 0; i< cpl_frameset_get_size(calib_frames); ++i)
+<a name="l01885"></a>01885 cpl_frameset_insert(used_frames,
+<a name="l01886"></a>01886 cpl_frame_duplicate(cpl_frameset_get_frame(calib_frames, i)));
+<a name="l01887"></a>01887
+<a name="l01888"></a>01888 <span class="comment">/* Create the telescope data statistics */</span>
+<a name="l01889"></a>01889 telstats = cpl_propertylist_new();
+<a name="l01890"></a>01890 hawki_compute_prop_tel_qc_stats(raw_obj_tel_info, telstats);
+<a name="l01891"></a>01891
+<a name="l01892"></a>01892 <span class="comment">/* Create the QC lists */</span>
+<a name="l01893"></a>01893 qclists = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*)) ;
+<a name="l01894"></a>01894 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++) {
+<a name="l01895"></a>01895
+<a name="l01896"></a>01896 <span class="comment">/* Get the extension number */</span>
+<a name="l01897"></a>01897 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(cpl_frame_get_filename(ref_frame), i+1);
+<a name="l01898"></a>01898
+<a name="l01899"></a>01899 <span class="comment">/* Handle WCS keys */</span>
+<a name="l01900"></a>01900 wcslist = cpl_propertylist_load_regexp(
+<a name="l01901"></a>01901 cpl_frame_get_filename(ref_frame), ext_nb, HAWKI_HEADER_WCS, 0);
+<a name="l01902"></a>01902 qclists[i] = cpl_propertylist_new() ;
+<a name="l01903"></a>01903
+<a name="l01904"></a>01904 <span class="comment">/* Compute bg_instmag */</span>
+<a name="l01905"></a>01905 bg_mean = cpl_table_get_column_mean(bkg_stats[i], HAWKI_COL_STAT_MEAN);
+<a name="l01906"></a>01906 <span class="keywordflow">if</span> (cpl_table_get_nrow(bkg_stats[i]) < 2) bg_stdev = 0 ;
+<a name="l01907"></a>01907 <span class="keywordflow">else</span> bg_stdev = cpl_table_get_column_stdev
+<a name="l01908"></a>01908 (bkg_stats[i], HAWKI_COL_STAT_MEAN);
+<a name="l01909"></a>01909 <span class="keywordflow">if</span>(bg_mean >= 0)
+<a name="l01910"></a>01910 bg_instmag = -2.5 * log10(bg_mean/(pscale*pscale*dit));
+<a name="l01911"></a>01911 <span class="keywordflow">else</span>
+<a name="l01912"></a>01912 bg_instmag = 0;
+<a name="l01913"></a>01913
+<a name="l01914"></a>01914 <span class="comment">/* Fill the QC */</span>
+<a name="l01915"></a>01915 cpl_propertylist_append_double
+<a name="l01916"></a>01916 (qclists[i], <span class="stringliteral">"ESO QC BACKGD MEAN"</span>, bg_mean);
+<a name="l01917"></a>01917 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC BACKGD MEAN"</span>,
+<a name="l01918"></a>01918 <span class="stringliteral">"Mean of all the image mean backgrounds"</span>);
<a name="l01919"></a>01919 cpl_propertylist_append_double
-<a name="l01920"></a>01920 (qclists[i], <span class="stringliteral">"ESO QC IQ DIFF AMBI"</span>,
-<a name="l01921"></a>01921 hawki_sci_jitter_output.iq[i] - cpl_propertylist_get_double
-<a name="l01922"></a>01922 (telstats, <span class="stringliteral">"ESO QC TEL AMBI FWHM MEAN"</span>));
+<a name="l01920"></a>01920 (qclists[i], <span class="stringliteral">"ESO QC BACKGD STDEV"</span>, bg_stdev);
+<a name="l01921"></a>01921 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC BACKGD STDEV"</span>,
+<a name="l01922"></a>01922 <span class="stringliteral">"The standard deviation of all the image mean backgrounds"</span>);
<a name="l01923"></a>01923 cpl_propertylist_append_double
-<a name="l01924"></a>01924 (qclists[i], <span class="stringliteral">"ESO QC IQ DIFF TEL"</span>,
-<a name="l01925"></a>01925 hawki_sci_jitter_output.iq[i] - cpl_propertylist_get_double
-<a name="l01926"></a>01926 (telstats, <span class="stringliteral">"ESO QC TEL IA FWHM MEAN"</span>));
-<a name="l01927"></a>01927 cpl_propertylist_append_double
-<a name="l01928"></a>01928 (qclists[i], <span class="stringliteral">"ESO QC FWHM PIX"</span>,
-<a name="l01929"></a>01929 hawki_sci_jitter_output.fwhm_pix[i]);
-<a name="l01930"></a>01930 cpl_propertylist_append_double
-<a name="l01931"></a>01931 (qclists[i], <span class="stringliteral">"ESO QC FWHM ARCSEC"</span>,
-<a name="l01932"></a>01932 hawki_sci_jitter_output.fwhm_arcsec[i]);
-<a name="l01933"></a>01933 cpl_propertylist_append_double
-<a name="l01934"></a>01934 (qclists[i], <span class="stringliteral">"ESO QC FWHM MODE"</span>,
-<a name="l01935"></a>01935 hawki_sci_jitter_output.fwhm_mode[i]);
-<a name="l01936"></a>01936 cpl_propertylist_append_double
-<a name="l01937"></a>01937 (qclists[i], <span class="stringliteral">"ESO QC COMBINED POSX"</span>,
-<a name="l01938"></a>01938 hawki_sci_jitter_output.combined_pos_x[i]);
+<a name="l01924"></a>01924 (qclists[i], <span class="stringliteral">"ESO QC BACKGD INSTMAG"</span>, bg_instmag) ;
+<a name="l01925"></a>01925 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC BACKGD INSTMAG"</span>,
+<a name="l01926"></a>01926 <span class="stringliteral">"Mean of all the image mean backgrounds in instrumental magnitudes"</span>);
+<a name="l01927"></a>01927 cpl_propertylist_append_int
+<a name="l01928"></a>01928 (qclists[i], <span class="stringliteral">"ESO QC NBOBJS"</span>, hawki_sci_jitter_output.nbobjs[i]);
+<a name="l01929"></a>01929 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC NBOBJS"</span>,
+<a name="l01930"></a>01930 <span class="stringliteral">"Number of detected objects in the combined image"</span>);
+<a name="l01931"></a>01931 cpl_propertylist_append_double
+<a name="l01932"></a>01932 (qclists[i], <span class="stringliteral">"ESO QC IQ"</span>, hawki_sci_jitter_output.iq[i]);
+<a name="l01933"></a>01933 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC IQ"</span>,
+<a name="l01934"></a>01934 <span class="stringliteral">"Estimated image quality [arcsec]"</span>);
+<a name="l01935"></a>01935 cpl_propertylist_append_double
+<a name="l01936"></a>01936 (qclists[i], <span class="stringliteral">"ESO QC IQ DIFF AMBI"</span>,
+<a name="l01937"></a>01937 hawki_sci_jitter_output.iq[i] - cpl_propertylist_get_double
+<a name="l01938"></a>01938 (telstats, <span class="stringliteral">"ESO QC TEL AMBI FWHM MEAN"</span>));
<a name="l01939"></a>01939 cpl_propertylist_append_double
-<a name="l01940"></a>01940 (qclists[i], <span class="stringliteral">"ESO QC COMBINED POSY"</span>,
-<a name="l01941"></a>01941 hawki_sci_jitter_output.combined_pos_y[i]);
-<a name="l01942"></a>01942 cpl_propertylist_append_double
-<a name="l01943"></a>01943 (qclists[i], <span class="stringliteral">"ESO QC COMBINED CUMOFFSETX"</span>,
-<a name="l01944"></a>01944 hawki_sci_jitter_output.combined_cumoffset_x[i]);
-<a name="l01945"></a>01945 cpl_propertylist_append_double
-<a name="l01946"></a>01946 (qclists[i], <span class="stringliteral">"ESO QC COMBINED CUMOFFSETY"</span>,
-<a name="l01947"></a>01947 hawki_sci_jitter_output.combined_cumoffset_y[i]);
-<a name="l01948"></a>01948 cpl_propertylist_append_int
-<a name="l01949"></a>01949 (qclists[i], <span class="stringliteral">"ESO QC DATANCOM"</span>,hawki_sci_jitter_output.ncomb[i]);
-<a name="l01950"></a>01950 cpl_propertylist_append_double
-<a name="l01951"></a>01951 (qclists[i], <span class="stringliteral">"ESO QC AIRMASS MEAN"</span>,
-<a name="l01952"></a>01952 hawki_sci_jitter_output.mean_airmass);
-<a name="l01953"></a>01953
-<a name="l01954"></a>01954 <span class="comment">/* Update WCS and write them */</span>
-<a name="l01955"></a>01955 crpix1 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX1"</span>);
-<a name="l01956"></a>01956 crpix1 += hawki_sci_jitter_output.combined_pos_x[i];
-<a name="l01957"></a>01957 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX1"</span>, crpix1) ;
-<a name="l01958"></a>01958 crpix2 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX2"</span>);
-<a name="l01959"></a>01959 crpix2 += hawki_sci_jitter_output.combined_pos_y[i] ;
-<a name="l01960"></a>01960 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX2"</span>, crpix2) ;
-<a name="l01961"></a>01961 cpl_propertylist_copy_property_regexp
-<a name="l01962"></a>01962 (qclists[i], wcslist, HAWKI_HEADER_WCS, 0) ;
-<a name="l01963"></a>01963 cpl_propertylist_delete(wcslist);
-<a name="l01964"></a>01964
-<a name="l01965"></a>01965 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
-<a name="l01966"></a>01966 inputlist = cpl_propertylist_load_regexp(
-<a name="l01967"></a>01967 cpl_frame_get_filename(ref_frame), ext_nb,
-<a name="l01968"></a>01968 HAWKI_HEADER_EXT_FORWARD, 0) ;
-<a name="l01969"></a>01969 cpl_propertylist_append(qclists[i], inputlist);
-<a name="l01970"></a>01970 cpl_propertylist_delete(inputlist) ;
-<a name="l01971"></a>01971 }
-<a name="l01972"></a>01972
-<a name="l01973"></a>01973 <span class="comment">/* Statistics of the raw images in the QC */</span>
-<a name="l01974"></a>01974 <a class="code" href="group__hawki__image__stats.html#gaaf82f2c0930f1c2bfcbc5cbef16b3928" title="Make the statistics (over image serie) of the each image statistics.">hawki_image_stats_stats</a>(raw_jitter_stats, qclists);
-<a name="l01975"></a>01975
-<a name="l01976"></a>01976 <span class="comment">/* Statistics of the detected objects in the QC */</span>
-<a name="l01977"></a>01977 <a class="code" href="group__hawki__obj__det.html#ga0968e63931fcc72c55c4bc0e34f71dbb" title="Compute statistics on the object properties.">hawki_obj_prop_stats</a>(obj_charac, qclists);
-<a name="l01978"></a>01978
-<a name="l01979"></a>01979 <span class="comment">/* Write the combined image */</span>
-<a name="l01980"></a>01980 <a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>(<span class="keyword">set</span>,
-<a name="l01981"></a>01981 parlist,
-<a name="l01982"></a>01982 used_frames,
-<a name="l01983"></a>01983 (<span class="keyword">const</span> cpl_image **)combined,
-<a name="l01984"></a>01984 recipe_name,
-<a name="l01985"></a>01985 HAWKI_CALPRO_COMBINED,
-<a name="l01986"></a>01986 HAWKI_PROTYPE_COMBINED,
-<a name="l01987"></a>01987 NULL,
-<a name="l01988"></a>01988 (<span class="keyword">const</span> cpl_propertylist**)qclists,
-<a name="l01989"></a>01989 <span class="stringliteral">"hawki_sci_jitter.fits"</span>);
-<a name="l01990"></a>01990
-<a name="l01991"></a>01991 <span class="comment">/* Erase the WCS */</span>
-<a name="l01992"></a>01992 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++) {
-<a name="l01993"></a>01993 cpl_propertylist_erase_regexp(qclists[i], HAWKI_HEADER_WCS, 0) ;
-<a name="l01994"></a>01994 }
-<a name="l01995"></a>01995
-<a name="l01996"></a>01996 <span class="comment">/* Create a propertylist for PRO.x */</span>
-<a name="l01997"></a>01997 plist = cpl_propertylist_new();
-<a name="l01998"></a>01998 cpl_propertylist_append_string(plist, CPL_DFS_PRO_TYPE,
-<a name="l01999"></a>01999 HAWKI_PROTYPE_STITCHED) ;
-<a name="l02000"></a>02000 cpl_propertylist_append_string(plist, CPL_DFS_PRO_CATG,
-<a name="l02001"></a>02001 HAWKI_CALPRO_STITCHED) ;
-<a name="l02002"></a>02002 <span class="comment">/* Handle WCS keys */</span>
-<a name="l02003"></a>02003 ext_chip_1 = 1;
-<a name="l02004"></a>02004 wcslist = cpl_propertylist_load_regexp(
-<a name="l02005"></a>02005 cpl_frame_get_filename(ref_frame), ext_chip_1, HAWKI_HEADER_WCS, 0);
-<a name="l02006"></a>02006 <span class="comment">/* Update WCS and write them */</span>
-<a name="l02007"></a>02007 crpix1 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX1"</span>);
-<a name="l02008"></a>02008 crpix1 += hawki_sci_jitter_output.combined_pos_x[0];
-<a name="l02009"></a>02009 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX1"</span>, crpix1) ;
-<a name="l02010"></a>02010 crpix2 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX2"</span>);
-<a name="l02011"></a>02011 crpix2 += hawki_sci_jitter_output.combined_pos_y[0] ;
-<a name="l02012"></a>02012 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX2"</span>, crpix2) ;
-<a name="l02013"></a>02013 cpl_propertylist_append(plist, wcslist);
-<a name="l02014"></a>02014 cpl_propertylist_delete(wcslist) ;
-<a name="l02015"></a>02015 <span class="comment">/* Write the stitched image */</span>
-<a name="l02016"></a>02016 cpl_dfs_save_image(<span class="keyword">set</span>,
-<a name="l02017"></a>02017 NULL,
-<a name="l02018"></a>02018 parlist,
-<a name="l02019"></a>02019 used_frames,
-<a name="l02020"></a>02020 NULL,
-<a name="l02021"></a>02021 stitched,
-<a name="l02022"></a>02022 CPL_BPP_IEEE_FLOAT,
-<a name="l02023"></a>02023 recipe_name,
-<a name="l02024"></a>02024 plist,
-<a name="l02025"></a>02025 NULL,
-<a name="l02026"></a>02026 PACKAGE <span class="stringliteral">"/"</span> PACKAGE_VERSION,
-<a name="l02027"></a>02027 <span class="stringliteral">"hawki_sci_jitter_stitched.fits"</span>);
-<a name="l02028"></a>02028 cpl_propertylist_delete(plist);
-<a name="l02029"></a>02029
-<a name="l02030"></a>02030 <span class="comment">/* Write the FITS table with the objects statistics */</span>
-<a name="l02031"></a>02031 <span class="keywordflow">if</span> (obj_charac)
-<a name="l02032"></a>02032 {
-<a name="l02033"></a>02033 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(<span class="keyword">set</span>,
-<a name="l02034"></a>02034 parlist,
-<a name="l02035"></a>02035 used_frames,
-<a name="l02036"></a>02036 (<span class="keyword">const</span> cpl_table **)obj_charac,
-<a name="l02037"></a>02037 recipe_name,
-<a name="l02038"></a>02038 HAWKI_CALPRO_OBJ_PARAM,
-<a name="l02039"></a>02039 HAWKI_PROTYPE_OBJ_PARAM,
-<a name="l02040"></a>02040 NULL,
-<a name="l02041"></a>02041 (<span class="keyword">const</span> cpl_propertylist**)qclists,
-<a name="l02042"></a>02042 <span class="stringliteral">"hawki_sci_jitter_stars.fits"</span>);
-<a name="l02043"></a>02043 }
-<a name="l02044"></a>02044
-<a name="l02045"></a>02045 <span class="comment">/* Write the table with the background statistics */</span>
-<a name="l02046"></a>02046 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(<span class="keyword">set</span>,
-<a name="l02047"></a>02047 parlist,
-<a name="l02048"></a>02048 used_frames,
-<a name="l02049"></a>02049 (<span class="keyword">const</span> cpl_table **)bkg_stats,
-<a name="l02050"></a>02050 recipe_name,
-<a name="l02051"></a>02051 HAWKI_CALPRO_JITTER_BKG_STATS,
-<a name="l02052"></a>02052 HAWKI_PROTYPE_JITTER_BKG_STATS,
-<a name="l02053"></a>02053 NULL,
-<a name="l02054"></a>02054 (<span class="keyword">const</span> cpl_propertylist **)qclists,
-<a name="l02055"></a>02055 <span class="stringliteral">"hawki_sci_jitter_bkg_stats.fits"</span>);
-<a name="l02056"></a>02056
-<a name="l02057"></a>02057 <span class="comment">/* Free and return */</span>
-<a name="l02058"></a>02058 cpl_frameset_delete(used_frames);
-<a name="l02059"></a>02059 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++) {
-<a name="l02060"></a>02060 cpl_propertylist_delete(qclists[i]) ;
-<a name="l02061"></a>02061 }
-<a name="l02062"></a>02062 cpl_propertylist_delete(telstats) ;
-<a name="l02063"></a>02063 cpl_free(qclists) ;
-<a name="l02064"></a>02064 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
-<a name="l02065"></a>02065 {
-<a name="l02066"></a>02066 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l02067"></a>02067 <span class="keywordflow">return</span> -1;
-<a name="l02068"></a>02068 }
-<a name="l02069"></a>02069 <span class="keywordflow">return</span> 0;
-<a name="l02070"></a>02070 }
-<a name="l02071"></a>02071
-<a name="l02072"></a>02072 <span class="keywordtype">int</span> hawki_sci_jitter_whole_image_algo
-<a name="l02073"></a>02073 (cpl_frameset * obj,
-<a name="l02074"></a>02074 cpl_table ** raw_jitter_stats,
-<a name="l02075"></a>02075 cpl_table * raw_obj_tel_info,
-<a name="l02076"></a>02076 cpl_parameterlist * parlist,
-<a name="l02077"></a>02077 cpl_frameset * recipe_set)
-<a name="l02078"></a>02078 {
-<a name="l02079"></a>02079 <span class="keywordtype">int</span> nframes;
-<a name="l02080"></a>02080 <span class="keywordtype">int</span> iframe;
-<a name="l02081"></a>02081
-<a name="l02082"></a>02082
-<a name="l02083"></a>02083 nframes = cpl_frameset_get_size(obj);
-<a name="l02084"></a>02084 <span class="keywordflow">for</span>( iframe = 0 ; iframe < nframes ; ++iframe)
-<a name="l02085"></a>02085 {
-<a name="l02086"></a>02086 <span class="comment">/* Local storage variables */</span>
-<a name="l02087"></a>02087 cpl_frame * this_target_frame;
-<a name="l02088"></a>02088 cpl_propertylist * this_properties;
-<a name="l02089"></a>02089
-<a name="l02090"></a>02090 <span class="comment">/* Computing statistics for this frame */</span>
-<a name="l02091"></a>02091 cpl_msg_info(cpl_func, <span class="stringliteral">"Getting statistics for image %d"</span>, iframe + 1);
-<a name="l02092"></a>02092 this_target_frame = cpl_frameset_get_frame(obj, iframe);
-<a name="l02093"></a>02093 <a class="code" href="group__hawki__image__stats.html#ga07a4f45b2ba4af9420f7d8600dbbe836" title="Fills a table with the statistics of the four detectors of a frame.">hawki_image_stats_fill_from_frame</a>
-<a name="l02094"></a>02094 (raw_jitter_stats, this_target_frame, iframe);
-<a name="l02095"></a>02095
-<a name="l02096"></a>02096 <span class="comment">/* Compute the telescope pcs statistics */</span>
-<a name="l02097"></a>02097 this_properties = cpl_propertylist_load
-<a name="l02098"></a>02098 (cpl_frame_get_filename(this_target_frame), 0);
-<a name="l02099"></a>02099 <span class="keywordflow">if</span>(this_properties == NULL)
-<a name="l02100"></a>02100 {
-<a name="l02101"></a>02101 cpl_msg_error(cpl_func,<span class="stringliteral">"Could not read the header of object frame"</span>);
-<a name="l02102"></a>02102 <span class="keywordflow">return</span> -1;
-<a name="l02103"></a>02103 }
-<a name="l02104"></a>02104 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__properties__tel.html#gaedbe52365a410453e02d6b36d9d1b612" title="Extracts all the QC keywords and append them to the table.">hawki_extract_prop_tel_qc</a>(this_properties, raw_obj_tel_info, iframe))
-<a name="l02105"></a>02105 {
-<a name="l02106"></a>02106 cpl_msg_warning(cpl_func,<span class="stringliteral">"Some telescope properties could not be "</span>
-<a name="l02107"></a>02107 <span class="stringliteral">"read for image %d"</span>, iframe+1);
-<a name="l02108"></a>02108 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l02109"></a>02109 }
-<a name="l02110"></a>02110 cpl_propertylist_delete(this_properties);
-<a name="l02111"></a>02111 }
-<a name="l02112"></a>02112
-<a name="l02113"></a>02113 <span class="comment">/* Saving the already computed products */</span>
-<a name="l02114"></a>02114 cpl_msg_info(cpl_func, <span class="stringliteral">"Saving image statistics"</span>);
-<a name="l02115"></a>02115 <span class="keywordflow">if</span>(hawki_sci_jitter_save_stats(raw_jitter_stats, raw_obj_tel_info,
-<a name="l02116"></a>02116 obj,
-<a name="l02117"></a>02117 parlist, recipe_set) != 0)
-<a name="l02118"></a>02118 cpl_msg_warning(cpl_func,<span class="stringliteral">"Some data could not be saved. "</span>
-<a name="l02119"></a>02119 <span class="stringliteral">"Check permisions or disk space"</span>);
-<a name="l02120"></a>02120
-<a name="l02121"></a>02121
-<a name="l02122"></a>02122 <span class="comment">/* Free and return */</span>
-<a name="l02123"></a>02123 <span class="keywordflow">return</span> 0;
-<a name="l02124"></a>02124 }
+<a name="l01940"></a>01940 (qclists[i], <span class="stringliteral">"ESO QC IQ DIFF TEL"</span>,
+<a name="l01941"></a>01941 hawki_sci_jitter_output.iq[i] - cpl_propertylist_get_double
+<a name="l01942"></a>01942 (telstats, <span class="stringliteral">"ESO QC TEL IA FWHM MEAN"</span>));
+<a name="l01943"></a>01943 cpl_propertylist_append_double
+<a name="l01944"></a>01944 (qclists[i], <span class="stringliteral">"ESO QC FWHM PIX"</span>,
+<a name="l01945"></a>01945 hawki_sci_jitter_output.fwhm_pix[i]);
+<a name="l01946"></a>01946 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC FWHM PIX"</span>,
+<a name="l01947"></a>01947 <span class="stringliteral">"The median FWHM in the image [pixels]"</span>);
+<a name="l01948"></a>01948 cpl_propertylist_append_double
+<a name="l01949"></a>01949 (qclists[i], <span class="stringliteral">"ESO QC FWHM ARCSEC"</span>,
+<a name="l01950"></a>01950 hawki_sci_jitter_output.fwhm_arcsec[i]);
+<a name="l01951"></a>01951 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC FWHM ARCSEC"</span>,
+<a name="l01952"></a>01952 <span class="stringliteral">"The median FWHM in the image [arcsec]"</span>);
+<a name="l01953"></a>01953 cpl_propertylist_append_double
+<a name="l01954"></a>01954 (qclists[i], <span class="stringliteral">"ESO QC FWHM MODE"</span>,
+<a name="l01955"></a>01955 hawki_sci_jitter_output.fwhm_mode[i]);
+<a name="l01956"></a>01956 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC FWHM MODE"</span>,
+<a name="l01957"></a>01957 <span class="stringliteral">"The mode FWHM in the image [pixels]"</span>);
+<a name="l01958"></a>01958 cpl_propertylist_append_double
+<a name="l01959"></a>01959 (qclists[i], <span class="stringliteral">"ESO QC COMBINED POSX"</span>,
+<a name="l01960"></a>01960 hawki_sci_jitter_output.combined_pos_x[i]);
+<a name="l01961"></a>01961 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC COMBINED POSX"</span>,
+<a name="l01962"></a>01962 <span class="stringliteral">"Position in X of the first image"</span>);
+<a name="l01963"></a>01963 cpl_propertylist_append_double
+<a name="l01964"></a>01964 (qclists[i], <span class="stringliteral">"ESO QC COMBINED POSY"</span>,
+<a name="l01965"></a>01965 hawki_sci_jitter_output.combined_pos_y[i]);
+<a name="l01966"></a>01966 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC COMBINED POSY"</span>,
+<a name="l01967"></a>01967 <span class="stringliteral">"Position in Y of the first image"</span>);
+<a name="l01968"></a>01968 cpl_propertylist_append_double
+<a name="l01969"></a>01969 (qclists[i], <span class="stringliteral">"ESO QC COMBINED CUMOFFSETX"</span>,
+<a name="l01970"></a>01970 hawki_sci_jitter_output.combined_cumoffset_x[i]);
+<a name="l01971"></a>01971 cpl_propertylist_append_double
+<a name="l01972"></a>01972 (qclists[i], <span class="stringliteral">"ESO QC COMBINED CUMOFFSETY"</span>,
+<a name="l01973"></a>01973 hawki_sci_jitter_output.combined_cumoffset_y[i]);
+<a name="l01974"></a>01974 cpl_propertylist_append_int
+<a name="l01975"></a>01975 (qclists[i], <span class="stringliteral">"ESO QC DATANCOM"</span>,hawki_sci_jitter_output.ncomb[i]);
+<a name="l01976"></a>01976 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC DATANCOM"</span>,
+<a name="l01977"></a>01977 <span class="stringliteral">"Number of files used for the reduction"</span>);
+<a name="l01978"></a>01978 cpl_propertylist_append_double
+<a name="l01979"></a>01979 (qclists[i], <span class="stringliteral">"ESO QC AIRMASS MEAN"</span>,
+<a name="l01980"></a>01980 hawki_sci_jitter_output.mean_airmass);
+<a name="l01981"></a>01981 cpl_propertylist_set_comment(qclists[i], <span class="stringliteral">"ESO QC AIRMASS MEAN"</span>,
+<a name="l01982"></a>01982 <span class="stringliteral">"Average airmass"</span>);
+<a name="l01983"></a>01983
+<a name="l01984"></a>01984 <span class="comment">/* Update WCS and write them */</span>
+<a name="l01985"></a>01985 crpix1 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX1"</span>);
+<a name="l01986"></a>01986 crpix1 += hawki_sci_jitter_output.combined_pos_x[i];
+<a name="l01987"></a>01987 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX1"</span>, crpix1) ;
+<a name="l01988"></a>01988 crpix2 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX2"</span>);
+<a name="l01989"></a>01989 crpix2 += hawki_sci_jitter_output.combined_pos_y[i] ;
+<a name="l01990"></a>01990 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX2"</span>, crpix2) ;
+<a name="l01991"></a>01991 cpl_propertylist_copy_property_regexp
+<a name="l01992"></a>01992 (qclists[i], wcslist, HAWKI_HEADER_WCS, 0) ;
+<a name="l01993"></a>01993 cpl_propertylist_delete(wcslist);
+<a name="l01994"></a>01994
+<a name="l01995"></a>01995 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
+<a name="l01996"></a>01996 inputlist = cpl_propertylist_load_regexp(
+<a name="l01997"></a>01997 cpl_frame_get_filename(ref_frame), ext_nb,
+<a name="l01998"></a>01998 HAWKI_HEADER_EXT_FORWARD, 0) ;
+<a name="l01999"></a>01999 cpl_propertylist_append(qclists[i], inputlist);
+<a name="l02000"></a>02000 cpl_propertylist_delete(inputlist) ;
+<a name="l02001"></a>02001 }
+<a name="l02002"></a>02002
+<a name="l02003"></a>02003 <span class="comment">/* Statistics of the raw images in the QC */</span>
+<a name="l02004"></a>02004 <a class="code" href="group__hawki__image__stats.html#gaaf82f2c0930f1c2bfcbc5cbef16b3928" title="Make the statistics (over image serie) of the each image statistics.">hawki_image_stats_stats</a>(raw_jitter_stats, qclists);
+<a name="l02005"></a>02005
+<a name="l02006"></a>02006 <span class="comment">/* Statistics of the detected objects in the QC */</span>
+<a name="l02007"></a>02007 <a class="code" href="group__hawki__obj__det.html#ga0968e63931fcc72c55c4bc0e34f71dbb" title="Compute statistics on the object properties.">hawki_obj_prop_stats</a>(obj_charac, qclists);
+<a name="l02008"></a>02008
+<a name="l02009"></a>02009 <span class="comment">/* Write the combined image */</span>
+<a name="l02010"></a>02010 <a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>(<span class="keyword">set</span>,
+<a name="l02011"></a>02011 parlist,
+<a name="l02012"></a>02012 used_frames,
+<a name="l02013"></a>02013 (<span class="keyword">const</span> cpl_image **)combined,
+<a name="l02014"></a>02014 recipe_name,
+<a name="l02015"></a>02015 HAWKI_CALPRO_COMBINED,
+<a name="l02016"></a>02016 HAWKI_PROTYPE_COMBINED,
+<a name="l02017"></a>02017 NULL,
+<a name="l02018"></a>02018 (<span class="keyword">const</span> cpl_propertylist**)qclists,
+<a name="l02019"></a>02019 <span class="stringliteral">"hawki_sci_jitter.fits"</span>);
+<a name="l02020"></a>02020
+<a name="l02021"></a>02021 <span class="comment">/* Erase the WCS */</span>
+<a name="l02022"></a>02022 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++) {
+<a name="l02023"></a>02023 cpl_propertylist_erase_regexp(qclists[i], HAWKI_HEADER_WCS, 0) ;
+<a name="l02024"></a>02024 }
+<a name="l02025"></a>02025
+<a name="l02026"></a>02026 <span class="comment">/* Create a propertylist for PRO.x */</span>
+<a name="l02027"></a>02027 plist = cpl_propertylist_new();
+<a name="l02028"></a>02028 cpl_propertylist_append_string(plist, CPL_DFS_PRO_TYPE,
+<a name="l02029"></a>02029 HAWKI_PROTYPE_STITCHED) ;
+<a name="l02030"></a>02030 cpl_propertylist_append_string(plist, CPL_DFS_PRO_CATG,
+<a name="l02031"></a>02031 HAWKI_CALPRO_STITCHED) ;
+<a name="l02032"></a>02032 <span class="comment">/* Handle WCS keys */</span>
+<a name="l02033"></a>02033 ext_chip_1 = 1;
+<a name="l02034"></a>02034 wcslist = cpl_propertylist_load_regexp(
+<a name="l02035"></a>02035 cpl_frame_get_filename(ref_frame), ext_chip_1, HAWKI_HEADER_WCS, 0);
+<a name="l02036"></a>02036 <span class="comment">/* Update WCS and write them */</span>
+<a name="l02037"></a>02037 crpix1 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX1"</span>);
+<a name="l02038"></a>02038 crpix1 += hawki_sci_jitter_output.combined_pos_x[0];
+<a name="l02039"></a>02039 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX1"</span>, crpix1) ;
+<a name="l02040"></a>02040 crpix2 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX2"</span>);
+<a name="l02041"></a>02041 crpix2 += hawki_sci_jitter_output.combined_pos_y[0] ;
+<a name="l02042"></a>02042 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX2"</span>, crpix2) ;
+<a name="l02043"></a>02043 cpl_propertylist_append(plist, wcslist);
+<a name="l02044"></a>02044 cpl_propertylist_delete(wcslist) ;
+<a name="l02045"></a>02045 <span class="comment">/* Write the stitched image */</span>
+<a name="l02046"></a>02046 cpl_dfs_save_image(<span class="keyword">set</span>,
+<a name="l02047"></a>02047 NULL,
+<a name="l02048"></a>02048 parlist,
+<a name="l02049"></a>02049 used_frames,
+<a name="l02050"></a>02050 NULL,
+<a name="l02051"></a>02051 stitched,
+<a name="l02052"></a>02052 CPL_BPP_IEEE_FLOAT,
+<a name="l02053"></a>02053 recipe_name,
+<a name="l02054"></a>02054 plist,
+<a name="l02055"></a>02055 NULL,
+<a name="l02056"></a>02056 PACKAGE <span class="stringliteral">"/"</span> PACKAGE_VERSION,
+<a name="l02057"></a>02057 <span class="stringliteral">"hawki_sci_jitter_stitched.fits"</span>);
+<a name="l02058"></a>02058 cpl_propertylist_delete(plist);
+<a name="l02059"></a>02059
+<a name="l02060"></a>02060 <span class="comment">/* Write the FITS table with the objects statistics */</span>
+<a name="l02061"></a>02061 <span class="keywordflow">if</span> (obj_charac)
+<a name="l02062"></a>02062 {
+<a name="l02063"></a>02063 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(<span class="keyword">set</span>,
+<a name="l02064"></a>02064 parlist,
+<a name="l02065"></a>02065 used_frames,
+<a name="l02066"></a>02066 (<span class="keyword">const</span> cpl_table **)obj_charac,
+<a name="l02067"></a>02067 recipe_name,
+<a name="l02068"></a>02068 HAWKI_CALPRO_OBJ_PARAM,
+<a name="l02069"></a>02069 HAWKI_PROTYPE_OBJ_PARAM,
+<a name="l02070"></a>02070 NULL,
+<a name="l02071"></a>02071 (<span class="keyword">const</span> cpl_propertylist**)qclists,
+<a name="l02072"></a>02072 <span class="stringliteral">"hawki_sci_jitter_stars.fits"</span>);
+<a name="l02073"></a>02073 }
+<a name="l02074"></a>02074
+<a name="l02075"></a>02075 <span class="comment">/* Write the table with the background statistics */</span>
+<a name="l02076"></a>02076 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(<span class="keyword">set</span>,
+<a name="l02077"></a>02077 parlist,
+<a name="l02078"></a>02078 used_frames,
+<a name="l02079"></a>02079 (<span class="keyword">const</span> cpl_table **)bkg_stats,
+<a name="l02080"></a>02080 recipe_name,
+<a name="l02081"></a>02081 HAWKI_CALPRO_JITTER_BKG_STATS,
+<a name="l02082"></a>02082 HAWKI_PROTYPE_JITTER_BKG_STATS,
+<a name="l02083"></a>02083 NULL,
+<a name="l02084"></a>02084 (<span class="keyword">const</span> cpl_propertylist **)qclists,
+<a name="l02085"></a>02085 <span class="stringliteral">"hawki_sci_jitter_bkg_stats.fits"</span>);
+<a name="l02086"></a>02086
+<a name="l02087"></a>02087 <span class="comment">/* Free and return */</span>
+<a name="l02088"></a>02088 cpl_frameset_delete(used_frames);
+<a name="l02089"></a>02089 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++) {
+<a name="l02090"></a>02090 cpl_propertylist_delete(qclists[i]) ;
+<a name="l02091"></a>02091 }
+<a name="l02092"></a>02092 cpl_propertylist_delete(telstats) ;
+<a name="l02093"></a>02093 cpl_free(qclists) ;
+<a name="l02094"></a>02094 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
+<a name="l02095"></a>02095 {
+<a name="l02096"></a>02096 cpl_errorstate_set(CPL_ERROR_NONE);
+<a name="l02097"></a>02097 <span class="keywordflow">return</span> -1;
+<a name="l02098"></a>02098 }
+<a name="l02099"></a>02099 <span class="keywordflow">return</span> 0;
+<a name="l02100"></a>02100 }
+<a name="l02101"></a>02101
+<a name="l02102"></a>02102 <span class="keywordtype">int</span> hawki_sci_jitter_whole_image_algo
+<a name="l02103"></a>02103 (cpl_frameset * obj,
+<a name="l02104"></a>02104 cpl_table ** raw_jitter_stats,
+<a name="l02105"></a>02105 cpl_table * raw_obj_tel_info,
+<a name="l02106"></a>02106 cpl_parameterlist * parlist,
+<a name="l02107"></a>02107 cpl_frameset * recipe_set)
+<a name="l02108"></a>02108 {
+<a name="l02109"></a>02109 <span class="keywordtype">int</span> nframes;
+<a name="l02110"></a>02110 <span class="keywordtype">int</span> iframe;
+<a name="l02111"></a>02111
+<a name="l02112"></a>02112
+<a name="l02113"></a>02113 nframes = cpl_frameset_get_size(obj);
+<a name="l02114"></a>02114 <span class="keywordflow">for</span>( iframe = 0 ; iframe < nframes ; ++iframe)
+<a name="l02115"></a>02115 {
+<a name="l02116"></a>02116 <span class="comment">/* Local storage variables */</span>
+<a name="l02117"></a>02117 cpl_frame * this_target_frame;
+<a name="l02118"></a>02118 cpl_propertylist * this_properties;
+<a name="l02119"></a>02119
+<a name="l02120"></a>02120 <span class="comment">/* Computing statistics for this frame */</span>
+<a name="l02121"></a>02121 cpl_msg_info(cpl_func, <span class="stringliteral">"Getting statistics for image %d"</span>, iframe + 1);
+<a name="l02122"></a>02122 this_target_frame = cpl_frameset_get_frame(obj, iframe);
+<a name="l02123"></a>02123 <a class="code" href="group__hawki__image__stats.html#ga07a4f45b2ba4af9420f7d8600dbbe836" title="Fills a table with the statistics of the four detectors of a frame.">hawki_image_stats_fill_from_frame</a>
+<a name="l02124"></a>02124 (raw_jitter_stats, this_target_frame, iframe);
<a name="l02125"></a>02125
-<a name="l02126"></a>02126 <span class="keywordtype">int</span> hawki_sci_jitter_save_stats
-<a name="l02127"></a>02127 (cpl_table ** raw_jitter_stats,
-<a name="l02128"></a>02128 cpl_table * raw_obj_tel_info,
-<a name="l02129"></a>02129 cpl_frameset * jitter_frames,
-<a name="l02130"></a>02130 cpl_parameterlist * parlist,
-<a name="l02131"></a>02131 cpl_frameset * recipe_set)
-<a name="l02132"></a>02132 {
-<a name="l02133"></a>02133 <span class="keywordtype">int</span> idet;
-<a name="l02134"></a>02134 <span class="keyword">const</span> cpl_frame * ref_frame;
-<a name="l02135"></a>02135 cpl_propertylist ** qcstats;
-<a name="l02136"></a>02136 cpl_propertylist * telstats;
-<a name="l02137"></a>02137 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_sci_jitter"</span> ;
-<a name="l02138"></a>02138 cpl_errorstate error_prevstate = cpl_errorstate_get();
-<a name="l02139"></a>02139
-<a name="l02140"></a>02140 <span class="comment">/* Statistics of the raw images in the QC */</span>
-<a name="l02141"></a>02141 qcstats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*));
-<a name="l02142"></a>02142 <span class="comment">/* Create the QC lists */</span>
-<a name="l02143"></a>02143 ref_frame = irplib_frameset_get_first_from_group
-<a name="l02144"></a>02144 (recipe_set, CPL_FRAME_GROUP_RAW);
-<a name="l02145"></a>02145 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l02146"></a>02146 {
-<a name="l02147"></a>02147 <span class="keywordtype">int</span> ext_nb;
-<a name="l02148"></a>02148 cpl_propertylist * reflist;
-<a name="l02149"></a>02149
-<a name="l02150"></a>02150 qcstats[idet] = cpl_propertylist_new();
-<a name="l02151"></a>02151 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
-<a name="l02152"></a>02152 ext_nb =
-<a name="l02153"></a>02153 <a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(cpl_frame_get_filename(ref_frame), idet+1);
-<a name="l02154"></a>02154 reflist = cpl_propertylist_load_regexp
-<a name="l02155"></a>02155 (cpl_frame_get_filename(ref_frame), ext_nb,
-<a name="l02156"></a>02156 HAWKI_HEADER_EXT_FORWARD, 0) ;
-<a name="l02157"></a>02157 cpl_propertylist_append(qcstats[idet], reflist);
-<a name="l02158"></a>02158 cpl_propertylist_delete(reflist);
-<a name="l02159"></a>02159 }
-<a name="l02160"></a>02160 <a class="code" href="group__hawki__image__stats.html#gaaf82f2c0930f1c2bfcbc5cbef16b3928" title="Make the statistics (over image serie) of the each image statistics.">hawki_image_stats_stats</a>(raw_jitter_stats, qcstats);
-<a name="l02161"></a>02161 <span class="comment">/* Write the table with the raw jitter objects statistics */</span>
-<a name="l02162"></a>02162 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(recipe_set,
-<a name="l02163"></a>02163 parlist,
-<a name="l02164"></a>02164 jitter_frames,
-<a name="l02165"></a>02165 (<span class="keyword">const</span> cpl_table **)raw_jitter_stats,
-<a name="l02166"></a>02166 recipe_name,
-<a name="l02167"></a>02167 HAWKI_CALPRO_JITTER_STATS,
-<a name="l02168"></a>02168 HAWKI_PROTYPE_JITTER_STATS,
-<a name="l02169"></a>02169 NULL,
-<a name="l02170"></a>02170 (<span class="keyword">const</span> cpl_propertylist**)qcstats,
-<a name="l02171"></a>02171 <span class="stringliteral">"hawki_sci_jitter_stats.fits"</span>);
-<a name="l02172"></a>02172 <span class="comment">/* Free qcstats */</span>
-<a name="l02173"></a>02173 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l02174"></a>02174 cpl_propertylist_delete(qcstats[idet]);
-<a name="l02175"></a>02175
-<a name="l02176"></a>02176 <span class="comment">/* Write the FITS table with the raw telescope data */</span>
-<a name="l02177"></a>02177 telstats = cpl_propertylist_new();
-<a name="l02178"></a>02178 cpl_propertylist_append_string(telstats, CPL_DFS_PRO_TYPE,
-<a name="l02179"></a>02179 HAWKI_PROTYPE_SCIENCE_PCS);
-<a name="l02180"></a>02180 cpl_propertylist_append_string(telstats, CPL_DFS_PRO_CATG,
-<a name="l02181"></a>02181 HAWKI_CALPRO_SCIENCE_PCS);
-<a name="l02182"></a>02182 hawki_compute_prop_tel_qc_stats(raw_obj_tel_info, telstats);
-<a name="l02183"></a>02183 <span class="keywordflow">if</span>(cpl_dfs_save_table(recipe_set,
-<a name="l02184"></a>02184 NULL,
-<a name="l02185"></a>02185 parlist,
-<a name="l02186"></a>02186 jitter_frames,
-<a name="l02187"></a>02187 NULL,
-<a name="l02188"></a>02188 raw_obj_tel_info,
-<a name="l02189"></a>02189 NULL,
-<a name="l02190"></a>02190 recipe_name,
-<a name="l02191"></a>02191 telstats,
-<a name="l02192"></a>02192 NULL,
-<a name="l02193"></a>02193 PACKAGE <span class="stringliteral">"/"</span> PACKAGE_VERSION,
-<a name="l02194"></a>02194 <span class="stringliteral">"hawki_sci_jitter_pcs.fits"</span>) != CPL_ERROR_NONE)
-<a name="l02195"></a>02195 cpl_msg_error(cpl_func,<span class="stringliteral">"Cannot save PCS table"</span>);
-<a name="l02196"></a>02196
-<a name="l02197"></a>02197 <span class="comment">/* Free and return */</span>
-<a name="l02198"></a>02198 cpl_propertylist_delete(telstats);
-<a name="l02199"></a>02199 cpl_free(qcstats);
-<a name="l02200"></a>02200 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
-<a name="l02201"></a>02201 {
-<a name="l02202"></a>02202 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l02203"></a>02203 <span class="keywordflow">return</span> -1;
-<a name="l02204"></a>02204 }
-<a name="l02205"></a>02205
-<a name="l02206"></a>02206 <span class="keywordflow">return</span> 0;
-<a name="l02207"></a>02207 }
+<a name="l02126"></a>02126 <span class="comment">/* Compute the telescope pcs statistics */</span>
+<a name="l02127"></a>02127 this_properties = cpl_propertylist_load
+<a name="l02128"></a>02128 (cpl_frame_get_filename(this_target_frame), 0);
+<a name="l02129"></a>02129 <span class="keywordflow">if</span>(this_properties == NULL)
+<a name="l02130"></a>02130 {
+<a name="l02131"></a>02131 cpl_msg_error(cpl_func,<span class="stringliteral">"Could not read the header of object frame"</span>);
+<a name="l02132"></a>02132 <span class="keywordflow">return</span> -1;
+<a name="l02133"></a>02133 }
+<a name="l02134"></a>02134 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__properties__tel.html#gaedbe52365a410453e02d6b36d9d1b612" title="Extracts all the QC keywords and append them to the table.">hawki_extract_prop_tel_qc</a>(this_properties, raw_obj_tel_info, iframe))
+<a name="l02135"></a>02135 {
+<a name="l02136"></a>02136 cpl_msg_warning(cpl_func,<span class="stringliteral">"Some telescope properties could not be "</span>
+<a name="l02137"></a>02137 <span class="stringliteral">"read for image %d"</span>, iframe+1);
+<a name="l02138"></a>02138 cpl_errorstate_set(CPL_ERROR_NONE);
+<a name="l02139"></a>02139 }
+<a name="l02140"></a>02140 cpl_propertylist_delete(this_properties);
+<a name="l02141"></a>02141 }
+<a name="l02142"></a>02142
+<a name="l02143"></a>02143 <span class="comment">/* Saving the already computed products */</span>
+<a name="l02144"></a>02144 cpl_msg_info(cpl_func, <span class="stringliteral">"Saving image statistics"</span>);
+<a name="l02145"></a>02145 <span class="keywordflow">if</span>(hawki_sci_jitter_save_stats(raw_jitter_stats, raw_obj_tel_info,
+<a name="l02146"></a>02146 obj,
+<a name="l02147"></a>02147 parlist, recipe_set) != 0)
+<a name="l02148"></a>02148 cpl_msg_warning(cpl_func,<span class="stringliteral">"Some data could not be saved. "</span>
+<a name="l02149"></a>02149 <span class="stringliteral">"Check permisions or disk space"</span>);
+<a name="l02150"></a>02150
+<a name="l02151"></a>02151
+<a name="l02152"></a>02152 <span class="comment">/* Free and return */</span>
+<a name="l02153"></a>02153 <span class="keywordflow">return</span> 0;
+<a name="l02154"></a>02154 }
+<a name="l02155"></a>02155
+<a name="l02156"></a>02156 <span class="keywordtype">int</span> hawki_sci_jitter_save_stats
+<a name="l02157"></a>02157 (cpl_table ** raw_jitter_stats,
+<a name="l02158"></a>02158 cpl_table * raw_obj_tel_info,
+<a name="l02159"></a>02159 cpl_frameset * jitter_frames,
+<a name="l02160"></a>02160 cpl_parameterlist * parlist,
+<a name="l02161"></a>02161 cpl_frameset * recipe_set)
+<a name="l02162"></a>02162 {
+<a name="l02163"></a>02163 <span class="keywordtype">int</span> idet;
+<a name="l02164"></a>02164 <span class="keyword">const</span> cpl_frame * ref_frame;
+<a name="l02165"></a>02165 cpl_propertylist ** qcstats;
+<a name="l02166"></a>02166 cpl_propertylist * telstats;
+<a name="l02167"></a>02167 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_sci_jitter"</span> ;
+<a name="l02168"></a>02168 cpl_errorstate error_prevstate = cpl_errorstate_get();
+<a name="l02169"></a>02169
+<a name="l02170"></a>02170 <span class="comment">/* Statistics of the raw images in the QC */</span>
+<a name="l02171"></a>02171 qcstats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*));
+<a name="l02172"></a>02172 <span class="comment">/* Create the QC lists */</span>
+<a name="l02173"></a>02173 ref_frame = irplib_frameset_get_first_from_group
+<a name="l02174"></a>02174 (recipe_set, CPL_FRAME_GROUP_RAW);
+<a name="l02175"></a>02175 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l02176"></a>02176 {
+<a name="l02177"></a>02177 <span class="keywordtype">int</span> ext_nb;
+<a name="l02178"></a>02178 cpl_propertylist * reflist;
+<a name="l02179"></a>02179
+<a name="l02180"></a>02180 qcstats[idet] = cpl_propertylist_new();
+<a name="l02181"></a>02181 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
+<a name="l02182"></a>02182 ext_nb =
+<a name="l02183"></a>02183 <a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(cpl_frame_get_filename(ref_frame), idet+1);
+<a name="l02184"></a>02184 reflist = cpl_propertylist_load_regexp
+<a name="l02185"></a>02185 (cpl_frame_get_filename(ref_frame), ext_nb,
+<a name="l02186"></a>02186 HAWKI_HEADER_EXT_FORWARD, 0) ;
+<a name="l02187"></a>02187 cpl_propertylist_append(qcstats[idet], reflist);
+<a name="l02188"></a>02188 cpl_propertylist_delete(reflist);
+<a name="l02189"></a>02189 }
+<a name="l02190"></a>02190 <a class="code" href="group__hawki__image__stats.html#gaaf82f2c0930f1c2bfcbc5cbef16b3928" title="Make the statistics (over image serie) of the each image statistics.">hawki_image_stats_stats</a>(raw_jitter_stats, qcstats);
+<a name="l02191"></a>02191 <span class="comment">/* Write the table with the raw jitter objects statistics */</span>
+<a name="l02192"></a>02192 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(recipe_set,
+<a name="l02193"></a>02193 parlist,
+<a name="l02194"></a>02194 jitter_frames,
+<a name="l02195"></a>02195 (<span class="keyword">const</span> cpl_table **)raw_jitter_stats,
+<a name="l02196"></a>02196 recipe_name,
+<a name="l02197"></a>02197 HAWKI_CALPRO_JITTER_STATS,
+<a name="l02198"></a>02198 HAWKI_PROTYPE_JITTER_STATS,
+<a name="l02199"></a>02199 NULL,
+<a name="l02200"></a>02200 (<span class="keyword">const</span> cpl_propertylist**)qcstats,
+<a name="l02201"></a>02201 <span class="stringliteral">"hawki_sci_jitter_stats.fits"</span>);
+<a name="l02202"></a>02202 <span class="comment">/* Free qcstats */</span>
+<a name="l02203"></a>02203 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l02204"></a>02204 cpl_propertylist_delete(qcstats[idet]);
+<a name="l02205"></a>02205
+<a name="l02206"></a>02206 <span class="comment">/* Write the FITS table with the raw telescope data */</span>
+<a name="l02207"></a>02207 telstats = cpl_propertylist_new();
+<a name="l02208"></a>02208 cpl_propertylist_append_string(telstats, CPL_DFS_PRO_TYPE,
+<a name="l02209"></a>02209 HAWKI_PROTYPE_SCIENCE_PCS);
+<a name="l02210"></a>02210 cpl_propertylist_append_string(telstats, CPL_DFS_PRO_CATG,
+<a name="l02211"></a>02211 HAWKI_CALPRO_SCIENCE_PCS);
+<a name="l02212"></a>02212 hawki_compute_prop_tel_qc_stats(raw_obj_tel_info, telstats);
+<a name="l02213"></a>02213 <span class="keywordflow">if</span>(cpl_dfs_save_table(recipe_set,
+<a name="l02214"></a>02214 NULL,
+<a name="l02215"></a>02215 parlist,
+<a name="l02216"></a>02216 jitter_frames,
+<a name="l02217"></a>02217 NULL,
+<a name="l02218"></a>02218 raw_obj_tel_info,
+<a name="l02219"></a>02219 NULL,
+<a name="l02220"></a>02220 recipe_name,
+<a name="l02221"></a>02221 telstats,
+<a name="l02222"></a>02222 NULL,
+<a name="l02223"></a>02223 PACKAGE <span class="stringliteral">"/"</span> PACKAGE_VERSION,
+<a name="l02224"></a>02224 <span class="stringliteral">"hawki_sci_jitter_pcs.fits"</span>) != CPL_ERROR_NONE)
+<a name="l02225"></a>02225 cpl_msg_error(cpl_func,<span class="stringliteral">"Cannot save PCS table"</span>);
+<a name="l02226"></a>02226
+<a name="l02227"></a>02227 <span class="comment">/* Free and return */</span>
+<a name="l02228"></a>02228 cpl_propertylist_delete(telstats);
+<a name="l02229"></a>02229 cpl_free(qcstats);
+<a name="l02230"></a>02230 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
+<a name="l02231"></a>02231 {
+<a name="l02232"></a>02232 cpl_errorstate_set(CPL_ERROR_NONE);
+<a name="l02233"></a>02233 <span class="keywordflow">return</span> -1;
+<a name="l02234"></a>02234 }
+<a name="l02235"></a>02235
+<a name="l02236"></a>02236 <span class="keywordflow">return</span> 0;
+<a name="l02237"></a>02237 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__step__apply__dist_8c_source.html b/html/hawki__step__apply__dist_8c_source.html
index 357baae..26c7933 100644
--- a/html/hawki__step__apply__dist_8c_source.html
+++ b/html/hawki__step__apply__dist_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/03/09 10:48:38 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.10 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -517,7 +517,7 @@
<a name="l00517"></a>00517
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__step__basic__calib_8c_source.html b/html/hawki__step__basic__calib_8c_source.html
index f4b0af4..c02fe22 100644
--- a/html/hawki__step__basic__calib_8c_source.html
+++ b/html/hawki__step__basic__calib_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/01/31 11:03:23 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.13 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -571,7 +571,7 @@
<a name="l00579"></a>00579 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__step__combine_8c_source.html b/html/hawki__step__combine_8c_source.html
index 184c52c..573506a 100644
--- a/html/hawki__step__combine_8c_source.html
+++ b/html/hawki__step__combine_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_step_combine.c</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_step_combine.c,v 1.24 2012/04/23 10:04:04 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_step_combine.c,v 1.25 2012/11/30 14:50:51 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/04/23 10:04:04 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.24 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/11/30 14:50:51 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.25 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -103,911 +103,916 @@
<a name="l00056"></a>00056 <span class="comment"> Functions prototypes</span>
<a name="l00057"></a>00057 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00058"></a>00058
-<a name="l00059"></a>00059 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_create(cpl_plugin *) ;
-<a name="l00060"></a>00060 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_exec(cpl_plugin *) ;
-<a name="l00061"></a>00061 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_destroy(cpl_plugin *) ;
-<a name="l00062"></a>00062 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine(cpl_parameterlist *, cpl_frameset *) ;
+<a name="l00059"></a>00059 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
+<a name="l00061"></a>00061 <span class="preprocessor">#endif</span>
+<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list);
<a name="l00063"></a>00063
-<a name="l00064"></a>00064 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_retrieve_input_param
-<a name="l00065"></a>00065 (cpl_parameterlist * parlist);
-<a name="l00066"></a>00066 <span class="keyword">static</span> cpl_image ** hawki_step_combine_apply_comb
-<a name="l00067"></a>00067 (cpl_frameset * obj,
-<a name="l00068"></a>00068 cpl_frameset * offsets,
-<a name="l00069"></a>00069 cpl_frameset * bpm,
-<a name="l00070"></a>00070 cpl_frameset * bkg_bpm_frames);
-<a name="l00071"></a>00071 <span class="keyword">static</span> cpl_image ** hawki_step_combine_chip
-<a name="l00072"></a>00072 (cpl_imagelist * in,
-<a name="l00073"></a>00073 cpl_bivector * offsets,
-<a name="l00074"></a>00074 <span class="keywordtype">double</span> * pos_x,
-<a name="l00075"></a>00075 <span class="keywordtype">double</span> * pos_y);
-<a name="l00076"></a>00076 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_interpolate_badpix
-<a name="l00077"></a>00077 (cpl_image * image);
-<a name="l00078"></a>00078 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_save
-<a name="l00079"></a>00079 (cpl_image ** combined,
-<a name="l00080"></a>00080 cpl_image ** contrib_map,
-<a name="l00081"></a>00081 cpl_frameset * used_frames,
-<a name="l00082"></a>00082 cpl_parameterlist * parlist,
-<a name="l00083"></a>00083 cpl_frameset * recipe_frameset);
-<a name="l00084"></a>00084
-<a name="l00085"></a>00085 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00086"></a>00086 <span class="comment"> Static variables</span>
-<a name="l00087"></a>00087 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00088"></a>00088
-<a name="l00089"></a>00089 <span class="keyword">static</span> <span class="keyword">struct </span>
-<a name="l00090"></a>00090 {
-<a name="l00091"></a>00091 <span class="comment">/* Inputs */</span>
-<a name="l00092"></a>00092 <span class="keywordtype">int</span> offset_max ;
-<a name="l00093"></a>00093 <span class="keywordtype">int</span> borders ;
-<a name="l00094"></a>00094 cpl_geom_combine comb_meth ;
-<a name="l00095"></a>00095 <span class="keywordtype">int</span> rej_low;
-<a name="l00096"></a>00096 <span class="keywordtype">int</span> rej_high;
-<a name="l00097"></a>00097 cpl_kernel resamp_kernel;
-<a name="l00098"></a>00098 } hawki_step_combine_config;
-<a name="l00099"></a>00099
-<a name="l00100"></a>00100 <span class="keyword">static</span> <span class="keyword">struct </span>
-<a name="l00101"></a>00101 {
-<a name="l00102"></a>00102 <span class="comment">/* Outputs */</span>
-<a name="l00103"></a>00103 <span class="keywordtype">double</span> mean_airmass;
-<a name="l00104"></a>00104 <span class="keywordtype">double</span> combined_pos_x[HAWKI_NB_DETECTORS];
-<a name="l00105"></a>00105 <span class="keywordtype">double</span> combined_pos_y[HAWKI_NB_DETECTORS];
-<a name="l00106"></a>00106 <span class="keywordtype">double</span> combined_cumoffset_x[HAWKI_NB_DETECTORS];
-<a name="l00107"></a>00107 <span class="keywordtype">double</span> combined_cumoffset_y[HAWKI_NB_DETECTORS];
-<a name="l00108"></a>00108 } hawki_step_combine_output;
-<a name="l00109"></a>00109
-<a name="l00110"></a>00110 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_step_combine_description[] =
-<a name="l00111"></a>00111 <span class="stringliteral">"hawki_step_combine -- hawki combine jitter images.\n"</span>
-<a name="l00112"></a>00112 <span class="stringliteral">"The files listed in the Set Of Frames (sof-file) must be tagged:\n"</span>
-<a name="l00113"></a>00113 <span class="stringliteral">"science-file.fits "</span>HAWKI_CALPRO_DIST_CORRECTED<span class="stringliteral">" or\n"</span>
-<a name="l00114"></a>00114 <span class="stringliteral">"science-file.fits "</span>HAWKI_CALPRO_BKG_SUBTRACTED<span class="stringliteral">" or\n"</span>
-<a name="l00115"></a>00115 <span class="stringliteral">"bpm-file.fits "</span>HAWKI_CALPRO_BPM<span class="stringliteral">" (optional) \n"</span>
-<a name="l00116"></a>00116 <span class="stringliteral">"bkg_bpm-file.fits "</span>HAWKI_CALPRO_BKGBPM<span class="stringliteral">" (optional) \n"</span>
-<a name="l00117"></a>00117 <span class="stringliteral">"offsets-file.fits "</span>HAWKI_CALPRO_OFFSETS<span class="stringliteral">" (optional) \n"</span>
-<a name="l00118"></a>00118 <span class="stringliteral">"The recipe creates as an output:\n"</span>
-<a name="l00119"></a>00119 <span class="stringliteral">"hawki_step_combine.fits ("</span>HAWKI_CALPRO_COMBINED<span class="stringliteral">"): \n"</span>
-<a name="l00120"></a>00120 <span class="stringliteral">"The recipe does the following steps:\n"</span>
-<a name="l00121"></a>00121 <span class="stringliteral">"-Allocate an image with the proper combined size \n"</span>
-<a name="l00122"></a>00122 <span class="stringliteral">" (depends on parameters --comb_meth and --borders)\n"</span>
-<a name="l00123"></a>00123 <span class="stringliteral">"-Retrieve the offsets either from the offsets-file.fits or from the header\n"</span>
-<a name="l00124"></a>00124 <span class="stringliteral">"-For each combined pixel, the contribution of each individual frame \n"</span>
-<a name="l00125"></a>00125 <span class="stringliteral">" is added using a resampling kernel. If any of the pixels involved in\n"</span>
-<a name="l00126"></a>00126 <span class="stringliteral">" the resampling is a bad pixel (defined in bpm-file.fits), it is not\n"</span>
-<a name="l00127"></a>00127 <span class="stringliteral">" taken into account.\n"</span>
-<a name="l00128"></a>00128 <span class="stringliteral">" With the remaining pixels a minmax rejection is performed\n"</span>
-<a name="l00129"></a>00129 <span class="stringliteral">"Return code:\n"</span>
-<a name="l00130"></a>00130 <span class="stringliteral">"esorex exits with an error code of 0 if the recipe completes successfully\n"</span>
-<a name="l00131"></a>00131 <span class="stringliteral">"or 1 otherwise"</span>;
-<a name="l00132"></a>00132
-<a name="l00133"></a>00133 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00134"></a>00134 <span class="comment"> Functions code</span>
-<a name="l00135"></a>00135 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00136"></a>00136
-<a name="l00137"></a>00137 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00145"></a>00145 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00146"></a>00146 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
-<a name="l00147"></a>00147 {
-<a name="l00148"></a>00148 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
-<a name="l00149"></a>00149 cpl_plugin * plugin = &recipe->interface ;
-<a name="l00150"></a>00150
-<a name="l00151"></a>00151 cpl_plugin_init(plugin,
-<a name="l00152"></a>00152 CPL_PLUGIN_API,
-<a name="l00153"></a>00153 HAWKI_BINARY_VERSION,
-<a name="l00154"></a>00154 CPL_PLUGIN_TYPE_RECIPE,
-<a name="l00155"></a>00155 <span class="stringliteral">"hawki_step_combine"</span>,
-<a name="l00156"></a>00156 <span class="stringliteral">"Jitter image combination recipe"</span>,
-<a name="l00157"></a>00157 hawki_step_combine_description,
-<a name="l00158"></a>00158 <span class="stringliteral">"Cesar Enrique Garcia Dabo"</span>,
-<a name="l00159"></a>00159 PACKAGE_BUGREPORT,
-<a name="l00160"></a>00160 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
-<a name="l00161"></a>00161 hawki_step_combine_create,
-<a name="l00162"></a>00162 hawki_step_combine_exec,
-<a name="l00163"></a>00163 hawki_step_combine_destroy) ;
-<a name="l00164"></a>00164
-<a name="l00165"></a>00165 cpl_pluginlist_append(list, plugin) ;
-<a name="l00166"></a>00166
-<a name="l00167"></a>00167 <span class="keywordflow">return</span> 0;
-<a name="l00168"></a>00168 }
+<a name="l00064"></a>00064 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_create(cpl_plugin *) ;
+<a name="l00065"></a>00065 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_exec(cpl_plugin *) ;
+<a name="l00066"></a>00066 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_destroy(cpl_plugin *) ;
+<a name="l00067"></a>00067 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine(cpl_parameterlist *, cpl_frameset *) ;
+<a name="l00068"></a>00068
+<a name="l00069"></a>00069 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_retrieve_input_param
+<a name="l00070"></a>00070 (cpl_parameterlist * parlist);
+<a name="l00071"></a>00071 <span class="keyword">static</span> cpl_image ** hawki_step_combine_apply_comb
+<a name="l00072"></a>00072 (cpl_frameset * obj,
+<a name="l00073"></a>00073 cpl_frameset * offsets,
+<a name="l00074"></a>00074 cpl_frameset * bpm,
+<a name="l00075"></a>00075 cpl_frameset * bkg_bpm_frames);
+<a name="l00076"></a>00076 <span class="keyword">static</span> cpl_image ** hawki_step_combine_chip
+<a name="l00077"></a>00077 (cpl_imagelist * in,
+<a name="l00078"></a>00078 cpl_bivector * offsets,
+<a name="l00079"></a>00079 <span class="keywordtype">double</span> * pos_x,
+<a name="l00080"></a>00080 <span class="keywordtype">double</span> * pos_y);
+<a name="l00081"></a>00081 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_interpolate_badpix
+<a name="l00082"></a>00082 (cpl_image * image);
+<a name="l00083"></a>00083 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_save
+<a name="l00084"></a>00084 (cpl_image ** combined,
+<a name="l00085"></a>00085 cpl_image ** contrib_map,
+<a name="l00086"></a>00086 cpl_frameset * used_frames,
+<a name="l00087"></a>00087 cpl_parameterlist * parlist,
+<a name="l00088"></a>00088 cpl_frameset * recipe_frameset);
+<a name="l00089"></a>00089
+<a name="l00090"></a>00090 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00091"></a>00091 <span class="comment"> Static variables</span>
+<a name="l00092"></a>00092 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00093"></a>00093
+<a name="l00094"></a>00094 <span class="keyword">static</span> <span class="keyword">struct </span>
+<a name="l00095"></a>00095 {
+<a name="l00096"></a>00096 <span class="comment">/* Inputs */</span>
+<a name="l00097"></a>00097 <span class="keywordtype">int</span> offset_max ;
+<a name="l00098"></a>00098 <span class="keywordtype">int</span> borders ;
+<a name="l00099"></a>00099 cpl_geom_combine comb_meth ;
+<a name="l00100"></a>00100 <span class="keywordtype">int</span> rej_low;
+<a name="l00101"></a>00101 <span class="keywordtype">int</span> rej_high;
+<a name="l00102"></a>00102 cpl_kernel resamp_kernel;
+<a name="l00103"></a>00103 } hawki_step_combine_config;
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 <span class="keyword">static</span> <span class="keyword">struct </span>
+<a name="l00106"></a>00106 {
+<a name="l00107"></a>00107 <span class="comment">/* Outputs */</span>
+<a name="l00108"></a>00108 <span class="keywordtype">double</span> mean_airmass;
+<a name="l00109"></a>00109 <span class="keywordtype">double</span> combined_pos_x[HAWKI_NB_DETECTORS];
+<a name="l00110"></a>00110 <span class="keywordtype">double</span> combined_pos_y[HAWKI_NB_DETECTORS];
+<a name="l00111"></a>00111 <span class="keywordtype">double</span> combined_cumoffset_x[HAWKI_NB_DETECTORS];
+<a name="l00112"></a>00112 <span class="keywordtype">double</span> combined_cumoffset_y[HAWKI_NB_DETECTORS];
+<a name="l00113"></a>00113 } hawki_step_combine_output;
+<a name="l00114"></a>00114
+<a name="l00115"></a>00115 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_step_combine_description[] =
+<a name="l00116"></a>00116 <span class="stringliteral">"hawki_step_combine -- hawki combine jitter images.\n"</span>
+<a name="l00117"></a>00117 <span class="stringliteral">"The files listed in the Set Of Frames (sof-file) must be tagged:\n"</span>
+<a name="l00118"></a>00118 <span class="stringliteral">"science-file.fits "</span>HAWKI_CALPRO_DIST_CORRECTED<span class="stringliteral">" or\n"</span>
+<a name="l00119"></a>00119 <span class="stringliteral">"science-file.fits "</span>HAWKI_CALPRO_BKG_SUBTRACTED<span class="stringliteral">" or\n"</span>
+<a name="l00120"></a>00120 <span class="stringliteral">"bpm-file.fits "</span>HAWKI_CALPRO_BPM<span class="stringliteral">" (optional) \n"</span>
+<a name="l00121"></a>00121 <span class="stringliteral">"bkg_bpm-file.fits "</span>HAWKI_CALPRO_BKGBPM<span class="stringliteral">" (optional) \n"</span>
+<a name="l00122"></a>00122 <span class="stringliteral">"offsets-file.fits "</span>HAWKI_CALPRO_OFFSETS<span class="stringliteral">" (optional) \n"</span>
+<a name="l00123"></a>00123 <span class="stringliteral">"The recipe creates as an output:\n"</span>
+<a name="l00124"></a>00124 <span class="stringliteral">"hawki_step_combine.fits ("</span>HAWKI_CALPRO_COMBINED<span class="stringliteral">"): \n"</span>
+<a name="l00125"></a>00125 <span class="stringliteral">"The recipe does the following steps:\n"</span>
+<a name="l00126"></a>00126 <span class="stringliteral">"-Allocate an image with the proper combined size \n"</span>
+<a name="l00127"></a>00127 <span class="stringliteral">" (depends on parameters --comb_meth and --borders)\n"</span>
+<a name="l00128"></a>00128 <span class="stringliteral">"-Retrieve the offsets either from the offsets-file.fits or from the header\n"</span>
+<a name="l00129"></a>00129 <span class="stringliteral">"-For each combined pixel, the contribution of each individual frame \n"</span>
+<a name="l00130"></a>00130 <span class="stringliteral">" is added using a resampling kernel. If any of the pixels involved in\n"</span>
+<a name="l00131"></a>00131 <span class="stringliteral">" the resampling is a bad pixel (defined in bpm-file.fits), it is not\n"</span>
+<a name="l00132"></a>00132 <span class="stringliteral">" taken into account.\n"</span>
+<a name="l00133"></a>00133 <span class="stringliteral">" With the remaining pixels a minmax rejection is performed\n"</span>
+<a name="l00134"></a>00134 <span class="stringliteral">"Return code:\n"</span>
+<a name="l00135"></a>00135 <span class="stringliteral">"esorex exits with an error code of 0 if the recipe completes successfully\n"</span>
+<a name="l00136"></a>00136 <span class="stringliteral">"or 1 otherwise"</span>;
+<a name="l00137"></a>00137
+<a name="l00138"></a>00138 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00139"></a>00139 <span class="comment"> Functions code</span>
+<a name="l00140"></a>00140 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00141"></a>00141
+<a name="l00142"></a>00142 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00150"></a>00150 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00151"></a>00151 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
+<a name="l00152"></a>00152 {
+<a name="l00153"></a>00153 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
+<a name="l00154"></a>00154 cpl_plugin * plugin = &recipe->interface ;
+<a name="l00155"></a>00155
+<a name="l00156"></a>00156 cpl_plugin_init(plugin,
+<a name="l00157"></a>00157 CPL_PLUGIN_API,
+<a name="l00158"></a>00158 HAWKI_BINARY_VERSION,
+<a name="l00159"></a>00159 CPL_PLUGIN_TYPE_RECIPE,
+<a name="l00160"></a>00160 <span class="stringliteral">"hawki_step_combine"</span>,
+<a name="l00161"></a>00161 <span class="stringliteral">"Jitter image combination recipe"</span>,
+<a name="l00162"></a>00162 hawki_step_combine_description,
+<a name="l00163"></a>00163 <span class="stringliteral">"Cesar Enrique Garcia Dabo"</span>,
+<a name="l00164"></a>00164 PACKAGE_BUGREPORT,
+<a name="l00165"></a>00165 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
+<a name="l00166"></a>00166 hawki_step_combine_create,
+<a name="l00167"></a>00167 hawki_step_combine_exec,
+<a name="l00168"></a>00168 hawki_step_combine_destroy) ;
<a name="l00169"></a>00169
-<a name="l00170"></a>00170 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00179"></a>00179 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00180"></a>00180 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_create(cpl_plugin * plugin)
-<a name="l00181"></a>00181 {
-<a name="l00182"></a>00182 cpl_recipe * recipe ;
-<a name="l00183"></a>00183 cpl_parameter * p ;
-<a name="l00184"></a>00184
-<a name="l00185"></a>00185 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00186"></a>00186 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00187"></a>00187 recipe = (cpl_recipe *)plugin ;
-<a name="l00188"></a>00188 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00170"></a>00170 cpl_pluginlist_append(list, plugin) ;
+<a name="l00171"></a>00171
+<a name="l00172"></a>00172 <span class="keywordflow">return</span> 0;
+<a name="l00173"></a>00173 }
+<a name="l00174"></a>00174
+<a name="l00175"></a>00175 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00184"></a>00184 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00185"></a>00185 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_create(cpl_plugin * plugin)
+<a name="l00186"></a>00186 {
+<a name="l00187"></a>00187 cpl_recipe * recipe ;
+<a name="l00188"></a>00188 cpl_parameter * p ;
<a name="l00189"></a>00189
-<a name="l00190"></a>00190 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
-<a name="l00191"></a>00191 recipe->parameters = cpl_parameterlist_new() ;
-<a name="l00192"></a>00192 <span class="keywordflow">if</span> (recipe->parameters == NULL)
-<a name="l00193"></a>00193 <span class="keywordflow">return</span> 1;
+<a name="l00190"></a>00190 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00191"></a>00191 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00192"></a>00192 recipe = (cpl_recipe *)plugin ;
+<a name="l00193"></a>00193 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
<a name="l00194"></a>00194
-<a name="l00195"></a>00195 <span class="comment">/* Fill the parameters list */</span>
-<a name="l00196"></a>00196 <span class="comment">/* --offset_max */</span>
-<a name="l00197"></a>00197 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.offset_max"</span>,
-<a name="l00198"></a>00198 CPL_TYPE_INT,
-<a name="l00199"></a>00199 <span class="stringliteral">"Maximum offset allowed"</span>,
-<a name="l00200"></a>00200 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
-<a name="l00201"></a>00201 1500) ;
-<a name="l00202"></a>00202 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"offset_max"</span>) ;
-<a name="l00203"></a>00203 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00204"></a>00204 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00205"></a>00205
-<a name="l00206"></a>00206 <span class="comment">/* --comb_meth */</span>
-<a name="l00207"></a>00207 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.comb_meth"</span>,
-<a name="l00208"></a>00208 CPL_TYPE_STRING,
-<a name="l00209"></a>00209 <span class="stringliteral">"Final size of combination (union / inter / first)"</span>,
-<a name="l00210"></a>00210 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
-<a name="l00211"></a>00211 <span class="stringliteral">"union"</span>) ;
-<a name="l00212"></a>00212 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"comb_meth"</span>) ;
-<a name="l00213"></a>00213 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00214"></a>00214 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00215"></a>00215
-<a name="l00216"></a>00216 <span class="comment">/* --rej */</span>
-<a name="l00217"></a>00217 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.rej"</span>,
-<a name="l00218"></a>00218 CPL_TYPE_STRING,
-<a name="l00219"></a>00219 <span class="stringliteral">"Low and high number of rejected values"</span>,
-<a name="l00220"></a>00220 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
-<a name="l00221"></a>00221 <span class="stringliteral">"1,1"</span>) ;
-<a name="l00222"></a>00222 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"rej"</span>) ;
-<a name="l00223"></a>00223 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00224"></a>00224 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00225"></a>00225
-<a name="l00226"></a>00226 <span class="comment">/* --borders */</span>
-<a name="l00227"></a>00227 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.borders"</span>,
-<a name="l00228"></a>00228 CPL_TYPE_INT,
-<a name="l00229"></a>00229 <span class="stringliteral">"Border pixels trimmed"</span>,
-<a name="l00230"></a>00230 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
-<a name="l00231"></a>00231 4) ;
-<a name="l00232"></a>00232 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"borders"</span>) ;
-<a name="l00233"></a>00233 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00234"></a>00234 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00235"></a>00235
-<a name="l00236"></a>00236 <span class="comment">/* --resamp_kernel */</span>
-<a name="l00237"></a>00237 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.resamp_kernel"</span>,
-<a name="l00238"></a>00238 CPL_TYPE_STRING,
-<a name="l00239"></a>00239 <span class="stringliteral">"Resampling kernel (default/tanh/sinc/sinc2/lanczos/hamming/hann)"</span>,
-<a name="l00240"></a>00240 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
-<a name="l00241"></a>00241 <span class="stringliteral">"default"</span>) ;
-<a name="l00242"></a>00242 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"resamp_kernel"</span>) ;
-<a name="l00243"></a>00243 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00244"></a>00244 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00245"></a>00245
-<a name="l00246"></a>00246 <span class="comment">/* Return */</span>
-<a name="l00247"></a>00247 <span class="keywordflow">return</span> 0;
-<a name="l00248"></a>00248 }
-<a name="l00249"></a>00249
-<a name="l00250"></a>00250 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00256"></a>00256 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00257"></a>00257 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_exec(cpl_plugin * plugin)
-<a name="l00258"></a>00258 {
-<a name="l00259"></a>00259 cpl_recipe * recipe ;
-<a name="l00260"></a>00260
-<a name="l00261"></a>00261 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00262"></a>00262 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00263"></a>00263 recipe = (cpl_recipe *)plugin ;
-<a name="l00264"></a>00264 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00195"></a>00195 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
+<a name="l00196"></a>00196 recipe->parameters = cpl_parameterlist_new() ;
+<a name="l00197"></a>00197 <span class="keywordflow">if</span> (recipe->parameters == NULL)
+<a name="l00198"></a>00198 <span class="keywordflow">return</span> 1;
+<a name="l00199"></a>00199
+<a name="l00200"></a>00200 <span class="comment">/* Fill the parameters list */</span>
+<a name="l00201"></a>00201 <span class="comment">/* --offset_max */</span>
+<a name="l00202"></a>00202 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.offset_max"</span>,
+<a name="l00203"></a>00203 CPL_TYPE_INT,
+<a name="l00204"></a>00204 <span class="stringliteral">"Maximum offset allowed"</span>,
+<a name="l00205"></a>00205 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
+<a name="l00206"></a>00206 1500) ;
+<a name="l00207"></a>00207 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"offset_max"</span>) ;
+<a name="l00208"></a>00208 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00209"></a>00209 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00210"></a>00210
+<a name="l00211"></a>00211 <span class="comment">/* --comb_meth */</span>
+<a name="l00212"></a>00212 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.comb_meth"</span>,
+<a name="l00213"></a>00213 CPL_TYPE_STRING,
+<a name="l00214"></a>00214 <span class="stringliteral">"Final size of combination (union / inter / first)"</span>,
+<a name="l00215"></a>00215 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
+<a name="l00216"></a>00216 <span class="stringliteral">"union"</span>) ;
+<a name="l00217"></a>00217 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"comb_meth"</span>) ;
+<a name="l00218"></a>00218 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00219"></a>00219 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00220"></a>00220
+<a name="l00221"></a>00221 <span class="comment">/* --rej */</span>
+<a name="l00222"></a>00222 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.rej"</span>,
+<a name="l00223"></a>00223 CPL_TYPE_STRING,
+<a name="l00224"></a>00224 <span class="stringliteral">"Low and high number of rejected values"</span>,
+<a name="l00225"></a>00225 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
+<a name="l00226"></a>00226 <span class="stringliteral">"1,1"</span>) ;
+<a name="l00227"></a>00227 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"rej"</span>) ;
+<a name="l00228"></a>00228 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00229"></a>00229 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00230"></a>00230
+<a name="l00231"></a>00231 <span class="comment">/* --borders */</span>
+<a name="l00232"></a>00232 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.borders"</span>,
+<a name="l00233"></a>00233 CPL_TYPE_INT,
+<a name="l00234"></a>00234 <span class="stringliteral">"Border pixels trimmed"</span>,
+<a name="l00235"></a>00235 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
+<a name="l00236"></a>00236 4) ;
+<a name="l00237"></a>00237 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"borders"</span>) ;
+<a name="l00238"></a>00238 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00239"></a>00239 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00240"></a>00240
+<a name="l00241"></a>00241 <span class="comment">/* --resamp_kernel */</span>
+<a name="l00242"></a>00242 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_combine.resamp_kernel"</span>,
+<a name="l00243"></a>00243 CPL_TYPE_STRING,
+<a name="l00244"></a>00244 <span class="stringliteral">"Resampling kernel (default/tanh/sinc/sinc2/lanczos/hamming/hann)"</span>,
+<a name="l00245"></a>00245 <span class="stringliteral">"hawki.hawki_step_combine"</span>,
+<a name="l00246"></a>00246 <span class="stringliteral">"default"</span>) ;
+<a name="l00247"></a>00247 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"resamp_kernel"</span>) ;
+<a name="l00248"></a>00248 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
+<a name="l00249"></a>00249 cpl_parameterlist_append(recipe->parameters, p) ;
+<a name="l00250"></a>00250
+<a name="l00251"></a>00251 <span class="comment">/* Return */</span>
+<a name="l00252"></a>00252 <span class="keywordflow">return</span> 0;
+<a name="l00253"></a>00253 }
+<a name="l00254"></a>00254
+<a name="l00255"></a>00255 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00261"></a>00261 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00262"></a>00262 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_exec(cpl_plugin * plugin)
+<a name="l00263"></a>00263 {
+<a name="l00264"></a>00264 cpl_recipe * recipe ;
<a name="l00265"></a>00265
-<a name="l00266"></a>00266 <span class="comment">/* Issue a banner */</span>
-<a name="l00267"></a>00267 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
-<a name="l00268"></a>00268
-<a name="l00269"></a>00269 <span class="keywordflow">return</span> hawki_step_combine(recipe->parameters, recipe->frames) ;
-<a name="l00270"></a>00270 }
-<a name="l00271"></a>00271
-<a name="l00272"></a>00272 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00278"></a>00278 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00279"></a>00279 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_destroy(cpl_plugin * plugin)
-<a name="l00280"></a>00280 {
-<a name="l00281"></a>00281 cpl_recipe * recipe ;
-<a name="l00282"></a>00282
-<a name="l00283"></a>00283 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00284"></a>00284 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00285"></a>00285 recipe = (cpl_recipe *)plugin ;
-<a name="l00286"></a>00286 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00266"></a>00266 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00267"></a>00267 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00268"></a>00268 recipe = (cpl_recipe *)plugin ;
+<a name="l00269"></a>00269 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00270"></a>00270
+<a name="l00271"></a>00271 <span class="comment">/* Issue a banner */</span>
+<a name="l00272"></a>00272 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
+<a name="l00273"></a>00273
+<a name="l00274"></a>00274 <span class="keywordflow">return</span> hawki_step_combine(recipe->parameters, recipe->frames) ;
+<a name="l00275"></a>00275 }
+<a name="l00276"></a>00276
+<a name="l00277"></a>00277 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00283"></a>00283 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00284"></a>00284 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_destroy(cpl_plugin * plugin)
+<a name="l00285"></a>00285 {
+<a name="l00286"></a>00286 cpl_recipe * recipe ;
<a name="l00287"></a>00287
-<a name="l00288"></a>00288 cpl_parameterlist_delete(recipe->parameters) ;
-<a name="l00289"></a>00289 <span class="keywordflow">return</span> 0 ;
-<a name="l00290"></a>00290 }
-<a name="l00291"></a>00291
-<a name="l00292"></a>00292 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00299"></a>00299 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00300"></a>00300 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine(
-<a name="l00301"></a>00301 cpl_parameterlist * parlist,
-<a name="l00302"></a>00302 cpl_frameset * framelist)
-<a name="l00303"></a>00303 {
-<a name="l00304"></a>00304 cpl_frameset * objframes ;
-<a name="l00305"></a>00305 cpl_frameset * offsets;
-<a name="l00306"></a>00306 cpl_frameset * bpm;
-<a name="l00307"></a>00307 cpl_frameset * bpmbkg;
-<a name="l00308"></a>00308 cpl_frameset * used_frames;
-<a name="l00309"></a>00309 cpl_image ** combined_contrib;
-<a name="l00310"></a>00310 cpl_image ** combined;
-<a name="l00311"></a>00311 cpl_image ** contrib_map;
-<a name="l00312"></a>00312 <span class="keywordtype">int</span> idet;
-<a name="l00313"></a>00313
-<a name="l00314"></a>00314 <span class="comment">/* Retrieve input parameters */</span>
-<a name="l00315"></a>00315 <span class="keywordflow">if</span>(hawki_step_combine_retrieve_input_param(parlist))
-<a name="l00316"></a>00316 {
-<a name="l00317"></a>00317 cpl_msg_error(__func__, <span class="stringliteral">"Wrong parameters"</span>);
-<a name="l00318"></a>00318 <span class="keywordflow">return</span> -1;
-<a name="l00319"></a>00319 }
-<a name="l00320"></a>00320
-<a name="l00321"></a>00321 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
-<a name="l00322"></a>00322 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist)) {
-<a name="l00323"></a>00323 cpl_msg_error(__func__, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
-<a name="l00324"></a>00324 <span class="keywordflow">return</span> -1 ;
-<a name="l00325"></a>00325 }
-<a name="l00326"></a>00326
-<a name="l00327"></a>00327 <span class="comment">/* Retrieve raw frames */</span>
-<a name="l00328"></a>00328 objframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_DIST_CORRECTED);
-<a name="l00329"></a>00329 <span class="keywordflow">if</span> (objframes == NULL)
-<a name="l00330"></a>00330 {
-<a name="l00331"></a>00331 objframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
-<a name="l00332"></a>00332 (framelist, HAWKI_CALPRO_BKG_SUBTRACTED);
-<a name="l00333"></a>00333 <span class="keywordflow">if</span> (objframes == NULL)
-<a name="l00334"></a>00334 {
-<a name="l00335"></a>00335 cpl_msg_error(__func__,<span class="stringliteral">"Cannot find objs frames in the input list (%s or %s)"</span>,
-<a name="l00336"></a>00336 HAWKI_CALPRO_DIST_CORRECTED, HAWKI_CALPRO_BKG_SUBTRACTED);
-<a name="l00337"></a>00337 <span class="keywordflow">return</span> -1 ;
-<a name="l00338"></a>00338 }
-<a name="l00339"></a>00339 }
-<a name="l00340"></a>00340 used_frames = cpl_frameset_duplicate(objframes);
-<a name="l00341"></a>00341
-<a name="l00342"></a>00342 <span class="comment">/* Retrieve the refined offsets, if provided */</span>
-<a name="l00343"></a>00343 offsets = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_OFFSETS);
-<a name="l00344"></a>00344 <span class="keywordflow">if</span>(offsets)
-<a name="l00345"></a>00345 cpl_frameset_insert(used_frames, cpl_frame_duplicate(
-<a name="l00346"></a>00346 cpl_frameset_get_first(offsets)));
-<a name="l00347"></a>00347
-<a name="l00348"></a>00348 <span class="comment">/* Retrieve the general bad pixel mask, if provided */</span>
-<a name="l00349"></a>00349 bpm = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_BPM);
-<a name="l00350"></a>00350 <span class="keywordflow">if</span>(bpm)
-<a name="l00351"></a>00351 cpl_frameset_insert(used_frames, cpl_frame_duplicate(
-<a name="l00352"></a>00352 cpl_frameset_get_first(bpm)));
-<a name="l00353"></a>00353
-<a name="l00354"></a>00354 <span class="comment">/* Retrieve the background bad pixel masks, if provided */</span>
-<a name="l00355"></a>00355 bpmbkg = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_BKGBPM);
-<a name="l00356"></a>00356 <span class="keywordflow">if</span>(bpmbkg)
-<a name="l00357"></a>00357 {
-<a name="l00358"></a>00358 <span class="keywordtype">int</span> iframe;
-<a name="l00359"></a>00359 <span class="keywordflow">for</span>(iframe=0; iframe < cpl_frameset_get_size(bpmbkg); iframe++)
-<a name="l00360"></a>00360 cpl_frameset_insert(used_frames, cpl_frame_duplicate(
-<a name="l00361"></a>00361 cpl_frameset_get_frame(bpmbkg,iframe)));
-<a name="l00362"></a>00362 <span class="keywordflow">if</span>(cpl_frameset_get_size(bpmbkg) != cpl_frameset_get_size(objframes))
-<a name="l00363"></a>00363 {
-<a name="l00364"></a>00364 cpl_msg_error(__func__,<span class="stringliteral">"Incompatible number of science and bad bkg"</span>
-<a name="l00365"></a>00365 <span class="stringliteral">" images."</span>);
-<a name="l00366"></a>00366 cpl_msg_error(__func__,<span class="stringliteral">"Supply as many bad bkg images as objects"</span>);
-<a name="l00367"></a>00367 cpl_frameset_delete(objframes);
-<a name="l00368"></a>00368 cpl_frameset_delete(used_frames);
-<a name="l00369"></a>00369 cpl_frameset_delete(offsets);
-<a name="l00370"></a>00370 cpl_frameset_delete(bpm);
-<a name="l00371"></a>00371 cpl_frameset_delete(bpmbkg);
-<a name="l00372"></a>00372 <span class="keywordflow">return</span> -1;
-<a name="l00373"></a>00373 }
-<a name="l00374"></a>00374 }
-<a name="l00375"></a>00375
-<a name="l00376"></a>00376 <span class="comment">/* Apply the combination */</span>
-<a name="l00377"></a>00377 cpl_msg_info(__func__, <span class="stringliteral">"Apply the data recombination"</span>);
-<a name="l00378"></a>00378 cpl_msg_indent_more() ;
-<a name="l00379"></a>00379 <span class="keywordflow">if</span> ((combined_contrib = hawki_step_combine_apply_comb
-<a name="l00380"></a>00380 (objframes, offsets, bpm, bpmbkg)) == NULL)
-<a name="l00381"></a>00381 {
-<a name="l00382"></a>00382 cpl_msg_error(__func__, <span class="stringliteral">"Cannot combine the data"</span>);
-<a name="l00383"></a>00383 cpl_frameset_delete(objframes);
-<a name="l00384"></a>00384 cpl_frameset_delete(used_frames);
-<a name="l00385"></a>00385 <span class="keywordflow">if</span>(offsets != NULL)
-<a name="l00386"></a>00386 cpl_frameset_delete(offsets);
-<a name="l00387"></a>00387 <span class="keywordflow">if</span>(bpm != NULL)
-<a name="l00388"></a>00388 cpl_frameset_delete(bpm);
-<a name="l00389"></a>00389 cpl_msg_indent_less() ;
-<a name="l00390"></a>00390 <span class="keywordflow">return</span> -1 ;
-<a name="l00391"></a>00391 }
-<a name="l00392"></a>00392
-<a name="l00393"></a>00393 <span class="comment">/* Get both the combination and the contribution map */</span>
-<a name="l00394"></a>00394 combined = combined_contrib;
-<a name="l00395"></a>00395 contrib_map = combined_contrib + HAWKI_NB_DETECTORS;
-<a name="l00396"></a>00396 cpl_msg_indent_less() ;
-<a name="l00397"></a>00397 cpl_frameset_delete(objframes);
-<a name="l00398"></a>00398 <span class="keywordflow">if</span>(offsets != NULL)
-<a name="l00399"></a>00399 cpl_frameset_delete(offsets);
-<a name="l00400"></a>00400 <span class="keywordflow">if</span>(bpm != NULL)
-<a name="l00401"></a>00401 cpl_frameset_delete(bpm);
-<a name="l00402"></a>00402 <span class="keywordflow">if</span>(bpmbkg != NULL)
-<a name="l00403"></a>00403 cpl_frameset_delete(bpmbkg);
-<a name="l00404"></a>00404
-<a name="l00405"></a>00405 <span class="comment">/* Save the products */</span>
-<a name="l00406"></a>00406 cpl_msg_info(__func__, <span class="stringliteral">"Save the products"</span>) ;
-<a name="l00407"></a>00407 cpl_msg_indent_more() ;
-<a name="l00408"></a>00408 <span class="keywordflow">if</span> (hawki_step_combine_save(combined, contrib_map,
-<a name="l00409"></a>00409 used_frames, parlist, framelist) != 0)
-<a name="l00410"></a>00410 {
-<a name="l00411"></a>00411 cpl_msg_warning(__func__, <span class="stringliteral">"Some error happened saving the data. "</span>
-<a name="l00412"></a>00412 <span class="stringliteral">"Check permisions or disk space"</span>) ;
-<a name="l00413"></a>00413 <span class="keywordflow">for</span>(idet=0; idet< 2 * HAWKI_NB_DETECTORS; ++idet)
-<a name="l00414"></a>00414 cpl_image_delete(combined_contrib[idet]);
-<a name="l00415"></a>00415 cpl_frameset_delete(used_frames);
-<a name="l00416"></a>00416 cpl_free(combined_contrib);
-<a name="l00417"></a>00417 cpl_msg_indent_less() ;
-<a name="l00418"></a>00418 <span class="keywordflow">return</span> -1 ;
-<a name="l00419"></a>00419 }
-<a name="l00420"></a>00420 cpl_msg_indent_less() ;
-<a name="l00421"></a>00421
-<a name="l00422"></a>00422 <span class="comment">/* Return */</span>
-<a name="l00423"></a>00423 <span class="keywordflow">for</span>(idet=0; idet< 2 * HAWKI_NB_DETECTORS; ++idet)
-<a name="l00424"></a>00424 cpl_image_delete(combined_contrib[idet]);
-<a name="l00425"></a>00425 cpl_free(combined_contrib);
-<a name="l00426"></a>00426 cpl_frameset_delete(used_frames);
-<a name="l00427"></a>00427
-<a name="l00428"></a>00428 <span class="comment">/* Return */</span>
-<a name="l00429"></a>00429 <span class="keywordflow">if</span> (cpl_error_get_code())
-<a name="l00430"></a>00430 {
-<a name="l00431"></a>00431 cpl_msg_error(__func__,
-<a name="l00432"></a>00432 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
-<a name="l00433"></a>00433 <span class="keywordflow">return</span> -1 ;
-<a name="l00434"></a>00434 }
-<a name="l00435"></a>00435 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
-<a name="l00436"></a>00436 }
-<a name="l00437"></a>00437
-<a name="l00438"></a>00438 <span class="keywordtype">int</span> hawki_step_combine_retrieve_input_param
-<a name="l00439"></a>00439 (cpl_parameterlist * parlist)
-<a name="l00440"></a>00440 {
-<a name="l00441"></a>00441 cpl_parameter * par ;
-<a name="l00442"></a>00442 <span class="keyword">const</span> <span class="keywordtype">char</span> * sval ;
-<a name="l00443"></a>00443 par = NULL ;
-<a name="l00444"></a>00444 par = cpl_parameterlist_find(parlist,
-<a name="l00445"></a>00445 <span class="stringliteral">"hawki.hawki_step_combine.offset_max"</span>);
-<a name="l00446"></a>00446 hawki_step_combine_config.offset_max = cpl_parameter_get_int(par);
-<a name="l00447"></a>00447 par = cpl_parameterlist_find(parlist,
-<a name="l00448"></a>00448 <span class="stringliteral">"hawki.hawki_step_combine.comb_meth"</span>);
-<a name="l00449"></a>00449 sval = cpl_parameter_get_string(par);
-<a name="l00450"></a>00450 <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"union"</span>))
-<a name="l00451"></a>00451 hawki_step_combine_config.comb_meth = CPL_GEOM_UNION;
-<a name="l00452"></a>00452 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"inter"</span>))
-<a name="l00453"></a>00453 hawki_step_combine_config.comb_meth = CPL_GEOM_INTERSECT;
-<a name="l00454"></a>00454 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"first"</span>))
-<a name="l00455"></a>00455 hawki_step_combine_config.comb_meth = CPL_GEOM_FIRST;
-<a name="l00456"></a>00456 <span class="keywordflow">else</span>
-<a name="l00457"></a>00457 {
-<a name="l00458"></a>00458 cpl_msg_error(__func__, <span class="stringliteral">"Invalid combine method specified"</span>);
-<a name="l00459"></a>00459 <span class="keywordflow">return</span> -1;
-<a name="l00460"></a>00460 }
-<a name="l00461"></a>00461 par = cpl_parameterlist_find(parlist,
-<a name="l00462"></a>00462 <span class="stringliteral">"hawki.hawki_step_combine.borders"</span>);
-<a name="l00463"></a>00463 hawki_step_combine_config.borders = cpl_parameter_get_int(par);
-<a name="l00464"></a>00464 <span class="keywordflow">if</span>(hawki_step_combine_config.borders < 0 )
-<a name="l00465"></a>00465 {
-<a name="l00466"></a>00466 cpl_msg_error(__func__, <span class="stringliteral">"Borders cannot be less than zero"</span>);
-<a name="l00467"></a>00467 <span class="keywordflow">return</span> -1;
-<a name="l00468"></a>00468 }
-<a name="l00469"></a>00469 par = cpl_parameterlist_find(parlist,
-<a name="l00470"></a>00470 <span class="stringliteral">"hawki.hawki_step_combine.rej"</span>);
-<a name="l00471"></a>00471 sval = cpl_parameter_get_string(par);
-<a name="l00472"></a>00472 <span class="keywordflow">if</span> (sscanf(sval, <span class="stringliteral">"%d,%d"</span>,
-<a name="l00473"></a>00473 &hawki_step_combine_config.rej_low,
-<a name="l00474"></a>00474 &hawki_step_combine_config.rej_high)!=2)
-<a name="l00475"></a>00475 {
-<a name="l00476"></a>00476 <span class="keywordflow">return</span> -1;
-<a name="l00477"></a>00477 }
-<a name="l00478"></a>00478 par = cpl_parameterlist_find(parlist,
-<a name="l00479"></a>00479 <span class="stringliteral">"hawki.hawki_step_combine.resamp_kernel"</span>);
-<a name="l00480"></a>00480 sval = cpl_parameter_get_string(par);
-<a name="l00481"></a>00481 <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"tanh"</span>))
-<a name="l00482"></a>00482 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_TANH;
-<a name="l00483"></a>00483 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"sinc"</span>))
-<a name="l00484"></a>00484 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_SINC;
-<a name="l00485"></a>00485 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"sinc2"</span>))
-<a name="l00486"></a>00486 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_SINC2;
-<a name="l00487"></a>00487 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"lanczos"</span>))
-<a name="l00488"></a>00488 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_LANCZOS;
-<a name="l00489"></a>00489 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"hamming"</span>))
-<a name="l00490"></a>00490 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_HAMMING;
-<a name="l00491"></a>00491 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"hann"</span>))
-<a name="l00492"></a>00492 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_HANN;
-<a name="l00493"></a>00493 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"default"</span>))
-<a name="l00494"></a>00494 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_DEFAULT;
-<a name="l00495"></a>00495 <span class="keywordflow">else</span>
-<a name="l00496"></a>00496 {
-<a name="l00497"></a>00497 cpl_msg_error(__func__, <span class="stringliteral">"Invalid resampling kernel specified"</span>);
-<a name="l00498"></a>00498 <span class="keywordflow">return</span> -1;
-<a name="l00499"></a>00499 }
-<a name="l00500"></a>00500
-<a name="l00501"></a>00501 <span class="keywordflow">return</span> 0;
-<a name="l00502"></a>00502 }
-<a name="l00503"></a>00503
-<a name="l00504"></a>00504
+<a name="l00288"></a>00288 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00289"></a>00289 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00290"></a>00290 recipe = (cpl_recipe *)plugin ;
+<a name="l00291"></a>00291 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00292"></a>00292
+<a name="l00293"></a>00293 cpl_parameterlist_delete(recipe->parameters) ;
+<a name="l00294"></a>00294 <span class="keywordflow">return</span> 0 ;
+<a name="l00295"></a>00295 }
+<a name="l00296"></a>00296
+<a name="l00297"></a>00297 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00304"></a>00304 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00305"></a>00305 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine(
+<a name="l00306"></a>00306 cpl_parameterlist * parlist,
+<a name="l00307"></a>00307 cpl_frameset * framelist)
+<a name="l00308"></a>00308 {
+<a name="l00309"></a>00309 cpl_frameset * objframes ;
+<a name="l00310"></a>00310 cpl_frameset * offsets;
+<a name="l00311"></a>00311 cpl_frameset * bpm;
+<a name="l00312"></a>00312 cpl_frameset * bpmbkg;
+<a name="l00313"></a>00313 cpl_frameset * used_frames;
+<a name="l00314"></a>00314 cpl_image ** combined_contrib;
+<a name="l00315"></a>00315 cpl_image ** combined;
+<a name="l00316"></a>00316 cpl_image ** contrib_map;
+<a name="l00317"></a>00317 <span class="keywordtype">int</span> idet;
+<a name="l00318"></a>00318
+<a name="l00319"></a>00319 <span class="comment">/* Retrieve input parameters */</span>
+<a name="l00320"></a>00320 <span class="keywordflow">if</span>(hawki_step_combine_retrieve_input_param(parlist))
+<a name="l00321"></a>00321 {
+<a name="l00322"></a>00322 cpl_msg_error(__func__, <span class="stringliteral">"Wrong parameters"</span>);
+<a name="l00323"></a>00323 <span class="keywordflow">return</span> -1;
+<a name="l00324"></a>00324 }
+<a name="l00325"></a>00325
+<a name="l00326"></a>00326 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
+<a name="l00327"></a>00327 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist)) {
+<a name="l00328"></a>00328 cpl_msg_error(__func__, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
+<a name="l00329"></a>00329 <span class="keywordflow">return</span> -1 ;
+<a name="l00330"></a>00330 }
+<a name="l00331"></a>00331
+<a name="l00332"></a>00332 <span class="comment">/* Retrieve raw frames */</span>
+<a name="l00333"></a>00333 objframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_DIST_CORRECTED);
+<a name="l00334"></a>00334 <span class="keywordflow">if</span> (objframes == NULL)
+<a name="l00335"></a>00335 {
+<a name="l00336"></a>00336 objframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
+<a name="l00337"></a>00337 (framelist, HAWKI_CALPRO_BKG_SUBTRACTED);
+<a name="l00338"></a>00338 <span class="keywordflow">if</span> (objframes == NULL)
+<a name="l00339"></a>00339 {
+<a name="l00340"></a>00340 cpl_msg_error(__func__,<span class="stringliteral">"Cannot find objs frames in the input list (%s or %s)"</span>,
+<a name="l00341"></a>00341 HAWKI_CALPRO_DIST_CORRECTED, HAWKI_CALPRO_BKG_SUBTRACTED);
+<a name="l00342"></a>00342 <span class="keywordflow">return</span> -1 ;
+<a name="l00343"></a>00343 }
+<a name="l00344"></a>00344 }
+<a name="l00345"></a>00345 used_frames = cpl_frameset_duplicate(objframes);
+<a name="l00346"></a>00346
+<a name="l00347"></a>00347 <span class="comment">/* Retrieve the refined offsets, if provided */</span>
+<a name="l00348"></a>00348 offsets = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_OFFSETS);
+<a name="l00349"></a>00349 <span class="keywordflow">if</span>(offsets)
+<a name="l00350"></a>00350 cpl_frameset_insert(used_frames, cpl_frame_duplicate(
+<a name="l00351"></a>00351 cpl_frameset_get_first(offsets)));
+<a name="l00352"></a>00352
+<a name="l00353"></a>00353 <span class="comment">/* Retrieve the general bad pixel mask, if provided */</span>
+<a name="l00354"></a>00354 bpm = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_BPM);
+<a name="l00355"></a>00355 <span class="keywordflow">if</span>(bpm)
+<a name="l00356"></a>00356 cpl_frameset_insert(used_frames, cpl_frame_duplicate(
+<a name="l00357"></a>00357 cpl_frameset_get_first(bpm)));
+<a name="l00358"></a>00358
+<a name="l00359"></a>00359 <span class="comment">/* Retrieve the background bad pixel masks, if provided */</span>
+<a name="l00360"></a>00360 bpmbkg = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_BKGBPM);
+<a name="l00361"></a>00361 <span class="keywordflow">if</span>(bpmbkg)
+<a name="l00362"></a>00362 {
+<a name="l00363"></a>00363 <span class="keywordtype">int</span> iframe;
+<a name="l00364"></a>00364 <span class="keywordflow">for</span>(iframe=0; iframe < cpl_frameset_get_size(bpmbkg); iframe++)
+<a name="l00365"></a>00365 cpl_frameset_insert(used_frames, cpl_frame_duplicate(
+<a name="l00366"></a>00366 cpl_frameset_get_frame(bpmbkg,iframe)));
+<a name="l00367"></a>00367 <span class="keywordflow">if</span>(cpl_frameset_get_size(bpmbkg) != cpl_frameset_get_size(objframes))
+<a name="l00368"></a>00368 {
+<a name="l00369"></a>00369 cpl_msg_error(__func__,<span class="stringliteral">"Incompatible number of science and bad bkg"</span>
+<a name="l00370"></a>00370 <span class="stringliteral">" images."</span>);
+<a name="l00371"></a>00371 cpl_msg_error(__func__,<span class="stringliteral">"Supply as many bad bkg images as objects"</span>);
+<a name="l00372"></a>00372 cpl_frameset_delete(objframes);
+<a name="l00373"></a>00373 cpl_frameset_delete(used_frames);
+<a name="l00374"></a>00374 cpl_frameset_delete(offsets);
+<a name="l00375"></a>00375 cpl_frameset_delete(bpm);
+<a name="l00376"></a>00376 cpl_frameset_delete(bpmbkg);
+<a name="l00377"></a>00377 <span class="keywordflow">return</span> -1;
+<a name="l00378"></a>00378 }
+<a name="l00379"></a>00379 }
+<a name="l00380"></a>00380
+<a name="l00381"></a>00381 <span class="comment">/* Apply the combination */</span>
+<a name="l00382"></a>00382 cpl_msg_info(__func__, <span class="stringliteral">"Apply the data recombination"</span>);
+<a name="l00383"></a>00383 cpl_msg_indent_more() ;
+<a name="l00384"></a>00384 <span class="keywordflow">if</span> ((combined_contrib = hawki_step_combine_apply_comb
+<a name="l00385"></a>00385 (objframes, offsets, bpm, bpmbkg)) == NULL)
+<a name="l00386"></a>00386 {
+<a name="l00387"></a>00387 cpl_msg_error(__func__, <span class="stringliteral">"Cannot combine the data"</span>);
+<a name="l00388"></a>00388 cpl_frameset_delete(objframes);
+<a name="l00389"></a>00389 cpl_frameset_delete(used_frames);
+<a name="l00390"></a>00390 <span class="keywordflow">if</span>(offsets != NULL)
+<a name="l00391"></a>00391 cpl_frameset_delete(offsets);
+<a name="l00392"></a>00392 <span class="keywordflow">if</span>(bpm != NULL)
+<a name="l00393"></a>00393 cpl_frameset_delete(bpm);
+<a name="l00394"></a>00394 cpl_msg_indent_less() ;
+<a name="l00395"></a>00395 <span class="keywordflow">return</span> -1 ;
+<a name="l00396"></a>00396 }
+<a name="l00397"></a>00397
+<a name="l00398"></a>00398 <span class="comment">/* Get both the combination and the contribution map */</span>
+<a name="l00399"></a>00399 combined = combined_contrib;
+<a name="l00400"></a>00400 contrib_map = combined_contrib + HAWKI_NB_DETECTORS;
+<a name="l00401"></a>00401 cpl_msg_indent_less() ;
+<a name="l00402"></a>00402 cpl_frameset_delete(objframes);
+<a name="l00403"></a>00403 <span class="keywordflow">if</span>(offsets != NULL)
+<a name="l00404"></a>00404 cpl_frameset_delete(offsets);
+<a name="l00405"></a>00405 <span class="keywordflow">if</span>(bpm != NULL)
+<a name="l00406"></a>00406 cpl_frameset_delete(bpm);
+<a name="l00407"></a>00407 <span class="keywordflow">if</span>(bpmbkg != NULL)
+<a name="l00408"></a>00408 cpl_frameset_delete(bpmbkg);
+<a name="l00409"></a>00409
+<a name="l00410"></a>00410 <span class="comment">/* Save the products */</span>
+<a name="l00411"></a>00411 cpl_msg_info(__func__, <span class="stringliteral">"Save the products"</span>) ;
+<a name="l00412"></a>00412 cpl_msg_indent_more() ;
+<a name="l00413"></a>00413 <span class="keywordflow">if</span> (hawki_step_combine_save(combined, contrib_map,
+<a name="l00414"></a>00414 used_frames, parlist, framelist) != 0)
+<a name="l00415"></a>00415 {
+<a name="l00416"></a>00416 cpl_msg_warning(__func__, <span class="stringliteral">"Some error happened saving the data. "</span>
+<a name="l00417"></a>00417 <span class="stringliteral">"Check permisions or disk space"</span>) ;
+<a name="l00418"></a>00418 <span class="keywordflow">for</span>(idet=0; idet< 2 * HAWKI_NB_DETECTORS; ++idet)
+<a name="l00419"></a>00419 cpl_image_delete(combined_contrib[idet]);
+<a name="l00420"></a>00420 cpl_frameset_delete(used_frames);
+<a name="l00421"></a>00421 cpl_free(combined_contrib);
+<a name="l00422"></a>00422 cpl_msg_indent_less() ;
+<a name="l00423"></a>00423 <span class="keywordflow">return</span> -1 ;
+<a name="l00424"></a>00424 }
+<a name="l00425"></a>00425 cpl_msg_indent_less() ;
+<a name="l00426"></a>00426
+<a name="l00427"></a>00427 <span class="comment">/* Return */</span>
+<a name="l00428"></a>00428 <span class="keywordflow">for</span>(idet=0; idet< 2 * HAWKI_NB_DETECTORS; ++idet)
+<a name="l00429"></a>00429 cpl_image_delete(combined_contrib[idet]);
+<a name="l00430"></a>00430 cpl_free(combined_contrib);
+<a name="l00431"></a>00431 cpl_frameset_delete(used_frames);
+<a name="l00432"></a>00432
+<a name="l00433"></a>00433 <span class="comment">/* Return */</span>
+<a name="l00434"></a>00434 <span class="keywordflow">if</span> (cpl_error_get_code())
+<a name="l00435"></a>00435 {
+<a name="l00436"></a>00436 cpl_msg_error(__func__,
+<a name="l00437"></a>00437 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
+<a name="l00438"></a>00438 <span class="keywordflow">return</span> -1 ;
+<a name="l00439"></a>00439 }
+<a name="l00440"></a>00440 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
+<a name="l00441"></a>00441 }
+<a name="l00442"></a>00442
+<a name="l00443"></a>00443 <span class="keywordtype">int</span> hawki_step_combine_retrieve_input_param
+<a name="l00444"></a>00444 (cpl_parameterlist * parlist)
+<a name="l00445"></a>00445 {
+<a name="l00446"></a>00446 cpl_parameter * par ;
+<a name="l00447"></a>00447 <span class="keyword">const</span> <span class="keywordtype">char</span> * sval ;
+<a name="l00448"></a>00448 par = NULL ;
+<a name="l00449"></a>00449 par = cpl_parameterlist_find(parlist,
+<a name="l00450"></a>00450 <span class="stringliteral">"hawki.hawki_step_combine.offset_max"</span>);
+<a name="l00451"></a>00451 hawki_step_combine_config.offset_max = cpl_parameter_get_int(par);
+<a name="l00452"></a>00452 par = cpl_parameterlist_find(parlist,
+<a name="l00453"></a>00453 <span class="stringliteral">"hawki.hawki_step_combine.comb_meth"</span>);
+<a name="l00454"></a>00454 sval = cpl_parameter_get_string(par);
+<a name="l00455"></a>00455 <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"union"</span>))
+<a name="l00456"></a>00456 hawki_step_combine_config.comb_meth = CPL_GEOM_UNION;
+<a name="l00457"></a>00457 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"inter"</span>))
+<a name="l00458"></a>00458 hawki_step_combine_config.comb_meth = CPL_GEOM_INTERSECT;
+<a name="l00459"></a>00459 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"first"</span>))
+<a name="l00460"></a>00460 hawki_step_combine_config.comb_meth = CPL_GEOM_FIRST;
+<a name="l00461"></a>00461 <span class="keywordflow">else</span>
+<a name="l00462"></a>00462 {
+<a name="l00463"></a>00463 cpl_msg_error(__func__, <span class="stringliteral">"Invalid combine method specified"</span>);
+<a name="l00464"></a>00464 <span class="keywordflow">return</span> -1;
+<a name="l00465"></a>00465 }
+<a name="l00466"></a>00466 par = cpl_parameterlist_find(parlist,
+<a name="l00467"></a>00467 <span class="stringliteral">"hawki.hawki_step_combine.borders"</span>);
+<a name="l00468"></a>00468 hawki_step_combine_config.borders = cpl_parameter_get_int(par);
+<a name="l00469"></a>00469 <span class="keywordflow">if</span>(hawki_step_combine_config.borders < 0 )
+<a name="l00470"></a>00470 {
+<a name="l00471"></a>00471 cpl_msg_error(__func__, <span class="stringliteral">"Borders cannot be less than zero"</span>);
+<a name="l00472"></a>00472 <span class="keywordflow">return</span> -1;
+<a name="l00473"></a>00473 }
+<a name="l00474"></a>00474 par = cpl_parameterlist_find(parlist,
+<a name="l00475"></a>00475 <span class="stringliteral">"hawki.hawki_step_combine.rej"</span>);
+<a name="l00476"></a>00476 sval = cpl_parameter_get_string(par);
+<a name="l00477"></a>00477 <span class="keywordflow">if</span> (sscanf(sval, <span class="stringliteral">"%d,%d"</span>,
+<a name="l00478"></a>00478 &hawki_step_combine_config.rej_low,
+<a name="l00479"></a>00479 &hawki_step_combine_config.rej_high)!=2)
+<a name="l00480"></a>00480 {
+<a name="l00481"></a>00481 <span class="keywordflow">return</span> -1;
+<a name="l00482"></a>00482 }
+<a name="l00483"></a>00483 par = cpl_parameterlist_find(parlist,
+<a name="l00484"></a>00484 <span class="stringliteral">"hawki.hawki_step_combine.resamp_kernel"</span>);
+<a name="l00485"></a>00485 sval = cpl_parameter_get_string(par);
+<a name="l00486"></a>00486 <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"tanh"</span>))
+<a name="l00487"></a>00487 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_TANH;
+<a name="l00488"></a>00488 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"sinc"</span>))
+<a name="l00489"></a>00489 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_SINC;
+<a name="l00490"></a>00490 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"sinc2"</span>))
+<a name="l00491"></a>00491 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_SINC2;
+<a name="l00492"></a>00492 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"lanczos"</span>))
+<a name="l00493"></a>00493 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_LANCZOS;
+<a name="l00494"></a>00494 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"hamming"</span>))
+<a name="l00495"></a>00495 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_HAMMING;
+<a name="l00496"></a>00496 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"hann"</span>))
+<a name="l00497"></a>00497 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_HANN;
+<a name="l00498"></a>00498 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!strcmp(sval, <span class="stringliteral">"default"</span>))
+<a name="l00499"></a>00499 hawki_step_combine_config.resamp_kernel = CPL_KERNEL_DEFAULT;
+<a name="l00500"></a>00500 <span class="keywordflow">else</span>
+<a name="l00501"></a>00501 {
+<a name="l00502"></a>00502 cpl_msg_error(__func__, <span class="stringliteral">"Invalid resampling kernel specified"</span>);
+<a name="l00503"></a>00503 <span class="keywordflow">return</span> -1;
+<a name="l00504"></a>00504 }
<a name="l00505"></a>00505
-<a name="l00506"></a>00506 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00512"></a>00512 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00513"></a>00513 <span class="keyword">static</span> cpl_image ** hawki_step_combine_apply_comb
-<a name="l00514"></a>00514 (cpl_frameset * obj,
-<a name="l00515"></a>00515 cpl_frameset * offsets_frames,
-<a name="l00516"></a>00516 cpl_frameset * bpm_frame,
-<a name="l00517"></a>00517 cpl_frameset * bkg_bpm_frames)
-<a name="l00518"></a>00518 {
-<a name="l00519"></a>00519 cpl_image ** combined_contrib;
-<a name="l00520"></a>00520 cpl_bivector ** offsets;
-<a name="l00521"></a>00521 cpl_mask * bpm_masks[HAWKI_NB_DETECTORS];
-<a name="l00522"></a>00522 <span class="keywordtype">int</span> idet;
-<a name="l00523"></a>00523 <span class="keywordtype">int</span> ioff;
-<a name="l00524"></a>00524
-<a name="l00525"></a>00525 <span class="keywordflow">if</span>(offsets_frames == NULL)
-<a name="l00526"></a>00526 {
-<a name="l00527"></a>00527 cpl_bivector * offsets_single_chip;
-<a name="l00528"></a>00528 <span class="keywordflow">if</span> ((offsets_single_chip = <a class="code" href="group__hawki__utils.html#ga4c2e0ffe688ffdfd93f0d61c60ac91fd" title="Get the nominal header offsets from a set of frames.">hawki_get_header_tel_offsets</a>(obj)) == NULL)
-<a name="l00529"></a>00529 {
-<a name="l00530"></a>00530 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load the header offsets"</span>);
-<a name="l00531"></a>00531 <span class="keywordflow">return</span> NULL;
-<a name="l00532"></a>00532 }
-<a name="l00533"></a>00533 offsets = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_bivector *));
-<a name="l00534"></a>00534 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
-<a name="l00535"></a>00535 offsets[idet] = cpl_bivector_duplicate(offsets_single_chip);
-<a name="l00536"></a>00536 cpl_bivector_delete(offsets_single_chip);
-<a name="l00537"></a>00537 }
-<a name="l00538"></a>00538 <span class="keywordflow">else</span>
-<a name="l00539"></a>00539 {
-<a name="l00540"></a>00540 offsets = <a class="code" href="group__hawki__load.html#gaf91b09d357b426f387123767e4a4fec1" title="Load a table containing refined offsets.">hawki_load_refined_offsets</a>
-<a name="l00541"></a>00541 (cpl_frameset_get_first(offsets_frames));
-<a name="l00542"></a>00542 <span class="keywordflow">if</span>(offsets == NULL)
-<a name="l00543"></a>00543 {
-<a name="l00544"></a>00544 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load the refined offsets"</span>);
-<a name="l00545"></a>00545 <span class="keywordflow">return</span> NULL;
-<a name="l00546"></a>00546 }
-<a name="l00547"></a>00547 }
-<a name="l00548"></a>00548 <span class="comment">/* Get the oposite offsets. This is to change from </span>
-<a name="l00549"></a>00549 <span class="comment"> * telescope convention to cpl convention </span>
-<a name="l00550"></a>00550 <span class="comment"> * WARNING: It may appear that the img_jitter function </span>
-<a name="l00551"></a>00551 <span class="comment"> * does not apply the multiplication by -1, but it really does it in </span>
-<a name="l00552"></a>00552 <span class="comment"> * hawki_img_jitter_saa instead of when it reads the offsets */</span>
-<a name="l00553"></a>00553 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
-<a name="l00554"></a>00554 {
-<a name="l00555"></a>00555 cpl_vector_multiply_scalar(cpl_bivector_get_x(offsets[idet]), -1.0);
-<a name="l00556"></a>00556 cpl_vector_multiply_scalar(cpl_bivector_get_y(offsets[idet]), -1.0);
-<a name="l00557"></a>00557 }
-<a name="l00558"></a>00558
-<a name="l00559"></a>00559 <span class="comment">/* Load the bpm */</span>
-<a name="l00560"></a>00560 <span class="keywordflow">if</span>(bpm_frame != NULL)
-<a name="l00561"></a>00561 {
-<a name="l00562"></a>00562 cpl_imagelist * bpm_images = NULL;
-<a name="l00563"></a>00563 bpm_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>
-<a name="l00564"></a>00564 (cpl_frameset_get_first(bpm_frame), CPL_TYPE_INT);
-<a name="l00565"></a>00565 <span class="keywordflow">if</span>(bpm_images == NULL)
-<a name="l00566"></a>00566 {
-<a name="l00567"></a>00567 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load the bad pixel mask"</span>);
-<a name="l00568"></a>00568 <span class="keywordflow">return</span> NULL;
-<a name="l00569"></a>00569 }
-<a name="l00570"></a>00570 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
+<a name="l00506"></a>00506 <span class="keywordflow">return</span> 0;
+<a name="l00507"></a>00507 }
+<a name="l00508"></a>00508
+<a name="l00509"></a>00509
+<a name="l00510"></a>00510
+<a name="l00511"></a>00511 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00517"></a>00517 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00518"></a>00518 <span class="keyword">static</span> cpl_image ** hawki_step_combine_apply_comb
+<a name="l00519"></a>00519 (cpl_frameset * obj,
+<a name="l00520"></a>00520 cpl_frameset * offsets_frames,
+<a name="l00521"></a>00521 cpl_frameset * bpm_frame,
+<a name="l00522"></a>00522 cpl_frameset * bkg_bpm_frames)
+<a name="l00523"></a>00523 {
+<a name="l00524"></a>00524 cpl_image ** combined_contrib;
+<a name="l00525"></a>00525 cpl_bivector ** offsets;
+<a name="l00526"></a>00526 cpl_mask * bpm_masks[HAWKI_NB_DETECTORS];
+<a name="l00527"></a>00527 <span class="keywordtype">int</span> idet;
+<a name="l00528"></a>00528 <span class="keywordtype">int</span> ioff;
+<a name="l00529"></a>00529
+<a name="l00530"></a>00530 <span class="keywordflow">if</span>(offsets_frames == NULL)
+<a name="l00531"></a>00531 {
+<a name="l00532"></a>00532 cpl_bivector * offsets_single_chip;
+<a name="l00533"></a>00533 <span class="keywordflow">if</span> ((offsets_single_chip = <a class="code" href="group__hawki__utils.html#ga4c2e0ffe688ffdfd93f0d61c60ac91fd" title="Get the nominal header offsets from a set of frames.">hawki_get_header_tel_offsets</a>(obj)) == NULL)
+<a name="l00534"></a>00534 {
+<a name="l00535"></a>00535 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load the header offsets"</span>);
+<a name="l00536"></a>00536 <span class="keywordflow">return</span> NULL;
+<a name="l00537"></a>00537 }
+<a name="l00538"></a>00538 offsets = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_bivector *));
+<a name="l00539"></a>00539 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
+<a name="l00540"></a>00540 offsets[idet] = cpl_bivector_duplicate(offsets_single_chip);
+<a name="l00541"></a>00541 cpl_bivector_delete(offsets_single_chip);
+<a name="l00542"></a>00542 }
+<a name="l00543"></a>00543 <span class="keywordflow">else</span>
+<a name="l00544"></a>00544 {
+<a name="l00545"></a>00545 offsets = <a class="code" href="group__hawki__load.html#gaf91b09d357b426f387123767e4a4fec1" title="Load a table containing refined offsets.">hawki_load_refined_offsets</a>
+<a name="l00546"></a>00546 (cpl_frameset_get_first(offsets_frames));
+<a name="l00547"></a>00547 <span class="keywordflow">if</span>(offsets == NULL)
+<a name="l00548"></a>00548 {
+<a name="l00549"></a>00549 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load the refined offsets"</span>);
+<a name="l00550"></a>00550 <span class="keywordflow">return</span> NULL;
+<a name="l00551"></a>00551 }
+<a name="l00552"></a>00552 }
+<a name="l00553"></a>00553 <span class="comment">/* Get the oposite offsets. This is to change from </span>
+<a name="l00554"></a>00554 <span class="comment"> * telescope convention to cpl convention </span>
+<a name="l00555"></a>00555 <span class="comment"> * WARNING: It may appear that the img_jitter function </span>
+<a name="l00556"></a>00556 <span class="comment"> * does not apply the multiplication by -1, but it really does it in </span>
+<a name="l00557"></a>00557 <span class="comment"> * hawki_img_jitter_saa instead of when it reads the offsets */</span>
+<a name="l00558"></a>00558 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
+<a name="l00559"></a>00559 {
+<a name="l00560"></a>00560 cpl_vector_multiply_scalar(cpl_bivector_get_x(offsets[idet]), -1.0);
+<a name="l00561"></a>00561 cpl_vector_multiply_scalar(cpl_bivector_get_y(offsets[idet]), -1.0);
+<a name="l00562"></a>00562 }
+<a name="l00563"></a>00563
+<a name="l00564"></a>00564 <span class="comment">/* Load the bpm */</span>
+<a name="l00565"></a>00565 <span class="keywordflow">if</span>(bpm_frame != NULL)
+<a name="l00566"></a>00566 {
+<a name="l00567"></a>00567 cpl_imagelist * bpm_images = NULL;
+<a name="l00568"></a>00568 bpm_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>
+<a name="l00569"></a>00569 (cpl_frameset_get_first(bpm_frame), CPL_TYPE_INT);
+<a name="l00570"></a>00570 <span class="keywordflow">if</span>(bpm_images == NULL)
<a name="l00571"></a>00571 {
-<a name="l00572"></a>00572 bpm_masks[idet] = cpl_mask_threshold_image_create
-<a name="l00573"></a>00573 (cpl_imagelist_get(bpm_images, idet), 0.5, 1.5);
+<a name="l00572"></a>00572 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load the bad pixel mask"</span>);
+<a name="l00573"></a>00573 <span class="keywordflow">return</span> NULL;
<a name="l00574"></a>00574 }
-<a name="l00575"></a>00575 cpl_imagelist_delete(bpm_images);
-<a name="l00576"></a>00576 }
-<a name="l00577"></a>00577
-<a name="l00578"></a>00578 <span class="comment">/* Create output object */</span>
-<a name="l00579"></a>00579 combined_contrib = cpl_malloc(2 * HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_image *));
-<a name="l00580"></a>00580
-<a name="l00581"></a>00581 <span class="comment">/* Loop on the detectors */</span>
-<a name="l00582"></a>00582 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00583"></a>00583 {
-<a name="l00584"></a>00584 cpl_imagelist * in ;
-<a name="l00585"></a>00585 cpl_imagelist * bpm_bkg_im = NULL;
-<a name="l00586"></a>00586 cpl_image ** comb_contrib_chip ;
-<a name="l00587"></a>00587 <span class="keywordtype">double</span> * offs_est_x ;
-<a name="l00588"></a>00588 <span class="keywordtype">double</span> * offs_est_y ;
-<a name="l00589"></a>00589 <span class="keywordtype">double</span> max_x, max_y ;
-<a name="l00590"></a>00590 <span class="keywordtype">double</span> off_0_x;
-<a name="l00591"></a>00591 <span class="keywordtype">double</span> off_0_y;
-<a name="l00592"></a>00592 <span class="keywordtype">int</span> jdet;
-<a name="l00593"></a>00593 <span class="keywordtype">int</span> iframe;
-<a name="l00594"></a>00594
-<a name="l00595"></a>00595 cpl_msg_info(__func__, <span class="stringliteral">"Combine chip number %d"</span>, idet+1) ;
-<a name="l00596"></a>00596 cpl_msg_indent_more() ;
-<a name="l00597"></a>00597
-<a name="l00598"></a>00598 <span class="comment">/* Print the offsets */</span>
-<a name="l00599"></a>00599 offs_est_x = cpl_bivector_get_x_data(offsets[idet]) ;
-<a name="l00600"></a>00600 offs_est_y = cpl_bivector_get_y_data(offsets[idet]) ;
-<a name="l00601"></a>00601 <span class="keywordflow">for</span> (ioff=0 ; ioff<cpl_bivector_get_size(offsets[idet]) ; ioff++) {
-<a name="l00602"></a>00602 cpl_msg_info(__func__,<span class="stringliteral">"Telescope offsets (Frame %d): %g %g"</span>, ioff+1,
-<a name="l00603"></a>00603 -offs_est_x[ioff], -offs_est_y[ioff]) ;
-<a name="l00604"></a>00604 }
-<a name="l00605"></a>00605
-<a name="l00606"></a>00606 <span class="comment">/* Subtract the first offset to all offsets */</span>
-<a name="l00607"></a>00607 max_x = max_y = 0.0 ;
-<a name="l00608"></a>00608 off_0_x = offs_est_x[0];
-<a name="l00609"></a>00609 off_0_y = offs_est_y[0];
-<a name="l00610"></a>00610 <span class="keywordflow">for</span> (ioff=1 ; ioff<cpl_bivector_get_size(offsets[idet]) ; ioff++)
-<a name="l00611"></a>00611 {
-<a name="l00612"></a>00612 offs_est_x[ioff] -= offs_est_x[0] ;
-<a name="l00613"></a>00613 offs_est_y[ioff] -= offs_est_y[0] ;
-<a name="l00614"></a>00614 <span class="keywordflow">if</span> (fabs(offs_est_x[ioff]) > max_x) max_x = fabs(offs_est_x[ioff]);
-<a name="l00615"></a>00615 <span class="keywordflow">if</span> (fabs(offs_est_y[ioff]) > max_y) max_y = fabs(offs_est_y[ioff]);
-<a name="l00616"></a>00616 }
-<a name="l00617"></a>00617 offs_est_x[0] = offs_est_y[0] = 0.00 ;
-<a name="l00618"></a>00618
-<a name="l00619"></a>00619 <span class="comment">/* Check if the max offset is not too big */</span>
-<a name="l00620"></a>00620 <span class="keywordflow">if</span> (max_x > hawki_step_combine_config.offset_max ||
-<a name="l00621"></a>00621 max_y > hawki_step_combine_config.offset_max)
-<a name="l00622"></a>00622 {
-<a name="l00623"></a>00623 cpl_msg_error(__func__,<span class="stringliteral">"Sorry, no support for offsets larger than %d"</span>,
-<a name="l00624"></a>00624 hawki_step_combine_config.offset_max);
-<a name="l00625"></a>00625 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
-<a name="l00626"></a>00626 {
-<a name="l00627"></a>00627 cpl_bivector_delete(offsets[idet]);
-<a name="l00628"></a>00628 <span class="keywordflow">if</span>(bpm_frame != NULL)
-<a name="l00629"></a>00629 cpl_mask_delete(bpm_masks[idet]);
-<a name="l00630"></a>00630 }
-<a name="l00631"></a>00631 <span class="keywordflow">for</span>(jdet = 0; jdet < idet; ++jdet)
-<a name="l00632"></a>00632 {
-<a name="l00633"></a>00633 cpl_image_delete(combined_contrib[idet]);
-<a name="l00634"></a>00634 cpl_image_delete(combined_contrib[idet+HAWKI_NB_DETECTORS]);
+<a name="l00575"></a>00575 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
+<a name="l00576"></a>00576 {
+<a name="l00577"></a>00577 bpm_masks[idet] = cpl_mask_threshold_image_create
+<a name="l00578"></a>00578 (cpl_imagelist_get(bpm_images, idet), 0.5, 1.5);
+<a name="l00579"></a>00579 }
+<a name="l00580"></a>00580 cpl_imagelist_delete(bpm_images);
+<a name="l00581"></a>00581 }
+<a name="l00582"></a>00582
+<a name="l00583"></a>00583 <span class="comment">/* Create output object */</span>
+<a name="l00584"></a>00584 combined_contrib = cpl_malloc(2 * HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_image *));
+<a name="l00585"></a>00585
+<a name="l00586"></a>00586 <span class="comment">/* Loop on the detectors */</span>
+<a name="l00587"></a>00587 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00588"></a>00588 {
+<a name="l00589"></a>00589 cpl_imagelist * in ;
+<a name="l00590"></a>00590 cpl_imagelist * bpm_bkg_im = NULL;
+<a name="l00591"></a>00591 cpl_image ** comb_contrib_chip ;
+<a name="l00592"></a>00592 <span class="keywordtype">double</span> * offs_est_x ;
+<a name="l00593"></a>00593 <span class="keywordtype">double</span> * offs_est_y ;
+<a name="l00594"></a>00594 <span class="keywordtype">double</span> max_x, max_y ;
+<a name="l00595"></a>00595 <span class="keywordtype">double</span> off_0_x;
+<a name="l00596"></a>00596 <span class="keywordtype">double</span> off_0_y;
+<a name="l00597"></a>00597 <span class="keywordtype">int</span> jdet;
+<a name="l00598"></a>00598 <span class="keywordtype">int</span> iframe;
+<a name="l00599"></a>00599
+<a name="l00600"></a>00600 cpl_msg_info(__func__, <span class="stringliteral">"Combine chip number %d"</span>, idet+1) ;
+<a name="l00601"></a>00601 cpl_msg_indent_more() ;
+<a name="l00602"></a>00602
+<a name="l00603"></a>00603 <span class="comment">/* Print the offsets */</span>
+<a name="l00604"></a>00604 offs_est_x = cpl_bivector_get_x_data(offsets[idet]) ;
+<a name="l00605"></a>00605 offs_est_y = cpl_bivector_get_y_data(offsets[idet]) ;
+<a name="l00606"></a>00606 <span class="keywordflow">for</span> (ioff=0 ; ioff<cpl_bivector_get_size(offsets[idet]) ; ioff++) {
+<a name="l00607"></a>00607 cpl_msg_info(__func__,<span class="stringliteral">"Telescope offsets (Frame %d): %g %g"</span>, ioff+1,
+<a name="l00608"></a>00608 -offs_est_x[ioff], -offs_est_y[ioff]) ;
+<a name="l00609"></a>00609 }
+<a name="l00610"></a>00610
+<a name="l00611"></a>00611 <span class="comment">/* Subtract the first offset to all offsets */</span>
+<a name="l00612"></a>00612 max_x = max_y = 0.0 ;
+<a name="l00613"></a>00613 off_0_x = offs_est_x[0];
+<a name="l00614"></a>00614 off_0_y = offs_est_y[0];
+<a name="l00615"></a>00615 <span class="keywordflow">for</span> (ioff=1 ; ioff<cpl_bivector_get_size(offsets[idet]) ; ioff++)
+<a name="l00616"></a>00616 {
+<a name="l00617"></a>00617 offs_est_x[ioff] -= offs_est_x[0] ;
+<a name="l00618"></a>00618 offs_est_y[ioff] -= offs_est_y[0] ;
+<a name="l00619"></a>00619 <span class="keywordflow">if</span> (fabs(offs_est_x[ioff]) > max_x) max_x = fabs(offs_est_x[ioff]);
+<a name="l00620"></a>00620 <span class="keywordflow">if</span> (fabs(offs_est_y[ioff]) > max_y) max_y = fabs(offs_est_y[ioff]);
+<a name="l00621"></a>00621 }
+<a name="l00622"></a>00622 offs_est_x[0] = offs_est_y[0] = 0.00 ;
+<a name="l00623"></a>00623
+<a name="l00624"></a>00624 <span class="comment">/* Check if the max offset is not too big */</span>
+<a name="l00625"></a>00625 <span class="keywordflow">if</span> (max_x > hawki_step_combine_config.offset_max ||
+<a name="l00626"></a>00626 max_y > hawki_step_combine_config.offset_max)
+<a name="l00627"></a>00627 {
+<a name="l00628"></a>00628 cpl_msg_error(__func__,<span class="stringliteral">"Sorry, no support for offsets larger than %d"</span>,
+<a name="l00629"></a>00629 hawki_step_combine_config.offset_max);
+<a name="l00630"></a>00630 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
+<a name="l00631"></a>00631 {
+<a name="l00632"></a>00632 cpl_bivector_delete(offsets[idet]);
+<a name="l00633"></a>00633 <span class="keywordflow">if</span>(bpm_frame != NULL)
+<a name="l00634"></a>00634 cpl_mask_delete(bpm_masks[idet]);
<a name="l00635"></a>00635 }
-<a name="l00636"></a>00636 cpl_free(combined_contrib);
-<a name="l00637"></a>00637 <span class="keywordflow">return</span> NULL ;
-<a name="l00638"></a>00638 }
-<a name="l00639"></a>00639
-<a name="l00640"></a>00640 <span class="comment">/* Load the input data */</span>
-<a name="l00641"></a>00641 cpl_msg_info(__func__, <span class="stringliteral">"Load the input data"</span>) ;
-<a name="l00642"></a>00642 cpl_msg_indent_more();
-<a name="l00643"></a>00643 <span class="keywordflow">if</span> ((in = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(obj, idet+1, CPL_TYPE_FLOAT)) == NULL) {
-<a name="l00644"></a>00644 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load chip %d"</span>,idet+1);
-<a name="l00645"></a>00645 <span class="comment">//TODO: there is probably a memory leak here. It should be checked.</span>
-<a name="l00646"></a>00646 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
-<a name="l00647"></a>00647 {
-<a name="l00648"></a>00648 cpl_bivector_delete(offsets[idet]);
-<a name="l00649"></a>00649 <span class="keywordflow">if</span>(bpm_frame != NULL)
-<a name="l00650"></a>00650 cpl_mask_delete(bpm_masks[idet]);
-<a name="l00651"></a>00651 }
-<a name="l00652"></a>00652 <span class="keywordflow">for</span>(jdet = 0; jdet < idet; ++jdet)
-<a name="l00653"></a>00653 {
-<a name="l00654"></a>00654 cpl_image_delete(combined_contrib[idet]);
-<a name="l00655"></a>00655 cpl_image_delete(combined_contrib[idet+HAWKI_NB_DETECTORS]);
+<a name="l00636"></a>00636 <span class="keywordflow">for</span>(jdet = 0; jdet < idet; ++jdet)
+<a name="l00637"></a>00637 {
+<a name="l00638"></a>00638 cpl_image_delete(combined_contrib[idet]);
+<a name="l00639"></a>00639 cpl_image_delete(combined_contrib[idet+HAWKI_NB_DETECTORS]);
+<a name="l00640"></a>00640 }
+<a name="l00641"></a>00641 cpl_free(combined_contrib);
+<a name="l00642"></a>00642 <span class="keywordflow">return</span> NULL ;
+<a name="l00643"></a>00643 }
+<a name="l00644"></a>00644
+<a name="l00645"></a>00645 <span class="comment">/* Load the input data */</span>
+<a name="l00646"></a>00646 cpl_msg_info(__func__, <span class="stringliteral">"Load the input data"</span>) ;
+<a name="l00647"></a>00647 cpl_msg_indent_more();
+<a name="l00648"></a>00648 <span class="keywordflow">if</span> ((in = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(obj, idet+1, CPL_TYPE_FLOAT)) == NULL) {
+<a name="l00649"></a>00649 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load chip %d"</span>,idet+1);
+<a name="l00650"></a>00650 <span class="comment">//TODO: there is probably a memory leak here. It should be checked.</span>
+<a name="l00651"></a>00651 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
+<a name="l00652"></a>00652 {
+<a name="l00653"></a>00653 cpl_bivector_delete(offsets[idet]);
+<a name="l00654"></a>00654 <span class="keywordflow">if</span>(bpm_frame != NULL)
+<a name="l00655"></a>00655 cpl_mask_delete(bpm_masks[idet]);
<a name="l00656"></a>00656 }
-<a name="l00657"></a>00657 cpl_free(combined_contrib);
-<a name="l00658"></a>00658 cpl_free(offsets);
-<a name="l00659"></a>00659 cpl_msg_indent_less() ;
-<a name="l00660"></a>00660 cpl_msg_indent_less() ;
-<a name="l00661"></a>00661 <span class="keywordflow">return</span> NULL ;
-<a name="l00662"></a>00662 }
-<a name="l00663"></a>00663
-<a name="l00664"></a>00664 <span class="comment">/* Load the bad bkg images */</span>
-<a name="l00665"></a>00665 <span class="keywordflow">if</span>(bkg_bpm_frames != NULL)
-<a name="l00666"></a>00666 {
-<a name="l00667"></a>00667 cpl_msg_info(__func__, <span class="stringliteral">"Load the bad bkg images"</span>);
-<a name="l00668"></a>00668 cpl_msg_indent_more() ;
-<a name="l00669"></a>00669 <span class="keywordflow">if</span> ((bpm_bkg_im = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(bkg_bpm_frames, idet+1,
-<a name="l00670"></a>00670 CPL_TYPE_FLOAT)) == NULL)
-<a name="l00671"></a>00671 {
-<a name="l00672"></a>00672 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load chip %d"</span>,idet+1);
-<a name="l00673"></a>00673 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
-<a name="l00674"></a>00674 {
-<a name="l00675"></a>00675 cpl_bivector_delete(offsets[idet]);
-<a name="l00676"></a>00676 <span class="keywordflow">if</span>(bpm_frame != NULL)
-<a name="l00677"></a>00677 cpl_mask_delete(bpm_masks[idet]);
-<a name="l00678"></a>00678 }
-<a name="l00679"></a>00679 <span class="keywordflow">for</span>(jdet = 0; jdet < idet; ++jdet)
-<a name="l00680"></a>00680 {
-<a name="l00681"></a>00681 cpl_image_delete(combined_contrib[idet]);
-<a name="l00682"></a>00682 cpl_image_delete(combined_contrib[idet+HAWKI_NB_DETECTORS]);
+<a name="l00657"></a>00657 <span class="keywordflow">for</span>(jdet = 0; jdet < idet; ++jdet)
+<a name="l00658"></a>00658 {
+<a name="l00659"></a>00659 cpl_image_delete(combined_contrib[idet]);
+<a name="l00660"></a>00660 cpl_image_delete(combined_contrib[idet+HAWKI_NB_DETECTORS]);
+<a name="l00661"></a>00661 }
+<a name="l00662"></a>00662 cpl_free(combined_contrib);
+<a name="l00663"></a>00663 cpl_free(offsets);
+<a name="l00664"></a>00664 cpl_msg_indent_less() ;
+<a name="l00665"></a>00665 cpl_msg_indent_less() ;
+<a name="l00666"></a>00666 <span class="keywordflow">return</span> NULL ;
+<a name="l00667"></a>00667 }
+<a name="l00668"></a>00668
+<a name="l00669"></a>00669 <span class="comment">/* Load the bad bkg images */</span>
+<a name="l00670"></a>00670 <span class="keywordflow">if</span>(bkg_bpm_frames != NULL)
+<a name="l00671"></a>00671 {
+<a name="l00672"></a>00672 cpl_msg_info(__func__, <span class="stringliteral">"Load the bad bkg images"</span>);
+<a name="l00673"></a>00673 cpl_msg_indent_more() ;
+<a name="l00674"></a>00674 <span class="keywordflow">if</span> ((bpm_bkg_im = <a class="code" href="group__hawki__load.html#gad4d9d26496599a54ebc31e2a43814895" title="Load the chips of HAWKI frameset in an image list.">hawki_load_detector</a>(bkg_bpm_frames, idet+1,
+<a name="l00675"></a>00675 CPL_TYPE_FLOAT)) == NULL)
+<a name="l00676"></a>00676 {
+<a name="l00677"></a>00677 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load chip %d"</span>,idet+1);
+<a name="l00678"></a>00678 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
+<a name="l00679"></a>00679 {
+<a name="l00680"></a>00680 cpl_bivector_delete(offsets[idet]);
+<a name="l00681"></a>00681 <span class="keywordflow">if</span>(bpm_frame != NULL)
+<a name="l00682"></a>00682 cpl_mask_delete(bpm_masks[idet]);
<a name="l00683"></a>00683 }
-<a name="l00684"></a>00684 cpl_free(combined_contrib);
-<a name="l00685"></a>00685 cpl_imagelist_delete(in);
-<a name="l00686"></a>00686 cpl_free(offsets);
-<a name="l00687"></a>00687 cpl_msg_indent_less() ;
-<a name="l00688"></a>00688 cpl_msg_indent_less() ;
-<a name="l00689"></a>00689 <span class="keywordflow">return</span> NULL ;
-<a name="l00690"></a>00690 }
-<a name="l00691"></a>00691 cpl_msg_indent_less() ;
-<a name="l00692"></a>00692 }
-<a name="l00693"></a>00693 cpl_msg_indent_less() ;
-<a name="l00694"></a>00694
-<a name="l00695"></a>00695 <span class="comment">/* Add the general bpm or background bpms in case they were specified */</span>
-<a name="l00696"></a>00696 <span class="keywordflow">if</span>(bpm_frame != NULL || bkg_bpm_frames != NULL)
-<a name="l00697"></a>00697 {
-<a name="l00698"></a>00698 <span class="keywordflow">for</span>(iframe = 0 ; iframe <cpl_imagelist_get_size(in) ; ++iframe)
-<a name="l00699"></a>00699 {
-<a name="l00700"></a>00700 cpl_mask * final_mask;
-<a name="l00701"></a>00701 cpl_image * target_image = cpl_imagelist_get(in, iframe);
-<a name="l00702"></a>00702 final_mask = cpl_mask_new(cpl_image_get_size_x(target_image),
-<a name="l00703"></a>00703 cpl_image_get_size_y(target_image));
-<a name="l00704"></a>00704 <span class="comment">//Add the common bpm</span>
-<a name="l00705"></a>00705 <span class="keywordflow">if</span>(bpm_frame != NULL)
-<a name="l00706"></a>00706 cpl_mask_or(final_mask, bpm_masks[idet]);
-<a name="l00707"></a>00707 <span class="comment">//Add the background mask if provided</span>
-<a name="l00708"></a>00708 <span class="keywordflow">if</span>(bkg_bpm_frames != NULL)
-<a name="l00709"></a>00709 {
-<a name="l00710"></a>00710 cpl_mask * bpm_bkg_mask =
-<a name="l00711"></a>00711 cpl_mask_threshold_image_create
-<a name="l00712"></a>00712 (cpl_imagelist_get(bpm_bkg_im, iframe), 0.5, FLT_MAX);
-<a name="l00713"></a>00713 cpl_mask_or(final_mask, bpm_bkg_mask);
-<a name="l00714"></a>00714 cpl_mask_delete(bpm_bkg_mask);
-<a name="l00715"></a>00715 }
-<a name="l00716"></a>00716 cpl_image_reject_from_mask(target_image, final_mask);
-<a name="l00717"></a>00717 cpl_mask_delete(final_mask);
-<a name="l00718"></a>00718 }
-<a name="l00719"></a>00719 }
-<a name="l00720"></a>00720
-<a name="l00721"></a>00721 <span class="keywordflow">if</span>(bkg_bpm_frames != NULL)
-<a name="l00722"></a>00722 cpl_imagelist_delete(bpm_bkg_im);
-<a name="l00723"></a>00723
-<a name="l00724"></a>00724 <span class="comment">/* Apply the shift and add */</span>
-<a name="l00725"></a>00725 cpl_msg_info(__func__, <span class="stringliteral">"Shift and add"</span>) ;
-<a name="l00726"></a>00726 cpl_msg_indent_more() ;
-<a name="l00727"></a>00727 comb_contrib_chip = hawki_step_combine_chip(in, offsets[idet],
-<a name="l00728"></a>00728 &(hawki_step_combine_output.combined_pos_x[idet]),
-<a name="l00729"></a>00729 &(hawki_step_combine_output.combined_pos_y[idet])) ;
-<a name="l00730"></a>00730 <span class="keywordflow">if</span> (comb_contrib_chip == NULL)
-<a name="l00731"></a>00731 {
-<a name="l00732"></a>00732 cpl_msg_error(__func__, <span class="stringliteral">"Cannot apply the shift and add"</span>) ;
-<a name="l00733"></a>00733 cpl_imagelist_delete(in) ;
-<a name="l00734"></a>00734 <span class="keywordflow">for</span>(jdet = 0; jdet < HAWKI_NB_DETECTORS; ++jdet)
-<a name="l00735"></a>00735 cpl_bivector_delete(offsets[jdet]);
-<a name="l00736"></a>00736 {
-<a name="l00737"></a>00737 cpl_image_delete(combined_contrib[idet]);
-<a name="l00738"></a>00738 cpl_image_delete(combined_contrib[idet+HAWKI_NB_DETECTORS]);
-<a name="l00739"></a>00739 }
-<a name="l00740"></a>00740 cpl_free(combined_contrib);
-<a name="l00741"></a>00741 cpl_free(offsets);
-<a name="l00742"></a>00742 cpl_msg_indent_less() ;
-<a name="l00743"></a>00743 cpl_msg_indent_less() ;
-<a name="l00744"></a>00744 <span class="keywordflow">return</span> NULL ;
-<a name="l00745"></a>00745 }
-<a name="l00746"></a>00746
-<a name="l00747"></a>00747 <span class="comment">/* The cumoffset have the opposite criteria as cpl */</span>
-<a name="l00748"></a>00748 hawki_step_combine_output.combined_cumoffset_x[idet] =
-<a name="l00749"></a>00749 hawki_step_combine_output.combined_pos_x[idet] - off_0_x;
-<a name="l00750"></a>00750 hawki_step_combine_output.combined_cumoffset_y[idet] =
-<a name="l00751"></a>00751 hawki_step_combine_output.combined_pos_y[idet] - off_0_y;
-<a name="l00752"></a>00752 cpl_imagelist_delete(in) ;
-<a name="l00753"></a>00753 cpl_msg_indent_less() ;
-<a name="l00754"></a>00754
-<a name="l00755"></a>00755 <span class="comment">/* Interpolate bad pixels */</span>
-<a name="l00756"></a>00756 hawki_step_combine_interpolate_badpix(comb_contrib_chip[0]);
-<a name="l00757"></a>00757
-<a name="l00758"></a>00758 <span class="comment">/* Put the results in the image list */</span>
-<a name="l00759"></a>00759 combined_contrib[idet] = comb_contrib_chip[0];
-<a name="l00760"></a>00760 combined_contrib[idet+HAWKI_NB_DETECTORS] = comb_contrib_chip[1];
-<a name="l00761"></a>00761 cpl_free(comb_contrib_chip);
-<a name="l00762"></a>00762 cpl_msg_indent_less() ;
-<a name="l00763"></a>00763 }
-<a name="l00764"></a>00764
-<a name="l00765"></a>00765 <span class="comment">/* Compute the mean airmass */</span>
-<a name="l00766"></a>00766 hawki_step_combine_output.mean_airmass = <a class="code" href="group__hawki__utils.html#ga7b165e9e91b6c6519595109b36d4fb46" title="Get the mean airmass for a set of frames.">hawki_get_mean_airmass</a>(obj);
-<a name="l00767"></a>00767
-<a name="l00768"></a>00768 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
-<a name="l00769"></a>00769 {
-<a name="l00770"></a>00770 cpl_bivector_delete(offsets[idet]);
-<a name="l00771"></a>00771 <span class="keywordflow">if</span>(bpm_frame != NULL)
-<a name="l00772"></a>00772 cpl_mask_delete(bpm_masks[idet]);
-<a name="l00773"></a>00773 }
-<a name="l00774"></a>00774 cpl_free(offsets);
-<a name="l00775"></a>00775 <span class="keywordflow">return</span> combined_contrib;
-<a name="l00776"></a>00776 }
-<a name="l00777"></a>00777
-<a name="l00778"></a>00778 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00787"></a>00787 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00788"></a>00788 <span class="keyword">static</span> cpl_image ** hawki_step_combine_chip(
-<a name="l00789"></a>00789 cpl_imagelist * in,
-<a name="l00790"></a>00790 cpl_bivector * offsets,
-<a name="l00791"></a>00791 <span class="keywordtype">double</span> * pos_x,
-<a name="l00792"></a>00792 <span class="keywordtype">double</span> * pos_y)
-<a name="l00793"></a>00793 {
-<a name="l00794"></a>00794 cpl_image ** combined_contrib;
-<a name="l00795"></a>00795 cpl_imagelist * in_ext ;
-<a name="l00796"></a>00796 cpl_image * tmp1 ;
-<a name="l00797"></a>00797 cpl_image * tmp2 ;
-<a name="l00798"></a>00798 <span class="keywordtype">int</span> nfiles, nx, ny ;
-<a name="l00799"></a>00799 <span class="keywordtype">int</span> i;
-<a name="l00800"></a>00800
-<a name="l00801"></a>00801 <span class="comment">/* Check entries */</span>
-<a name="l00802"></a>00802 <span class="keywordflow">if</span> (pos_x == NULL || pos_y == NULL) <span class="keywordflow">return</span> NULL ;
-<a name="l00803"></a>00803 <span class="keywordflow">if</span> (offsets == NULL) <span class="keywordflow">return</span> NULL ;
-<a name="l00804"></a>00804
-<a name="l00805"></a>00805 <span class="comment">/* Get the number of images */</span>
-<a name="l00806"></a>00806 nfiles = cpl_imagelist_get_size(in) ;
-<a name="l00807"></a>00807 <span class="keywordflow">if</span> (cpl_bivector_get_size(offsets) != nfiles) {
-<a name="l00808"></a>00808 cpl_msg_error(__func__, <span class="stringliteral">"Number of refined offsets in table "</span><span class="stringliteral">""</span>
-<a name="l00809"></a>00809 <span class="stringliteral">"is different than number of frames to combine"</span>);
-<a name="l00810"></a>00810 <span class="keywordflow">return</span> NULL ;
-<a name="l00811"></a>00811 }
-<a name="l00812"></a>00812
-<a name="l00813"></a>00813 <span class="comment">/* Discard the pixels on the sides */</span>
-<a name="l00814"></a>00814 <span class="keywordflow">if</span> (hawki_step_combine_config.borders > 0) {
-<a name="l00815"></a>00815 nx = cpl_image_get_size_x(cpl_imagelist_get(in, 0)) ;
-<a name="l00816"></a>00816 ny = cpl_image_get_size_y(cpl_imagelist_get(in, 0)) ;
-<a name="l00817"></a>00817 in_ext = cpl_imagelist_new() ;
-<a name="l00818"></a>00818 <span class="keywordflow">for</span> (i=0 ; i<cpl_imagelist_get_size(in) ; i++) {
-<a name="l00819"></a>00819 tmp1 = cpl_imagelist_get(in, i) ;
-<a name="l00820"></a>00820 tmp2 = cpl_image_extract(tmp1,
-<a name="l00821"></a>00821 hawki_step_combine_config.borders+1,
-<a name="l00822"></a>00822 hawki_step_combine_config.borders+1,
-<a name="l00823"></a>00823 nx-hawki_step_combine_config.borders,
-<a name="l00824"></a>00824 ny-hawki_step_combine_config.borders) ;
-<a name="l00825"></a>00825 cpl_imagelist_set(in_ext, tmp2, i) ;
-<a name="l00826"></a>00826 }
-<a name="l00827"></a>00827 }
-<a name="l00828"></a>00828 <span class="keywordflow">else</span>
-<a name="l00829"></a>00829 {
-<a name="l00830"></a>00830 in_ext = cpl_imagelist_duplicate(in);
-<a name="l00831"></a>00831 }
-<a name="l00832"></a>00832
-<a name="l00833"></a>00833 <span class="comment">/* Apply the shift & add */</span>
-<a name="l00834"></a>00834 cpl_msg_info(__func__, <span class="stringliteral">"Recombine the images set"</span>) ;
-<a name="l00835"></a>00835 cpl_msg_indent_more() ;
-<a name="l00836"></a>00836 <span class="keywordflow">if</span> ((combined_contrib=cpl_geom_img_offset_saa(in_ext, offsets,
-<a name="l00837"></a>00837 hawki_step_combine_config.resamp_kernel,
-<a name="l00838"></a>00838 hawki_step_combine_config.rej_low,
-<a name="l00839"></a>00839 hawki_step_combine_config.rej_high,
-<a name="l00840"></a>00840 hawki_step_combine_config.comb_meth,
-<a name="l00841"></a>00841 pos_x, pos_y)) == NULL) {
-<a name="l00842"></a>00842 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot apply the shift and add"</span>) ;
-<a name="l00843"></a>00843 cpl_msg_indent_less();
-<a name="l00844"></a>00844 <span class="keywordflow">return</span> NULL;
-<a name="l00845"></a>00845 }
-<a name="l00846"></a>00846 cpl_msg_indent_less();
-<a name="l00847"></a>00847 *pos_x -= hawki_step_combine_config.borders;
-<a name="l00848"></a>00848 *pos_y -= hawki_step_combine_config.borders;
-<a name="l00849"></a>00849
-<a name="l00850"></a>00850 <span class="comment">/* Free and return */</span>
-<a name="l00851"></a>00851 cpl_imagelist_delete(in_ext);
-<a name="l00852"></a>00852 <span class="keywordflow">return</span> combined_contrib;
-<a name="l00853"></a>00853 }
+<a name="l00684"></a>00684 <span class="keywordflow">for</span>(jdet = 0; jdet < idet; ++jdet)
+<a name="l00685"></a>00685 {
+<a name="l00686"></a>00686 cpl_image_delete(combined_contrib[idet]);
+<a name="l00687"></a>00687 cpl_image_delete(combined_contrib[idet+HAWKI_NB_DETECTORS]);
+<a name="l00688"></a>00688 }
+<a name="l00689"></a>00689 cpl_free(combined_contrib);
+<a name="l00690"></a>00690 cpl_imagelist_delete(in);
+<a name="l00691"></a>00691 cpl_free(offsets);
+<a name="l00692"></a>00692 cpl_msg_indent_less() ;
+<a name="l00693"></a>00693 cpl_msg_indent_less() ;
+<a name="l00694"></a>00694 <span class="keywordflow">return</span> NULL ;
+<a name="l00695"></a>00695 }
+<a name="l00696"></a>00696 cpl_msg_indent_less() ;
+<a name="l00697"></a>00697 }
+<a name="l00698"></a>00698 cpl_msg_indent_less() ;
+<a name="l00699"></a>00699
+<a name="l00700"></a>00700 <span class="comment">/* Add the general bpm or background bpms in case they were specified */</span>
+<a name="l00701"></a>00701 <span class="keywordflow">if</span>(bpm_frame != NULL || bkg_bpm_frames != NULL)
+<a name="l00702"></a>00702 {
+<a name="l00703"></a>00703 <span class="keywordflow">for</span>(iframe = 0 ; iframe <cpl_imagelist_get_size(in) ; ++iframe)
+<a name="l00704"></a>00704 {
+<a name="l00705"></a>00705 cpl_mask * final_mask;
+<a name="l00706"></a>00706 cpl_image * target_image = cpl_imagelist_get(in, iframe);
+<a name="l00707"></a>00707 final_mask = cpl_mask_new(cpl_image_get_size_x(target_image),
+<a name="l00708"></a>00708 cpl_image_get_size_y(target_image));
+<a name="l00709"></a>00709 <span class="comment">//Add the common bpm</span>
+<a name="l00710"></a>00710 <span class="keywordflow">if</span>(bpm_frame != NULL)
+<a name="l00711"></a>00711 cpl_mask_or(final_mask, bpm_masks[idet]);
+<a name="l00712"></a>00712 <span class="comment">//Add the background mask if provided</span>
+<a name="l00713"></a>00713 <span class="keywordflow">if</span>(bkg_bpm_frames != NULL)
+<a name="l00714"></a>00714 {
+<a name="l00715"></a>00715 cpl_mask * bpm_bkg_mask =
+<a name="l00716"></a>00716 cpl_mask_threshold_image_create
+<a name="l00717"></a>00717 (cpl_imagelist_get(bpm_bkg_im, iframe), 0.5, FLT_MAX);
+<a name="l00718"></a>00718 cpl_mask_or(final_mask, bpm_bkg_mask);
+<a name="l00719"></a>00719 cpl_mask_delete(bpm_bkg_mask);
+<a name="l00720"></a>00720 }
+<a name="l00721"></a>00721 cpl_image_reject_from_mask(target_image, final_mask);
+<a name="l00722"></a>00722 cpl_mask_delete(final_mask);
+<a name="l00723"></a>00723 }
+<a name="l00724"></a>00724 }
+<a name="l00725"></a>00725
+<a name="l00726"></a>00726 <span class="keywordflow">if</span>(bkg_bpm_frames != NULL)
+<a name="l00727"></a>00727 cpl_imagelist_delete(bpm_bkg_im);
+<a name="l00728"></a>00728
+<a name="l00729"></a>00729 <span class="comment">/* Apply the shift and add */</span>
+<a name="l00730"></a>00730 cpl_msg_info(__func__, <span class="stringliteral">"Shift and add"</span>) ;
+<a name="l00731"></a>00731 cpl_msg_indent_more() ;
+<a name="l00732"></a>00732 comb_contrib_chip = hawki_step_combine_chip(in, offsets[idet],
+<a name="l00733"></a>00733 &(hawki_step_combine_output.combined_pos_x[idet]),
+<a name="l00734"></a>00734 &(hawki_step_combine_output.combined_pos_y[idet])) ;
+<a name="l00735"></a>00735 <span class="keywordflow">if</span> (comb_contrib_chip == NULL)
+<a name="l00736"></a>00736 {
+<a name="l00737"></a>00737 cpl_msg_error(__func__, <span class="stringliteral">"Cannot apply the shift and add"</span>) ;
+<a name="l00738"></a>00738 cpl_imagelist_delete(in) ;
+<a name="l00739"></a>00739 <span class="keywordflow">for</span>(jdet = 0; jdet < HAWKI_NB_DETECTORS; ++jdet)
+<a name="l00740"></a>00740 cpl_bivector_delete(offsets[jdet]);
+<a name="l00741"></a>00741 {
+<a name="l00742"></a>00742 cpl_image_delete(combined_contrib[idet]);
+<a name="l00743"></a>00743 cpl_image_delete(combined_contrib[idet+HAWKI_NB_DETECTORS]);
+<a name="l00744"></a>00744 }
+<a name="l00745"></a>00745 cpl_free(combined_contrib);
+<a name="l00746"></a>00746 cpl_free(offsets);
+<a name="l00747"></a>00747 cpl_msg_indent_less() ;
+<a name="l00748"></a>00748 cpl_msg_indent_less() ;
+<a name="l00749"></a>00749 <span class="keywordflow">return</span> NULL ;
+<a name="l00750"></a>00750 }
+<a name="l00751"></a>00751
+<a name="l00752"></a>00752 <span class="comment">/* The cumoffset have the opposite criteria as cpl */</span>
+<a name="l00753"></a>00753 hawki_step_combine_output.combined_cumoffset_x[idet] =
+<a name="l00754"></a>00754 hawki_step_combine_output.combined_pos_x[idet] - off_0_x;
+<a name="l00755"></a>00755 hawki_step_combine_output.combined_cumoffset_y[idet] =
+<a name="l00756"></a>00756 hawki_step_combine_output.combined_pos_y[idet] - off_0_y;
+<a name="l00757"></a>00757 cpl_imagelist_delete(in) ;
+<a name="l00758"></a>00758 cpl_msg_indent_less() ;
+<a name="l00759"></a>00759
+<a name="l00760"></a>00760 <span class="comment">/* Interpolate bad pixels */</span>
+<a name="l00761"></a>00761 hawki_step_combine_interpolate_badpix(comb_contrib_chip[0]);
+<a name="l00762"></a>00762
+<a name="l00763"></a>00763 <span class="comment">/* Put the results in the image list */</span>
+<a name="l00764"></a>00764 combined_contrib[idet] = comb_contrib_chip[0];
+<a name="l00765"></a>00765 combined_contrib[idet+HAWKI_NB_DETECTORS] = comb_contrib_chip[1];
+<a name="l00766"></a>00766 cpl_free(comb_contrib_chip);
+<a name="l00767"></a>00767 cpl_msg_indent_less() ;
+<a name="l00768"></a>00768 }
+<a name="l00769"></a>00769
+<a name="l00770"></a>00770 <span class="comment">/* Compute the mean airmass */</span>
+<a name="l00771"></a>00771 hawki_step_combine_output.mean_airmass = <a class="code" href="group__hawki__utils.html#ga7b165e9e91b6c6519595109b36d4fb46" title="Get the mean airmass for a set of frames.">hawki_get_mean_airmass</a>(obj);
+<a name="l00772"></a>00772
+<a name="l00773"></a>00773 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
+<a name="l00774"></a>00774 {
+<a name="l00775"></a>00775 cpl_bivector_delete(offsets[idet]);
+<a name="l00776"></a>00776 <span class="keywordflow">if</span>(bpm_frame != NULL)
+<a name="l00777"></a>00777 cpl_mask_delete(bpm_masks[idet]);
+<a name="l00778"></a>00778 }
+<a name="l00779"></a>00779 cpl_free(offsets);
+<a name="l00780"></a>00780 <span class="keywordflow">return</span> combined_contrib;
+<a name="l00781"></a>00781 }
+<a name="l00782"></a>00782
+<a name="l00783"></a>00783 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00792"></a>00792 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00793"></a>00793 <span class="keyword">static</span> cpl_image ** hawki_step_combine_chip(
+<a name="l00794"></a>00794 cpl_imagelist * in,
+<a name="l00795"></a>00795 cpl_bivector * offsets,
+<a name="l00796"></a>00796 <span class="keywordtype">double</span> * pos_x,
+<a name="l00797"></a>00797 <span class="keywordtype">double</span> * pos_y)
+<a name="l00798"></a>00798 {
+<a name="l00799"></a>00799 cpl_image ** combined_contrib;
+<a name="l00800"></a>00800 cpl_imagelist * in_ext ;
+<a name="l00801"></a>00801 cpl_image * tmp1 ;
+<a name="l00802"></a>00802 cpl_image * tmp2 ;
+<a name="l00803"></a>00803 <span class="keywordtype">int</span> nfiles, nx, ny ;
+<a name="l00804"></a>00804 <span class="keywordtype">int</span> i;
+<a name="l00805"></a>00805
+<a name="l00806"></a>00806 <span class="comment">/* Check entries */</span>
+<a name="l00807"></a>00807 <span class="keywordflow">if</span> (pos_x == NULL || pos_y == NULL) <span class="keywordflow">return</span> NULL ;
+<a name="l00808"></a>00808 <span class="keywordflow">if</span> (offsets == NULL) <span class="keywordflow">return</span> NULL ;
+<a name="l00809"></a>00809
+<a name="l00810"></a>00810 <span class="comment">/* Get the number of images */</span>
+<a name="l00811"></a>00811 nfiles = cpl_imagelist_get_size(in) ;
+<a name="l00812"></a>00812 <span class="keywordflow">if</span> (cpl_bivector_get_size(offsets) != nfiles) {
+<a name="l00813"></a>00813 cpl_msg_error(__func__, <span class="stringliteral">"Number of refined offsets in table "</span><span class="stringliteral">""</span>
+<a name="l00814"></a>00814 <span class="stringliteral">"is different than number of frames to combine"</span>);
+<a name="l00815"></a>00815 <span class="keywordflow">return</span> NULL ;
+<a name="l00816"></a>00816 }
+<a name="l00817"></a>00817
+<a name="l00818"></a>00818 <span class="comment">/* Discard the pixels on the sides */</span>
+<a name="l00819"></a>00819 <span class="keywordflow">if</span> (hawki_step_combine_config.borders > 0) {
+<a name="l00820"></a>00820 nx = cpl_image_get_size_x(cpl_imagelist_get(in, 0)) ;
+<a name="l00821"></a>00821 ny = cpl_image_get_size_y(cpl_imagelist_get(in, 0)) ;
+<a name="l00822"></a>00822 in_ext = cpl_imagelist_new() ;
+<a name="l00823"></a>00823 <span class="keywordflow">for</span> (i=0 ; i<cpl_imagelist_get_size(in) ; i++) {
+<a name="l00824"></a>00824 tmp1 = cpl_imagelist_get(in, i) ;
+<a name="l00825"></a>00825 tmp2 = cpl_image_extract(tmp1,
+<a name="l00826"></a>00826 hawki_step_combine_config.borders+1,
+<a name="l00827"></a>00827 hawki_step_combine_config.borders+1,
+<a name="l00828"></a>00828 nx-hawki_step_combine_config.borders,
+<a name="l00829"></a>00829 ny-hawki_step_combine_config.borders) ;
+<a name="l00830"></a>00830 cpl_imagelist_set(in_ext, tmp2, i) ;
+<a name="l00831"></a>00831 }
+<a name="l00832"></a>00832 }
+<a name="l00833"></a>00833 <span class="keywordflow">else</span>
+<a name="l00834"></a>00834 {
+<a name="l00835"></a>00835 in_ext = cpl_imagelist_duplicate(in);
+<a name="l00836"></a>00836 }
+<a name="l00837"></a>00837
+<a name="l00838"></a>00838 <span class="comment">/* Apply the shift & add */</span>
+<a name="l00839"></a>00839 cpl_msg_info(__func__, <span class="stringliteral">"Recombine the images set"</span>) ;
+<a name="l00840"></a>00840 cpl_msg_indent_more() ;
+<a name="l00841"></a>00841 <span class="keywordflow">if</span> ((combined_contrib=cpl_geom_img_offset_saa(in_ext, offsets,
+<a name="l00842"></a>00842 hawki_step_combine_config.resamp_kernel,
+<a name="l00843"></a>00843 hawki_step_combine_config.rej_low,
+<a name="l00844"></a>00844 hawki_step_combine_config.rej_high,
+<a name="l00845"></a>00845 hawki_step_combine_config.comb_meth,
+<a name="l00846"></a>00846 pos_x, pos_y)) == NULL) {
+<a name="l00847"></a>00847 cpl_msg_error(cpl_func, <span class="stringliteral">"Cannot apply the shift and add"</span>) ;
+<a name="l00848"></a>00848 cpl_msg_indent_less();
+<a name="l00849"></a>00849 <span class="keywordflow">return</span> NULL;
+<a name="l00850"></a>00850 }
+<a name="l00851"></a>00851 cpl_msg_indent_less();
+<a name="l00852"></a>00852 *pos_x -= hawki_step_combine_config.borders;
+<a name="l00853"></a>00853 *pos_y -= hawki_step_combine_config.borders;
<a name="l00854"></a>00854
-<a name="l00855"></a>00855 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00861"></a>00861 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00862"></a>00862 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_interpolate_badpix
-<a name="l00863"></a>00863 (cpl_image * image)
-<a name="l00864"></a>00864 {
-<a name="l00865"></a>00865 <span class="keywordtype">int</span> nbadpixels = cpl_image_count_rejected(image);
-<a name="l00866"></a>00866 <span class="keywordflow">if</span>(nbadpixels !=0)
-<a name="l00867"></a>00867 cpl_msg_info(__func__,<span class="stringliteral">"Number of pixels with no combined value available: %d "</span>,
-<a name="l00868"></a>00868 nbadpixels);
-<a name="l00869"></a>00869 <span class="keywordflow">if</span>(cpl_image_count_rejected(image) > 0)
-<a name="l00870"></a>00870 {
-<a name="l00871"></a>00871 <span class="comment">//I use this even if DFS08929 is still not solved</span>
-<a name="l00872"></a>00872 cpl_detector_interpolate_rejected(image);
-<a name="l00873"></a>00873 }
-<a name="l00874"></a>00874 <span class="keywordflow">return</span> 0;
-<a name="l00875"></a>00875 }
-<a name="l00876"></a>00876
-<a name="l00877"></a>00877 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00886"></a>00886 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00887"></a>00887 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_save
-<a name="l00888"></a>00888 (cpl_image ** combined,
-<a name="l00889"></a>00889 cpl_image ** contrib_map,
-<a name="l00890"></a>00890 cpl_frameset * used_frames,
-<a name="l00891"></a>00891 cpl_parameterlist * parlist,
-<a name="l00892"></a>00892 cpl_frameset * recipe_frameset)
-<a name="l00893"></a>00893 {
-<a name="l00894"></a>00894 cpl_propertylist ** extproplists ;
-<a name="l00895"></a>00895 <span class="keyword">const</span> cpl_frame * ref_frame ;
-<a name="l00896"></a>00896 cpl_propertylist * wcslist ;
-<a name="l00897"></a>00897 cpl_propertylist * inputlist ;
-<a name="l00898"></a>00898 <span class="keywordtype">double</span> crpix1, crpix2 ;
-<a name="l00899"></a>00899 <span class="keywordtype">int</span> ext_nb ;
-<a name="l00900"></a>00900 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_combine"</span> ;
-<a name="l00901"></a>00901 <span class="keywordtype">int</span> idet;
-<a name="l00902"></a>00902 cpl_errorstate error_prevstate = cpl_errorstate_get();
-<a name="l00903"></a>00903
-<a name="l00904"></a>00904 <span class="comment">/* Get a reference frame for the WCS keys */</span>
-<a name="l00905"></a>00905 ref_frame = irplib_frameset_get_first_from_group
-<a name="l00906"></a>00906 (recipe_frameset, CPL_FRAME_GROUP_RAW) ;
-<a name="l00907"></a>00907
-<a name="l00908"></a>00908 <span class="keywordflow">if</span>(ref_frame == NULL)
-<a name="l00909"></a>00909 {
-<a name="l00910"></a>00910 cpl_msg_error(__func__, <span class="stringliteral">"Cannot get a reference frame"</span>);
-<a name="l00911"></a>00911 <span class="keywordflow">return</span> -1;
-<a name="l00912"></a>00912 }
-<a name="l00913"></a>00913
-<a name="l00914"></a>00914 <span class="comment">/* Create the QC lists */</span>
-<a name="l00915"></a>00915 extproplists = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*)) ;
-<a name="l00916"></a>00916 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00917"></a>00917 {
+<a name="l00855"></a>00855 <span class="comment">/* Free and return */</span>
+<a name="l00856"></a>00856 cpl_imagelist_delete(in_ext);
+<a name="l00857"></a>00857 <span class="keywordflow">return</span> combined_contrib;
+<a name="l00858"></a>00858 }
+<a name="l00859"></a>00859
+<a name="l00860"></a>00860 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00866"></a>00866 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00867"></a>00867 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_interpolate_badpix
+<a name="l00868"></a>00868 (cpl_image * image)
+<a name="l00869"></a>00869 {
+<a name="l00870"></a>00870 <span class="keywordtype">int</span> nbadpixels = cpl_image_count_rejected(image);
+<a name="l00871"></a>00871 <span class="keywordflow">if</span>(nbadpixels !=0)
+<a name="l00872"></a>00872 cpl_msg_info(__func__,<span class="stringliteral">"Number of pixels with no combined value available: %d "</span>,
+<a name="l00873"></a>00873 nbadpixels);
+<a name="l00874"></a>00874 <span class="keywordflow">if</span>(cpl_image_count_rejected(image) > 0)
+<a name="l00875"></a>00875 {
+<a name="l00876"></a>00876 <span class="comment">//I use this even if DFS08929 is still not solved</span>
+<a name="l00877"></a>00877 cpl_detector_interpolate_rejected(image);
+<a name="l00878"></a>00878 }
+<a name="l00879"></a>00879 <span class="keywordflow">return</span> 0;
+<a name="l00880"></a>00880 }
+<a name="l00881"></a>00881
+<a name="l00882"></a>00882 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00891"></a>00891 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00892"></a>00892 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_combine_save
+<a name="l00893"></a>00893 (cpl_image ** combined,
+<a name="l00894"></a>00894 cpl_image ** contrib_map,
+<a name="l00895"></a>00895 cpl_frameset * used_frames,
+<a name="l00896"></a>00896 cpl_parameterlist * parlist,
+<a name="l00897"></a>00897 cpl_frameset * recipe_frameset)
+<a name="l00898"></a>00898 {
+<a name="l00899"></a>00899 cpl_propertylist ** extproplists ;
+<a name="l00900"></a>00900 <span class="keyword">const</span> cpl_frame * ref_frame ;
+<a name="l00901"></a>00901 cpl_propertylist * wcslist ;
+<a name="l00902"></a>00902 cpl_propertylist * inputlist ;
+<a name="l00903"></a>00903 <span class="keywordtype">double</span> crpix1, crpix2 ;
+<a name="l00904"></a>00904 <span class="keywordtype">int</span> ext_nb ;
+<a name="l00905"></a>00905 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_combine"</span> ;
+<a name="l00906"></a>00906 <span class="keywordtype">int</span> idet;
+<a name="l00907"></a>00907 cpl_errorstate error_prevstate = cpl_errorstate_get();
+<a name="l00908"></a>00908
+<a name="l00909"></a>00909 <span class="comment">/* Get a reference frame for the WCS keys */</span>
+<a name="l00910"></a>00910 ref_frame = irplib_frameset_get_first_from_group
+<a name="l00911"></a>00911 (recipe_frameset, CPL_FRAME_GROUP_RAW) ;
+<a name="l00912"></a>00912
+<a name="l00913"></a>00913 <span class="keywordflow">if</span>(ref_frame == NULL)
+<a name="l00914"></a>00914 {
+<a name="l00915"></a>00915 cpl_msg_error(__func__, <span class="stringliteral">"Cannot get a reference frame"</span>);
+<a name="l00916"></a>00916 <span class="keywordflow">return</span> -1;
+<a name="l00917"></a>00917 }
<a name="l00918"></a>00918
-<a name="l00919"></a>00919 <span class="comment">/* Initialize qclists */</span>
-<a name="l00920"></a>00920 extproplists[idet] = cpl_propertylist_new() ;
-<a name="l00921"></a>00921
-<a name="l00922"></a>00922 <span class="comment">/* Get the extension number */</span>
-<a name="l00923"></a>00923 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(cpl_frame_get_filename(ref_frame), idet+1);
-<a name="l00924"></a>00924
-<a name="l00925"></a>00925 <span class="comment">/* Handle WCS keys */</span>
-<a name="l00926"></a>00926 wcslist = cpl_propertylist_load_regexp(
-<a name="l00927"></a>00927 cpl_frame_get_filename(ref_frame), ext_nb, HAWKI_HEADER_WCS, 0);
-<a name="l00928"></a>00928
-<a name="l00929"></a>00929 <span class="comment">/* Update WCS and write them */</span>
-<a name="l00930"></a>00930 crpix1 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX1"</span>);
-<a name="l00931"></a>00931 crpix1 += hawki_step_combine_output.combined_pos_x[idet];
-<a name="l00932"></a>00932 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX1"</span>, crpix1) ;
-<a name="l00933"></a>00933 crpix2 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX2"</span>);
-<a name="l00934"></a>00934 crpix2 += hawki_step_combine_output.combined_pos_y[idet] ;
-<a name="l00935"></a>00935 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX2"</span>, crpix2) ;
-<a name="l00936"></a>00936 cpl_propertylist_copy_property_regexp
-<a name="l00937"></a>00937 (extproplists[idet], wcslist, HAWKI_HEADER_WCS, 0);
-<a name="l00938"></a>00938 cpl_propertylist_delete(wcslist) ;
-<a name="l00939"></a>00939
-<a name="l00940"></a>00940 <span class="comment">/* Keywords for the relative position of the combined image */</span>
-<a name="l00941"></a>00941 cpl_propertylist_append_double
-<a name="l00942"></a>00942 (extproplists[idet], <span class="stringliteral">"ESO QC COMBINED CUMOFFSETX"</span>,
-<a name="l00943"></a>00943 hawki_step_combine_output.combined_cumoffset_x[idet]);
-<a name="l00944"></a>00944 cpl_propertylist_append_double
-<a name="l00945"></a>00945 (extproplists[idet], <span class="stringliteral">"ESO QC COMBINED CUMOFFSETY"</span>,
-<a name="l00946"></a>00946 hawki_step_combine_output.combined_cumoffset_y[idet]);
-<a name="l00947"></a>00947 cpl_propertylist_append_double
-<a name="l00948"></a>00948 (extproplists[idet], <span class="stringliteral">"ESO QC COMBINED POSX"</span>,
-<a name="l00949"></a>00949 hawki_step_combine_output.combined_pos_x[idet]);
-<a name="l00950"></a>00950 cpl_propertylist_append_double
-<a name="l00951"></a>00951 (extproplists[idet], <span class="stringliteral">"ESO QC COMBINED POSY"</span>,
-<a name="l00952"></a>00952 hawki_step_combine_output.combined_pos_y[idet]);
-<a name="l00953"></a>00953 cpl_propertylist_append_double
-<a name="l00954"></a>00954 (extproplists[idet], <span class="stringliteral">"ESO QC AIRMASS MEAN"</span>,
-<a name="l00955"></a>00955 hawki_step_combine_output.mean_airmass);
-<a name="l00956"></a>00956
-<a name="l00957"></a>00957 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
-<a name="l00958"></a>00958 inputlist = cpl_propertylist_load_regexp(
-<a name="l00959"></a>00959 cpl_frame_get_filename(ref_frame), ext_nb,
-<a name="l00960"></a>00960 HAWKI_HEADER_EXT_FORWARD, 0) ;
-<a name="l00961"></a>00961 cpl_propertylist_append(extproplists[idet], inputlist);
-<a name="l00962"></a>00962 cpl_propertylist_delete(inputlist) ;
-<a name="l00963"></a>00963 }
-<a name="l00964"></a>00964
-<a name="l00965"></a>00965 <span class="comment">/* Write the combined image */</span>
-<a name="l00966"></a>00966 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>(recipe_frameset,
-<a name="l00967"></a>00967 parlist,
-<a name="l00968"></a>00968 used_frames,
-<a name="l00969"></a>00969 (<span class="keyword">const</span> cpl_image **)combined,
-<a name="l00970"></a>00970 recipe_name,
-<a name="l00971"></a>00971 HAWKI_CALPRO_COMBINED,
-<a name="l00972"></a>00972 HAWKI_PROTYPE_COMBINED,
-<a name="l00973"></a>00973 NULL,
-<a name="l00974"></a>00974 (<span class="keyword">const</span> cpl_propertylist**)extproplists,
-<a name="l00975"></a>00975 <span class="stringliteral">"hawki_step_combine.fits"</span>) != 0)
-<a name="l00976"></a>00976 {
-<a name="l00977"></a>00977 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++) {
-<a name="l00978"></a>00978 cpl_propertylist_delete(extproplists[idet]) ;
-<a name="l00979"></a>00979 }
-<a name="l00980"></a>00980 cpl_free(extproplists) ;
-<a name="l00981"></a>00981 <span class="keywordflow">return</span> -1;
-<a name="l00982"></a>00982 }
-<a name="l00983"></a>00983
-<a name="l00984"></a>00984 <span class="comment">/* Write the contrib map */</span>
-<a name="l00985"></a>00985 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>(recipe_frameset,
-<a name="l00986"></a>00986 parlist,
-<a name="l00987"></a>00987 used_frames,
-<a name="l00988"></a>00988 (<span class="keyword">const</span> cpl_image **)contrib_map,
-<a name="l00989"></a>00989 recipe_name,
-<a name="l00990"></a>00990 HAWKI_CALPRO_COMB_CONTRIB_MAP,
-<a name="l00991"></a>00991 HAWKI_PROTYPE_COMB_CONTRIB_MAP,
-<a name="l00992"></a>00992 NULL,
-<a name="l00993"></a>00993 (<span class="keyword">const</span> cpl_propertylist**)extproplists,
-<a name="l00994"></a>00994 <span class="stringliteral">"hawki_step_combine_contrib_map.fits"</span>) != 0)
-<a name="l00995"></a>00995 {
-<a name="l00996"></a>00996 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++) {
-<a name="l00997"></a>00997 cpl_propertylist_delete(extproplists[idet]);
-<a name="l00998"></a>00998 }
-<a name="l00999"></a>00999 cpl_free(extproplists) ;
-<a name="l01000"></a>01000 <span class="keywordflow">return</span> -1;
-<a name="l01001"></a>01001 }
-<a name="l01002"></a>01002
-<a name="l01003"></a>01003 <span class="comment">/* Free and return */</span>
-<a name="l01004"></a>01004 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++) {
-<a name="l01005"></a>01005 cpl_propertylist_delete(extproplists[idet]) ;
+<a name="l00919"></a>00919 <span class="comment">/* Create the QC lists */</span>
+<a name="l00920"></a>00920 extproplists = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*)) ;
+<a name="l00921"></a>00921 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00922"></a>00922 {
+<a name="l00923"></a>00923
+<a name="l00924"></a>00924 <span class="comment">/* Initialize qclists */</span>
+<a name="l00925"></a>00925 extproplists[idet] = cpl_propertylist_new() ;
+<a name="l00926"></a>00926
+<a name="l00927"></a>00927 <span class="comment">/* Get the extension number */</span>
+<a name="l00928"></a>00928 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(cpl_frame_get_filename(ref_frame), idet+1);
+<a name="l00929"></a>00929
+<a name="l00930"></a>00930 <span class="comment">/* Handle WCS keys */</span>
+<a name="l00931"></a>00931 wcslist = cpl_propertylist_load_regexp(
+<a name="l00932"></a>00932 cpl_frame_get_filename(ref_frame), ext_nb, HAWKI_HEADER_WCS, 0);
+<a name="l00933"></a>00933
+<a name="l00934"></a>00934 <span class="comment">/* Update WCS and write them */</span>
+<a name="l00935"></a>00935 crpix1 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX1"</span>);
+<a name="l00936"></a>00936 crpix1 += hawki_step_combine_output.combined_pos_x[idet];
+<a name="l00937"></a>00937 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX1"</span>, crpix1) ;
+<a name="l00938"></a>00938 crpix2 = cpl_propertylist_get_double(wcslist, <span class="stringliteral">"CRPIX2"</span>);
+<a name="l00939"></a>00939 crpix2 += hawki_step_combine_output.combined_pos_y[idet] ;
+<a name="l00940"></a>00940 cpl_propertylist_update_double(wcslist, <span class="stringliteral">"CRPIX2"</span>, crpix2) ;
+<a name="l00941"></a>00941 cpl_propertylist_copy_property_regexp
+<a name="l00942"></a>00942 (extproplists[idet], wcslist, HAWKI_HEADER_WCS, 0);
+<a name="l00943"></a>00943 cpl_propertylist_delete(wcslist) ;
+<a name="l00944"></a>00944
+<a name="l00945"></a>00945 <span class="comment">/* Keywords for the relative position of the combined image */</span>
+<a name="l00946"></a>00946 cpl_propertylist_append_double
+<a name="l00947"></a>00947 (extproplists[idet], <span class="stringliteral">"ESO QC COMBINED CUMOFFSETX"</span>,
+<a name="l00948"></a>00948 hawki_step_combine_output.combined_cumoffset_x[idet]);
+<a name="l00949"></a>00949 cpl_propertylist_append_double
+<a name="l00950"></a>00950 (extproplists[idet], <span class="stringliteral">"ESO QC COMBINED CUMOFFSETY"</span>,
+<a name="l00951"></a>00951 hawki_step_combine_output.combined_cumoffset_y[idet]);
+<a name="l00952"></a>00952 cpl_propertylist_append_double
+<a name="l00953"></a>00953 (extproplists[idet], <span class="stringliteral">"ESO QC COMBINED POSX"</span>,
+<a name="l00954"></a>00954 hawki_step_combine_output.combined_pos_x[idet]);
+<a name="l00955"></a>00955 cpl_propertylist_append_double
+<a name="l00956"></a>00956 (extproplists[idet], <span class="stringliteral">"ESO QC COMBINED POSY"</span>,
+<a name="l00957"></a>00957 hawki_step_combine_output.combined_pos_y[idet]);
+<a name="l00958"></a>00958 cpl_propertylist_append_double
+<a name="l00959"></a>00959 (extproplists[idet], <span class="stringliteral">"ESO QC AIRMASS MEAN"</span>,
+<a name="l00960"></a>00960 hawki_step_combine_output.mean_airmass);
+<a name="l00961"></a>00961
+<a name="l00962"></a>00962 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
+<a name="l00963"></a>00963 inputlist = cpl_propertylist_load_regexp(
+<a name="l00964"></a>00964 cpl_frame_get_filename(ref_frame), ext_nb,
+<a name="l00965"></a>00965 HAWKI_HEADER_EXT_FORWARD, 0) ;
+<a name="l00966"></a>00966 cpl_propertylist_append(extproplists[idet], inputlist);
+<a name="l00967"></a>00967 cpl_propertylist_delete(inputlist) ;
+<a name="l00968"></a>00968 }
+<a name="l00969"></a>00969
+<a name="l00970"></a>00970 <span class="comment">/* Write the combined image */</span>
+<a name="l00971"></a>00971 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>(recipe_frameset,
+<a name="l00972"></a>00972 parlist,
+<a name="l00973"></a>00973 used_frames,
+<a name="l00974"></a>00974 (<span class="keyword">const</span> cpl_image **)combined,
+<a name="l00975"></a>00975 recipe_name,
+<a name="l00976"></a>00976 HAWKI_CALPRO_COMBINED,
+<a name="l00977"></a>00977 HAWKI_PROTYPE_COMBINED,
+<a name="l00978"></a>00978 NULL,
+<a name="l00979"></a>00979 (<span class="keyword">const</span> cpl_propertylist**)extproplists,
+<a name="l00980"></a>00980 <span class="stringliteral">"hawki_step_combine.fits"</span>) != 0)
+<a name="l00981"></a>00981 {
+<a name="l00982"></a>00982 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++) {
+<a name="l00983"></a>00983 cpl_propertylist_delete(extproplists[idet]) ;
+<a name="l00984"></a>00984 }
+<a name="l00985"></a>00985 cpl_free(extproplists) ;
+<a name="l00986"></a>00986 <span class="keywordflow">return</span> -1;
+<a name="l00987"></a>00987 }
+<a name="l00988"></a>00988
+<a name="l00989"></a>00989 <span class="comment">/* Write the contrib map */</span>
+<a name="l00990"></a>00990 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>(recipe_frameset,
+<a name="l00991"></a>00991 parlist,
+<a name="l00992"></a>00992 used_frames,
+<a name="l00993"></a>00993 (<span class="keyword">const</span> cpl_image **)contrib_map,
+<a name="l00994"></a>00994 recipe_name,
+<a name="l00995"></a>00995 HAWKI_CALPRO_COMB_CONTRIB_MAP,
+<a name="l00996"></a>00996 HAWKI_PROTYPE_COMB_CONTRIB_MAP,
+<a name="l00997"></a>00997 NULL,
+<a name="l00998"></a>00998 (<span class="keyword">const</span> cpl_propertylist**)extproplists,
+<a name="l00999"></a>00999 <span class="stringliteral">"hawki_step_combine_contrib_map.fits"</span>) != 0)
+<a name="l01000"></a>01000 {
+<a name="l01001"></a>01001 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++) {
+<a name="l01002"></a>01002 cpl_propertylist_delete(extproplists[idet]);
+<a name="l01003"></a>01003 }
+<a name="l01004"></a>01004 cpl_free(extproplists) ;
+<a name="l01005"></a>01005 <span class="keywordflow">return</span> -1;
<a name="l01006"></a>01006 }
-<a name="l01007"></a>01007 cpl_free(extproplists) ;
-<a name="l01008"></a>01008
-<a name="l01009"></a>01009 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
-<a name="l01010"></a>01010 {
-<a name="l01011"></a>01011 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l01012"></a>01012 <span class="keywordflow">return</span> 1;
-<a name="l01013"></a>01013 }
-<a name="l01014"></a>01014
-<a name="l01015"></a>01015 <span class="keywordflow">return</span> 0;
-<a name="l01016"></a>01016 }
-<a name="l01017"></a>01017
+<a name="l01007"></a>01007
+<a name="l01008"></a>01008 <span class="comment">/* Free and return */</span>
+<a name="l01009"></a>01009 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++) {
+<a name="l01010"></a>01010 cpl_propertylist_delete(extproplists[idet]) ;
+<a name="l01011"></a>01011 }
+<a name="l01012"></a>01012 cpl_free(extproplists) ;
+<a name="l01013"></a>01013
+<a name="l01014"></a>01014 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
+<a name="l01015"></a>01015 {
+<a name="l01016"></a>01016 cpl_errorstate_set(CPL_ERROR_NONE);
+<a name="l01017"></a>01017 <span class="keywordflow">return</span> 1;
+<a name="l01018"></a>01018 }
+<a name="l01019"></a>01019
+<a name="l01020"></a>01020 <span class="keywordflow">return</span> 0;
+<a name="l01021"></a>01021 }
+<a name="l01022"></a>01022
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__step__compute__bkg_8c_source.html b/html/hawki__step__compute__bkg_8c_source.html
deleted file mode 100644
index 15c3c91..0000000
--- a/html/hawki__step__compute__bkg_8c_source.html
+++ /dev/null
@@ -1,1215 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<title>HAWKI Pipeline Reference Manual: hawki_step_compute_bkg.c Source File</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<link href="doxygen.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<!-- Generated by Doxygen 1.7.4 -->
-<div id="top">
-<div id="titlearea">
-<table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
- </td>
- </tr>
- </tbody>
-</table>
-</div>
- <div id="navrow1" class="tabs">
- <ul class="tablist">
- <li><a href="index.html"><span>Main Page</span></a></li>
- <li><a href="modules.html"><span>Modules</span></a></li>
- <li><a href="annotated.html"><span>Data Structures</span></a></li>
- <li class="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="dirs.html"><span>Directories</span></a></li>
- </ul>
- </div>
- <div id="navrow2" class="tabs2">
- <ul class="tablist">
- <li><a href="files.html"><span>File List</span></a></li>
- </ul>
- </div>
- <div id="nav-path" class="navpath">
- <ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
- </ul>
- </div>
-</div>
-<div class="header">
- <div class="headertitle">
-<div class="title">hawki_step_compute_bkg.c</div> </div>
-</div>
-<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_step_compute_bkg.c,v 1.17 2011/10/24 10:42:43 cgarcia Exp $</span>
-<a name="l00002"></a>00002 <span class="comment"> *</span>
-<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
-<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2008 European Southern Observatory</span>
-<a name="l00005"></a>00005 <span class="comment"> *</span>
-<a name="l00006"></a>00006 <span class="comment"> * This program is free software; you can redistribute it and/or modify</span>
-<a name="l00007"></a>00007 <span class="comment"> * it under the terms of the GNU General Public License as published by</span>
-<a name="l00008"></a>00008 <span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span>
-<a name="l00009"></a>00009 <span class="comment"> * (at your option) any later version.</span>
-<a name="l00010"></a>00010 <span class="comment"> *</span>
-<a name="l00011"></a>00011 <span class="comment"> * This program is distributed in the hope that it will be useful,</span>
-<a name="l00012"></a>00012 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
-<a name="l00013"></a>00013 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span>
-<a name="l00014"></a>00014 <span class="comment"> * GNU General Public License for more details.</span>
-<a name="l00015"></a>00015 <span class="comment"> *</span>
-<a name="l00016"></a>00016 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
-<a name="l00017"></a>00017 <span class="comment"> * along with this program; if not, write to the Free Software</span>
-<a name="l00018"></a>00018 <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA</span>
-<a name="l00019"></a>00019 <span class="comment"> */</span>
-<a name="l00020"></a>00020
-<a name="l00021"></a>00021 <span class="comment">/*</span>
-<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/10/24 10:42:43 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.17 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
-<a name="l00026"></a>00026 <span class="comment"> */</span>
-<a name="l00027"></a>00027
-<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
-<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#include <config.h></span>
-<a name="l00030"></a>00030 <span class="preprocessor">#endif</span>
-<a name="l00031"></a>00031 <span class="preprocessor"></span>
-<a name="l00032"></a>00032 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00033"></a>00033 <span class="comment"> Includes</span>
-<a name="l00034"></a>00034 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00035"></a>00035
-<a name="l00036"></a>00036 <span class="preprocessor">#include <string.h></span>
-<a name="l00037"></a>00037 <span class="preprocessor">#include <math.h></span>
-<a name="l00038"></a>00038 <span class="preprocessor">#include <cpl.h></span>
-<a name="l00039"></a>00039
-<a name="l00040"></a>00040 <span class="preprocessor">#include "hawki_utils.h"</span>
-<a name="l00041"></a>00041 <span class="preprocessor">#include "hawki_distortion.h"</span>
-<a name="l00042"></a>00042 <span class="preprocessor">#include "hawki_load.h"</span>
-<a name="l00043"></a>00043 <span class="preprocessor">#include "hawki_save.h"</span>
-<a name="l00044"></a>00044 <span class="preprocessor">#include "hawki_pfits.h"</span>
-<a name="l00045"></a>00045 <span class="preprocessor">#include "hawki_dfs.h"</span>
-<a name="l00046"></a>00046 <span class="preprocessor">#include "hawki_bkg.h"</span>
-<a name="l00047"></a>00047 <span class="preprocessor">#include "hawki_calib.h"</span>
-<a name="l00048"></a>00048
-<a name="l00049"></a>00049 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00050"></a>00050 <span class="comment"> Structs</span>
-<a name="l00051"></a>00051 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00052"></a>00052
-<a name="l00053"></a>00053 <span class="keyword">static</span> <span class="keyword">struct </span>
-<a name="l00054"></a>00054 {
-<a name="l00055"></a>00055 <span class="comment">/* Configuration values */</span>
-<a name="l00056"></a>00056 <span class="keywordtype">int</span> nmin_comb;
-<a name="l00057"></a>00057 <span class="keywordtype">int</span> nhalf_window;
-<a name="l00058"></a>00058 <span class="keywordtype">int</span> rejlow;
-<a name="l00059"></a>00059 <span class="keywordtype">int</span> rejhigh;
-<a name="l00060"></a>00060
-<a name="l00061"></a>00061 } hawki_step_compute_bkg_config;
-<a name="l00062"></a>00062
-<a name="l00063"></a>00063 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00064"></a>00064 <span class="comment"> Functions prototypes</span>
-<a name="l00065"></a>00065 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00066"></a>00066
-<a name="l00067"></a>00067 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_create(cpl_plugin *) ;
-<a name="l00068"></a>00068 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_exec(cpl_plugin *) ;
-<a name="l00069"></a>00069 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_destroy(cpl_plugin *) ;
-<a name="l00070"></a>00070 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg(cpl_parameterlist *, cpl_frameset *) ;
-<a name="l00071"></a>00071
-<a name="l00072"></a>00072 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_objects_qc_save
-<a name="l00073"></a>00073 (cpl_frameset * objframes,
-<a name="l00074"></a>00074 cpl_frameset * maskframes,
-<a name="l00075"></a>00075 cpl_frameset * offsetsframes,
-<a name="l00076"></a>00076 cpl_frameset * x_distortionframes,
-<a name="l00077"></a>00077 cpl_frameset * y_distortionframes,
-<a name="l00078"></a>00078 cpl_parameterlist * parlist,
-<a name="l00079"></a>00079 cpl_frameset * recipe_framelist);
-<a name="l00080"></a>00080 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_objects_median_save
-<a name="l00081"></a>00081 (cpl_frameset * objframes,
-<a name="l00082"></a>00082 cpl_parameterlist * recipe_parlist,
-<a name="l00083"></a>00083 cpl_frameset * recipe_framelist);
-<a name="l00084"></a>00084 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_sky_median_save
-<a name="l00085"></a>00085 (cpl_frameset * skyframes,
-<a name="l00086"></a>00086 cpl_parameterlist * recipe_parlist,
-<a name="l00087"></a>00087 cpl_frameset * recipe_framelist);
-<a name="l00088"></a>00088 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_interpolate_badpix
-<a name="l00089"></a>00089 (cpl_image * image);
-<a name="l00090"></a>00090 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_objects_running_median_save
-<a name="l00091"></a>00091 (cpl_frameset * objframes,
-<a name="l00092"></a>00092 cpl_frameset * maskframes,
-<a name="l00093"></a>00093 cpl_frameset * offsetframes,
-<a name="l00094"></a>00094 cpl_frameset * x_distortionframes,
-<a name="l00095"></a>00095 cpl_frameset * y_distortionframes,
-<a name="l00096"></a>00096 cpl_parameterlist * recipe_parlist,
-<a name="l00097"></a>00097 cpl_frameset * recipe_framelist);
-<a name="l00098"></a>00098 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_running_median_nonmasked_save
-<a name="l00099"></a>00099 (<span class="keyword">const</span> cpl_frameset * objframes,
-<a name="l00100"></a>00100 <span class="keywordtype">int</span> nhalf_window,
-<a name="l00101"></a>00101 <span class="keywordtype">int</span> rejlow,
-<a name="l00102"></a>00102 <span class="keywordtype">int</span> rejhigh,
-<a name="l00103"></a>00103 cpl_frameset * recipe_framelist,
-<a name="l00104"></a>00104 cpl_parameterlist * recipe_parlist);
-<a name="l00105"></a>00105 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_running_median_masked_save
-<a name="l00106"></a>00106 (<span class="keyword">const</span> cpl_frameset * objframes,
-<a name="l00107"></a>00107 cpl_frame * maskframe,
-<a name="l00108"></a>00108 cpl_bivector ** offsets,
-<a name="l00109"></a>00109 cpl_frame * x_distortionframe,
-<a name="l00110"></a>00110 cpl_frame * y_distortionframe,
-<a name="l00111"></a>00111 <span class="keywordtype">int</span> nhalf_window,
-<a name="l00112"></a>00112 <span class="keywordtype">int</span> rejlow,
-<a name="l00113"></a>00113 <span class="keywordtype">int</span> rejhigh,
-<a name="l00114"></a>00114 cpl_frameset * recipe_framelist,
-<a name="l00115"></a>00115 cpl_parameterlist * recipe_parlist);
-<a name="l00116"></a>00116
-<a name="l00117"></a>00117
-<a name="l00118"></a>00118 <span class="keywordtype">int</span> hawki_step_compute_bkg_retrieve_input_param
-<a name="l00119"></a>00119 (cpl_parameterlist * parlist);
-<a name="l00120"></a>00120
-<a name="l00121"></a>00121 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00122"></a>00122 <span class="comment"> Static variables</span>
-<a name="l00123"></a>00123 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00124"></a>00124
-<a name="l00125"></a>00125 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_step_compute_bkg_description[] =
-<a name="l00126"></a>00126 <span class="stringliteral">"hawki_step_compute_bkg -- hawki background computation utility.\n"</span>
-<a name="l00127"></a>00127 <span class="stringliteral">"This recipe will create the associated background images\n"</span>
-<a name="l00128"></a>00128 <span class="stringliteral">"for a given set of object images. If there are sky images, these will\n"</span>
-<a name="l00129"></a>00129 <span class="stringliteral">"be used to compute the background, otherwise, the background is computed\n"</span>
-<a name="l00130"></a>00130 <span class="stringliteral">"using a running mean on the object images. An optional mask can be supplied\n"</span>
-<a name="l00131"></a>00131 <span class="stringliteral">"for the running mean.\n"</span>
-<a name="l00132"></a>00132 <span class="stringliteral">"The files listed in the Set Of Frames (sof-file) must be tagged:\n"</span>
-<a name="l00133"></a>00133 <span class="stringliteral">"obj_basic_cal-file.fits "</span>HAWKI_CALPRO_BASICCALIBRATED<span class="stringliteral">" or\n"</span>
-<a name="l00134"></a>00134 <span class="stringliteral">"sky_basic_cal-file.fits "</span>HAWKI_CALPRO_SKY_BASICCALIBRATED<span class="stringliteral">" \n"</span>
-<a name="l00135"></a>00135 <span class="stringliteral">"and optionally for object masking:\n"</span>
-<a name="l00136"></a>00136 <span class="stringliteral">"object_mask-file.fits "</span>HAWKI_CALPRO_OBJ_MASK<span class="stringliteral">" \n"</span>
-<a name="l00137"></a>00137 <span class="stringliteral">"offsets.fits "</span>HAWKI_CALPRO_OFFSETS<span class="stringliteral">" \n"</span>
-<a name="l00138"></a>00138 <span class="stringliteral">"distortion_x.fits "</span>HAWKI_CALPRO_DISTORTION_X<span class="stringliteral">" \n"</span>
-<a name="l00139"></a>00139 <span class="stringliteral">"distortion_y.fits "</span>HAWKI_CALPRO_DISTORTION_Y<span class="stringliteral">" \n"</span>;
-<a name="l00140"></a>00140
-<a name="l00141"></a>00141 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00142"></a>00142 <span class="comment"> Functions code</span>
-<a name="l00143"></a>00143 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00144"></a>00144
-<a name="l00145"></a>00145 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00153"></a>00153 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00154"></a>00154 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
-<a name="l00155"></a>00155 {
-<a name="l00156"></a>00156 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
-<a name="l00157"></a>00157 cpl_plugin * plugin = &recipe->interface ;
-<a name="l00158"></a>00158
-<a name="l00159"></a>00159 cpl_plugin_init(plugin,
-<a name="l00160"></a>00160 CPL_PLUGIN_API,
-<a name="l00161"></a>00161 HAWKI_BINARY_VERSION,
-<a name="l00162"></a>00162 CPL_PLUGIN_TYPE_RECIPE,
-<a name="l00163"></a>00163 <span class="stringliteral">"hawki_step_compute_bkg"</span>,
-<a name="l00164"></a>00164 <span class="stringliteral">"Background computing utility"</span>,
-<a name="l00165"></a>00165 hawki_step_compute_bkg_description,
-<a name="l00166"></a>00166 <span class="stringliteral">"Cesar Enrique Garcia Dabo"</span>,
-<a name="l00167"></a>00167 PACKAGE_BUGREPORT,
-<a name="l00168"></a>00168 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
-<a name="l00169"></a>00169 hawki_step_compute_bkg_create,
-<a name="l00170"></a>00170 hawki_step_compute_bkg_exec,
-<a name="l00171"></a>00171 hawki_step_compute_bkg_destroy);
-<a name="l00172"></a>00172
-<a name="l00173"></a>00173 cpl_pluginlist_append(list, plugin);
-<a name="l00174"></a>00174
-<a name="l00175"></a>00175 <span class="keywordflow">return</span> 0;
-<a name="l00176"></a>00176 }
-<a name="l00177"></a>00177
-<a name="l00178"></a>00178 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00187"></a>00187 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00188"></a>00188 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_create(cpl_plugin * plugin)
-<a name="l00189"></a>00189 {
-<a name="l00190"></a>00190 cpl_recipe * recipe;
-<a name="l00191"></a>00191 cpl_parameter * p;
-<a name="l00192"></a>00192
-<a name="l00193"></a>00193 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00194"></a>00194 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00195"></a>00195 recipe = (cpl_recipe *)plugin ;
-<a name="l00196"></a>00196 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
-<a name="l00197"></a>00197
-<a name="l00198"></a>00198 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
-<a name="l00199"></a>00199 recipe->parameters = cpl_parameterlist_new() ;
-<a name="l00200"></a>00200 <span class="keywordflow">if</span> (recipe->parameters == NULL)
-<a name="l00201"></a>00201 <span class="keywordflow">return</span> 1;
-<a name="l00202"></a>00202
-<a name="l00203"></a>00203 <span class="comment">/* Fill the parameters list */</span>
-<a name="l00204"></a>00204 <span class="comment">/* --nmin_comb */</span>
-<a name="l00205"></a>00205 p = cpl_parameter_new_value
-<a name="l00206"></a>00206 (<span class="stringliteral">"hawki.hawki_step_compute_bkg.nmin_comb"</span>,
-<a name="l00207"></a>00207 CPL_TYPE_INT,
-<a name="l00208"></a>00208 <span class="stringliteral">"Minimum number of jitter frames to use the running median"</span>,
-<a name="l00209"></a>00209 <span class="stringliteral">"hawki.hawki_step_compute_bkg"</span>,
-<a name="l00210"></a>00210 10) ;
-<a name="l00211"></a>00211 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"nmin_comb"</span>) ;
-<a name="l00212"></a>00212 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00213"></a>00213 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00214"></a>00214
-<a name="l00215"></a>00215 <span class="comment">/* --nhalf_window */</span>
-<a name="l00216"></a>00216 p = cpl_parameter_new_value
-<a name="l00217"></a>00217 (<span class="stringliteral">"hawki.hawki_step_compute_bkg.nhalf_window"</span>,
-<a name="l00218"></a>00218 CPL_TYPE_INT,
-<a name="l00219"></a>00219 <span class="stringliteral">"Number of images at both sides of the current ima to use for bkg in running median"</span>,
-<a name="l00220"></a>00220 <span class="stringliteral">"hawki.hawki_step_compute_bkg"</span>,
-<a name="l00221"></a>00221 7);
-<a name="l00222"></a>00222 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"nhalf_window"</span>) ;
-<a name="l00223"></a>00223 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00224"></a>00224 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00225"></a>00225
-<a name="l00226"></a>00226 <span class="comment">/* --rejlow */</span>
-<a name="l00227"></a>00227 p = cpl_parameter_new_value
-<a name="l00228"></a>00228 (<span class="stringliteral">"hawki.hawki_step_compute_bkg.rejlow"</span>,
-<a name="l00229"></a>00229 CPL_TYPE_INT,
-<a name="l00230"></a>00230 <span class="stringliteral">"The number of frames with low level to reject"</span>,
-<a name="l00231"></a>00231 <span class="stringliteral">"hawki.hawki_step_compute_bkg"</span>,
-<a name="l00232"></a>00232 2) ;
-<a name="l00233"></a>00233 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"rejlow"</span>) ;
-<a name="l00234"></a>00234 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00235"></a>00235 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00236"></a>00236
-<a name="l00237"></a>00237 <span class="comment">/* --rejhigh */</span>
-<a name="l00238"></a>00238 p = cpl_parameter_new_value
-<a name="l00239"></a>00239 (<span class="stringliteral">"hawki.hawki_step_compute_bkg.rejhigh"</span>,
-<a name="l00240"></a>00240 CPL_TYPE_INT,
-<a name="l00241"></a>00241 <span class="stringliteral">"The number of frames with high level to reject"</span>,
-<a name="l00242"></a>00242 <span class="stringliteral">"hawki.hawki_step_compute_bkg"</span>,
-<a name="l00243"></a>00243 2) ;
-<a name="l00244"></a>00244 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"rejhigh"</span>) ;
-<a name="l00245"></a>00245 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV) ;
-<a name="l00246"></a>00246 cpl_parameterlist_append(recipe->parameters, p) ;
-<a name="l00247"></a>00247
-<a name="l00248"></a>00248 <span class="comment">/* Return */</span>
-<a name="l00249"></a>00249 <span class="keywordflow">return</span> 0;
-<a name="l00250"></a>00250 }
-<a name="l00251"></a>00251
-<a name="l00252"></a>00252 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00258"></a>00258 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00259"></a>00259 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_exec(cpl_plugin * plugin)
-<a name="l00260"></a>00260 {
-<a name="l00261"></a>00261 cpl_recipe * recipe ;
-<a name="l00262"></a>00262
-<a name="l00263"></a>00263 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00264"></a>00264 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00265"></a>00265 recipe = (cpl_recipe *)plugin ;
-<a name="l00266"></a>00266 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
-<a name="l00267"></a>00267
-<a name="l00268"></a>00268 <span class="comment">/* Issue a banner */</span>
-<a name="l00269"></a>00269 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
-<a name="l00270"></a>00270
-<a name="l00271"></a>00271 <span class="keywordflow">return</span> hawki_step_compute_bkg(recipe->parameters, recipe->frames) ;
-<a name="l00272"></a>00272 }
-<a name="l00273"></a>00273
-<a name="l00274"></a>00274 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00280"></a>00280 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00281"></a>00281 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_destroy(cpl_plugin * plugin)
-<a name="l00282"></a>00282 {
-<a name="l00283"></a>00283 cpl_recipe * recipe ;
-<a name="l00284"></a>00284
-<a name="l00285"></a>00285 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00286"></a>00286 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00287"></a>00287 recipe = (cpl_recipe *)plugin ;
-<a name="l00288"></a>00288 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
-<a name="l00289"></a>00289
-<a name="l00290"></a>00290 cpl_parameterlist_delete(recipe->parameters) ;
-<a name="l00291"></a>00291 <span class="keywordflow">return</span> 0 ;
-<a name="l00292"></a>00292 }
-<a name="l00293"></a>00293
-<a name="l00294"></a>00294 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00301"></a>00301 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00302"></a>00302 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg(
-<a name="l00303"></a>00303 cpl_parameterlist * parlist,
-<a name="l00304"></a>00304 cpl_frameset * framelist)
-<a name="l00305"></a>00305 {
-<a name="l00306"></a>00306 cpl_frameset * objframes = NULL;
-<a name="l00307"></a>00307 cpl_frameset * skyframes;
-<a name="l00308"></a>00308 cpl_frameset * maskframes;
-<a name="l00309"></a>00309 cpl_frameset * x_distortionframes;
-<a name="l00310"></a>00310 cpl_frameset * y_distortionframes;
-<a name="l00311"></a>00311 cpl_frameset * offsetsframes = NULL;
-<a name="l00312"></a>00312
-<a name="l00313"></a>00313 <span class="comment">/* Get the recipe parameters */</span>
-<a name="l00314"></a>00314 hawki_step_compute_bkg_retrieve_input_param(parlist);
-<a name="l00315"></a>00315
-<a name="l00316"></a>00316 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
-<a name="l00317"></a>00317 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist))
-<a name="l00318"></a>00318 {
-<a name="l00319"></a>00319 cpl_msg_error(__func__, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
-<a name="l00320"></a>00320 <span class="keywordflow">return</span> -1 ;
-<a name="l00321"></a>00321 }
-<a name="l00322"></a>00322
-<a name="l00323"></a>00323 <span class="comment">/* Identifying objects and sky data frames */</span>
-<a name="l00324"></a>00324 cpl_msg_info(__func__, <span class="stringliteral">"Identifying objects and sky data"</span>);
-<a name="l00325"></a>00325 objframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
-<a name="l00326"></a>00326 (framelist, HAWKI_CALPRO_BASICCALIBRATED);
-<a name="l00327"></a>00327 skyframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
-<a name="l00328"></a>00328 (framelist, HAWKI_CALPRO_SKY_BASICCALIBRATED);
-<a name="l00329"></a>00329 <span class="keywordflow">if</span> (objframes == NULL && skyframes == NULL)
-<a name="l00330"></a>00330 {
-<a name="l00331"></a>00331 cpl_msg_error(__func__, <span class="stringliteral">"No object (%s) or sky (%s) frames provided"</span>,
-<a name="l00332"></a>00332 HAWKI_CALPRO_BASICCALIBRATED, HAWKI_CALPRO_SKY_BASICCALIBRATED);
-<a name="l00333"></a>00333 <span class="keywordflow">return</span> -1 ;
-<a name="l00334"></a>00334 }
-<a name="l00335"></a>00335
-<a name="l00336"></a>00336 <span class="comment">/* Retrieve the mask */</span>
-<a name="l00337"></a>00337 maskframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
-<a name="l00338"></a>00338 (framelist, HAWKI_CALPRO_OBJ_MASK);
-<a name="l00339"></a>00339 <span class="keywordflow">if</span>(maskframes != NULL)
-<a name="l00340"></a>00340 {
-<a name="l00341"></a>00341 offsetsframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
-<a name="l00342"></a>00342 (framelist, HAWKI_CALPRO_OFFSETS);
-<a name="l00343"></a>00343 x_distortionframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
-<a name="l00344"></a>00344 (framelist, HAWKI_CALPRO_DISTORTION_X);
-<a name="l00345"></a>00345 y_distortionframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
-<a name="l00346"></a>00346 (framelist, HAWKI_CALPRO_DISTORTION_Y);
-<a name="l00347"></a>00347 <span class="keywordflow">if</span>((x_distortionframes == NULL && y_distortionframes != NULL) ||
-<a name="l00348"></a>00348 (x_distortionframes != NULL && y_distortionframes == NULL))
-<a name="l00349"></a>00349 {
-<a name="l00350"></a>00350 cpl_msg_error(__func__, <span class="stringliteral">"One X-distortion frame (%s) and one Y-distortion (%s)"</span>
-<a name="l00351"></a>00351 <span class="stringliteral">"must be provided"</span>, HAWKI_CALPRO_DISTORTION_X, HAWKI_CALPRO_DISTORTION_Y);
-<a name="l00352"></a>00352 cpl_frameset_delete(skyframes);
-<a name="l00353"></a>00353 cpl_frameset_delete(maskframes);
-<a name="l00354"></a>00354 cpl_frameset_delete(x_distortionframes);
-<a name="l00355"></a>00355 cpl_frameset_delete(y_distortionframes);
-<a name="l00356"></a>00356 <span class="keywordflow">return</span> -1 ;
-<a name="l00357"></a>00357 }
-<a name="l00358"></a>00358 }
-<a name="l00359"></a>00359
-<a name="l00360"></a>00360 <span class="comment">/* Compute the background */</span>
-<a name="l00361"></a>00361 <span class="keywordflow">if</span>(skyframes == NULL)
-<a name="l00362"></a>00362 hawki_step_compute_bkg_from_objects_qc_save
-<a name="l00363"></a>00363 (objframes,
-<a name="l00364"></a>00364 maskframes, offsetsframes, x_distortionframes, y_distortionframes,
-<a name="l00365"></a>00365 parlist, framelist);
-<a name="l00366"></a>00366 <span class="keywordflow">else</span>
-<a name="l00367"></a>00367 hawki_step_compute_bkg_from_sky_median_save
-<a name="l00368"></a>00368 (skyframes,
-<a name="l00369"></a>00369 parlist, framelist);
-<a name="l00370"></a>00370
-<a name="l00371"></a>00371 <span class="comment">/* Free resources */</span>
-<a name="l00372"></a>00372 <span class="keywordflow">if</span>(skyframes != NULL)
-<a name="l00373"></a>00373 cpl_frameset_delete(skyframes);
-<a name="l00374"></a>00374 <span class="keywordflow">if</span>(objframes != NULL)
-<a name="l00375"></a>00375 cpl_frameset_delete(objframes);
-<a name="l00376"></a>00376 <span class="keywordflow">if</span>(maskframes != NULL)
-<a name="l00377"></a>00377 {
-<a name="l00378"></a>00378 cpl_frameset_delete(maskframes);
-<a name="l00379"></a>00379 <span class="keywordflow">if</span>(x_distortionframes != NULL)
-<a name="l00380"></a>00380 cpl_frameset_delete(x_distortionframes);
-<a name="l00381"></a>00381 <span class="keywordflow">if</span>(y_distortionframes != NULL)
-<a name="l00382"></a>00382 cpl_frameset_delete(y_distortionframes);
-<a name="l00383"></a>00383 <span class="keywordflow">if</span>(offsetsframes != NULL)
-<a name="l00384"></a>00384 cpl_frameset_delete(offsetsframes);
-<a name="l00385"></a>00385 }
-<a name="l00386"></a>00386
-<a name="l00387"></a>00387 <span class="comment">/* return */</span>
-<a name="l00388"></a>00388 <span class="keywordflow">if</span> (cpl_error_get_code()) <span class="keywordflow">return</span> -1 ;
-<a name="l00389"></a>00389 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
-<a name="l00390"></a>00390 }
-<a name="l00391"></a>00391
-<a name="l00392"></a>00392 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00402"></a>00402 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00403"></a>00403 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_objects_qc_save
-<a name="l00404"></a>00404 (cpl_frameset * objframes,
-<a name="l00405"></a>00405 cpl_frameset * maskframes,
-<a name="l00406"></a>00406 cpl_frameset * offsetsframes,
-<a name="l00407"></a>00407 cpl_frameset * x_distortionframes,
-<a name="l00408"></a>00408 cpl_frameset * y_distortionframes,
-<a name="l00409"></a>00409 cpl_parameterlist * parlist,
-<a name="l00410"></a>00410 cpl_frameset * recipe_framelist)
-<a name="l00411"></a>00411 {
-<a name="l00412"></a>00412 <span class="keywordtype">int</span> nobjs;
-<a name="l00413"></a>00413
-<a name="l00414"></a>00414 <span class="comment">/* Select the algorithm based on the number of frames */</span>
-<a name="l00415"></a>00415 nobjs = cpl_frameset_get_size(objframes);
-<a name="l00416"></a>00416 cpl_msg_info(__func__,<span class="stringliteral">"Number of object frames: %d"</span>,nobjs);
-<a name="l00417"></a>00417 <span class="keywordflow">if</span> (hawki_step_compute_bkg_config.nmin_comb > nobjs)
-<a name="l00418"></a>00418 {
-<a name="l00419"></a>00419 <span class="comment">/* TODO: Support for masks in this case?? */</span>
-<a name="l00420"></a>00420 cpl_msg_info(__func__,
-<a name="l00421"></a>00421 <span class="stringliteral">"Number of obj frames min required for running median"</span>);
-<a name="l00422"></a>00422 cpl_msg_info(__func__, <span class="stringliteral">"Using simple median of object images"</span>);
-<a name="l00423"></a>00423 hawki_step_compute_bkg_from_objects_median_save
-<a name="l00424"></a>00424 (objframes, parlist, recipe_framelist);
-<a name="l00425"></a>00425 }
-<a name="l00426"></a>00426 <span class="keywordflow">else</span>
-<a name="l00427"></a>00427 {
-<a name="l00428"></a>00428 cpl_msg_info(__func__, <span class="stringliteral">"Using running median of object images"</span>);
-<a name="l00429"></a>00429 hawki_step_compute_bkg_from_objects_running_median_save
-<a name="l00430"></a>00430 (objframes, maskframes, offsetsframes,
-<a name="l00431"></a>00431 x_distortionframes, y_distortionframes,
-<a name="l00432"></a>00432 parlist, recipe_framelist);
-<a name="l00433"></a>00433 }
-<a name="l00434"></a>00434 <span class="keywordflow">if</span> (cpl_error_get_code())
-<a name="l00435"></a>00435 {
-<a name="l00436"></a>00436 cpl_msg_error(__func__,
-<a name="l00437"></a>00437 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
-<a name="l00438"></a>00438 <span class="keywordflow">return</span> -1 ;
-<a name="l00439"></a>00439 }
-<a name="l00440"></a>00440 <span class="keywordflow">return</span> 0;
-<a name="l00441"></a>00441 }
-<a name="l00442"></a>00442
-<a name="l00443"></a>00443 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00453"></a>00453 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00454"></a>00454 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_objects_median_save
-<a name="l00455"></a>00455 (cpl_frameset * objframes,
-<a name="l00456"></a>00456 cpl_parameterlist * recipe_parlist,
-<a name="l00457"></a>00457 cpl_frameset * recipe_framelist)
-<a name="l00458"></a>00458 {
-<a name="l00459"></a>00459 cpl_imagelist * bkg;
-<a name="l00460"></a>00460 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_compute_bkg"</span>;
-<a name="l00461"></a>00461
-<a name="l00462"></a>00462
-<a name="l00463"></a>00463 <span class="comment">/* Logging */</span>
-<a name="l00464"></a>00464 cpl_msg_info(__func__,<span class="stringliteral">"Computing background from median of object images"</span>);
-<a name="l00465"></a>00465
-<a name="l00466"></a>00466 <span class="comment">/* Allocating for the background image */</span>
-<a name="l00467"></a>00467 bkg = cpl_imagelist_new();
-<a name="l00468"></a>00468
-<a name="l00469"></a>00469 <span class="comment">/* Computing the background */</span>
-<a name="l00470"></a>00470 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__image__stats.html#ga364c91d30c968e6a15e403c11a5d281e" title="Computes the median of the object frames.">hawki_bkg_from_objects_median</a>(objframes, bkg) != 0)
-<a name="l00471"></a>00471 {
-<a name="l00472"></a>00472 cpl_msg_error(__func__,<span class="stringliteral">"Could not compute the median of objects"</span>);
-<a name="l00473"></a>00473 cpl_imagelist_delete(bkg);
-<a name="l00474"></a>00474 <span class="keywordflow">return</span> -1;
-<a name="l00475"></a>00475 }
-<a name="l00476"></a>00476
-<a name="l00477"></a>00477 <span class="comment">/* Save the products */</span>
-<a name="l00478"></a>00478 cpl_msg_info(__func__, <span class="stringliteral">"Saving the products"</span>) ;
-<a name="l00479"></a>00479 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__save.html#ga98c1ab4685617ddf7ea51d6e1337695d" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_imagelist_save</a>(recipe_framelist,
-<a name="l00480"></a>00480 recipe_parlist,
-<a name="l00481"></a>00481 objframes,
-<a name="l00482"></a>00482 (<span class="keyword">const</span> cpl_imagelist *)bkg,
-<a name="l00483"></a>00483 recipe_name,
-<a name="l00484"></a>00484 HAWKI_CALPRO_BKGIMAGE,
-<a name="l00485"></a>00485 HAWKI_PROTYPE_BKGIMAGE,
-<a name="l00486"></a>00486 NULL,
-<a name="l00487"></a>00487 NULL,
-<a name="l00488"></a>00488 <span class="stringliteral">"hawki_step_compute_bkg_01.fits"</span>) != CPL_ERROR_NONE)
-<a name="l00489"></a>00489 {
-<a name="l00490"></a>00490 cpl_msg_warning(__func__,<span class="stringliteral">"Some data could not be saved. "</span>
-<a name="l00491"></a>00491 <span class="stringliteral">"Check permisions or disk space"</span>);
-<a name="l00492"></a>00492 }
-<a name="l00493"></a>00493
-<a name="l00494"></a>00494 <span class="comment">/* Free and return */</span>
-<a name="l00495"></a>00495 cpl_imagelist_delete(bkg);
-<a name="l00496"></a>00496 <span class="keywordflow">return</span> 0;
-<a name="l00497"></a>00497 }
-<a name="l00498"></a>00498
-<a name="l00499"></a>00499 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00509"></a>00509 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00510"></a>00510 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_sky_median_save
-<a name="l00511"></a>00511 (cpl_frameset * skyframes,
-<a name="l00512"></a>00512 cpl_parameterlist * recipe_parlist,
-<a name="l00513"></a>00513 cpl_frameset * recipe_framelist)
-<a name="l00514"></a>00514 {
-<a name="l00515"></a>00515 cpl_imagelist * bkg;
-<a name="l00516"></a>00516 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_compute_bkg"</span>;
-<a name="l00517"></a>00517
-<a name="l00518"></a>00518 <span class="comment">/* Logging */</span>
-<a name="l00519"></a>00519 cpl_msg_info(__func__,<span class="stringliteral">"Computing background from sky images"</span>);
-<a name="l00520"></a>00520
-<a name="l00521"></a>00521 <span class="comment">/* Allocating for the background image */</span>
-<a name="l00522"></a>00522 bkg = cpl_imagelist_new();
-<a name="l00523"></a>00523
-<a name="l00524"></a>00524 <span class="comment">/* Computing the background */</span>
-<a name="l00525"></a>00525 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__image__stats.html#ga01f0d4c0177325b9a5d33f83be498097" title="Computes the median of the sky frames.">hawki_bkg_from_sky_median</a>(skyframes, bkg)!= 0)
-<a name="l00526"></a>00526 {
-<a name="l00527"></a>00527 cpl_msg_error(__func__,<span class="stringliteral">"Could not compute the median of sky images"</span>);
-<a name="l00528"></a>00528 cpl_imagelist_delete(bkg);
-<a name="l00529"></a>00529 <span class="keywordflow">return</span> -1;
-<a name="l00530"></a>00530 }
-<a name="l00531"></a>00531
-<a name="l00532"></a>00532 <span class="comment">/* Save the products */</span>
-<a name="l00533"></a>00533 cpl_msg_info(__func__, <span class="stringliteral">"Saving the products"</span>) ;
-<a name="l00534"></a>00534 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__save.html#ga98c1ab4685617ddf7ea51d6e1337695d" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_imagelist_save</a>(recipe_framelist,
-<a name="l00535"></a>00535 recipe_parlist,
-<a name="l00536"></a>00536 skyframes,
-<a name="l00537"></a>00537 (<span class="keyword">const</span> cpl_imagelist *)bkg,
-<a name="l00538"></a>00538 recipe_name,
-<a name="l00539"></a>00539 HAWKI_CALPRO_BKGIMAGE,
-<a name="l00540"></a>00540 HAWKI_PROTYPE_BKGIMAGE,
-<a name="l00541"></a>00541 NULL,
-<a name="l00542"></a>00542 NULL,
-<a name="l00543"></a>00543 <span class="stringliteral">"hawki_step_compute_bkg_01.fits"</span>) != CPL_ERROR_NONE)
-<a name="l00544"></a>00544 {
-<a name="l00545"></a>00545 cpl_msg_warning(__func__,<span class="stringliteral">"Some data could not be saved. "</span>
-<a name="l00546"></a>00546 <span class="stringliteral">"Check permisions or disk space"</span>);
-<a name="l00547"></a>00547 }
-<a name="l00548"></a>00548
-<a name="l00549"></a>00549 <span class="comment">/* Free and return */</span>
-<a name="l00550"></a>00550 cpl_imagelist_delete(bkg);
-<a name="l00551"></a>00551 <span class="keywordflow">return</span> 0;
-<a name="l00552"></a>00552 }
-<a name="l00553"></a>00553
-<a name="l00554"></a>00554 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_from_objects_running_median_save
-<a name="l00555"></a>00555 (cpl_frameset * objframes,
-<a name="l00556"></a>00556 cpl_frameset * maskframes,
-<a name="l00557"></a>00557 cpl_frameset * offsetframes,
-<a name="l00558"></a>00558 cpl_frameset * x_distortionframes,
-<a name="l00559"></a>00559 cpl_frameset * y_distortionframes,
-<a name="l00560"></a>00560 cpl_parameterlist * recipe_parlist,
-<a name="l00561"></a>00561 cpl_frameset * recipe_framelist)
-<a name="l00562"></a>00562 {
-<a name="l00563"></a>00563
-<a name="l00564"></a>00564 <span class="comment">/* Logging */</span>
-<a name="l00565"></a>00565 cpl_msg_info(__func__,<span class="stringliteral">"Computing background from running mean of objects"</span>);
-<a name="l00566"></a>00566 cpl_msg_indent_more();
-<a name="l00567"></a>00567
-<a name="l00568"></a>00568 <span class="comment">/* Actually calling the functions that computes all the background */</span>
-<a name="l00569"></a>00569 <span class="keywordflow">if</span>(maskframes == NULL)
-<a name="l00570"></a>00570 {
-<a name="l00571"></a>00571 cpl_msg_info(__func__,<span class="stringliteral">"Not using masked objects"</span>);
-<a name="l00572"></a>00572 <span class="keywordflow">if</span>(hawki_step_compute_bkg_from_running_median_nonmasked_save
-<a name="l00573"></a>00573 (objframes,
-<a name="l00574"></a>00574 hawki_step_compute_bkg_config.nhalf_window,
-<a name="l00575"></a>00575 hawki_step_compute_bkg_config.rejlow,
-<a name="l00576"></a>00576 hawki_step_compute_bkg_config.rejhigh,
-<a name="l00577"></a>00577 recipe_framelist,
-<a name="l00578"></a>00578 recipe_parlist) !=0)
-<a name="l00579"></a>00579 {
-<a name="l00580"></a>00580 cpl_msg_error(__func__,<span class="stringliteral">"Could not compute objects running median"</span>);
-<a name="l00581"></a>00581 <span class="keywordflow">return</span> -1;
-<a name="l00582"></a>00582 }
-<a name="l00583"></a>00583 }
-<a name="l00584"></a>00584 <span class="keywordflow">else</span>
-<a name="l00585"></a>00585 {
-<a name="l00586"></a>00586 cpl_frame * maskframe;
-<a name="l00587"></a>00587 cpl_bivector ** offsets; <span class="comment">/* Detector order */</span>
-<a name="l00588"></a>00588 cpl_frame * x_distortionframe;
-<a name="l00589"></a>00589 cpl_frame * y_distortionframe;
-<a name="l00590"></a>00590 <span class="keywordtype">int</span> idet;
-<a name="l00591"></a>00591
-<a name="l00592"></a>00592 cpl_msg_info(__func__,<span class="stringliteral">"Using masked objects"</span>);
-<a name="l00593"></a>00593
-<a name="l00594"></a>00594 maskframe = cpl_frameset_get_first(maskframes);
-<a name="l00595"></a>00595 <span class="keywordflow">if</span>(x_distortionframes == NULL && y_distortionframes == NULL )
-<a name="l00596"></a>00596 {
-<a name="l00597"></a>00597 x_distortionframe = NULL;
-<a name="l00598"></a>00598 y_distortionframe = NULL;
-<a name="l00599"></a>00599 }
-<a name="l00600"></a>00600 <span class="keywordflow">else</span>
-<a name="l00601"></a>00601 {
-<a name="l00602"></a>00602 x_distortionframe = cpl_frameset_get_first(x_distortionframes);
-<a name="l00603"></a>00603 y_distortionframe = cpl_frameset_get_first(y_distortionframes);
-<a name="l00604"></a>00604 }
-<a name="l00605"></a>00605
-<a name="l00606"></a>00606 <span class="comment">/* Get the offsets */</span>
-<a name="l00607"></a>00607 <span class="keywordflow">if</span>(offsetframes == NULL)
-<a name="l00608"></a>00608 {
-<a name="l00609"></a>00609 cpl_bivector * offsets_all_chips;
-<a name="l00610"></a>00610
-<a name="l00611"></a>00611 cpl_msg_info(__func__,<span class="stringliteral">"Using header nominal offsets"</span>);
-<a name="l00612"></a>00612 offsets_all_chips = <a class="code" href="group__hawki__utils.html#ga4c2e0ffe688ffdfd93f0d61c60ac91fd" title="Get the nominal header offsets from a set of frames.">hawki_get_header_tel_offsets</a>(objframes);
-<a name="l00613"></a>00613 <span class="keywordflow">if</span> (offsets_all_chips == NULL)
-<a name="l00614"></a>00614 {
-<a name="l00615"></a>00615 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load the header offsets"</span>);
-<a name="l00616"></a>00616 <span class="keywordflow">return</span> -1;
-<a name="l00617"></a>00617 }
-<a name="l00618"></a>00618 offsets = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_bivector *));
-<a name="l00619"></a>00619 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
-<a name="l00620"></a>00620 {
-<a name="l00621"></a>00621 offsets[idet] = cpl_bivector_duplicate(offsets_all_chips);
-<a name="l00622"></a>00622 <span class="comment">/* Get the oposite offsets. This is to change from </span>
-<a name="l00623"></a>00623 <span class="comment"> * telescope convention to cpl convention */</span>
-<a name="l00624"></a>00624 cpl_vector_multiply_scalar
-<a name="l00625"></a>00625 (cpl_bivector_get_x(offsets[idet]), -1.0);
-<a name="l00626"></a>00626 cpl_vector_multiply_scalar
-<a name="l00627"></a>00627 (cpl_bivector_get_y(offsets[idet]), -1.0);
-<a name="l00628"></a>00628 }
-<a name="l00629"></a>00629 cpl_bivector_delete(offsets_all_chips);
-<a name="l00630"></a>00630 }
-<a name="l00631"></a>00631 <span class="keywordflow">else</span>
-<a name="l00632"></a>00632 {
-<a name="l00633"></a>00633 cpl_msg_info(__func__,<span class="stringliteral">"Using refined offsets"</span>);
-<a name="l00634"></a>00634 offsets = <a class="code" href="group__hawki__load.html#gaf91b09d357b426f387123767e4a4fec1" title="Load a table containing refined offsets.">hawki_load_refined_offsets</a>
-<a name="l00635"></a>00635 (cpl_frameset_get_first(offsetframes));
-<a name="l00636"></a>00636 <span class="keywordflow">if</span>(offsets == NULL)
-<a name="l00637"></a>00637 {
-<a name="l00638"></a>00638 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load the refined offsets"</span>);
-<a name="l00639"></a>00639 <span class="keywordflow">return</span> -1;
-<a name="l00640"></a>00640 }
-<a name="l00641"></a>00641 }
-<a name="l00642"></a>00642
-<a name="l00643"></a>00643 <span class="keywordflow">if</span>(hawki_step_compute_bkg_from_running_median_masked_save
-<a name="l00644"></a>00644 (objframes,
-<a name="l00645"></a>00645 maskframe,
-<a name="l00646"></a>00646 offsets,
-<a name="l00647"></a>00647 x_distortionframe,
-<a name="l00648"></a>00648 y_distortionframe,
-<a name="l00649"></a>00649 hawki_step_compute_bkg_config.nhalf_window,
-<a name="l00650"></a>00650 hawki_step_compute_bkg_config.rejlow,
-<a name="l00651"></a>00651 hawki_step_compute_bkg_config.rejhigh,
-<a name="l00652"></a>00652 recipe_framelist,
-<a name="l00653"></a>00653 recipe_parlist) !=0)
-<a name="l00654"></a>00654 {
-<a name="l00655"></a>00655 cpl_msg_error(__func__,<span class="stringliteral">"Could not compute objects running median"</span>);
-<a name="l00656"></a>00656 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
-<a name="l00657"></a>00657 cpl_bivector_delete(offsets[idet]);
-<a name="l00658"></a>00658 cpl_free(offsets);
-<a name="l00659"></a>00659 cpl_msg_indent_less();
-<a name="l00660"></a>00660 <span class="keywordflow">return</span> -1;
-<a name="l00661"></a>00661 }
-<a name="l00662"></a>00662
-<a name="l00663"></a>00663 <span class="comment">/* Free */</span>
-<a name="l00664"></a>00664 <span class="keywordflow">for</span>(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
-<a name="l00665"></a>00665 cpl_bivector_delete(offsets[idet]);
-<a name="l00666"></a>00666 cpl_free(offsets);
-<a name="l00667"></a>00667 }
-<a name="l00668"></a>00668 cpl_msg_indent_less();
-<a name="l00669"></a>00669
-<a name="l00670"></a>00670
-<a name="l00671"></a>00671 <span class="comment">/* Freeing and exit */</span>
-<a name="l00672"></a>00672 <span class="keywordflow">return</span> 0;
-<a name="l00673"></a>00673 }
-<a name="l00674"></a>00674
-<a name="l00675"></a>00675 <span class="keywordtype">int</span> hawki_step_compute_bkg_from_running_median_nonmasked_save
-<a name="l00676"></a>00676 (<span class="keyword">const</span> cpl_frameset * objframes,
-<a name="l00677"></a>00677 <span class="keywordtype">int</span> nhalf_window,
-<a name="l00678"></a>00678 <span class="keywordtype">int</span> rejlow,
-<a name="l00679"></a>00679 <span class="keywordtype">int</span> rejhigh,
-<a name="l00680"></a>00680 cpl_frameset * recipe_framelist,
-<a name="l00681"></a>00681 cpl_parameterlist * recipe_parlist)
-<a name="l00682"></a>00682 {
-<a name="l00683"></a>00683 <span class="keywordtype">int</span> iext;
-<a name="l00684"></a>00684 <span class="keywordtype">int</span> iobj;
-<a name="l00685"></a>00685 <span class="keywordtype">int</span> nobj;
-<a name="l00686"></a>00686 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_compute_bkg"</span>;
-<a name="l00687"></a>00687 cpl_errorstate error_prevstate = cpl_errorstate_get();
-<a name="l00688"></a>00688
-<a name="l00689"></a>00689 <span class="comment">/* Preparing the files to save */</span>
-<a name="l00690"></a>00690 cpl_msg_info(__func__,<span class="stringliteral">"Preparing the output files"</span>);
-<a name="l00691"></a>00691 nobj = cpl_frameset_get_size(objframes);
-<a name="l00692"></a>00692 <span class="keywordflow">for</span> (iobj=0 ; iobj<nobj ; ++iobj)
-<a name="l00693"></a>00693 {
-<a name="l00694"></a>00694 cpl_frameset * used_frameset;
-<a name="l00695"></a>00695 <span class="keyword">const</span> cpl_frame * target_frame;
-<a name="l00696"></a>00696 <span class="keywordtype">char</span> filename[256];
-<a name="l00697"></a>00697 snprintf(filename, 256, <span class="stringliteral">"hawki_step_compute_bkg_%03d.fits"</span>, iobj + 1);
-<a name="l00698"></a>00698 target_frame = cpl_frameset_get_frame_const(objframes, iobj);
-<a name="l00699"></a>00699 used_frameset = cpl_frameset_new();
-<a name="l00700"></a>00700 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(target_frame));
-<a name="l00701"></a>00701 <a class="code" href="group__hawki__save.html#gaebd68d7422dd13901e999db3c951bd54" title="Save a main header and prepare it to store additional data units later on.">hawki_main_header_save</a>(recipe_framelist,
-<a name="l00702"></a>00702 recipe_parlist,
-<a name="l00703"></a>00703 used_frameset,
-<a name="l00704"></a>00704 recipe_name,
-<a name="l00705"></a>00705 HAWKI_CALPRO_BKGIMAGE,
-<a name="l00706"></a>00706 HAWKI_PROTYPE_BKGIMAGE,
-<a name="l00707"></a>00707 NULL,
-<a name="l00708"></a>00708 filename);
-<a name="l00709"></a>00709 snprintf(filename, 256, <span class="stringliteral">"hawki_step_compute_bkg_bpm_%03d.fits"</span>, iobj + 1);
-<a name="l00710"></a>00710 <a class="code" href="group__hawki__save.html#gaebd68d7422dd13901e999db3c951bd54" title="Save a main header and prepare it to store additional data units later on.">hawki_main_header_save</a>(recipe_framelist,
-<a name="l00711"></a>00711 recipe_parlist,
-<a name="l00712"></a>00712 used_frameset,
-<a name="l00713"></a>00713 recipe_name,
-<a name="l00714"></a>00714 HAWKI_CALPRO_BKGBPM,
-<a name="l00715"></a>00715 HAWKI_PROTYPE_BKGBPM,
-<a name="l00716"></a>00716 NULL,
-<a name="l00717"></a>00717 filename);
-<a name="l00718"></a>00718 cpl_frameset_delete(used_frameset);
-<a name="l00719"></a>00719 }
-<a name="l00720"></a>00720
-<a name="l00721"></a>00721 <span class="comment">/* Loop on extensions */</span>
-<a name="l00722"></a>00722 cpl_msg_indent_more();
-<a name="l00723"></a>00723 <span class="keywordflow">for</span>(iext = 0; iext < HAWKI_NB_DETECTORS; ++iext)
-<a name="l00724"></a>00724 {
-<a name="l00725"></a>00725 cpl_imagelist * img_serie;
-<a name="l00726"></a>00726 cpl_vector * medians;
-<a name="l00727"></a>00727
-<a name="l00728"></a>00728 <span class="comment">/* Info message */</span>
-<a name="l00729"></a>00729 cpl_msg_info(__func__,<span class="stringliteral">"Working on extension %d"</span>, iext + 1);
-<a name="l00730"></a>00730
-<a name="l00731"></a>00731 <span class="comment">/* Loading the object frame */</span>
-<a name="l00732"></a>00732 img_serie = <a class="code" href="group__hawki__load.html#ga1cf51c1b905de7941d7fcf3e249e536d" title="Loads a given extension from a HAWKI frameset in an image list.">hawki_load_extensions</a>(objframes, iext + 1, CPL_TYPE_FLOAT);
-<a name="l00733"></a>00733 <span class="keywordflow">if</span>(img_serie== NULL)
-<a name="l00734"></a>00734 {
-<a name="l00735"></a>00735 cpl_msg_error(__func__, <span class="stringliteral">"Error reading object image"</span>) ;
-<a name="l00736"></a>00736 <span class="keywordflow">return</span> -1;
-<a name="l00737"></a>00737 }
-<a name="l00738"></a>00738
-<a name="l00739"></a>00739 <span class="comment">/* Pre-compute median value in each plane */</span>
-<a name="l00740"></a>00740 medians = cpl_vector_new(nobj);
-<a name="l00741"></a>00741 <span class="keywordflow">for</span> (iobj=0 ; iobj<nobj ; iobj++)
-<a name="l00742"></a>00742 {
-<a name="l00743"></a>00743 cpl_vector_set
-<a name="l00744"></a>00744 (medians,
-<a name="l00745"></a>00745 iobj,
-<a name="l00746"></a>00746 cpl_image_get_median(cpl_imagelist_get(img_serie, iobj))) ;
-<a name="l00747"></a>00747 }
-<a name="l00748"></a>00748
-<a name="l00749"></a>00749 cpl_msg_indent_more();
-<a name="l00750"></a>00750 <span class="keywordflow">for</span>(iobj = 0 ; iobj < nobj ; ++iobj)
-<a name="l00751"></a>00751 {
-<a name="l00752"></a>00752 <span class="keywordtype">int</span> nx;
-<a name="l00753"></a>00753 <span class="keywordtype">int</span> ny;
-<a name="l00754"></a>00754 cpl_image * this_bkg_image;
-<a name="l00755"></a>00755 cpl_image * this_bkg_image_mask;
-<a name="l00756"></a>00756 <span class="keywordtype">char</span> filename[256];
-<a name="l00757"></a>00757
-<a name="l00758"></a>00758 <span class="comment">/* Info message */</span>
-<a name="l00759"></a>00759 cpl_msg_info(__func__,<span class="stringliteral">"Computing bkg for image %d"</span>, iobj + 1);
-<a name="l00760"></a>00760
-<a name="l00761"></a>00761 <span class="comment">/* Creates the background image */</span>
-<a name="l00762"></a>00762 nx = cpl_image_get_size_x(cpl_imagelist_get(img_serie, 0));
-<a name="l00763"></a>00763 ny = cpl_image_get_size_y(cpl_imagelist_get(img_serie, 0));
-<a name="l00764"></a>00764 this_bkg_image = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
-<a name="l00765"></a>00765
-<a name="l00766"></a>00766 <span class="comment">/* Actually computing the running mean */</span>
-<a name="l00767"></a>00767 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__image__stats.html#ga5c5f3ead9c1f168f90e1b8bd42dd07af" title="Computes the running mean for a set of object images using their masks.">hawki_bkg_from_running_mean_detector</a>
-<a name="l00768"></a>00768 (img_serie,
-<a name="l00769"></a>00769 medians,
-<a name="l00770"></a>00770 iobj,
-<a name="l00771"></a>00771 nhalf_window,
-<a name="l00772"></a>00772 rejlow,
-<a name="l00773"></a>00773 rejhigh,
-<a name="l00774"></a>00774 this_bkg_image) != 0)
-<a name="l00775"></a>00775 {
-<a name="l00776"></a>00776 cpl_msg_error(__func__, <span class="stringliteral">"Cannot compute bkg"</span>);
-<a name="l00777"></a>00777 cpl_vector_delete(medians);
-<a name="l00778"></a>00778 cpl_imagelist_delete(img_serie);
-<a name="l00779"></a>00779 cpl_image_delete(this_bkg_image);
-<a name="l00780"></a>00780 <span class="keywordflow">return</span> -1;
-<a name="l00781"></a>00781 }
-<a name="l00782"></a>00782
-<a name="l00783"></a>00783 <span class="comment">/* Save the extension bad pixel mask */</span>
-<a name="l00784"></a>00784 this_bkg_image_mask =
-<a name="l00785"></a>00785 cpl_image_new_from_mask(cpl_image_get_bpm(this_bkg_image));
-<a name="l00786"></a>00786 snprintf(filename, 256, <span class="stringliteral">"hawki_step_compute_bkg_bpm_%03d.fits"</span>,iobj +1);
-<a name="l00787"></a>00787 <a class="code" href="group__hawki__save.html#gab2873c1ec09ba834aaa284f003bc6acc" title="Save an image into a given extension.">hawki_image_ext_save</a>
-<a name="l00788"></a>00788 (objframes,
-<a name="l00789"></a>00789 this_bkg_image_mask,
-<a name="l00790"></a>00790 iext + 1,
-<a name="l00791"></a>00791 NULL,
-<a name="l00792"></a>00792 filename);
-<a name="l00793"></a>00793
-<a name="l00794"></a>00794 <span class="comment">/* Interpolate bad pixels */</span>
-<a name="l00795"></a>00795 hawki_step_compute_bkg_interpolate_badpix(this_bkg_image);
-<a name="l00796"></a>00796
-<a name="l00797"></a>00797 <span class="comment">/* Save this extension */</span>
-<a name="l00798"></a>00798 snprintf(filename, 256, <span class="stringliteral">"hawki_step_compute_bkg_%03d.fits"</span>,iobj +1);
-<a name="l00799"></a>00799 <a class="code" href="group__hawki__save.html#gab2873c1ec09ba834aaa284f003bc6acc" title="Save an image into a given extension.">hawki_image_ext_save</a>
-<a name="l00800"></a>00800 (objframes,
-<a name="l00801"></a>00801 this_bkg_image,
-<a name="l00802"></a>00802 iext + 1,
-<a name="l00803"></a>00803 NULL,
-<a name="l00804"></a>00804 filename);
-<a name="l00805"></a>00805
-<a name="l00806"></a>00806 <span class="comment">/* Free */</span>
-<a name="l00807"></a>00807 cpl_image_delete(this_bkg_image);
-<a name="l00808"></a>00808 cpl_image_delete(this_bkg_image_mask);
-<a name="l00809"></a>00809 }
-<a name="l00810"></a>00810 cpl_msg_indent_less();
-<a name="l00811"></a>00811
-<a name="l00812"></a>00812 <span class="comment">/* Freeing */</span>
-<a name="l00813"></a>00813 cpl_vector_delete(medians);
-<a name="l00814"></a>00814 cpl_imagelist_delete(img_serie);
-<a name="l00815"></a>00815 }
-<a name="l00816"></a>00816 cpl_msg_indent_less();
-<a name="l00817"></a>00817 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
-<a name="l00818"></a>00818 {
-<a name="l00819"></a>00819 cpl_msg_warning(__func__,<span class="stringliteral">"Probably some data could not be saved. "</span>
-<a name="l00820"></a>00820 <span class="stringliteral">"Check permisions or disk space"</span>);
-<a name="l00821"></a>00821 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l00822"></a>00822 <span class="keywordflow">return</span> 1;
-<a name="l00823"></a>00823 }
-<a name="l00824"></a>00824 <span class="keywordflow">return</span> 0;
-<a name="l00825"></a>00825 }
-<a name="l00826"></a>00826
-<a name="l00827"></a>00827 <span class="keywordtype">int</span> hawki_step_compute_bkg_from_running_median_masked_save
-<a name="l00828"></a>00828 (<span class="keyword">const</span> cpl_frameset * objframes,
-<a name="l00829"></a>00829 cpl_frame * maskframe,
-<a name="l00830"></a>00830 cpl_bivector ** offsets,
-<a name="l00831"></a>00831 cpl_frame * x_distortionframe,
-<a name="l00832"></a>00832 cpl_frame * y_distortionframe,
-<a name="l00833"></a>00833 <span class="keywordtype">int</span> nhalf_window,
-<a name="l00834"></a>00834 <span class="keywordtype">int</span> rejlow,
-<a name="l00835"></a>00835 <span class="keywordtype">int</span> rejhigh,
-<a name="l00836"></a>00836 cpl_frameset * recipe_framelist,
-<a name="l00837"></a>00837 cpl_parameterlist * recipe_parlist)
-<a name="l00838"></a>00838 {
-<a name="l00839"></a>00839 <span class="keywordtype">int</span> iext; <span class="comment">/* 0 to HAWKI_NB_DETECTORS-1 */</span>
-<a name="l00840"></a>00840 <span class="keywordtype">int</span> idet; <span class="comment">/* 1 to HAWKI_NB_DETECTORS */</span>
-<a name="l00841"></a>00841 <span class="keywordtype">int</span> iobj; <span class="comment">/* 0 to obj-1 */</span>
-<a name="l00842"></a>00842 <span class="keywordtype">int</span> nobj;
-<a name="l00843"></a>00843 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_compute_bkg"</span>;
-<a name="l00844"></a>00844 cpl_errorstate error_prevstate = cpl_errorstate_get();
-<a name="l00845"></a>00845 cpl_frameset * calib_frameset;
-<a name="l00846"></a>00846
-<a name="l00847"></a>00847
-<a name="l00848"></a>00848 <span class="comment">//Add all the used frames</span>
-<a name="l00849"></a>00849 calib_frameset = cpl_frameset_new();
-<a name="l00850"></a>00850 cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(maskframe));
-<a name="l00851"></a>00851 <span class="keywordflow">if</span>(x_distortionframe != NULL)
-<a name="l00852"></a>00852 cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(x_distortionframe));
-<a name="l00853"></a>00853 <span class="keywordflow">if</span>(y_distortionframe != NULL)
-<a name="l00854"></a>00854 cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(y_distortionframe));
-<a name="l00855"></a>00855
-<a name="l00856"></a>00856 <span class="comment">/* Preparing the files to save */</span>
-<a name="l00857"></a>00857 cpl_msg_info(__func__,<span class="stringliteral">"Preparing the final files"</span>);
-<a name="l00858"></a>00858 nobj = cpl_frameset_get_size(objframes);
-<a name="l00859"></a>00859 <span class="keywordflow">for</span> (iobj=0 ; iobj<nobj ; ++iobj)
-<a name="l00860"></a>00860 {
-<a name="l00861"></a>00861 cpl_frameset * used_frameset;
-<a name="l00862"></a>00862 <span class="keyword">const</span> cpl_frame * target_frame;
-<a name="l00863"></a>00863 <span class="keywordtype">char</span> filename[256];
-<a name="l00864"></a>00864 snprintf(filename, 256, <span class="stringliteral">"hawki_step_compute_bkg_%03d.fits"</span>, iobj + 1);
-<a name="l00865"></a>00865 target_frame = cpl_frameset_get_frame_const(objframes, iobj);
-<a name="l00866"></a>00866 used_frameset = cpl_frameset_duplicate(calib_frameset);
-<a name="l00867"></a>00867 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(target_frame));
-<a name="l00868"></a>00868 cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(maskframe));
-<a name="l00869"></a>00869 <a class="code" href="group__hawki__save.html#gaebd68d7422dd13901e999db3c951bd54" title="Save a main header and prepare it to store additional data units later on.">hawki_main_header_save</a>(recipe_framelist,
-<a name="l00870"></a>00870 recipe_parlist,
-<a name="l00871"></a>00871 used_frameset,
-<a name="l00872"></a>00872 recipe_name,
-<a name="l00873"></a>00873 HAWKI_CALPRO_BKGIMAGE,
-<a name="l00874"></a>00874 HAWKI_PROTYPE_BKGIMAGE,
-<a name="l00875"></a>00875 NULL,
-<a name="l00876"></a>00876 filename);
-<a name="l00877"></a>00877 snprintf(filename, 256, <span class="stringliteral">"hawki_step_compute_bkg_bpm_%03d.fits"</span>, iobj + 1);
-<a name="l00878"></a>00878 <a class="code" href="group__hawki__save.html#gaebd68d7422dd13901e999db3c951bd54" title="Save a main header and prepare it to store additional data units later on.">hawki_main_header_save</a>(recipe_framelist,
-<a name="l00879"></a>00879 recipe_parlist,
-<a name="l00880"></a>00880 used_frameset,
-<a name="l00881"></a>00881 recipe_name,
-<a name="l00882"></a>00882 HAWKI_CALPRO_BKGBPM,
-<a name="l00883"></a>00883 HAWKI_PROTYPE_BKGBPM,
-<a name="l00884"></a>00884 NULL,
-<a name="l00885"></a>00885 filename);
-<a name="l00886"></a>00886 cpl_frameset_delete(used_frameset);
-<a name="l00887"></a>00887 }
-<a name="l00888"></a>00888 cpl_frameset_delete(calib_frameset);
-<a name="l00889"></a>00889
-<a name="l00890"></a>00890 <span class="comment">/* Loop on extensions */</span>
-<a name="l00891"></a>00891 cpl_msg_indent_more();
-<a name="l00892"></a>00892 <span class="keywordflow">for</span>(iext = 0; iext < HAWKI_NB_DETECTORS; ++iext)
-<a name="l00893"></a>00893 {
-<a name="l00894"></a>00894 cpl_imagelist * img_serie;
-<a name="l00895"></a>00895 cpl_vector * medians;
-<a name="l00896"></a>00896 cpl_image * mask;
-<a name="l00897"></a>00897 hawki_distortion * inv_distortion = NULL;
-<a name="l00898"></a>00898 cpl_propertylist * prop_list;
-<a name="l00899"></a>00899 cpl_image * dist_x = NULL;
-<a name="l00900"></a>00900 cpl_image * dist_y = NULL;
-<a name="l00901"></a>00901 <span class="keywordtype">double</span> mask_off_x;
-<a name="l00902"></a>00902 <span class="keywordtype">double</span> mask_off_y;
-<a name="l00903"></a>00903
-<a name="l00904"></a>00904 cpl_msg_info(__func__,<span class="stringliteral">"Working on extension %d"</span>, iext + 1);
-<a name="l00905"></a>00905 cpl_msg_indent_more();
-<a name="l00906"></a>00906
-<a name="l00907"></a>00907 <span class="comment">/* Loading the object frames */</span>
-<a name="l00908"></a>00908 img_serie = <a class="code" href="group__hawki__load.html#ga1cf51c1b905de7941d7fcf3e249e536d" title="Loads a given extension from a HAWKI frameset in an image list.">hawki_load_extensions</a>(objframes, iext + 1, CPL_TYPE_FLOAT);
-<a name="l00909"></a>00909 <span class="keywordflow">if</span>(img_serie== NULL)
-<a name="l00910"></a>00910 {
-<a name="l00911"></a>00911 cpl_msg_error(__func__, <span class="stringliteral">"Error reading object image"</span>) ;
-<a name="l00912"></a>00912 cpl_msg_indent_less();
-<a name="l00913"></a>00913 <span class="keywordflow">return</span> -1;
-<a name="l00914"></a>00914 }
-<a name="l00915"></a>00915 nobj = cpl_imagelist_get_size(img_serie);
-<a name="l00916"></a>00916
-<a name="l00917"></a>00917 <span class="comment">/* Loading the mask frame */</span>
-<a name="l00918"></a>00918 mask = <a class="code" href="group__hawki__load.html#ga43ebac74ab2f9da7a452f23ec76803ef" title="Load one the extensions of HAWKI images from a frame into an image.">hawki_load_frame_extension</a>(maskframe, iext + 1, CPL_TYPE_FLOAT);
-<a name="l00919"></a>00919 <span class="keywordflow">if</span>(mask == NULL)
-<a name="l00920"></a>00920 {
-<a name="l00921"></a>00921 cpl_msg_error(__func__, <span class="stringliteral">"Error reading mask image"</span>);
-<a name="l00922"></a>00922 cpl_msg_indent_less();
-<a name="l00923"></a>00923 cpl_msg_indent_less();
-<a name="l00924"></a>00924 <span class="keywordflow">return</span> -1;
-<a name="l00925"></a>00925 }
-<a name="l00926"></a>00926 idet =
-<a name="l00927"></a>00927 <a class="code" href="group__hawki__load.html#gac57166de157def8422f2e7e2d12dd756" title="Get the chip to store in the wished extension.">hawki_get_detector_from_ext</a>(cpl_frame_get_filename(maskframe), iext+1);
-<a name="l00928"></a>00928 prop_list =
-<a name="l00929"></a>00929 cpl_propertylist_load(cpl_frame_get_filename(maskframe), iext + 1);
-<a name="l00930"></a>00930 mask_off_x = <a class="code" href="group__hawki__pfits.html#ga24483514187ce9bcf0860cc654b8508c" title="find out the cumulative X offset of the combined image">hawki_pfits_get_comb_cumoffsetx</a>(prop_list);
-<a name="l00931"></a>00931 mask_off_y = <a class="code" href="group__hawki__pfits.html#gadc1b3f141f5474486b5b32502634b29a" title="find out the cumulative Y offset of the combined image">hawki_pfits_get_comb_cumoffsety</a>(prop_list);
-<a name="l00932"></a>00932 <span class="comment">/* Change the offsets to cpl convention */</span>
-<a name="l00933"></a>00933 mask_off_x *= -1;
-<a name="l00934"></a>00934 mask_off_y *= -1;
-<a name="l00935"></a>00935 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(CPL_ERROR_NONE))
-<a name="l00936"></a>00936 {
-<a name="l00937"></a>00937 cpl_msg_error(__func__,<span class="stringliteral">"Could not get the offsets from mask file.\n"</span>
-<a name="l00938"></a>00938 <span class="stringliteral">"Keywords %s are missing"</span>,<span class="stringliteral">"ESO QC COMBINED CUMOFFSET{X,Y}"</span>);
-<a name="l00939"></a>00939 cpl_imagelist_delete(img_serie);
-<a name="l00940"></a>00940 cpl_image_delete(mask);
-<a name="l00941"></a>00941 cpl_msg_indent_less();
-<a name="l00942"></a>00942 cpl_msg_indent_less();
-<a name="l00943"></a>00943 cpl_propertylist_delete(prop_list);
-<a name="l00944"></a>00944 <span class="keywordflow">return</span> -1;
-<a name="l00945"></a>00945 }
-<a name="l00946"></a>00946 cpl_msg_info(__func__,<span class="stringliteral">"Mask offsets: %f %f"</span>, mask_off_x, mask_off_y);
-<a name="l00947"></a>00947
-<a name="l00948"></a>00948 <span class="keywordflow">if</span>(x_distortionframe != NULL && y_distortionframe != NULL)
-<a name="l00949"></a>00949 {
-<a name="l00950"></a>00950 <span class="keywordtype">int</span> nx;
-<a name="l00951"></a>00951 <span class="keywordtype">int</span> ny;
-<a name="l00952"></a>00952
-<a name="l00953"></a>00953 <span class="comment">/* Load the distortion */</span>
-<a name="l00954"></a>00954 <span class="keywordflow">if</span> ((inv_distortion = <a class="code" href="group__hawki__distortion.html#gab9c3ebd02585f319d08b5149b44528e7" title="Loads the distortion solution for one detector.">hawki_distortion_load</a>
-<a name="l00955"></a>00955 (x_distortionframe, y_distortionframe, idet)) == NULL)
-<a name="l00956"></a>00956 {
-<a name="l00957"></a>00957 cpl_imagelist_delete(img_serie);
-<a name="l00958"></a>00958 cpl_propertylist_delete(prop_list);
-<a name="l00959"></a>00959 cpl_image_delete(mask);
-<a name="l00960"></a>00960 cpl_msg_error(__func__,
-<a name="l00961"></a>00961 <span class="stringliteral">"Cannot load distortion for chip %d"</span>,idet);
-<a name="l00962"></a>00962 cpl_msg_indent_less();
-<a name="l00963"></a>00963 cpl_msg_indent_less();
-<a name="l00964"></a>00964 <span class="keywordflow">return</span> -1 ;
-<a name="l00965"></a>00965 }
-<a name="l00966"></a>00966 <span class="comment">/* Multiply distortion by -1, to get the inverse distortion */</span>
-<a name="l00967"></a>00967 cpl_image_multiply_scalar(inv_distortion->dist_x, -1.);
-<a name="l00968"></a>00968 cpl_image_multiply_scalar(inv_distortion->dist_y, -1.);
-<a name="l00969"></a>00969 <span class="comment">/* Create the distortion maps */</span>
-<a name="l00970"></a>00970 nx = cpl_image_get_size_x(mask);
-<a name="l00971"></a>00971 ny = cpl_image_get_size_y(mask);
-<a name="l00972"></a>00972 dist_x = cpl_image_new(nx, ny, CPL_TYPE_DOUBLE);
-<a name="l00973"></a>00973 dist_y = cpl_image_new(nx, ny, CPL_TYPE_DOUBLE);
-<a name="l00974"></a>00974 <span class="keywordflow">if</span> (hawki_distortion_create_maps_detector
-<a name="l00975"></a>00975 (inv_distortion, dist_x, dist_y))
-<a name="l00976"></a>00976 {
-<a name="l00977"></a>00977 cpl_msg_error(__func__, <span class="stringliteral">"Cannot create the distortion maps"</span>) ;
-<a name="l00978"></a>00978 cpl_imagelist_delete(img_serie);
-<a name="l00979"></a>00979 cpl_propertylist_delete(prop_list);
-<a name="l00980"></a>00980 cpl_image_delete(mask);
-<a name="l00981"></a>00981 cpl_image_delete(dist_x);
-<a name="l00982"></a>00982 cpl_image_delete(dist_y);
-<a name="l00983"></a>00983 <a class="code" href="group__hawki__distortion.html#ga12a902f30ad5f4a6012b9df508d06712" title="Deallocates a hawki_distortion structure.">hawki_distortion_delete</a>(inv_distortion);
-<a name="l00984"></a>00984 cpl_msg_indent_less();
-<a name="l00985"></a>00985 cpl_msg_indent_less();
-<a name="l00986"></a>00986 <span class="keywordflow">return</span> -1;
-<a name="l00987"></a>00987 }
-<a name="l00988"></a>00988
-<a name="l00989"></a>00989 }
-<a name="l00990"></a>00990
-<a name="l00991"></a>00991 <span class="comment">/* Creating a different mask for each object, using the offsets </span>
-<a name="l00992"></a>00992 <span class="comment"> * and the distortion (if applies) */</span>
-<a name="l00993"></a>00993 cpl_msg_info(__func__,<span class="stringliteral">"Constructing the masks"</span>);
-<a name="l00994"></a>00994 <span class="keywordflow">for</span> (iobj=0 ; iobj<nobj ; iobj++)
-<a name="l00995"></a>00995 {
-<a name="l00996"></a>00996 cpl_image * mask_shifted;
-<a name="l00997"></a>00997 cpl_image * mask_trim;
-<a name="l00998"></a>00998 cpl_mask * mask_final;
-<a name="l00999"></a>00999 cpl_image * target_image;
-<a name="l01000"></a>01000 cpl_vector * off_x;
-<a name="l01001"></a>01001 cpl_vector * off_y;
-<a name="l01002"></a>01002
-<a name="l01003"></a>01003 <span class="comment">/* Retrieve the offsets. Warning, it is in chip order */</span>
-<a name="l01004"></a>01004 off_x = cpl_bivector_get_x(offsets[idet-1]);
-<a name="l01005"></a>01005 off_y = cpl_bivector_get_y(offsets[idet-1]);
-<a name="l01006"></a>01006
-<a name="l01007"></a>01007 target_image = cpl_imagelist_get(img_serie, iobj);
-<a name="l01008"></a>01008 mask_shifted = cpl_image_duplicate(mask);
-<a name="l01009"></a>01009 cpl_image_shift(mask_shifted,
-<a name="l01010"></a>01010 -(<span class="keywordtype">int</span>)(cpl_vector_get(off_x, iobj) - mask_off_x),
-<a name="l01011"></a>01011 -(<span class="keywordtype">int</span>)(cpl_vector_get(off_y, iobj) - mask_off_y));
-<a name="l01012"></a>01012 <span class="keywordflow">if</span>(x_distortionframe != NULL && y_distortionframe != NULL)
-<a name="l01013"></a>01013 {
-<a name="l01014"></a>01014 cpl_image * mask_distcorr;
-<a name="l01015"></a>01015
-<a name="l01016"></a>01016 <span class="comment">/* Dedistort the mask */</span>
-<a name="l01017"></a>01017 mask_distcorr = <a class="code" href="group__hawki__distortion.html#ga872e536210e467ff47f70959f5390b7c" title="Apply the distortion correction to one chip.">hawki_distortion_correct_detector</a>
-<a name="l01018"></a>01018 (mask_shifted, dist_x, dist_y);
-<a name="l01019"></a>01019 <span class="keywordflow">if</span>(mask_distcorr == NULL)
-<a name="l01020"></a>01020 {
-<a name="l01021"></a>01021 cpl_msg_error(__func__, <span class="stringliteral">"Cannot correct the distortion"</span>) ;
-<a name="l01022"></a>01022 cpl_image_delete(dist_x);
-<a name="l01023"></a>01023 cpl_image_delete(dist_y);
-<a name="l01024"></a>01024 cpl_image_delete(mask_shifted);
-<a name="l01025"></a>01025 cpl_imagelist_delete(img_serie);
-<a name="l01026"></a>01026 cpl_image_delete(mask);
-<a name="l01027"></a>01027 cpl_propertylist_delete(prop_list);
-<a name="l01028"></a>01028 <a class="code" href="group__hawki__distortion.html#ga12a902f30ad5f4a6012b9df508d06712" title="Deallocates a hawki_distortion structure.">hawki_distortion_delete</a>(inv_distortion);
-<a name="l01029"></a>01029 cpl_msg_indent_less();
-<a name="l01030"></a>01030 cpl_msg_indent_less();
-<a name="l01031"></a>01031 <span class="keywordflow">return</span> -1 ;
-<a name="l01032"></a>01032 }
-<a name="l01033"></a>01033 mask_trim = cpl_image_extract
-<a name="l01034"></a>01034 (mask_distcorr, 1, 1,
-<a name="l01035"></a>01035 cpl_image_get_size_x(target_image),
-<a name="l01036"></a>01036 cpl_image_get_size_y(target_image));
-<a name="l01037"></a>01037 cpl_image_delete(mask_distcorr);
-<a name="l01038"></a>01038 }
-<a name="l01039"></a>01039 <span class="keywordflow">else</span>
-<a name="l01040"></a>01040 {
-<a name="l01041"></a>01041 mask_trim = cpl_image_extract
-<a name="l01042"></a>01042 (mask_shifted, 1, 1,
-<a name="l01043"></a>01043 cpl_image_get_size_x(target_image),
-<a name="l01044"></a>01044 cpl_image_get_size_y(target_image));
-<a name="l01045"></a>01045 }
-<a name="l01046"></a>01046 mask_final =
-<a name="l01047"></a>01047 cpl_mask_threshold_image_create(mask_trim, 0.5, FLT_MAX);
-<a name="l01048"></a>01048 <span class="comment">/* TODO: Add the current bpm to this mask? */</span>
-<a name="l01049"></a>01049 cpl_image_reject_from_mask
-<a name="l01050"></a>01050 (target_image, mask_final);
-<a name="l01051"></a>01051 cpl_image_delete(mask_shifted);
-<a name="l01052"></a>01052 cpl_image_delete(mask_trim);
-<a name="l01053"></a>01053 cpl_mask_delete(mask_final);
-<a name="l01054"></a>01054 }
-<a name="l01055"></a>01055
-<a name="l01056"></a>01056 <span class="comment">/* Pre-compute median value in each plane */</span>
-<a name="l01057"></a>01057 cpl_msg_info(__func__,<span class="stringliteral">"Computing the medians"</span>);
-<a name="l01058"></a>01058 medians = cpl_vector_new(nobj);
-<a name="l01059"></a>01059 <span class="keywordflow">for</span> (iobj=0 ; iobj<nobj ; iobj++)
-<a name="l01060"></a>01060 {
-<a name="l01061"></a>01061 cpl_vector_set
-<a name="l01062"></a>01062 (medians,
-<a name="l01063"></a>01063 iobj,
-<a name="l01064"></a>01064 cpl_image_get_median(cpl_imagelist_get(img_serie, iobj))) ;
-<a name="l01065"></a>01065 }
-<a name="l01066"></a>01066
-<a name="l01067"></a>01067 <span class="comment">/* Object loop to get the bkg */</span>
-<a name="l01068"></a>01068 cpl_msg_info(__func__,<span class="stringliteral">"Computing backgrounds"</span>);
-<a name="l01069"></a>01069 cpl_msg_indent_more();
-<a name="l01070"></a>01070 <span class="keywordflow">for</span>(iobj = 0 ; iobj < nobj ; ++iobj)
-<a name="l01071"></a>01071 {
-<a name="l01072"></a>01072 <span class="keywordtype">int</span> nx;
-<a name="l01073"></a>01073 <span class="keywordtype">int</span> ny;
-<a name="l01074"></a>01074 cpl_image * this_bkg_image;
-<a name="l01075"></a>01075 cpl_image * this_bkg_image_mask;
-<a name="l01076"></a>01076 <span class="keywordtype">char</span> filename[256];
-<a name="l01077"></a>01077
-<a name="l01078"></a>01078 <span class="comment">/* Creates the background image */</span>
-<a name="l01079"></a>01079 cpl_msg_info(__func__,<span class="stringliteral">"Computing bkg for image %d"</span>, iobj + 1);
-<a name="l01080"></a>01080 nx = cpl_image_get_size_x(cpl_imagelist_get(img_serie, 0));
-<a name="l01081"></a>01081 ny = cpl_image_get_size_y(cpl_imagelist_get(img_serie, 0));
-<a name="l01082"></a>01082 this_bkg_image = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
-<a name="l01083"></a>01083
-<a name="l01084"></a>01084 <span class="comment">/* Actually computing the running mean */</span>
-<a name="l01085"></a>01085 <span class="keywordflow">if</span>(<a class="code" href="group__hawki__image__stats.html#ga5c5f3ead9c1f168f90e1b8bd42dd07af" title="Computes the running mean for a set of object images using their masks.">hawki_bkg_from_running_mean_detector</a>
-<a name="l01086"></a>01086 (img_serie,
-<a name="l01087"></a>01087 medians,
-<a name="l01088"></a>01088 iobj,
-<a name="l01089"></a>01089 nhalf_window,
-<a name="l01090"></a>01090 rejlow,
-<a name="l01091"></a>01091 rejhigh,
-<a name="l01092"></a>01092 this_bkg_image) != 0)
-<a name="l01093"></a>01093 {
-<a name="l01094"></a>01094 cpl_msg_error(__func__, <span class="stringliteral">"Cannot compute bkg"</span>);
-<a name="l01095"></a>01095 cpl_image_delete(this_bkg_image);
-<a name="l01096"></a>01096 cpl_vector_delete(medians);
-<a name="l01097"></a>01097 cpl_imagelist_delete(img_serie);
-<a name="l01098"></a>01098 cpl_image_delete(mask);
-<a name="l01099"></a>01099 cpl_propertylist_delete(prop_list);
-<a name="l01100"></a>01100 <span class="keywordflow">if</span>(x_distortionframe != NULL && y_distortionframe != NULL)
-<a name="l01101"></a>01101 {
-<a name="l01102"></a>01102 <a class="code" href="group__hawki__distortion.html#ga12a902f30ad5f4a6012b9df508d06712" title="Deallocates a hawki_distortion structure.">hawki_distortion_delete</a>(inv_distortion);
-<a name="l01103"></a>01103 cpl_image_delete(dist_x);
-<a name="l01104"></a>01104 cpl_image_delete(dist_y);
-<a name="l01105"></a>01105 }
-<a name="l01106"></a>01106 cpl_msg_indent_less();
-<a name="l01107"></a>01107 cpl_msg_indent_less();
-<a name="l01108"></a>01108 cpl_msg_indent_less();
-<a name="l01109"></a>01109 <span class="keywordflow">return</span> -1;
-<a name="l01110"></a>01110 }
-<a name="l01111"></a>01111
-<a name="l01112"></a>01112 <span class="comment">/* Save the extension bad pixel mask */</span>
-<a name="l01113"></a>01113 this_bkg_image_mask =
-<a name="l01114"></a>01114 cpl_image_new_from_mask(cpl_image_get_bpm(this_bkg_image));
-<a name="l01115"></a>01115 snprintf(filename, 256, <span class="stringliteral">"hawki_step_compute_bkg_bpm_%03d.fits"</span>,iobj +1);
-<a name="l01116"></a>01116 <a class="code" href="group__hawki__save.html#gab2873c1ec09ba834aaa284f003bc6acc" title="Save an image into a given extension.">hawki_image_ext_save</a>
-<a name="l01117"></a>01117 (objframes,
-<a name="l01118"></a>01118 this_bkg_image_mask,
-<a name="l01119"></a>01119 iext + 1,
-<a name="l01120"></a>01120 NULL,
-<a name="l01121"></a>01121 filename);
-<a name="l01122"></a>01122
-<a name="l01123"></a>01123 <span class="comment">/* Interpolate bad pixels */</span>
-<a name="l01124"></a>01124 hawki_step_compute_bkg_interpolate_badpix(this_bkg_image);
-<a name="l01125"></a>01125
-<a name="l01126"></a>01126 <span class="comment">/* Save this extension */</span>
-<a name="l01127"></a>01127 snprintf(filename, 256, <span class="stringliteral">"hawki_step_compute_bkg_%03d.fits"</span>,iobj +1);
-<a name="l01128"></a>01128 <a class="code" href="group__hawki__save.html#gab2873c1ec09ba834aaa284f003bc6acc" title="Save an image into a given extension.">hawki_image_ext_save</a>
-<a name="l01129"></a>01129 (objframes,
-<a name="l01130"></a>01130 this_bkg_image,
-<a name="l01131"></a>01131 iext + 1,
-<a name="l01132"></a>01132 NULL,
-<a name="l01133"></a>01133 filename);
-<a name="l01134"></a>01134
-<a name="l01135"></a>01135 <span class="comment">/* Free */</span>
-<a name="l01136"></a>01136 cpl_image_delete(this_bkg_image);
-<a name="l01137"></a>01137 cpl_image_delete(this_bkg_image_mask);
-<a name="l01138"></a>01138 }
-<a name="l01139"></a>01139 cpl_msg_indent_less();
-<a name="l01140"></a>01140
-<a name="l01141"></a>01141 <span class="comment">/* Freeing */</span>
-<a name="l01142"></a>01142 cpl_vector_delete(medians);
-<a name="l01143"></a>01143 cpl_imagelist_delete(img_serie);
-<a name="l01144"></a>01144 cpl_image_delete(mask);
-<a name="l01145"></a>01145 cpl_propertylist_delete(prop_list);
-<a name="l01146"></a>01146 <span class="keywordflow">if</span>(x_distortionframe != NULL && y_distortionframe != NULL)
-<a name="l01147"></a>01147 {
-<a name="l01148"></a>01148 <a class="code" href="group__hawki__distortion.html#ga12a902f30ad5f4a6012b9df508d06712" title="Deallocates a hawki_distortion structure.">hawki_distortion_delete</a>(inv_distortion);
-<a name="l01149"></a>01149 cpl_image_delete(dist_x);
-<a name="l01150"></a>01150 cpl_image_delete(dist_y);
-<a name="l01151"></a>01151 }
-<a name="l01152"></a>01152 cpl_msg_indent_less();
-<a name="l01153"></a>01153 }
-<a name="l01154"></a>01154 cpl_msg_indent_less();
-<a name="l01155"></a>01155 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
-<a name="l01156"></a>01156 {
-<a name="l01157"></a>01157 cpl_msg_warning(__func__,<span class="stringliteral">"Probably some data could not be saved. "</span>
-<a name="l01158"></a>01158 <span class="stringliteral">"Check permissions or disk space"</span>);
-<a name="l01159"></a>01159 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l01160"></a>01160 <span class="keywordflow">return</span> 1;
-<a name="l01161"></a>01161 }
-<a name="l01162"></a>01162 <span class="keywordflow">return</span> 0;
-<a name="l01163"></a>01163 }
-<a name="l01164"></a>01164
-<a name="l01165"></a>01165 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01171"></a>01171 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l01172"></a>01172 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_compute_bkg_interpolate_badpix
-<a name="l01173"></a>01173 (cpl_image * image)
-<a name="l01174"></a>01174 {
-<a name="l01175"></a>01175 <span class="keywordtype">int</span> nbadpixels = cpl_image_count_rejected(image);
-<a name="l01176"></a>01176 <span class="keywordflow">if</span>(nbadpixels !=0)
-<a name="l01177"></a>01177 cpl_msg_info(__func__,<span class="stringliteral">"Number of pixels with no background available: %d "</span>,
-<a name="l01178"></a>01178 nbadpixels);
-<a name="l01179"></a>01179 <span class="keywordflow">if</span>(cpl_image_count_rejected(image) > 0)
-<a name="l01180"></a>01180 {
-<a name="l01181"></a>01181 <span class="keywordtype">int</span> ipix,npix;
-<a name="l01182"></a>01182 <span class="keywordtype">double</span> median = cpl_image_get_median(image);
-<a name="l01183"></a>01183 <span class="keyword">const</span> cpl_binary * bpm = cpl_mask_get_data_const
-<a name="l01184"></a>01184 (cpl_image_get_bpm(image));
-<a name="l01185"></a>01185 <span class="keywordtype">float</span> * image_p = (<span class="keywordtype">float</span>*)cpl_image_get_data(image);
-<a name="l01186"></a>01186 cpl_msg_warning(__func__,<span class="stringliteral">"Substituting pixels with no bkg with median of image %f"</span>,median);
-<a name="l01187"></a>01187 npix = cpl_image_get_size_x(image) * cpl_image_get_size_y(image);
-<a name="l01188"></a>01188 <span class="keywordflow">for</span>(ipix = 0; ipix < npix; ipix++)
-<a name="l01189"></a>01189 {
-<a name="l01190"></a>01190 <span class="keywordflow">if</span> (bpm[ipix])
-<a name="l01191"></a>01191 {
-<a name="l01192"></a>01192 image_p[ipix] = median;
-<a name="l01193"></a>01193 }
-<a name="l01194"></a>01194 }
-<a name="l01195"></a>01195 <span class="comment">//This cannot be used until DFS08929 is solved</span>
-<a name="l01196"></a>01196 <span class="comment">//cpl_detector_interpolate_rejected(image);</span>
-<a name="l01197"></a>01197 }
-<a name="l01198"></a>01198 <span class="keywordflow">return</span> 0;
-<a name="l01199"></a>01199 }
-<a name="l01200"></a>01200
-<a name="l01201"></a>01201 <span class="keywordtype">int</span> hawki_step_compute_bkg_retrieve_input_param
-<a name="l01202"></a>01202 (cpl_parameterlist * parlist)
-<a name="l01203"></a>01203 {
-<a name="l01204"></a>01204 cpl_parameter * par ;
-<a name="l01205"></a>01205
-<a name="l01206"></a>01206 par = NULL ;
-<a name="l01207"></a>01207 par = cpl_parameterlist_find
-<a name="l01208"></a>01208 (parlist, <span class="stringliteral">"hawki.hawki_step_compute_bkg.nmin_comb"</span>);
-<a name="l01209"></a>01209 hawki_step_compute_bkg_config.nmin_comb = cpl_parameter_get_int(par);
-<a name="l01210"></a>01210
-<a name="l01211"></a>01211 par = cpl_parameterlist_find
-<a name="l01212"></a>01212 (parlist, <span class="stringliteral">"hawki.hawki_step_compute_bkg.nhalf_window"</span>);
-<a name="l01213"></a>01213 hawki_step_compute_bkg_config.nhalf_window = cpl_parameter_get_int(par);
-<a name="l01214"></a>01214
-<a name="l01215"></a>01215 par = cpl_parameterlist_find
-<a name="l01216"></a>01216 (parlist, <span class="stringliteral">"hawki.hawki_step_compute_bkg.rejlow"</span>);
-<a name="l01217"></a>01217 hawki_step_compute_bkg_config.rejlow = cpl_parameter_get_int(par);
-<a name="l01218"></a>01218
-<a name="l01219"></a>01219 par = cpl_parameterlist_find
-<a name="l01220"></a>01220 (parlist, <span class="stringliteral">"hawki.hawki_step_compute_bkg.rejhigh"</span>);
-<a name="l01221"></a>01221 hawki_step_compute_bkg_config.rejhigh = cpl_parameter_get_int(par);
-<a name="l01222"></a>01222
-<a name="l01223"></a>01223 <span class="keywordflow">return</span> 0;
-<a name="l01224"></a>01224 }
-</pre></div></div>
-</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
-<a href="http://www.doxygen.org/index.html">
-<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
-</body>
-</html>
diff --git a/html/hawki__step__detect__obj_8c_source.html b/html/hawki__step__detect__obj_8c_source.html
index fc7bd79..1b03d07 100644
--- a/html/hawki__step__detect__obj_8c_source.html
+++ b/html/hawki__step__detect__obj_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_step_detect_obj.c</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_step_detect_obj.c,v 1.26 2012/05/03 10:43:22 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_step_detect_obj.c,v 1.27 2012/11/30 14:50:51 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/05/03 10:43:22 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.26 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/11/30 14:50:51 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.27 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -101,869 +101,874 @@
<a name="l00054"></a>00054 <span class="comment"> Functions prototypes</span>
<a name="l00055"></a>00055 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00056"></a>00056
-<a name="l00057"></a>00057 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_create(cpl_plugin *) ;
-<a name="l00058"></a>00058 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_exec(cpl_plugin *) ;
-<a name="l00059"></a>00059 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_destroy(cpl_plugin *) ;
-<a name="l00060"></a>00060 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj(cpl_parameterlist *, cpl_frameset *) ;
+<a name="l00057"></a>00057 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
+<a name="l00059"></a>00059 <span class="preprocessor">#endif</span>
+<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list);
<a name="l00061"></a>00061
-<a name="l00062"></a>00062 <span class="keyword">static</span> <span class="keywordtype">void</span> hawki_step_detect_obj_init_output(<span class="keywordtype">void</span>);
-<a name="l00063"></a>00063 <span class="keyword">static</span> <span class="keywordtype">void</span> hawki_step_detect_obj_get_pscale
-<a name="l00064"></a>00064 (cpl_frameset * combframes);
-<a name="l00065"></a>00065 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_retrieve_input_param
-<a name="l00066"></a>00066 (cpl_parameterlist * parlist);
-<a name="l00067"></a>00067 <span class="keyword">static</span> cpl_apertures ** hawki_step_detect_obj_mask_and_apertures
-<a name="l00068"></a>00068 (cpl_frameset * combframes,
-<a name="l00069"></a>00069 cpl_image ** mask_image,
-<a name="l00070"></a>00070 cpl_image ** comb_image);
-<a name="l00071"></a>00071 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_aper_params
-<a name="l00072"></a>00072 (cpl_image ** combined_images,
-<a name="l00073"></a>00073 cpl_apertures ** apertures,
-<a name="l00074"></a>00074 cpl_table ** obj_charac);
-<a name="l00075"></a>00075 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_save
-<a name="l00076"></a>00076 (cpl_image ** mask_images,
-<a name="l00077"></a>00077 cpl_table ** obj_charac,
-<a name="l00078"></a>00078 cpl_propertylist ** obj_stats,
-<a name="l00079"></a>00079 cpl_parameterlist * parlist,
-<a name="l00080"></a>00080 cpl_frameset * framelist);
-<a name="l00081"></a>00081
-<a name="l00082"></a>00082 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00083"></a>00083 <span class="comment"> Static variables</span>
-<a name="l00084"></a>00084 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00085"></a>00085
-<a name="l00086"></a>00086 <span class="keyword">static</span> <span class="keyword">struct </span>
-<a name="l00087"></a>00087 {
-<a name="l00088"></a>00088 <span class="comment">/* Inputs */</span>
-<a name="l00089"></a>00089 <span class="keywordtype">double</span> sigma_det;
-<a name="l00090"></a>00090 <span class="keywordtype">int</span> growing_radius;
-<a name="l00091"></a>00091 } hawki_step_detect_obj_config;
-<a name="l00092"></a>00092
-<a name="l00093"></a>00093 <span class="keyword">static</span> <span class="keyword">struct </span>
-<a name="l00094"></a>00094 {
-<a name="l00095"></a>00095 <span class="comment">/* Outputs */</span>
-<a name="l00096"></a>00096 <span class="keywordtype">double</span> pixscale;
-<a name="l00097"></a>00097 <span class="keywordtype">double</span> iq[HAWKI_NB_DETECTORS] ;
-<a name="l00098"></a>00098 <span class="keywordtype">int</span> nbobjs[HAWKI_NB_DETECTORS] ;
-<a name="l00099"></a>00099 <span class="keywordtype">double</span> fwhm_pix[HAWKI_NB_DETECTORS] ;
-<a name="l00100"></a>00100 <span class="keywordtype">double</span> fwhm_arcsec[HAWKI_NB_DETECTORS] ;
-<a name="l00101"></a>00101 <span class="keywordtype">double</span> fwhm_mode[HAWKI_NB_DETECTORS] ;
-<a name="l00102"></a>00102 <span class="keywordtype">double</span> pos_x[HAWKI_NB_DETECTORS] ;
-<a name="l00103"></a>00103 <span class="keywordtype">double</span> pos_y[HAWKI_NB_DETECTORS] ;
-<a name="l00104"></a>00104 } hawki_step_detect_obj_output;
-<a name="l00105"></a>00105
-<a name="l00106"></a>00106 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_step_detect_obj_description[] =
-<a name="l00107"></a>00107 <span class="stringliteral">"hawki_step_detect_obj -- hawki detect objects recipe.\n"</span>
-<a name="l00108"></a>00108 <span class="stringliteral">"This recipe detects objects from the combined image creating a mask\n"</span>
-<a name="l00109"></a>00109 <span class="stringliteral">"and a list of object properties\n"</span>
-<a name="l00110"></a>00110 <span class="stringliteral">"The input of the recipe files listed in the Set Of Frames (sof-file)\n"</span>
-<a name="l00111"></a>00111 <span class="stringliteral">"must be tagged as:\n"</span>
-<a name="l00112"></a>00112 <span class="stringliteral">"combined.fits "</span>HAWKI_CALPRO_COMBINED<span class="stringliteral">"\n"</span>
-<a name="l00113"></a>00113 <span class="stringliteral">"The recipe creates as an output:\n"</span>
-<a name="l00114"></a>00114 <span class="stringliteral">"hawki_step_detect_obj_mask.fits ("</span>HAWKI_CALPRO_OBJ_MASK<span class="stringliteral">"): A mask with 1 where the objects are present and 0 elsewhere\n"</span>
-<a name="l00115"></a>00115 <span class="stringliteral">"hawki_step_detect_obj_stars.fits ("</span>HAWKI_CALPRO_OBJ_PARAM<span class="stringliteral">"): A table with the detected objects characteristics\n"</span>
-<a name="l00116"></a>00116 <span class="stringliteral">"Return code:\n"</span>
-<a name="l00117"></a>00117 <span class="stringliteral">"esorex exits with an error code of 0 if the recipe completes successfully\n"</span>
-<a name="l00118"></a>00118 <span class="stringliteral">"or 1 otherwise"</span>;
-<a name="l00119"></a>00119
-<a name="l00120"></a>00120
-<a name="l00121"></a>00121
-<a name="l00122"></a>00122 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00123"></a>00123 <span class="comment"> Functions code</span>
-<a name="l00124"></a>00124 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00062"></a>00062 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_create(cpl_plugin *) ;
+<a name="l00063"></a>00063 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_exec(cpl_plugin *) ;
+<a name="l00064"></a>00064 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_destroy(cpl_plugin *) ;
+<a name="l00065"></a>00065 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj(cpl_parameterlist *, cpl_frameset *) ;
+<a name="l00066"></a>00066
+<a name="l00067"></a>00067 <span class="keyword">static</span> <span class="keywordtype">void</span> hawki_step_detect_obj_init_output(<span class="keywordtype">void</span>);
+<a name="l00068"></a>00068 <span class="keyword">static</span> <span class="keywordtype">void</span> hawki_step_detect_obj_get_pscale
+<a name="l00069"></a>00069 (cpl_frameset * combframes);
+<a name="l00070"></a>00070 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_retrieve_input_param
+<a name="l00071"></a>00071 (cpl_parameterlist * parlist);
+<a name="l00072"></a>00072 <span class="keyword">static</span> cpl_apertures ** hawki_step_detect_obj_mask_and_apertures
+<a name="l00073"></a>00073 (cpl_frameset * combframes,
+<a name="l00074"></a>00074 cpl_image ** mask_image,
+<a name="l00075"></a>00075 cpl_image ** comb_image);
+<a name="l00076"></a>00076 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_aper_params
+<a name="l00077"></a>00077 (cpl_image ** combined_images,
+<a name="l00078"></a>00078 cpl_apertures ** apertures,
+<a name="l00079"></a>00079 cpl_table ** obj_charac);
+<a name="l00080"></a>00080 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_save
+<a name="l00081"></a>00081 (cpl_image ** mask_images,
+<a name="l00082"></a>00082 cpl_table ** obj_charac,
+<a name="l00083"></a>00083 cpl_propertylist ** obj_stats,
+<a name="l00084"></a>00084 cpl_parameterlist * parlist,
+<a name="l00085"></a>00085 cpl_frameset * framelist);
+<a name="l00086"></a>00086
+<a name="l00087"></a>00087 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00088"></a>00088 <span class="comment"> Static variables</span>
+<a name="l00089"></a>00089 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00090"></a>00090
+<a name="l00091"></a>00091 <span class="keyword">static</span> <span class="keyword">struct </span>
+<a name="l00092"></a>00092 {
+<a name="l00093"></a>00093 <span class="comment">/* Inputs */</span>
+<a name="l00094"></a>00094 <span class="keywordtype">double</span> sigma_det;
+<a name="l00095"></a>00095 <span class="keywordtype">int</span> growing_radius;
+<a name="l00096"></a>00096 } hawki_step_detect_obj_config;
+<a name="l00097"></a>00097
+<a name="l00098"></a>00098 <span class="keyword">static</span> <span class="keyword">struct </span>
+<a name="l00099"></a>00099 {
+<a name="l00100"></a>00100 <span class="comment">/* Outputs */</span>
+<a name="l00101"></a>00101 <span class="keywordtype">double</span> pixscale;
+<a name="l00102"></a>00102 <span class="keywordtype">double</span> iq[HAWKI_NB_DETECTORS] ;
+<a name="l00103"></a>00103 <span class="keywordtype">int</span> nbobjs[HAWKI_NB_DETECTORS] ;
+<a name="l00104"></a>00104 <span class="keywordtype">double</span> fwhm_pix[HAWKI_NB_DETECTORS] ;
+<a name="l00105"></a>00105 <span class="keywordtype">double</span> fwhm_arcsec[HAWKI_NB_DETECTORS] ;
+<a name="l00106"></a>00106 <span class="keywordtype">double</span> fwhm_mode[HAWKI_NB_DETECTORS] ;
+<a name="l00107"></a>00107 <span class="keywordtype">double</span> pos_x[HAWKI_NB_DETECTORS] ;
+<a name="l00108"></a>00108 <span class="keywordtype">double</span> pos_y[HAWKI_NB_DETECTORS] ;
+<a name="l00109"></a>00109 } hawki_step_detect_obj_output;
+<a name="l00110"></a>00110
+<a name="l00111"></a>00111 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_step_detect_obj_description[] =
+<a name="l00112"></a>00112 <span class="stringliteral">"hawki_step_detect_obj -- hawki detect objects recipe.\n"</span>
+<a name="l00113"></a>00113 <span class="stringliteral">"This recipe detects objects from the combined image creating a mask\n"</span>
+<a name="l00114"></a>00114 <span class="stringliteral">"and a list of object properties\n"</span>
+<a name="l00115"></a>00115 <span class="stringliteral">"The input of the recipe files listed in the Set Of Frames (sof-file)\n"</span>
+<a name="l00116"></a>00116 <span class="stringliteral">"must be tagged as:\n"</span>
+<a name="l00117"></a>00117 <span class="stringliteral">"combined.fits "</span>HAWKI_CALPRO_COMBINED<span class="stringliteral">"\n"</span>
+<a name="l00118"></a>00118 <span class="stringliteral">"The recipe creates as an output:\n"</span>
+<a name="l00119"></a>00119 <span class="stringliteral">"hawki_step_detect_obj_mask.fits ("</span>HAWKI_CALPRO_OBJ_MASK<span class="stringliteral">"): A mask with 1 where the objects are present and 0 elsewhere\n"</span>
+<a name="l00120"></a>00120 <span class="stringliteral">"hawki_step_detect_obj_stars.fits ("</span>HAWKI_CALPRO_OBJ_PARAM<span class="stringliteral">"): A table with the detected objects characteristics\n"</span>
+<a name="l00121"></a>00121 <span class="stringliteral">"Return code:\n"</span>
+<a name="l00122"></a>00122 <span class="stringliteral">"esorex exits with an error code of 0 if the recipe completes successfully\n"</span>
+<a name="l00123"></a>00123 <span class="stringliteral">"or 1 otherwise"</span>;
+<a name="l00124"></a>00124
<a name="l00125"></a>00125
-<a name="l00126"></a>00126 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00134"></a>00134 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00135"></a>00135 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
-<a name="l00136"></a>00136 {
-<a name="l00137"></a>00137 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
-<a name="l00138"></a>00138 cpl_plugin * plugin = &recipe->interface ;
-<a name="l00139"></a>00139
-<a name="l00140"></a>00140 cpl_plugin_init(plugin,
-<a name="l00141"></a>00141 CPL_PLUGIN_API,
-<a name="l00142"></a>00142 HAWKI_BINARY_VERSION,
-<a name="l00143"></a>00143 CPL_PLUGIN_TYPE_RECIPE,
-<a name="l00144"></a>00144 <span class="stringliteral">"hawki_step_detect_obj"</span>,
-<a name="l00145"></a>00145 <span class="stringliteral">"Object detection recipe"</span>,
-<a name="l00146"></a>00146 hawki_step_detect_obj_description,
-<a name="l00147"></a>00147 <span class="stringliteral">"Cesar Enrique Garcia Dabo"</span>,
-<a name="l00148"></a>00148 PACKAGE_BUGREPORT,
-<a name="l00149"></a>00149 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
-<a name="l00150"></a>00150 hawki_step_detect_obj_create,
-<a name="l00151"></a>00151 hawki_step_detect_obj_exec,
-<a name="l00152"></a>00152 hawki_step_detect_obj_destroy) ;
-<a name="l00153"></a>00153
-<a name="l00154"></a>00154 cpl_pluginlist_append(list, plugin) ;
-<a name="l00155"></a>00155
-<a name="l00156"></a>00156 <span class="keywordflow">return</span> 0;
-<a name="l00157"></a>00157 }
+<a name="l00126"></a>00126
+<a name="l00127"></a>00127 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00128"></a>00128 <span class="comment"> Functions code</span>
+<a name="l00129"></a>00129 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00130"></a>00130
+<a name="l00131"></a>00131 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00139"></a>00139 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00140"></a>00140 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
+<a name="l00141"></a>00141 {
+<a name="l00142"></a>00142 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
+<a name="l00143"></a>00143 cpl_plugin * plugin = &recipe->interface ;
+<a name="l00144"></a>00144
+<a name="l00145"></a>00145 cpl_plugin_init(plugin,
+<a name="l00146"></a>00146 CPL_PLUGIN_API,
+<a name="l00147"></a>00147 HAWKI_BINARY_VERSION,
+<a name="l00148"></a>00148 CPL_PLUGIN_TYPE_RECIPE,
+<a name="l00149"></a>00149 <span class="stringliteral">"hawki_step_detect_obj"</span>,
+<a name="l00150"></a>00150 <span class="stringliteral">"Object detection recipe"</span>,
+<a name="l00151"></a>00151 hawki_step_detect_obj_description,
+<a name="l00152"></a>00152 <span class="stringliteral">"Cesar Enrique Garcia Dabo"</span>,
+<a name="l00153"></a>00153 PACKAGE_BUGREPORT,
+<a name="l00154"></a>00154 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
+<a name="l00155"></a>00155 hawki_step_detect_obj_create,
+<a name="l00156"></a>00156 hawki_step_detect_obj_exec,
+<a name="l00157"></a>00157 hawki_step_detect_obj_destroy) ;
<a name="l00158"></a>00158
-<a name="l00159"></a>00159 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00168"></a>00168 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00169"></a>00169 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_create(cpl_plugin * plugin)
-<a name="l00170"></a>00170 {
-<a name="l00171"></a>00171 cpl_recipe * recipe ;
-<a name="l00172"></a>00172 cpl_parameter * p ;
-<a name="l00173"></a>00173
-<a name="l00174"></a>00174 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00175"></a>00175 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00176"></a>00176 recipe = (cpl_recipe *)plugin ;
-<a name="l00177"></a>00177 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00159"></a>00159 cpl_pluginlist_append(list, plugin) ;
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 <span class="keywordflow">return</span> 0;
+<a name="l00162"></a>00162 }
+<a name="l00163"></a>00163
+<a name="l00164"></a>00164 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00173"></a>00173 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00174"></a>00174 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_create(cpl_plugin * plugin)
+<a name="l00175"></a>00175 {
+<a name="l00176"></a>00176 cpl_recipe * recipe ;
+<a name="l00177"></a>00177 cpl_parameter * p ;
<a name="l00178"></a>00178
-<a name="l00179"></a>00179 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
-<a name="l00180"></a>00180 recipe->parameters = cpl_parameterlist_new() ;
-<a name="l00181"></a>00181 <span class="keywordflow">if</span> (recipe->parameters == NULL)
-<a name="l00182"></a>00182 <span class="keywordflow">return</span> 1;
+<a name="l00179"></a>00179 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00180"></a>00180 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00181"></a>00181 recipe = (cpl_recipe *)plugin ;
+<a name="l00182"></a>00182 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
<a name="l00183"></a>00183
-<a name="l00184"></a>00184 <span class="comment">/* Fill the parameters list */</span>
-<a name="l00185"></a>00185 <span class="comment">/* --sigma_det */</span>
-<a name="l00186"></a>00186 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_detect_obj.sigma_det"</span>,
-<a name="l00187"></a>00187 CPL_TYPE_DOUBLE, <span class="stringliteral">"detection level"</span>,
-<a name="l00188"></a>00188 <span class="stringliteral">"hawki.hawki_step_detect_obj"</span>, 6.);
-<a name="l00189"></a>00189 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"sigma_det"</span>);
-<a name="l00190"></a>00190 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);
-<a name="l00191"></a>00191 cpl_parameterlist_append(recipe->parameters, p);
-<a name="l00192"></a>00192
-<a name="l00193"></a>00193 <span class="comment">/* --growing_radius */</span>
-<a name="l00194"></a>00194 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_detect_obj.growing_radius"</span>,
-<a name="l00195"></a>00195 CPL_TYPE_INT,
-<a name="l00196"></a>00196 <span class="stringliteral">"radius of convolution kernel to apply to objects"</span>,
-<a name="l00197"></a>00197 <span class="stringliteral">"hawki.hawki_step_detect_obj"</span>, 5);
-<a name="l00198"></a>00198 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"growing_radius"</span>);
-<a name="l00199"></a>00199 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);
-<a name="l00200"></a>00200 cpl_parameterlist_append(recipe->parameters, p);
-<a name="l00201"></a>00201
-<a name="l00202"></a>00202 <span class="comment">/* Return */</span>
-<a name="l00203"></a>00203 <span class="keywordflow">return</span> 0;
-<a name="l00204"></a>00204 }
-<a name="l00205"></a>00205
-<a name="l00206"></a>00206 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00212"></a>00212 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00213"></a>00213 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_exec(cpl_plugin * plugin)
-<a name="l00214"></a>00214 {
-<a name="l00215"></a>00215 cpl_recipe * recipe ;
-<a name="l00216"></a>00216
-<a name="l00217"></a>00217 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00218"></a>00218 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00219"></a>00219 recipe = (cpl_recipe *)plugin ;
-<a name="l00220"></a>00220 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00184"></a>00184 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
+<a name="l00185"></a>00185 recipe->parameters = cpl_parameterlist_new() ;
+<a name="l00186"></a>00186 <span class="keywordflow">if</span> (recipe->parameters == NULL)
+<a name="l00187"></a>00187 <span class="keywordflow">return</span> 1;
+<a name="l00188"></a>00188
+<a name="l00189"></a>00189 <span class="comment">/* Fill the parameters list */</span>
+<a name="l00190"></a>00190 <span class="comment">/* --sigma_det */</span>
+<a name="l00191"></a>00191 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_detect_obj.sigma_det"</span>,
+<a name="l00192"></a>00192 CPL_TYPE_DOUBLE, <span class="stringliteral">"detection level"</span>,
+<a name="l00193"></a>00193 <span class="stringliteral">"hawki.hawki_step_detect_obj"</span>, 6.);
+<a name="l00194"></a>00194 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"sigma_det"</span>);
+<a name="l00195"></a>00195 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);
+<a name="l00196"></a>00196 cpl_parameterlist_append(recipe->parameters, p);
+<a name="l00197"></a>00197
+<a name="l00198"></a>00198 <span class="comment">/* --growing_radius */</span>
+<a name="l00199"></a>00199 p = cpl_parameter_new_value(<span class="stringliteral">"hawki.hawki_step_detect_obj.growing_radius"</span>,
+<a name="l00200"></a>00200 CPL_TYPE_INT,
+<a name="l00201"></a>00201 <span class="stringliteral">"radius of convolution kernel to apply to objects"</span>,
+<a name="l00202"></a>00202 <span class="stringliteral">"hawki.hawki_step_detect_obj"</span>, 5);
+<a name="l00203"></a>00203 cpl_parameter_set_alias(p, CPL_PARAMETER_MODE_CLI, <span class="stringliteral">"growing_radius"</span>);
+<a name="l00204"></a>00204 cpl_parameter_disable(p, CPL_PARAMETER_MODE_ENV);
+<a name="l00205"></a>00205 cpl_parameterlist_append(recipe->parameters, p);
+<a name="l00206"></a>00206
+<a name="l00207"></a>00207 <span class="comment">/* Return */</span>
+<a name="l00208"></a>00208 <span class="keywordflow">return</span> 0;
+<a name="l00209"></a>00209 }
+<a name="l00210"></a>00210
+<a name="l00211"></a>00211 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00217"></a>00217 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00218"></a>00218 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_exec(cpl_plugin * plugin)
+<a name="l00219"></a>00219 {
+<a name="l00220"></a>00220 cpl_recipe * recipe ;
<a name="l00221"></a>00221
-<a name="l00222"></a>00222 <span class="comment">/* Issue a banner */</span>
-<a name="l00223"></a>00223 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
-<a name="l00224"></a>00224
-<a name="l00225"></a>00225 <span class="keywordflow">return</span> hawki_step_detect_obj(recipe->parameters, recipe->frames) ;
-<a name="l00226"></a>00226 }
-<a name="l00227"></a>00227
-<a name="l00228"></a>00228 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00234"></a>00234 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00235"></a>00235 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_destroy(cpl_plugin * plugin)
-<a name="l00236"></a>00236 {
-<a name="l00237"></a>00237 cpl_recipe * recipe ;
-<a name="l00238"></a>00238
-<a name="l00239"></a>00239 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00240"></a>00240 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00241"></a>00241 recipe = (cpl_recipe *)plugin ;
-<a name="l00242"></a>00242 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00222"></a>00222 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00223"></a>00223 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00224"></a>00224 recipe = (cpl_recipe *)plugin ;
+<a name="l00225"></a>00225 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00226"></a>00226
+<a name="l00227"></a>00227 <span class="comment">/* Issue a banner */</span>
+<a name="l00228"></a>00228 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
+<a name="l00229"></a>00229
+<a name="l00230"></a>00230 <span class="keywordflow">return</span> hawki_step_detect_obj(recipe->parameters, recipe->frames) ;
+<a name="l00231"></a>00231 }
+<a name="l00232"></a>00232
+<a name="l00233"></a>00233 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00239"></a>00239 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00240"></a>00240 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_destroy(cpl_plugin * plugin)
+<a name="l00241"></a>00241 {
+<a name="l00242"></a>00242 cpl_recipe * recipe ;
<a name="l00243"></a>00243
-<a name="l00244"></a>00244 cpl_parameterlist_delete(recipe->parameters) ;
-<a name="l00245"></a>00245 <span class="keywordflow">return</span> 0 ;
-<a name="l00246"></a>00246 }
-<a name="l00247"></a>00247
-<a name="l00248"></a>00248 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00255"></a>00255 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00256"></a>00256 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj(
-<a name="l00257"></a>00257 cpl_parameterlist * parlist,
-<a name="l00258"></a>00258 cpl_frameset * framelist)
-<a name="l00259"></a>00259 {
-<a name="l00260"></a>00260 cpl_frameset * combframes;
-<a name="l00261"></a>00261 cpl_image ** mask_image;
-<a name="l00262"></a>00262 cpl_image ** comb_image;
-<a name="l00263"></a>00263 cpl_apertures ** apertures;
-<a name="l00264"></a>00264 cpl_table ** obj_charac;
-<a name="l00265"></a>00265 cpl_propertylist ** obj_stats;
-<a name="l00266"></a>00266 <span class="keywordtype">int</span> idet;
-<a name="l00267"></a>00267
-<a name="l00268"></a>00268 <span class="comment">/* Initialise */</span>
-<a name="l00269"></a>00269 hawki_step_detect_obj_init_output();
-<a name="l00270"></a>00270
-<a name="l00271"></a>00271 <span class="comment">/* Retrieve input parameters */</span>
-<a name="l00272"></a>00272 <span class="keywordflow">if</span>(hawki_step_detect_obj_retrieve_input_param(parlist))
-<a name="l00273"></a>00273 {
-<a name="l00274"></a>00274 cpl_msg_error(__func__, <span class="stringliteral">"Wrong parameters"</span>);
-<a name="l00275"></a>00275 <span class="keywordflow">return</span> -1;
-<a name="l00276"></a>00276 }
-<a name="l00277"></a>00277
-<a name="l00278"></a>00278 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
-<a name="l00279"></a>00279 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist)) {
-<a name="l00280"></a>00280 cpl_msg_error(__func__, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
-<a name="l00281"></a>00281 <span class="keywordflow">return</span> -1 ;
-<a name="l00282"></a>00282 }
-<a name="l00283"></a>00283
-<a name="l00284"></a>00284 <span class="comment">/* Retrieve raw frames */</span>
-<a name="l00285"></a>00285 combframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_COMBINED) ;
-<a name="l00286"></a>00286 <span class="keywordflow">if</span> (combframes == NULL)
-<a name="l00287"></a>00287 {
-<a name="l00288"></a>00288 cpl_msg_error(__func__, <span class="stringliteral">"Cannot find combined images in the input (%s)"</span>,
-<a name="l00289"></a>00289 HAWKI_CALPRO_COMBINED);
-<a name="l00290"></a>00290 <span class="keywordflow">return</span> -1 ;
-<a name="l00291"></a>00291 }
-<a name="l00292"></a>00292 <span class="keywordflow">if</span> (cpl_frameset_get_size(combframes) != 1)
-<a name="l00293"></a>00293 {
-<a name="l00294"></a>00294 cpl_msg_error(__func__, <span class="stringliteral">"Only one combined image must be provided"</span>);
+<a name="l00244"></a>00244 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00245"></a>00245 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00246"></a>00246 recipe = (cpl_recipe *)plugin ;
+<a name="l00247"></a>00247 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00248"></a>00248
+<a name="l00249"></a>00249 cpl_parameterlist_delete(recipe->parameters) ;
+<a name="l00250"></a>00250 <span class="keywordflow">return</span> 0 ;
+<a name="l00251"></a>00251 }
+<a name="l00252"></a>00252
+<a name="l00253"></a>00253 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00260"></a>00260 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00261"></a>00261 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj(
+<a name="l00262"></a>00262 cpl_parameterlist * parlist,
+<a name="l00263"></a>00263 cpl_frameset * framelist)
+<a name="l00264"></a>00264 {
+<a name="l00265"></a>00265 cpl_frameset * combframes;
+<a name="l00266"></a>00266 cpl_image ** mask_image;
+<a name="l00267"></a>00267 cpl_image ** comb_image;
+<a name="l00268"></a>00268 cpl_apertures ** apertures;
+<a name="l00269"></a>00269 cpl_table ** obj_charac;
+<a name="l00270"></a>00270 cpl_propertylist ** obj_stats;
+<a name="l00271"></a>00271 <span class="keywordtype">int</span> idet;
+<a name="l00272"></a>00272
+<a name="l00273"></a>00273 <span class="comment">/* Initialise */</span>
+<a name="l00274"></a>00274 hawki_step_detect_obj_init_output();
+<a name="l00275"></a>00275
+<a name="l00276"></a>00276 <span class="comment">/* Retrieve input parameters */</span>
+<a name="l00277"></a>00277 <span class="keywordflow">if</span>(hawki_step_detect_obj_retrieve_input_param(parlist))
+<a name="l00278"></a>00278 {
+<a name="l00279"></a>00279 cpl_msg_error(__func__, <span class="stringliteral">"Wrong parameters"</span>);
+<a name="l00280"></a>00280 <span class="keywordflow">return</span> -1;
+<a name="l00281"></a>00281 }
+<a name="l00282"></a>00282
+<a name="l00283"></a>00283 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
+<a name="l00284"></a>00284 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist)) {
+<a name="l00285"></a>00285 cpl_msg_error(__func__, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
+<a name="l00286"></a>00286 <span class="keywordflow">return</span> -1 ;
+<a name="l00287"></a>00287 }
+<a name="l00288"></a>00288
+<a name="l00289"></a>00289 <span class="comment">/* Retrieve raw frames */</span>
+<a name="l00290"></a>00290 combframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_COMBINED) ;
+<a name="l00291"></a>00291 <span class="keywordflow">if</span> (combframes == NULL)
+<a name="l00292"></a>00292 {
+<a name="l00293"></a>00293 cpl_msg_error(__func__, <span class="stringliteral">"Cannot find combined images in the input (%s)"</span>,
+<a name="l00294"></a>00294 HAWKI_CALPRO_COMBINED);
<a name="l00295"></a>00295 <span class="keywordflow">return</span> -1 ;
<a name="l00296"></a>00296 }
-<a name="l00297"></a>00297
-<a name="l00298"></a>00298 <span class="comment">/* Get info from the headers */</span>
-<a name="l00299"></a>00299 hawki_step_detect_obj_get_pscale(combframes);
-<a name="l00300"></a>00300
-<a name="l00301"></a>00301 <span class="comment">/* Get the mask with the points above the background </span>
-<a name="l00302"></a>00302 <span class="comment"> * and the associated apertures*/</span>
-<a name="l00303"></a>00303 cpl_msg_info(__func__, <span class="stringliteral">"Getting the object masks"</span>) ;
-<a name="l00304"></a>00304 mask_image = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_image *));
-<a name="l00305"></a>00305 comb_image = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_image *));
-<a name="l00306"></a>00306 apertures = hawki_step_detect_obj_mask_and_apertures
-<a name="l00307"></a>00307 (combframes, mask_image, comb_image);
-<a name="l00308"></a>00308 <span class="keywordflow">if</span>(apertures == NULL)
-<a name="l00309"></a>00309 {
-<a name="l00310"></a>00310 cpl_msg_error(__func__,<span class="stringliteral">"Could not detect objects in image"</span>);
-<a name="l00311"></a>00311 cpl_frameset_delete(combframes);
-<a name="l00312"></a>00312 cpl_free(mask_image);
-<a name="l00313"></a>00313 cpl_free(comb_image);
-<a name="l00314"></a>00314 <span class="keywordflow">return</span> -1;
-<a name="l00315"></a>00315 }
-<a name="l00316"></a>00316
-<a name="l00317"></a>00317 <span class="comment">/* Get object characterizations and statistics */</span>
-<a name="l00318"></a>00318 cpl_msg_info(__func__, <span class="stringliteral">"Getting object parameters"</span>) ;
-<a name="l00319"></a>00319 obj_charac = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table *)) ;
-<a name="l00320"></a>00320 obj_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist *));
-<a name="l00321"></a>00321 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00322"></a>00322 {
-<a name="l00323"></a>00323 obj_charac[idet] = cpl_table_new
-<a name="l00324"></a>00324 (cpl_apertures_get_size(apertures[idet]));
-<a name="l00325"></a>00325 obj_stats[idet] = cpl_propertylist_new();
-<a name="l00326"></a>00326 }
-<a name="l00327"></a>00327 hawki_step_detect_obj_aper_params(comb_image, apertures, obj_charac);
-<a name="l00328"></a>00328
-<a name="l00329"></a>00329 <span class="comment">/* Statistics of the detected objects in the QC */</span>
-<a name="l00330"></a>00330 <a class="code" href="group__hawki__obj__det.html#ga0968e63931fcc72c55c4bc0e34f71dbb" title="Compute statistics on the object properties.">hawki_obj_prop_stats</a>(obj_charac, obj_stats);
-<a name="l00331"></a>00331
-<a name="l00332"></a>00332 <span class="comment">/* Save the products */</span>
-<a name="l00333"></a>00333 cpl_msg_info(__func__, <span class="stringliteral">"Save the products"</span>) ;
-<a name="l00334"></a>00334 <span class="keywordflow">if</span> (hawki_step_detect_obj_save(mask_image, obj_charac, obj_stats,
-<a name="l00335"></a>00335 parlist, framelist) == -1)
-<a name="l00336"></a>00336 {
-<a name="l00337"></a>00337 cpl_msg_warning(__func__, <span class="stringliteral">"Some data could not be saved. "</span>
-<a name="l00338"></a>00338 <span class="stringliteral">"Check permisions or disk space"</span>) ;
-<a name="l00339"></a>00339 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00340"></a>00340 {
-<a name="l00341"></a>00341 cpl_table_delete(obj_charac[idet]);
-<a name="l00342"></a>00342 cpl_propertylist_delete(obj_stats[idet]);
-<a name="l00343"></a>00343 cpl_apertures_delete(apertures[idet]);
-<a name="l00344"></a>00344 }
-<a name="l00345"></a>00345 cpl_free(apertures);
-<a name="l00346"></a>00346 cpl_free(obj_charac);
-<a name="l00347"></a>00347 cpl_free(obj_stats);
-<a name="l00348"></a>00348 cpl_frameset_delete(combframes);
-<a name="l00349"></a>00349 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00350"></a>00350 {
-<a name="l00351"></a>00351 cpl_image_delete(mask_image[idet]);
-<a name="l00352"></a>00352 cpl_image_delete(comb_image[idet]);
-<a name="l00353"></a>00353 }
-<a name="l00354"></a>00354 cpl_free(mask_image);
-<a name="l00355"></a>00355 cpl_free(comb_image);
-<a name="l00356"></a>00356 <span class="keywordflow">return</span> -1 ;
-<a name="l00357"></a>00357 }
-<a name="l00358"></a>00358
-<a name="l00359"></a>00359 <span class="comment">/* Return */</span>
-<a name="l00360"></a>00360 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00361"></a>00361 {
-<a name="l00362"></a>00362 cpl_table_delete(obj_charac[idet]);
-<a name="l00363"></a>00363 cpl_propertylist_delete(obj_stats[idet]);
-<a name="l00364"></a>00364 cpl_apertures_delete(apertures[idet]);
-<a name="l00365"></a>00365 cpl_image_delete(mask_image[idet]);
-<a name="l00366"></a>00366 cpl_image_delete(comb_image[idet]);
-<a name="l00367"></a>00367 }
-<a name="l00368"></a>00368 cpl_free(apertures);
-<a name="l00369"></a>00369 cpl_free(obj_charac);
-<a name="l00370"></a>00370 cpl_free(obj_stats);
-<a name="l00371"></a>00371 cpl_frameset_delete(combframes);
-<a name="l00372"></a>00372 cpl_free(mask_image);
-<a name="l00373"></a>00373 cpl_free(comb_image);
-<a name="l00374"></a>00374
-<a name="l00375"></a>00375 <span class="comment">/* Return */</span>
-<a name="l00376"></a>00376 <span class="keywordflow">if</span> (cpl_error_get_code())
-<a name="l00377"></a>00377 {
-<a name="l00378"></a>00378 cpl_msg_error(__func__,
-<a name="l00379"></a>00379 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
-<a name="l00380"></a>00380 <span class="keywordflow">return</span> -1 ;
-<a name="l00381"></a>00381 }
-<a name="l00382"></a>00382 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
-<a name="l00383"></a>00383 }
-<a name="l00384"></a>00384
-<a name="l00385"></a>00385 <span class="keywordtype">int</span> hawki_step_detect_obj_retrieve_input_param
-<a name="l00386"></a>00386 (cpl_parameterlist * parlist)
-<a name="l00387"></a>00387 {
-<a name="l00388"></a>00388 cpl_parameter * par ;
+<a name="l00297"></a>00297 <span class="keywordflow">if</span> (cpl_frameset_get_size(combframes) != 1)
+<a name="l00298"></a>00298 {
+<a name="l00299"></a>00299 cpl_msg_error(__func__, <span class="stringliteral">"Only one combined image must be provided"</span>);
+<a name="l00300"></a>00300 <span class="keywordflow">return</span> -1 ;
+<a name="l00301"></a>00301 }
+<a name="l00302"></a>00302
+<a name="l00303"></a>00303 <span class="comment">/* Get info from the headers */</span>
+<a name="l00304"></a>00304 hawki_step_detect_obj_get_pscale(combframes);
+<a name="l00305"></a>00305
+<a name="l00306"></a>00306 <span class="comment">/* Get the mask with the points above the background </span>
+<a name="l00307"></a>00307 <span class="comment"> * and the associated apertures*/</span>
+<a name="l00308"></a>00308 cpl_msg_info(__func__, <span class="stringliteral">"Getting the object masks"</span>) ;
+<a name="l00309"></a>00309 mask_image = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_image *));
+<a name="l00310"></a>00310 comb_image = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_image *));
+<a name="l00311"></a>00311 apertures = hawki_step_detect_obj_mask_and_apertures
+<a name="l00312"></a>00312 (combframes, mask_image, comb_image);
+<a name="l00313"></a>00313 <span class="keywordflow">if</span>(apertures == NULL)
+<a name="l00314"></a>00314 {
+<a name="l00315"></a>00315 cpl_msg_error(__func__,<span class="stringliteral">"Could not detect objects in image"</span>);
+<a name="l00316"></a>00316 cpl_frameset_delete(combframes);
+<a name="l00317"></a>00317 cpl_free(mask_image);
+<a name="l00318"></a>00318 cpl_free(comb_image);
+<a name="l00319"></a>00319 <span class="keywordflow">return</span> -1;
+<a name="l00320"></a>00320 }
+<a name="l00321"></a>00321
+<a name="l00322"></a>00322 <span class="comment">/* Get object characterizations and statistics */</span>
+<a name="l00323"></a>00323 cpl_msg_info(__func__, <span class="stringliteral">"Getting object parameters"</span>) ;
+<a name="l00324"></a>00324 obj_charac = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table *)) ;
+<a name="l00325"></a>00325 obj_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist *));
+<a name="l00326"></a>00326 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00327"></a>00327 {
+<a name="l00328"></a>00328 obj_charac[idet] = cpl_table_new
+<a name="l00329"></a>00329 (cpl_apertures_get_size(apertures[idet]));
+<a name="l00330"></a>00330 obj_stats[idet] = cpl_propertylist_new();
+<a name="l00331"></a>00331 }
+<a name="l00332"></a>00332 hawki_step_detect_obj_aper_params(comb_image, apertures, obj_charac);
+<a name="l00333"></a>00333
+<a name="l00334"></a>00334 <span class="comment">/* Statistics of the detected objects in the QC */</span>
+<a name="l00335"></a>00335 <a class="code" href="group__hawki__obj__det.html#ga0968e63931fcc72c55c4bc0e34f71dbb" title="Compute statistics on the object properties.">hawki_obj_prop_stats</a>(obj_charac, obj_stats);
+<a name="l00336"></a>00336
+<a name="l00337"></a>00337 <span class="comment">/* Save the products */</span>
+<a name="l00338"></a>00338 cpl_msg_info(__func__, <span class="stringliteral">"Save the products"</span>) ;
+<a name="l00339"></a>00339 <span class="keywordflow">if</span> (hawki_step_detect_obj_save(mask_image, obj_charac, obj_stats,
+<a name="l00340"></a>00340 parlist, framelist) == -1)
+<a name="l00341"></a>00341 {
+<a name="l00342"></a>00342 cpl_msg_warning(__func__, <span class="stringliteral">"Some data could not be saved. "</span>
+<a name="l00343"></a>00343 <span class="stringliteral">"Check permisions or disk space"</span>) ;
+<a name="l00344"></a>00344 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00345"></a>00345 {
+<a name="l00346"></a>00346 cpl_table_delete(obj_charac[idet]);
+<a name="l00347"></a>00347 cpl_propertylist_delete(obj_stats[idet]);
+<a name="l00348"></a>00348 cpl_apertures_delete(apertures[idet]);
+<a name="l00349"></a>00349 }
+<a name="l00350"></a>00350 cpl_free(apertures);
+<a name="l00351"></a>00351 cpl_free(obj_charac);
+<a name="l00352"></a>00352 cpl_free(obj_stats);
+<a name="l00353"></a>00353 cpl_frameset_delete(combframes);
+<a name="l00354"></a>00354 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00355"></a>00355 {
+<a name="l00356"></a>00356 cpl_image_delete(mask_image[idet]);
+<a name="l00357"></a>00357 cpl_image_delete(comb_image[idet]);
+<a name="l00358"></a>00358 }
+<a name="l00359"></a>00359 cpl_free(mask_image);
+<a name="l00360"></a>00360 cpl_free(comb_image);
+<a name="l00361"></a>00361 <span class="keywordflow">return</span> -1 ;
+<a name="l00362"></a>00362 }
+<a name="l00363"></a>00363
+<a name="l00364"></a>00364 <span class="comment">/* Return */</span>
+<a name="l00365"></a>00365 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00366"></a>00366 {
+<a name="l00367"></a>00367 cpl_table_delete(obj_charac[idet]);
+<a name="l00368"></a>00368 cpl_propertylist_delete(obj_stats[idet]);
+<a name="l00369"></a>00369 cpl_apertures_delete(apertures[idet]);
+<a name="l00370"></a>00370 cpl_image_delete(mask_image[idet]);
+<a name="l00371"></a>00371 cpl_image_delete(comb_image[idet]);
+<a name="l00372"></a>00372 }
+<a name="l00373"></a>00373 cpl_free(apertures);
+<a name="l00374"></a>00374 cpl_free(obj_charac);
+<a name="l00375"></a>00375 cpl_free(obj_stats);
+<a name="l00376"></a>00376 cpl_frameset_delete(combframes);
+<a name="l00377"></a>00377 cpl_free(mask_image);
+<a name="l00378"></a>00378 cpl_free(comb_image);
+<a name="l00379"></a>00379
+<a name="l00380"></a>00380 <span class="comment">/* Return */</span>
+<a name="l00381"></a>00381 <span class="keywordflow">if</span> (cpl_error_get_code())
+<a name="l00382"></a>00382 {
+<a name="l00383"></a>00383 cpl_msg_error(__func__,
+<a name="l00384"></a>00384 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
+<a name="l00385"></a>00385 <span class="keywordflow">return</span> -1 ;
+<a name="l00386"></a>00386 }
+<a name="l00387"></a>00387 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
+<a name="l00388"></a>00388 }
<a name="l00389"></a>00389
-<a name="l00390"></a>00390 par = NULL ;
-<a name="l00391"></a>00391 par = cpl_parameterlist_find
-<a name="l00392"></a>00392 (parlist, <span class="stringliteral">"hawki.hawki_step_detect_obj.sigma_det"</span>);
-<a name="l00393"></a>00393 hawki_step_detect_obj_config.sigma_det = cpl_parameter_get_double(par);
-<a name="l00394"></a>00394 par = cpl_parameterlist_find
-<a name="l00395"></a>00395 (parlist, <span class="stringliteral">"hawki.hawki_step_detect_obj.growing_radius"</span>);
-<a name="l00396"></a>00396 hawki_step_detect_obj_config.growing_radius = cpl_parameter_get_int(par);
-<a name="l00397"></a>00397 <span class="keywordflow">if</span>(hawki_step_detect_obj_config.growing_radius > 100)
-<a name="l00398"></a>00398 {
-<a name="l00399"></a>00399 cpl_msg_error(__func__,<span class="stringliteral">"The maximum radius allowed is 100"</span>);
-<a name="l00400"></a>00400 <span class="keywordflow">return</span> -1;
-<a name="l00401"></a>00401 }
-<a name="l00402"></a>00402 <span class="keywordflow">if</span>(hawki_step_detect_obj_config.sigma_det <= 0 )
+<a name="l00390"></a>00390 <span class="keywordtype">int</span> hawki_step_detect_obj_retrieve_input_param
+<a name="l00391"></a>00391 (cpl_parameterlist * parlist)
+<a name="l00392"></a>00392 {
+<a name="l00393"></a>00393 cpl_parameter * par ;
+<a name="l00394"></a>00394
+<a name="l00395"></a>00395 par = NULL ;
+<a name="l00396"></a>00396 par = cpl_parameterlist_find
+<a name="l00397"></a>00397 (parlist, <span class="stringliteral">"hawki.hawki_step_detect_obj.sigma_det"</span>);
+<a name="l00398"></a>00398 hawki_step_detect_obj_config.sigma_det = cpl_parameter_get_double(par);
+<a name="l00399"></a>00399 par = cpl_parameterlist_find
+<a name="l00400"></a>00400 (parlist, <span class="stringliteral">"hawki.hawki_step_detect_obj.growing_radius"</span>);
+<a name="l00401"></a>00401 hawki_step_detect_obj_config.growing_radius = cpl_parameter_get_int(par);
+<a name="l00402"></a>00402 <span class="keywordflow">if</span>(hawki_step_detect_obj_config.growing_radius > 100)
<a name="l00403"></a>00403 {
-<a name="l00404"></a>00404 cpl_msg_error(__func__,<span class="stringliteral">"Detection sigma has to be greater than 0"</span>);
+<a name="l00404"></a>00404 cpl_msg_error(__func__,<span class="stringliteral">"The maximum radius allowed is 100"</span>);
<a name="l00405"></a>00405 <span class="keywordflow">return</span> -1;
<a name="l00406"></a>00406 }
-<a name="l00407"></a>00407
-<a name="l00408"></a>00408 <span class="keywordflow">return</span> 0;
-<a name="l00409"></a>00409 }
-<a name="l00410"></a>00410
-<a name="l00411"></a>00411
+<a name="l00407"></a>00407 <span class="keywordflow">if</span>(hawki_step_detect_obj_config.sigma_det <= 0 )
+<a name="l00408"></a>00408 {
+<a name="l00409"></a>00409 cpl_msg_error(__func__,<span class="stringliteral">"Detection sigma has to be greater than 0"</span>);
+<a name="l00410"></a>00410 <span class="keywordflow">return</span> -1;
+<a name="l00411"></a>00411 }
<a name="l00412"></a>00412
-<a name="l00413"></a>00413 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00423"></a>00423 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00424"></a>00424 <span class="keyword">static</span> cpl_apertures ** hawki_step_detect_obj_mask_and_apertures
-<a name="l00425"></a>00425 (cpl_frameset * combframes,
-<a name="l00426"></a>00426 cpl_image ** mask_image,
-<a name="l00427"></a>00427 cpl_image ** comb_image)
-<a name="l00428"></a>00428 {
-<a name="l00429"></a>00429 cpl_apertures ** apertures;
-<a name="l00430"></a>00430 <span class="keywordtype">int</span> idet;
-<a name="l00431"></a>00431
-<a name="l00432"></a>00432 <span class="comment">/* Create output object */</span>
-<a name="l00433"></a>00433 apertures = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_apertures *));
-<a name="l00434"></a>00434
-<a name="l00435"></a>00435 <span class="comment">/* Loop on the detectors */</span>
-<a name="l00436"></a>00436 cpl_msg_indent_more();
-<a name="l00437"></a>00437 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00438"></a>00438 {
-<a name="l00439"></a>00439 cpl_image * chip_image;
-<a name="l00440"></a>00440 cpl_image * chip_image_sort;
-<a name="l00441"></a>00441 cpl_mask * object_mask;
-<a name="l00442"></a>00442 cpl_mask * kernel_op;
-<a name="l00443"></a>00443 cpl_matrix * kernel;
-<a name="l00444"></a>00444 cpl_image * labels;
-<a name="l00445"></a>00445 cpl_size nobj;
-<a name="l00446"></a>00446 <span class="keywordtype">double</span> bkg_level;
-<a name="l00447"></a>00447 <span class="keywordtype">double</span> bkg_noise;
-<a name="l00448"></a>00448 <span class="keywordtype">double</span> threshold;
-<a name="l00449"></a>00449 <span class="keywordtype">int</span> kernel_size;
-<a name="l00450"></a>00450 <span class="keywordtype">int</span> ix;
-<a name="l00451"></a>00451 <span class="keywordtype">int</span> iy;
-<a name="l00452"></a>00452
-<a name="l00453"></a>00453 cpl_msg_info(__func__, <span class="stringliteral">"Detecting objects on chip number %d"</span>, idet+1) ;
-<a name="l00454"></a>00454 cpl_msg_indent_more();
-<a name="l00455"></a>00455
-<a name="l00456"></a>00456 <span class="comment">/* Load the input data */</span>
-<a name="l00457"></a>00457 cpl_msg_info(__func__, <span class="stringliteral">"Load the input data"</span>) ;
-<a name="l00458"></a>00458 chip_image = <a class="code" href="group__hawki__load.html#ga5b9129188e69306c15cec2d4568ddeed" title="Load the chip of HAWKI image from a frameset in an image.">hawki_load_image</a>(combframes, 0, idet+1, CPL_TYPE_FLOAT);
-<a name="l00459"></a>00459 <span class="keywordflow">if</span> (chip_image == NULL)
-<a name="l00460"></a>00460 {
-<a name="l00461"></a>00461 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load chip %d"</span>, idet+1) ;
-<a name="l00462"></a>00462 cpl_msg_indent_less() ;
-<a name="l00463"></a>00463 cpl_free(apertures);
-<a name="l00464"></a>00464 <span class="keywordflow">return</span> NULL ;
-<a name="l00465"></a>00465 }
-<a name="l00466"></a>00466
-<a name="l00467"></a>00467 <span class="comment">/* Subtract the median of the frame first */</span>
-<a name="l00468"></a>00468 chip_image_sort = cpl_image_duplicate(chip_image);
-<a name="l00469"></a>00469 bkg_level = cpl_image_get_median(chip_image);
-<a name="l00470"></a>00470 bkg_noise = <a class="code" href="group__hawki__image__stats.html#gade5ca3e76e59c9ab510cb85bc02dd651" title="Get a robust estimation of the sigma based on the quartiles.">hawki_image_float_get_sigma_from_quartile</a>(chip_image_sort);
-<a name="l00471"></a>00471 cpl_image_delete(chip_image_sort);
-<a name="l00472"></a>00472 threshold = bkg_level + hawki_step_detect_obj_config.sigma_det * bkg_noise;
-<a name="l00473"></a>00473 cpl_msg_info(__func__, <span class="stringliteral">"Background: %f"</span>,bkg_level);
-<a name="l00474"></a>00474 cpl_msg_info(__func__, <span class="stringliteral">"Background noise: %f"</span>,bkg_noise);
-<a name="l00475"></a>00475
-<a name="l00476"></a>00476 <span class="comment">/* Create the mask */</span>
-<a name="l00477"></a>00477 cpl_msg_info(__func__, <span class="stringliteral">"Mask creation with threshold: %f"</span>,threshold);
-<a name="l00478"></a>00478 object_mask = cpl_mask_threshold_image_create
-<a name="l00479"></a>00479 (chip_image, threshold, DBL_MAX);
-<a name="l00480"></a>00480
-<a name="l00481"></a>00481 <span class="comment">/* Apply a morphological opening to remove single pixel detections */</span>
-<a name="l00482"></a>00482 cpl_msg_info(__func__, <span class="stringliteral">"Removing single pixel detections"</span>);
-<a name="l00483"></a>00483 kernel_op = cpl_mask_new(3, 3);
-<a name="l00484"></a>00484 cpl_mask_not(kernel_op);
-<a name="l00485"></a>00485 <span class="keywordflow">if</span> (cpl_mask_filter(object_mask, object_mask, kernel_op,
-<a name="l00486"></a>00486 CPL_FILTER_OPENING,
-<a name="l00487"></a>00487 CPL_BORDER_ZERO) != CPL_ERROR_NONE)
-<a name="l00488"></a>00488 {
-<a name="l00489"></a>00489 cpl_mask_delete(object_mask);
-<a name="l00490"></a>00490 cpl_mask_delete(kernel_op);
-<a name="l00491"></a>00491 <span class="keywordflow">return</span> NULL;
-<a name="l00492"></a>00492 }
-<a name="l00493"></a>00493 cpl_mask_delete(kernel_op);
-<a name="l00494"></a>00494
-<a name="l00495"></a>00495 <span class="comment">/* Apply dilation to the mask */</span>
-<a name="l00496"></a>00496 <span class="keywordflow">if</span>(hawki_step_detect_obj_config.growing_radius>0)
-<a name="l00497"></a>00497 {
-<a name="l00498"></a>00498 cpl_msg_info(__func__, <span class="stringliteral">"Growing the mask with radius %d"</span>,
-<a name="l00499"></a>00499 hawki_step_detect_obj_config.growing_radius);
-<a name="l00500"></a>00500 kernel_size = hawki_step_detect_obj_config.growing_radius*2+1;
-<a name="l00501"></a>00501 kernel = cpl_matrix_new(kernel_size, kernel_size);
-<a name="l00502"></a>00502 <span class="keywordflow">for</span>(ix=0;ix<kernel_size;++ix)
-<a name="l00503"></a>00503 <span class="keywordflow">for</span>(iy=0;iy<kernel_size;++iy)
-<a name="l00504"></a>00504 {
-<a name="l00505"></a>00505 <span class="keywordtype">double</span> xpos = ix+0.5-kernel_size/2.;
-<a name="l00506"></a>00506 <span class="keywordtype">double</span> ypos = iy+0.5-kernel_size/2.;
-<a name="l00507"></a>00507 <span class="keywordtype">double</span> kernel_func = 1-sqrt(xpos*xpos+ypos*ypos)/
-<a name="l00508"></a>00508 hawki_step_detect_obj_config.growing_radius;
-<a name="l00509"></a>00509 <span class="keywordflow">if</span>(kernel_func<0)
-<a name="l00510"></a>00510 kernel_func = 0;
-<a name="l00511"></a>00511 cpl_matrix_set(kernel, ix, iy, kernel_func);
-<a name="l00512"></a>00512 }
-<a name="l00513"></a>00513 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__mask.html#ga6154878d3444c3d4204a2a6132719e69">hawki_mask_convolve</a>(object_mask, kernel) != CPL_ERROR_NONE) {
-<a name="l00514"></a>00514 cpl_mask_delete(object_mask) ;
-<a name="l00515"></a>00515 cpl_matrix_delete(kernel) ;
-<a name="l00516"></a>00516 <span class="keywordflow">return</span> NULL;
-<a name="l00517"></a>00517 }
-<a name="l00518"></a>00518 cpl_matrix_delete(kernel);
-<a name="l00519"></a>00519 }
-<a name="l00520"></a>00520
-<a name="l00521"></a>00521 <span class="comment">/* Put the mask and the chip image in the imagelist */</span>
-<a name="l00522"></a>00522 mask_image[idet] = cpl_image_new_from_mask(object_mask);
-<a name="l00523"></a>00523 comb_image[idet] = chip_image;
-<a name="l00524"></a>00524
-<a name="l00525"></a>00525 <span class="comment">/* Labelise the different detected apertures */</span>
-<a name="l00526"></a>00526 cpl_msg_info(__func__, <span class="stringliteral">"Labelise mask"</span>) ;
-<a name="l00527"></a>00527 labels = cpl_image_labelise_mask_create(object_mask, &nobj);
-<a name="l00528"></a>00528 <span class="keywordflow">if</span> (labels == NULL)
-<a name="l00529"></a>00529 {
-<a name="l00530"></a>00530 <span class="keywordtype">int</span> jdet;
-<a name="l00531"></a>00531 cpl_free(apertures);
-<a name="l00532"></a>00532 cpl_mask_delete(object_mask);
-<a name="l00533"></a>00533 <span class="keywordflow">for</span> (jdet=0 ; jdet<idet + 1 ; jdet++)
-<a name="l00534"></a>00534 {
-<a name="l00535"></a>00535 cpl_image_delete(mask_image[jdet]);
-<a name="l00536"></a>00536 cpl_image_delete(comb_image[jdet]);
-<a name="l00537"></a>00537 }
-<a name="l00538"></a>00538 }
-<a name="l00539"></a>00539 cpl_msg_info(__func__, <span class="stringliteral">"Number of objects detected: %"</span>CPL_SIZE_FORMAT,
-<a name="l00540"></a>00540 nobj) ;
-<a name="l00541"></a>00541
-<a name="l00542"></a>00542 <span class="comment">/* Create the detected apertures list */</span>
-<a name="l00543"></a>00543 cpl_msg_info(__func__, <span class="stringliteral">"Create apertures"</span>) ;
-<a name="l00544"></a>00544 apertures[idet] = cpl_apertures_new_from_image(chip_image, labels);
-<a name="l00545"></a>00545 <span class="keywordflow">if</span> (apertures[idet] == NULL)
-<a name="l00546"></a>00546 {
-<a name="l00547"></a>00547 <span class="keywordtype">int</span> jdet;
-<a name="l00548"></a>00548 cpl_free(apertures);
-<a name="l00549"></a>00549 cpl_mask_delete(object_mask);
-<a name="l00550"></a>00550 <span class="keywordflow">for</span> (jdet=0 ; jdet<idet + 1 ; jdet++)
-<a name="l00551"></a>00551 {
-<a name="l00552"></a>00552 cpl_image_delete(mask_image[jdet]);
-<a name="l00553"></a>00553 cpl_image_delete(comb_image[jdet]);
-<a name="l00554"></a>00554 }
-<a name="l00555"></a>00555 <span class="keywordflow">return</span> NULL;
-<a name="l00556"></a>00556 }
-<a name="l00557"></a>00557
-<a name="l00558"></a>00558 <span class="comment">/* Free */</span>
-<a name="l00559"></a>00559 cpl_mask_delete(object_mask);
-<a name="l00560"></a>00560 cpl_image_delete(labels);
-<a name="l00561"></a>00561 cpl_msg_indent_less();
-<a name="l00562"></a>00562 }
-<a name="l00563"></a>00563
-<a name="l00564"></a>00564 <span class="comment">/* Free and return */</span>
-<a name="l00565"></a>00565 cpl_msg_indent_less();
-<a name="l00566"></a>00566 <span class="keywordflow">return</span> apertures;
-<a name="l00567"></a>00567 }
+<a name="l00413"></a>00413 <span class="keywordflow">return</span> 0;
+<a name="l00414"></a>00414 }
+<a name="l00415"></a>00415
+<a name="l00416"></a>00416
+<a name="l00417"></a>00417
+<a name="l00418"></a>00418 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00428"></a>00428 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00429"></a>00429 <span class="keyword">static</span> cpl_apertures ** hawki_step_detect_obj_mask_and_apertures
+<a name="l00430"></a>00430 (cpl_frameset * combframes,
+<a name="l00431"></a>00431 cpl_image ** mask_image,
+<a name="l00432"></a>00432 cpl_image ** comb_image)
+<a name="l00433"></a>00433 {
+<a name="l00434"></a>00434 cpl_apertures ** apertures;
+<a name="l00435"></a>00435 <span class="keywordtype">int</span> idet;
+<a name="l00436"></a>00436
+<a name="l00437"></a>00437 <span class="comment">/* Create output object */</span>
+<a name="l00438"></a>00438 apertures = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_apertures *));
+<a name="l00439"></a>00439
+<a name="l00440"></a>00440 <span class="comment">/* Loop on the detectors */</span>
+<a name="l00441"></a>00441 cpl_msg_indent_more();
+<a name="l00442"></a>00442 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00443"></a>00443 {
+<a name="l00444"></a>00444 cpl_image * chip_image;
+<a name="l00445"></a>00445 cpl_image * chip_image_sort;
+<a name="l00446"></a>00446 cpl_mask * object_mask;
+<a name="l00447"></a>00447 cpl_mask * kernel_op;
+<a name="l00448"></a>00448 cpl_matrix * kernel;
+<a name="l00449"></a>00449 cpl_image * labels;
+<a name="l00450"></a>00450 cpl_size nobj;
+<a name="l00451"></a>00451 <span class="keywordtype">double</span> bkg_level;
+<a name="l00452"></a>00452 <span class="keywordtype">double</span> bkg_noise;
+<a name="l00453"></a>00453 <span class="keywordtype">double</span> threshold;
+<a name="l00454"></a>00454 <span class="keywordtype">int</span> kernel_size;
+<a name="l00455"></a>00455 <span class="keywordtype">int</span> ix;
+<a name="l00456"></a>00456 <span class="keywordtype">int</span> iy;
+<a name="l00457"></a>00457
+<a name="l00458"></a>00458 cpl_msg_info(__func__, <span class="stringliteral">"Detecting objects on chip number %d"</span>, idet+1) ;
+<a name="l00459"></a>00459 cpl_msg_indent_more();
+<a name="l00460"></a>00460
+<a name="l00461"></a>00461 <span class="comment">/* Load the input data */</span>
+<a name="l00462"></a>00462 cpl_msg_info(__func__, <span class="stringliteral">"Load the input data"</span>) ;
+<a name="l00463"></a>00463 chip_image = <a class="code" href="group__hawki__load.html#ga5b9129188e69306c15cec2d4568ddeed" title="Load the chip of HAWKI image from a frameset in an image.">hawki_load_image</a>(combframes, 0, idet+1, CPL_TYPE_FLOAT);
+<a name="l00464"></a>00464 <span class="keywordflow">if</span> (chip_image == NULL)
+<a name="l00465"></a>00465 {
+<a name="l00466"></a>00466 cpl_msg_error(__func__, <span class="stringliteral">"Cannot load chip %d"</span>, idet+1) ;
+<a name="l00467"></a>00467 cpl_msg_indent_less() ;
+<a name="l00468"></a>00468 cpl_free(apertures);
+<a name="l00469"></a>00469 <span class="keywordflow">return</span> NULL ;
+<a name="l00470"></a>00470 }
+<a name="l00471"></a>00471
+<a name="l00472"></a>00472 <span class="comment">/* Subtract the median of the frame first */</span>
+<a name="l00473"></a>00473 chip_image_sort = cpl_image_duplicate(chip_image);
+<a name="l00474"></a>00474 bkg_level = cpl_image_get_median(chip_image);
+<a name="l00475"></a>00475 bkg_noise = <a class="code" href="group__hawki__image__stats.html#gade5ca3e76e59c9ab510cb85bc02dd651" title="Get a robust estimation of the sigma based on the quartiles.">hawki_image_float_get_sigma_from_quartile</a>(chip_image_sort);
+<a name="l00476"></a>00476 cpl_image_delete(chip_image_sort);
+<a name="l00477"></a>00477 threshold = bkg_level + hawki_step_detect_obj_config.sigma_det * bkg_noise;
+<a name="l00478"></a>00478 cpl_msg_info(__func__, <span class="stringliteral">"Background: %f"</span>,bkg_level);
+<a name="l00479"></a>00479 cpl_msg_info(__func__, <span class="stringliteral">"Background noise: %f"</span>,bkg_noise);
+<a name="l00480"></a>00480
+<a name="l00481"></a>00481 <span class="comment">/* Create the mask */</span>
+<a name="l00482"></a>00482 cpl_msg_info(__func__, <span class="stringliteral">"Mask creation with threshold: %f"</span>,threshold);
+<a name="l00483"></a>00483 object_mask = cpl_mask_threshold_image_create
+<a name="l00484"></a>00484 (chip_image, threshold, DBL_MAX);
+<a name="l00485"></a>00485
+<a name="l00486"></a>00486 <span class="comment">/* Apply a morphological opening to remove single pixel detections */</span>
+<a name="l00487"></a>00487 cpl_msg_info(__func__, <span class="stringliteral">"Removing single pixel detections"</span>);
+<a name="l00488"></a>00488 kernel_op = cpl_mask_new(3, 3);
+<a name="l00489"></a>00489 cpl_mask_not(kernel_op);
+<a name="l00490"></a>00490 <span class="keywordflow">if</span> (cpl_mask_filter(object_mask, object_mask, kernel_op,
+<a name="l00491"></a>00491 CPL_FILTER_OPENING,
+<a name="l00492"></a>00492 CPL_BORDER_ZERO) != CPL_ERROR_NONE)
+<a name="l00493"></a>00493 {
+<a name="l00494"></a>00494 cpl_mask_delete(object_mask);
+<a name="l00495"></a>00495 cpl_mask_delete(kernel_op);
+<a name="l00496"></a>00496 <span class="keywordflow">return</span> NULL;
+<a name="l00497"></a>00497 }
+<a name="l00498"></a>00498 cpl_mask_delete(kernel_op);
+<a name="l00499"></a>00499
+<a name="l00500"></a>00500 <span class="comment">/* Apply dilation to the mask */</span>
+<a name="l00501"></a>00501 <span class="keywordflow">if</span>(hawki_step_detect_obj_config.growing_radius>0)
+<a name="l00502"></a>00502 {
+<a name="l00503"></a>00503 cpl_msg_info(__func__, <span class="stringliteral">"Growing the mask with radius %d"</span>,
+<a name="l00504"></a>00504 hawki_step_detect_obj_config.growing_radius);
+<a name="l00505"></a>00505 kernel_size = hawki_step_detect_obj_config.growing_radius*2+1;
+<a name="l00506"></a>00506 kernel = cpl_matrix_new(kernel_size, kernel_size);
+<a name="l00507"></a>00507 <span class="keywordflow">for</span>(ix=0;ix<kernel_size;++ix)
+<a name="l00508"></a>00508 <span class="keywordflow">for</span>(iy=0;iy<kernel_size;++iy)
+<a name="l00509"></a>00509 {
+<a name="l00510"></a>00510 <span class="keywordtype">double</span> xpos = ix+0.5-kernel_size/2.;
+<a name="l00511"></a>00511 <span class="keywordtype">double</span> ypos = iy+0.5-kernel_size/2.;
+<a name="l00512"></a>00512 <span class="keywordtype">double</span> kernel_func = 1-sqrt(xpos*xpos+ypos*ypos)/
+<a name="l00513"></a>00513 hawki_step_detect_obj_config.growing_radius;
+<a name="l00514"></a>00514 <span class="keywordflow">if</span>(kernel_func<0)
+<a name="l00515"></a>00515 kernel_func = 0;
+<a name="l00516"></a>00516 cpl_matrix_set(kernel, ix, iy, kernel_func);
+<a name="l00517"></a>00517 }
+<a name="l00518"></a>00518 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__mask.html#ga6154878d3444c3d4204a2a6132719e69">hawki_mask_convolve</a>(object_mask, kernel) != CPL_ERROR_NONE) {
+<a name="l00519"></a>00519 cpl_mask_delete(object_mask) ;
+<a name="l00520"></a>00520 cpl_matrix_delete(kernel) ;
+<a name="l00521"></a>00521 <span class="keywordflow">return</span> NULL;
+<a name="l00522"></a>00522 }
+<a name="l00523"></a>00523 cpl_matrix_delete(kernel);
+<a name="l00524"></a>00524 }
+<a name="l00525"></a>00525
+<a name="l00526"></a>00526 <span class="comment">/* Put the mask and the chip image in the imagelist */</span>
+<a name="l00527"></a>00527 mask_image[idet] = cpl_image_new_from_mask(object_mask);
+<a name="l00528"></a>00528 comb_image[idet] = chip_image;
+<a name="l00529"></a>00529
+<a name="l00530"></a>00530 <span class="comment">/* Labelise the different detected apertures */</span>
+<a name="l00531"></a>00531 cpl_msg_info(__func__, <span class="stringliteral">"Labelise mask"</span>) ;
+<a name="l00532"></a>00532 labels = cpl_image_labelise_mask_create(object_mask, &nobj);
+<a name="l00533"></a>00533 <span class="keywordflow">if</span> (labels == NULL)
+<a name="l00534"></a>00534 {
+<a name="l00535"></a>00535 <span class="keywordtype">int</span> jdet;
+<a name="l00536"></a>00536 cpl_free(apertures);
+<a name="l00537"></a>00537 cpl_mask_delete(object_mask);
+<a name="l00538"></a>00538 <span class="keywordflow">for</span> (jdet=0 ; jdet<idet + 1 ; jdet++)
+<a name="l00539"></a>00539 {
+<a name="l00540"></a>00540 cpl_image_delete(mask_image[jdet]);
+<a name="l00541"></a>00541 cpl_image_delete(comb_image[jdet]);
+<a name="l00542"></a>00542 }
+<a name="l00543"></a>00543 }
+<a name="l00544"></a>00544 cpl_msg_info(__func__, <span class="stringliteral">"Number of objects detected: %"</span>CPL_SIZE_FORMAT,
+<a name="l00545"></a>00545 nobj) ;
+<a name="l00546"></a>00546
+<a name="l00547"></a>00547 <span class="comment">/* Create the detected apertures list */</span>
+<a name="l00548"></a>00548 cpl_msg_info(__func__, <span class="stringliteral">"Create apertures"</span>) ;
+<a name="l00549"></a>00549 apertures[idet] = cpl_apertures_new_from_image(chip_image, labels);
+<a name="l00550"></a>00550 <span class="keywordflow">if</span> (apertures[idet] == NULL)
+<a name="l00551"></a>00551 {
+<a name="l00552"></a>00552 <span class="keywordtype">int</span> jdet;
+<a name="l00553"></a>00553 cpl_free(apertures);
+<a name="l00554"></a>00554 cpl_mask_delete(object_mask);
+<a name="l00555"></a>00555 <span class="keywordflow">for</span> (jdet=0 ; jdet<idet + 1 ; jdet++)
+<a name="l00556"></a>00556 {
+<a name="l00557"></a>00557 cpl_image_delete(mask_image[jdet]);
+<a name="l00558"></a>00558 cpl_image_delete(comb_image[jdet]);
+<a name="l00559"></a>00559 }
+<a name="l00560"></a>00560 <span class="keywordflow">return</span> NULL;
+<a name="l00561"></a>00561 }
+<a name="l00562"></a>00562
+<a name="l00563"></a>00563 <span class="comment">/* Free */</span>
+<a name="l00564"></a>00564 cpl_mask_delete(object_mask);
+<a name="l00565"></a>00565 cpl_image_delete(labels);
+<a name="l00566"></a>00566 cpl_msg_indent_less();
+<a name="l00567"></a>00567 }
<a name="l00568"></a>00568
-<a name="l00569"></a>00569 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00576"></a>00576 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00577"></a>00577 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_aper_params
-<a name="l00578"></a>00578 (cpl_image ** combined_images,
-<a name="l00579"></a>00579 cpl_apertures ** apertures,
-<a name="l00580"></a>00580 cpl_table ** obj_charac)
-<a name="l00581"></a>00581 {
-<a name="l00582"></a>00582 <span class="keywordtype">int</span> nb_objs ;
-<a name="l00583"></a>00583 <span class="keywordtype">double</span> angle ;
-<a name="l00584"></a>00584 <span class="keywordtype">double</span> * fwhms_x ;
-<a name="l00585"></a>00585 <span class="keywordtype">double</span> * fwhms_y ;
-<a name="l00586"></a>00586 cpl_bivector * iqe ;
-<a name="l00587"></a>00587 <span class="keywordtype">int</span> nb_good ;
-<a name="l00588"></a>00588 cpl_vector * fwhms_good ;
-<a name="l00589"></a>00589 <span class="keywordtype">double</span> * fwhms_good_data ;
-<a name="l00590"></a>00590 <span class="keywordtype">double</span> f_min, f_max, fr, fx, fy ;
-<a name="l00591"></a>00591 <span class="keywordtype">int</span> chip;
-<a name="l00592"></a>00592 <span class="keywordtype">int</span> iobj;
-<a name="l00593"></a>00593 <span class="keywordtype">int</span> j;
-<a name="l00594"></a>00594
-<a name="l00595"></a>00595 <span class="comment">/* Initialise */</span>
-<a name="l00596"></a>00596 <span class="keywordtype">double</span> seeing_min_arcsec = 0.1 ;
-<a name="l00597"></a>00597 <span class="keywordtype">double</span> seeing_max_arcsec = 5.0 ;
-<a name="l00598"></a>00598 <span class="keywordtype">double</span> seeing_fwhm_var = 0.2 ;
-<a name="l00599"></a>00599
-<a name="l00600"></a>00600 <span class="comment">/* Check entries */</span>
-<a name="l00601"></a>00601 <span class="keywordflow">if</span> (combined_images == NULL) <span class="keywordflow">return</span> -1 ;
-<a name="l00602"></a>00602 <span class="keywordflow">if</span> (obj_charac == NULL) <span class="keywordflow">return</span> -1 ;
-<a name="l00603"></a>00603
-<a name="l00604"></a>00604 <span class="comment">/* Loop on the HAWK-I detectors */</span>
-<a name="l00605"></a>00605 cpl_msg_indent_more();
-<a name="l00606"></a>00606 <span class="keywordflow">for</span> (chip=0 ; chip<HAWKI_NB_DETECTORS ; chip++)
-<a name="l00607"></a>00607 {
+<a name="l00569"></a>00569 <span class="comment">/* Free and return */</span>
+<a name="l00570"></a>00570 cpl_msg_indent_less();
+<a name="l00571"></a>00571 <span class="keywordflow">return</span> apertures;
+<a name="l00572"></a>00572 }
+<a name="l00573"></a>00573
+<a name="l00574"></a>00574 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00581"></a>00581 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00582"></a>00582 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_aper_params
+<a name="l00583"></a>00583 (cpl_image ** combined_images,
+<a name="l00584"></a>00584 cpl_apertures ** apertures,
+<a name="l00585"></a>00585 cpl_table ** obj_charac)
+<a name="l00586"></a>00586 {
+<a name="l00587"></a>00587 <span class="keywordtype">int</span> nb_objs ;
+<a name="l00588"></a>00588 <span class="keywordtype">double</span> angle ;
+<a name="l00589"></a>00589 <span class="keywordtype">double</span> * fwhms_x ;
+<a name="l00590"></a>00590 <span class="keywordtype">double</span> * fwhms_y ;
+<a name="l00591"></a>00591 cpl_bivector * iqe ;
+<a name="l00592"></a>00592 <span class="keywordtype">int</span> nb_good ;
+<a name="l00593"></a>00593 cpl_vector * fwhms_good ;
+<a name="l00594"></a>00594 <span class="keywordtype">double</span> * fwhms_good_data ;
+<a name="l00595"></a>00595 <span class="keywordtype">double</span> f_min, f_max, fr, fx, fy ;
+<a name="l00596"></a>00596 <span class="keywordtype">int</span> chip;
+<a name="l00597"></a>00597 <span class="keywordtype">int</span> iobj;
+<a name="l00598"></a>00598 <span class="keywordtype">int</span> j;
+<a name="l00599"></a>00599
+<a name="l00600"></a>00600 <span class="comment">/* Initialise */</span>
+<a name="l00601"></a>00601 <span class="keywordtype">double</span> seeing_min_arcsec = 0.1 ;
+<a name="l00602"></a>00602 <span class="keywordtype">double</span> seeing_max_arcsec = 5.0 ;
+<a name="l00603"></a>00603 <span class="keywordtype">double</span> seeing_fwhm_var = 0.2 ;
+<a name="l00604"></a>00604
+<a name="l00605"></a>00605 <span class="comment">/* Check entries */</span>
+<a name="l00606"></a>00606 <span class="keywordflow">if</span> (combined_images == NULL) <span class="keywordflow">return</span> -1 ;
+<a name="l00607"></a>00607 <span class="keywordflow">if</span> (obj_charac == NULL) <span class="keywordflow">return</span> -1 ;
<a name="l00608"></a>00608
-<a name="l00609"></a>00609 <span class="comment">/* Number of detected objects */</span>
-<a name="l00610"></a>00610 nb_objs = cpl_apertures_get_size(apertures[chip]);
-<a name="l00611"></a>00611 cpl_msg_info(__func__, <span class="stringliteral">"%d objects detected on chip %d"</span>,nb_objs,chip+1);
-<a name="l00612"></a>00612 hawki_step_detect_obj_output.nbobjs[chip] = nb_objs ;
-<a name="l00613"></a>00613 fwhms_x = cpl_malloc(nb_objs * <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>)) ;
-<a name="l00614"></a>00614 fwhms_y = cpl_malloc(nb_objs * <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>)) ;
-<a name="l00615"></a>00615
-<a name="l00616"></a>00616 <span class="comment">/* Initialize the output table */</span>
-<a name="l00617"></a>00617 cpl_table_set_size(obj_charac[chip], nb_objs);
-<a name="l00618"></a>00618 cpl_table_new_column
-<a name="l00619"></a>00619 (obj_charac[chip], HAWKI_COL_OBJ_POSX, CPL_TYPE_DOUBLE);
-<a name="l00620"></a>00620 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_POSX,<span class="stringliteral">"pix"</span>);
-<a name="l00621"></a>00621 cpl_table_new_column
-<a name="l00622"></a>00622 (obj_charac[chip], HAWKI_COL_OBJ_POSY, CPL_TYPE_DOUBLE);
-<a name="l00623"></a>00623 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_POSY,<span class="stringliteral">"pix"</span>);
-<a name="l00624"></a>00624 cpl_table_new_column
-<a name="l00625"></a>00625 (obj_charac[chip], HAWKI_COL_OBJ_ANGLE, CPL_TYPE_DOUBLE);
-<a name="l00626"></a>00626 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_ANGLE,<span class="stringliteral">"grad"</span>);
-<a name="l00627"></a>00627 cpl_table_new_column
-<a name="l00628"></a>00628 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MAJAX, CPL_TYPE_DOUBLE);
-<a name="l00629"></a>00629 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FWHM_MAJAX,<span class="stringliteral">"pix"</span>);
-<a name="l00630"></a>00630 cpl_table_new_column
-<a name="l00631"></a>00631 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MINAX, CPL_TYPE_DOUBLE);
-<a name="l00632"></a>00632 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FWHM_MINAX,<span class="stringliteral">"pix"</span>);
-<a name="l00633"></a>00633 cpl_table_new_column
-<a name="l00634"></a>00634 (obj_charac[chip], HAWKI_COL_OBJ_ELLIP, CPL_TYPE_DOUBLE);
+<a name="l00609"></a>00609 <span class="comment">/* Loop on the HAWK-I detectors */</span>
+<a name="l00610"></a>00610 cpl_msg_indent_more();
+<a name="l00611"></a>00611 <span class="keywordflow">for</span> (chip=0 ; chip<HAWKI_NB_DETECTORS ; chip++)
+<a name="l00612"></a>00612 {
+<a name="l00613"></a>00613
+<a name="l00614"></a>00614 <span class="comment">/* Number of detected objects */</span>
+<a name="l00615"></a>00615 nb_objs = cpl_apertures_get_size(apertures[chip]);
+<a name="l00616"></a>00616 cpl_msg_info(__func__, <span class="stringliteral">"%d objects detected on chip %d"</span>,nb_objs,chip+1);
+<a name="l00617"></a>00617 hawki_step_detect_obj_output.nbobjs[chip] = nb_objs ;
+<a name="l00618"></a>00618 fwhms_x = cpl_malloc(nb_objs * <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>)) ;
+<a name="l00619"></a>00619 fwhms_y = cpl_malloc(nb_objs * <span class="keyword">sizeof</span>(<span class="keywordtype">double</span>)) ;
+<a name="l00620"></a>00620
+<a name="l00621"></a>00621 <span class="comment">/* Initialize the output table */</span>
+<a name="l00622"></a>00622 cpl_table_set_size(obj_charac[chip], nb_objs);
+<a name="l00623"></a>00623 cpl_table_new_column
+<a name="l00624"></a>00624 (obj_charac[chip], HAWKI_COL_OBJ_POSX, CPL_TYPE_DOUBLE);
+<a name="l00625"></a>00625 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_POSX,<span class="stringliteral">"pix"</span>);
+<a name="l00626"></a>00626 cpl_table_new_column
+<a name="l00627"></a>00627 (obj_charac[chip], HAWKI_COL_OBJ_POSY, CPL_TYPE_DOUBLE);
+<a name="l00628"></a>00628 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_POSY,<span class="stringliteral">"pix"</span>);
+<a name="l00629"></a>00629 cpl_table_new_column
+<a name="l00630"></a>00630 (obj_charac[chip], HAWKI_COL_OBJ_ANGLE, CPL_TYPE_DOUBLE);
+<a name="l00631"></a>00631 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_ANGLE,<span class="stringliteral">"grad"</span>);
+<a name="l00632"></a>00632 cpl_table_new_column
+<a name="l00633"></a>00633 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MAJAX, CPL_TYPE_DOUBLE);
+<a name="l00634"></a>00634 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FWHM_MAJAX,<span class="stringliteral">"pix"</span>);
<a name="l00635"></a>00635 cpl_table_new_column
-<a name="l00636"></a>00636 (obj_charac[chip], HAWKI_COL_OBJ_FLUX, CPL_TYPE_DOUBLE);
-<a name="l00637"></a>00637 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FLUX,<span class="stringliteral">"ADU"</span>);
-<a name="l00638"></a>00638 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l00639"></a>00639 {
-<a name="l00640"></a>00640 <span class="comment">/* Fill with the already known information */</span>
-<a name="l00641"></a>00641 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_POSX, iobj,
-<a name="l00642"></a>00642 cpl_apertures_get_centroid_x(apertures[chip],
-<a name="l00643"></a>00643 iobj+1));
-<a name="l00644"></a>00644 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_POSY, iobj,
-<a name="l00645"></a>00645 cpl_apertures_get_centroid_y(apertures[chip],
-<a name="l00646"></a>00646 iobj+1));
-<a name="l00647"></a>00647 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_FLUX, iobj,
-<a name="l00648"></a>00648 cpl_apertures_get_flux(apertures[chip],
-<a name="l00649"></a>00649 iobj+1));
-<a name="l00650"></a>00650 <span class="comment">/* Compute the FWHM informations */</span>
-<a name="l00651"></a>00651 iqe = cpl_image_iqe(combined_images[chip],
-<a name="l00652"></a>00652 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_x(apertures[chip], iobj+1)- 10,
-<a name="l00653"></a>00653 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_y(apertures[chip], iobj+1)- 10,
-<a name="l00654"></a>00654 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_x(apertures[chip], iobj+1)+ 10,
-<a name="l00655"></a>00655 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_y(apertures[chip], iobj+1)+ 10);
-<a name="l00656"></a>00656 <span class="keywordflow">if</span> (iqe == NULL)
-<a name="l00657"></a>00657 {
-<a name="l00658"></a>00658 cpl_error_reset() ;
-<a name="l00659"></a>00659 cpl_msg_debug(__func__, <span class="stringliteral">"Cannot get FWHM for obj at pos %g %g"</span>,
-<a name="l00660"></a>00660 cpl_apertures_get_centroid_x(apertures[chip],
-<a name="l00661"></a>00661 iobj+1),
-<a name="l00662"></a>00662 cpl_apertures_get_centroid_y(apertures[chip],
-<a name="l00663"></a>00663 iobj+1)) ;
-<a name="l00664"></a>00664 fwhms_x[iobj] = -1.0 ;
-<a name="l00665"></a>00665 fwhms_y[iobj] = -1.0 ;
-<a name="l00666"></a>00666 angle = 0.0 ;
-<a name="l00667"></a>00667 }
-<a name="l00668"></a>00668 <span class="keywordflow">else</span>
-<a name="l00669"></a>00669 {
-<a name="l00670"></a>00670 fwhms_x[iobj] = cpl_vector_get(cpl_bivector_get_x(iqe), 2) ;
-<a name="l00671"></a>00671 fwhms_y[iobj] = cpl_vector_get(cpl_bivector_get_x(iqe), 3) ;
-<a name="l00672"></a>00672 angle = cpl_vector_get(cpl_bivector_get_x(iqe), 4) ;
-<a name="l00673"></a>00673 cpl_bivector_delete(iqe) ;
-<a name="l00674"></a>00674 cpl_msg_debug(__func__,
-<a name="l00675"></a>00675 <span class="stringliteral">"FWHM for obj at pos %g %g: %g x %g (%g)"</span>,
-<a name="l00676"></a>00676 cpl_apertures_get_centroid_x(apertures[chip],
-<a name="l00677"></a>00677 iobj+1),
-<a name="l00678"></a>00678 cpl_apertures_get_centroid_y(apertures[chip],
-<a name="l00679"></a>00679 iobj+1),
-<a name="l00680"></a>00680 fwhms_x[iobj], fwhms_y[iobj], angle) ;
-<a name="l00681"></a>00681 }
-<a name="l00682"></a>00682 cpl_table_set_double
-<a name="l00683"></a>00683 (obj_charac[chip], HAWKI_COL_OBJ_ANGLE, iobj, angle) ;
-<a name="l00684"></a>00684 cpl_table_set_double
-<a name="l00685"></a>00685 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MAJAX, iobj,
-<a name="l00686"></a>00686 fwhms_x[iobj]);
+<a name="l00636"></a>00636 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MINAX, CPL_TYPE_DOUBLE);
+<a name="l00637"></a>00637 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FWHM_MINAX,<span class="stringliteral">"pix"</span>);
+<a name="l00638"></a>00638 cpl_table_new_column
+<a name="l00639"></a>00639 (obj_charac[chip], HAWKI_COL_OBJ_ELLIP, CPL_TYPE_DOUBLE);
+<a name="l00640"></a>00640 cpl_table_new_column
+<a name="l00641"></a>00641 (obj_charac[chip], HAWKI_COL_OBJ_FLUX, CPL_TYPE_DOUBLE);
+<a name="l00642"></a>00642 cpl_table_set_column_unit(obj_charac[chip],HAWKI_COL_OBJ_FLUX,<span class="stringliteral">"ADU"</span>);
+<a name="l00643"></a>00643 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l00644"></a>00644 {
+<a name="l00645"></a>00645 <span class="comment">/* Fill with the already known information */</span>
+<a name="l00646"></a>00646 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_POSX, iobj,
+<a name="l00647"></a>00647 cpl_apertures_get_centroid_x(apertures[chip],
+<a name="l00648"></a>00648 iobj+1));
+<a name="l00649"></a>00649 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_POSY, iobj,
+<a name="l00650"></a>00650 cpl_apertures_get_centroid_y(apertures[chip],
+<a name="l00651"></a>00651 iobj+1));
+<a name="l00652"></a>00652 cpl_table_set_double(obj_charac[chip], HAWKI_COL_OBJ_FLUX, iobj,
+<a name="l00653"></a>00653 cpl_apertures_get_flux(apertures[chip],
+<a name="l00654"></a>00654 iobj+1));
+<a name="l00655"></a>00655 <span class="comment">/* Compute the FWHM informations */</span>
+<a name="l00656"></a>00656 iqe = cpl_image_iqe(combined_images[chip],
+<a name="l00657"></a>00657 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_x(apertures[chip], iobj+1)- 10,
+<a name="l00658"></a>00658 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_y(apertures[chip], iobj+1)- 10,
+<a name="l00659"></a>00659 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_x(apertures[chip], iobj+1)+ 10,
+<a name="l00660"></a>00660 (<span class="keywordtype">int</span>)cpl_apertures_get_centroid_y(apertures[chip], iobj+1)+ 10);
+<a name="l00661"></a>00661 <span class="keywordflow">if</span> (iqe == NULL)
+<a name="l00662"></a>00662 {
+<a name="l00663"></a>00663 cpl_error_reset() ;
+<a name="l00664"></a>00664 cpl_msg_debug(__func__, <span class="stringliteral">"Cannot get FWHM for obj at pos %g %g"</span>,
+<a name="l00665"></a>00665 cpl_apertures_get_centroid_x(apertures[chip],
+<a name="l00666"></a>00666 iobj+1),
+<a name="l00667"></a>00667 cpl_apertures_get_centroid_y(apertures[chip],
+<a name="l00668"></a>00668 iobj+1)) ;
+<a name="l00669"></a>00669 fwhms_x[iobj] = -1.0 ;
+<a name="l00670"></a>00670 fwhms_y[iobj] = -1.0 ;
+<a name="l00671"></a>00671 angle = 0.0 ;
+<a name="l00672"></a>00672 }
+<a name="l00673"></a>00673 <span class="keywordflow">else</span>
+<a name="l00674"></a>00674 {
+<a name="l00675"></a>00675 fwhms_x[iobj] = cpl_vector_get(cpl_bivector_get_x(iqe), 2) ;
+<a name="l00676"></a>00676 fwhms_y[iobj] = cpl_vector_get(cpl_bivector_get_x(iqe), 3) ;
+<a name="l00677"></a>00677 angle = cpl_vector_get(cpl_bivector_get_x(iqe), 4) ;
+<a name="l00678"></a>00678 cpl_bivector_delete(iqe) ;
+<a name="l00679"></a>00679 cpl_msg_debug(__func__,
+<a name="l00680"></a>00680 <span class="stringliteral">"FWHM for obj at pos %g %g: %g x %g (%g)"</span>,
+<a name="l00681"></a>00681 cpl_apertures_get_centroid_x(apertures[chip],
+<a name="l00682"></a>00682 iobj+1),
+<a name="l00683"></a>00683 cpl_apertures_get_centroid_y(apertures[chip],
+<a name="l00684"></a>00684 iobj+1),
+<a name="l00685"></a>00685 fwhms_x[iobj], fwhms_y[iobj], angle) ;
+<a name="l00686"></a>00686 }
<a name="l00687"></a>00687 cpl_table_set_double
-<a name="l00688"></a>00688 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MINAX, iobj,
-<a name="l00689"></a>00689 fwhms_y[iobj]);
-<a name="l00690"></a>00690 cpl_table_set_double
-<a name="l00691"></a>00691 (obj_charac[chip], HAWKI_COL_OBJ_ELLIP, iobj,
-<a name="l00692"></a>00692 1 - fwhms_y[iobj] / fwhms_x[iobj]);
-<a name="l00693"></a>00693 }
-<a name="l00694"></a>00694
-<a name="l00695"></a>00695 <span class="comment">/* Get the number of good values */</span>
-<a name="l00696"></a>00696 nb_good = 0 ;
-<a name="l00697"></a>00697 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l00698"></a>00698 {
-<a name="l00699"></a>00699 <span class="keywordflow">if</span> ((fwhms_x[iobj] > 0.0) && (fwhms_y[iobj] > 0.0)) nb_good++ ;
-<a name="l00700"></a>00700 }
-<a name="l00701"></a>00701 <span class="keywordflow">if</span> (nb_good == 0)
-<a name="l00702"></a>00702 {
-<a name="l00703"></a>00703 cpl_msg_warning
-<a name="l00704"></a>00704 (__func__, <span class="stringliteral">"No objects to compute mean FWHM on chip %d"</span>,chip+1);
-<a name="l00705"></a>00705 cpl_free(fwhms_x) ;
-<a name="l00706"></a>00706 cpl_free(fwhms_y) ;
-<a name="l00707"></a>00707 <span class="keywordflow">continue</span>;
-<a name="l00708"></a>00708 }
-<a name="l00709"></a>00709
-<a name="l00710"></a>00710 <span class="comment">/* Get the good values */</span>
-<a name="l00711"></a>00711 fwhms_good = cpl_vector_new(nb_good) ;
-<a name="l00712"></a>00712 fwhms_good_data = cpl_vector_get_data(fwhms_good) ;
-<a name="l00713"></a>00713 j=0 ;
-<a name="l00714"></a>00714 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l00715"></a>00715 {
-<a name="l00716"></a>00716 <span class="keywordflow">if</span> ((fwhms_x[iobj] > 0.0) && (fwhms_y[iobj] > 0.0))
-<a name="l00717"></a>00717 {
-<a name="l00718"></a>00718 fwhms_good_data[j] = (fwhms_x[iobj]+fwhms_y[iobj])/2.0 ;
-<a name="l00719"></a>00719 j++ ;
-<a name="l00720"></a>00720 }
-<a name="l00721"></a>00721 }
-<a name="l00722"></a>00722
-<a name="l00723"></a>00723 <span class="comment">/* Compute the fwhm */</span>
-<a name="l00724"></a>00724 <span class="keywordflow">if</span> (nb_good < 3)
-<a name="l00725"></a>00725 {
-<a name="l00726"></a>00726 <span class="comment">/* Too few values to compute the median */</span>
-<a name="l00727"></a>00727 hawki_step_detect_obj_output.fwhm_pix[chip] = fwhms_good_data[0] ;
-<a name="l00728"></a>00728 cpl_msg_warning
-<a name="l00729"></a>00729 (__func__, <span class="stringliteral">"Fewer than 3 objects, using the first object FWHM"</span>);
-<a name="l00730"></a>00730 }
-<a name="l00731"></a>00731 <span class="keywordflow">else</span>
-<a name="l00732"></a>00732 {
-<a name="l00733"></a>00733 <span class="comment">/* Compute the median */</span>
-<a name="l00734"></a>00734 hawki_step_detect_obj_output.fwhm_pix[chip] =
-<a name="l00735"></a>00735 cpl_vector_get_median_const(fwhms_good);
-<a name="l00736"></a>00736 }
-<a name="l00737"></a>00737 hawki_step_detect_obj_output.fwhm_arcsec[chip] =
-<a name="l00738"></a>00738 hawki_step_detect_obj_output.fwhm_pix[chip] *
-<a name="l00739"></a>00739 hawki_step_detect_obj_output.pixscale ;
-<a name="l00740"></a>00740
-<a name="l00741"></a>00741 <span class="comment">/* Compute the mode of the FWHMs */</span>
-<a name="l00742"></a>00742 <span class="keywordflow">if</span> (nb_good > 5)
-<a name="l00743"></a>00743 {
-<a name="l00744"></a>00744 hawki_step_detect_obj_output.fwhm_mode[chip] =
-<a name="l00745"></a>00745 <a class="code" href="group__hawki__utils.html#gac64c154f22c4d25e242833fbe75da886" title="Compute the histogram mode.">hawki_vector_get_mode</a>(fwhms_good);
-<a name="l00746"></a>00746 hawki_step_detect_obj_output.fwhm_mode[chip] *=
-<a name="l00747"></a>00747 hawki_step_detect_obj_output.pixscale;
-<a name="l00748"></a>00748 }
-<a name="l00749"></a>00749 cpl_vector_delete(fwhms_good);
-<a name="l00750"></a>00750
-<a name="l00751"></a>00751 <span class="comment">/* IQ is the median of the (fwhm_x+fwhm_y/2) of the good stars */</span>
-<a name="l00752"></a>00752 <span class="comment">/* Compute f_min and f_max */</span>
-<a name="l00753"></a>00753 f_min = seeing_min_arcsec / hawki_step_detect_obj_output.pixscale;
-<a name="l00754"></a>00754 f_max = seeing_max_arcsec / hawki_step_detect_obj_output.pixscale;
-<a name="l00755"></a>00755
-<a name="l00756"></a>00756 <span class="comment">/* Get the number of good values */</span>
-<a name="l00757"></a>00757 nb_good = 0 ;
-<a name="l00758"></a>00758 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l00759"></a>00759 {
-<a name="l00760"></a>00760 fx = fwhms_x[iobj] ;
-<a name="l00761"></a>00761 fy = fwhms_y[iobj] ;
-<a name="l00762"></a>00762 fr = 2.0 * fabs(fx-fy) / (fx+fy) ;
-<a name="l00763"></a>00763 <span class="keywordflow">if</span> ((fx > f_min) && (fx < f_max) && (fy > f_min) && (fy < f_max) &&
-<a name="l00764"></a>00764 (fr < seeing_fwhm_var)) nb_good++ ;
-<a name="l00765"></a>00765 }
-<a name="l00766"></a>00766 <span class="keywordflow">if</span> (nb_good == 0)
-<a name="l00767"></a>00767 {
-<a name="l00768"></a>00768 cpl_msg_warning(__func__, <span class="stringliteral">"No objects to compute IQ on chip %d"</span>,
-<a name="l00769"></a>00769 chip+1);
-<a name="l00770"></a>00770 cpl_free(fwhms_x) ;
-<a name="l00771"></a>00771 cpl_free(fwhms_y) ;
-<a name="l00772"></a>00772 <span class="keywordflow">continue</span>;
-<a name="l00773"></a>00773 }
-<a name="l00774"></a>00774
-<a name="l00775"></a>00775 <span class="comment">/* Get the good values */</span>
-<a name="l00776"></a>00776 fwhms_good = cpl_vector_new(nb_good) ;
-<a name="l00777"></a>00777 fwhms_good_data = cpl_vector_get_data(fwhms_good) ;
-<a name="l00778"></a>00778 j=0 ;
-<a name="l00779"></a>00779 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
-<a name="l00780"></a>00780 {
-<a name="l00781"></a>00781 fx = fwhms_x[iobj] ;
-<a name="l00782"></a>00782 fy = fwhms_y[iobj] ;
-<a name="l00783"></a>00783 fr = 2.0 * fabs(fx-fy) / (fx+fy) ;
-<a name="l00784"></a>00784 <span class="keywordflow">if</span> ((fx > f_min) && (fx < f_max) && (fy > f_min) && (fy < f_max) &&
-<a name="l00785"></a>00785 (fr < seeing_fwhm_var))
-<a name="l00786"></a>00786 {
-<a name="l00787"></a>00787 fwhms_good_data[j] = (fx + fy)/2.0 ;
-<a name="l00788"></a>00788 j++ ;
-<a name="l00789"></a>00789 }
-<a name="l00790"></a>00790 }
-<a name="l00791"></a>00791 cpl_free(fwhms_x) ;
-<a name="l00792"></a>00792 cpl_free(fwhms_y) ;
-<a name="l00793"></a>00793
-<a name="l00794"></a>00794 <span class="comment">/* Compute the fwhm */</span>
-<a name="l00795"></a>00795 <span class="keywordflow">if</span> (nb_good < 3)
-<a name="l00796"></a>00796 {
-<a name="l00797"></a>00797 <span class="comment">/* Too few values to compute the median */</span>
-<a name="l00798"></a>00798 hawki_step_detect_obj_output.iq[chip] = fwhms_good_data[0] ;
-<a name="l00799"></a>00799 }
-<a name="l00800"></a>00800 <span class="keywordflow">else</span>
+<a name="l00688"></a>00688 (obj_charac[chip], HAWKI_COL_OBJ_ANGLE, iobj, angle) ;
+<a name="l00689"></a>00689 cpl_table_set_double
+<a name="l00690"></a>00690 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MAJAX, iobj,
+<a name="l00691"></a>00691 fwhms_x[iobj]);
+<a name="l00692"></a>00692 cpl_table_set_double
+<a name="l00693"></a>00693 (obj_charac[chip], HAWKI_COL_OBJ_FWHM_MINAX, iobj,
+<a name="l00694"></a>00694 fwhms_y[iobj]);
+<a name="l00695"></a>00695 cpl_table_set_double
+<a name="l00696"></a>00696 (obj_charac[chip], HAWKI_COL_OBJ_ELLIP, iobj,
+<a name="l00697"></a>00697 1 - fwhms_y[iobj] / fwhms_x[iobj]);
+<a name="l00698"></a>00698 }
+<a name="l00699"></a>00699
+<a name="l00700"></a>00700 <span class="comment">/* Get the number of good values */</span>
+<a name="l00701"></a>00701 nb_good = 0 ;
+<a name="l00702"></a>00702 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l00703"></a>00703 {
+<a name="l00704"></a>00704 <span class="keywordflow">if</span> ((fwhms_x[iobj] > 0.0) && (fwhms_y[iobj] > 0.0)) nb_good++ ;
+<a name="l00705"></a>00705 }
+<a name="l00706"></a>00706 <span class="keywordflow">if</span> (nb_good == 0)
+<a name="l00707"></a>00707 {
+<a name="l00708"></a>00708 cpl_msg_warning
+<a name="l00709"></a>00709 (__func__, <span class="stringliteral">"No objects to compute mean FWHM on chip %d"</span>,chip+1);
+<a name="l00710"></a>00710 cpl_free(fwhms_x) ;
+<a name="l00711"></a>00711 cpl_free(fwhms_y) ;
+<a name="l00712"></a>00712 <span class="keywordflow">continue</span>;
+<a name="l00713"></a>00713 }
+<a name="l00714"></a>00714
+<a name="l00715"></a>00715 <span class="comment">/* Get the good values */</span>
+<a name="l00716"></a>00716 fwhms_good = cpl_vector_new(nb_good) ;
+<a name="l00717"></a>00717 fwhms_good_data = cpl_vector_get_data(fwhms_good) ;
+<a name="l00718"></a>00718 j=0 ;
+<a name="l00719"></a>00719 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l00720"></a>00720 {
+<a name="l00721"></a>00721 <span class="keywordflow">if</span> ((fwhms_x[iobj] > 0.0) && (fwhms_y[iobj] > 0.0))
+<a name="l00722"></a>00722 {
+<a name="l00723"></a>00723 fwhms_good_data[j] = (fwhms_x[iobj]+fwhms_y[iobj])/2.0 ;
+<a name="l00724"></a>00724 j++ ;
+<a name="l00725"></a>00725 }
+<a name="l00726"></a>00726 }
+<a name="l00727"></a>00727
+<a name="l00728"></a>00728 <span class="comment">/* Compute the fwhm */</span>
+<a name="l00729"></a>00729 <span class="keywordflow">if</span> (nb_good < 3)
+<a name="l00730"></a>00730 {
+<a name="l00731"></a>00731 <span class="comment">/* Too few values to compute the median */</span>
+<a name="l00732"></a>00732 hawki_step_detect_obj_output.fwhm_pix[chip] = fwhms_good_data[0] ;
+<a name="l00733"></a>00733 cpl_msg_warning
+<a name="l00734"></a>00734 (__func__, <span class="stringliteral">"Fewer than 3 objects, using the first object FWHM"</span>);
+<a name="l00735"></a>00735 }
+<a name="l00736"></a>00736 <span class="keywordflow">else</span>
+<a name="l00737"></a>00737 {
+<a name="l00738"></a>00738 <span class="comment">/* Compute the median */</span>
+<a name="l00739"></a>00739 hawki_step_detect_obj_output.fwhm_pix[chip] =
+<a name="l00740"></a>00740 cpl_vector_get_median_const(fwhms_good);
+<a name="l00741"></a>00741 }
+<a name="l00742"></a>00742 hawki_step_detect_obj_output.fwhm_arcsec[chip] =
+<a name="l00743"></a>00743 hawki_step_detect_obj_output.fwhm_pix[chip] *
+<a name="l00744"></a>00744 hawki_step_detect_obj_output.pixscale ;
+<a name="l00745"></a>00745
+<a name="l00746"></a>00746 <span class="comment">/* Compute the mode of the FWHMs */</span>
+<a name="l00747"></a>00747 <span class="keywordflow">if</span> (nb_good > 5)
+<a name="l00748"></a>00748 {
+<a name="l00749"></a>00749 hawki_step_detect_obj_output.fwhm_mode[chip] =
+<a name="l00750"></a>00750 <a class="code" href="group__hawki__utils.html#gac64c154f22c4d25e242833fbe75da886" title="Compute the histogram mode.">hawki_vector_get_mode</a>(fwhms_good);
+<a name="l00751"></a>00751 hawki_step_detect_obj_output.fwhm_mode[chip] *=
+<a name="l00752"></a>00752 hawki_step_detect_obj_output.pixscale;
+<a name="l00753"></a>00753 }
+<a name="l00754"></a>00754 cpl_vector_delete(fwhms_good);
+<a name="l00755"></a>00755
+<a name="l00756"></a>00756 <span class="comment">/* IQ is the median of the (fwhm_x+fwhm_y/2) of the good stars */</span>
+<a name="l00757"></a>00757 <span class="comment">/* Compute f_min and f_max */</span>
+<a name="l00758"></a>00758 f_min = seeing_min_arcsec / hawki_step_detect_obj_output.pixscale;
+<a name="l00759"></a>00759 f_max = seeing_max_arcsec / hawki_step_detect_obj_output.pixscale;
+<a name="l00760"></a>00760
+<a name="l00761"></a>00761 <span class="comment">/* Get the number of good values */</span>
+<a name="l00762"></a>00762 nb_good = 0 ;
+<a name="l00763"></a>00763 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l00764"></a>00764 {
+<a name="l00765"></a>00765 fx = fwhms_x[iobj] ;
+<a name="l00766"></a>00766 fy = fwhms_y[iobj] ;
+<a name="l00767"></a>00767 fr = 2.0 * fabs(fx-fy) / (fx+fy) ;
+<a name="l00768"></a>00768 <span class="keywordflow">if</span> ((fx > f_min) && (fx < f_max) && (fy > f_min) && (fy < f_max) &&
+<a name="l00769"></a>00769 (fr < seeing_fwhm_var)) nb_good++ ;
+<a name="l00770"></a>00770 }
+<a name="l00771"></a>00771 <span class="keywordflow">if</span> (nb_good == 0)
+<a name="l00772"></a>00772 {
+<a name="l00773"></a>00773 cpl_msg_warning(__func__, <span class="stringliteral">"No objects to compute IQ on chip %d"</span>,
+<a name="l00774"></a>00774 chip+1);
+<a name="l00775"></a>00775 cpl_free(fwhms_x) ;
+<a name="l00776"></a>00776 cpl_free(fwhms_y) ;
+<a name="l00777"></a>00777 <span class="keywordflow">continue</span>;
+<a name="l00778"></a>00778 }
+<a name="l00779"></a>00779
+<a name="l00780"></a>00780 <span class="comment">/* Get the good values */</span>
+<a name="l00781"></a>00781 fwhms_good = cpl_vector_new(nb_good) ;
+<a name="l00782"></a>00782 fwhms_good_data = cpl_vector_get_data(fwhms_good) ;
+<a name="l00783"></a>00783 j=0 ;
+<a name="l00784"></a>00784 <span class="keywordflow">for</span> (iobj=0 ; iobj<nb_objs ; iobj++)
+<a name="l00785"></a>00785 {
+<a name="l00786"></a>00786 fx = fwhms_x[iobj] ;
+<a name="l00787"></a>00787 fy = fwhms_y[iobj] ;
+<a name="l00788"></a>00788 fr = 2.0 * fabs(fx-fy) / (fx+fy) ;
+<a name="l00789"></a>00789 <span class="keywordflow">if</span> ((fx > f_min) && (fx < f_max) && (fy > f_min) && (fy < f_max) &&
+<a name="l00790"></a>00790 (fr < seeing_fwhm_var))
+<a name="l00791"></a>00791 {
+<a name="l00792"></a>00792 fwhms_good_data[j] = (fx + fy)/2.0 ;
+<a name="l00793"></a>00793 j++ ;
+<a name="l00794"></a>00794 }
+<a name="l00795"></a>00795 }
+<a name="l00796"></a>00796 cpl_free(fwhms_x) ;
+<a name="l00797"></a>00797 cpl_free(fwhms_y) ;
+<a name="l00798"></a>00798
+<a name="l00799"></a>00799 <span class="comment">/* Compute the fwhm */</span>
+<a name="l00800"></a>00800 <span class="keywordflow">if</span> (nb_good < 3)
<a name="l00801"></a>00801 {
-<a name="l00802"></a>00802 <span class="comment">/* Compute the median */</span>
-<a name="l00803"></a>00803 hawki_step_detect_obj_output.iq[chip] =
-<a name="l00804"></a>00804 cpl_vector_get_median_const(fwhms_good) ;
-<a name="l00805"></a>00805 }
-<a name="l00806"></a>00806 cpl_vector_delete(fwhms_good);
-<a name="l00807"></a>00807 hawki_step_detect_obj_output.iq[chip] *=
-<a name="l00808"></a>00808 hawki_step_detect_obj_output.pixscale;
-<a name="l00809"></a>00809 }
-<a name="l00810"></a>00810 cpl_msg_indent_less();
-<a name="l00811"></a>00811
-<a name="l00812"></a>00812 <span class="keywordflow">return</span> 0;
-<a name="l00813"></a>00813 }
-<a name="l00814"></a>00814
-<a name="l00815"></a>00815
-<a name="l00816"></a>00816 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00825"></a>00825 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00826"></a>00826 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_save
-<a name="l00827"></a>00827 (cpl_image ** mask_images,
-<a name="l00828"></a>00828 cpl_table ** obj_charac,
-<a name="l00829"></a>00829 cpl_propertylist ** obj_stats,
-<a name="l00830"></a>00830 cpl_parameterlist * parlist,
-<a name="l00831"></a>00831 cpl_frameset * framelist)
-<a name="l00832"></a>00832 {
-<a name="l00833"></a>00833 <span class="keyword">const</span> cpl_frame * ref_frame ;
-<a name="l00834"></a>00834 cpl_propertylist ** qclists;
-<a name="l00835"></a>00835 <span class="keywordtype">int</span> ext_nb ;
-<a name="l00836"></a>00836 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_detect_obj"</span> ;
-<a name="l00837"></a>00837 <span class="keywordtype">int</span> i;
-<a name="l00838"></a>00838 cpl_errorstate error_prevstate = cpl_errorstate_get();
-<a name="l00839"></a>00839
-<a name="l00840"></a>00840
-<a name="l00841"></a>00841
-<a name="l00842"></a>00842 <span class="comment">/* Load the WCS keys */</span>
-<a name="l00843"></a>00843 ref_frame = irplib_frameset_get_first_from_group
-<a name="l00844"></a>00844 (framelist, CPL_FRAME_GROUP_RAW);
+<a name="l00802"></a>00802 <span class="comment">/* Too few values to compute the median */</span>
+<a name="l00803"></a>00803 hawki_step_detect_obj_output.iq[chip] = fwhms_good_data[0] ;
+<a name="l00804"></a>00804 }
+<a name="l00805"></a>00805 <span class="keywordflow">else</span>
+<a name="l00806"></a>00806 {
+<a name="l00807"></a>00807 <span class="comment">/* Compute the median */</span>
+<a name="l00808"></a>00808 hawki_step_detect_obj_output.iq[chip] =
+<a name="l00809"></a>00809 cpl_vector_get_median_const(fwhms_good) ;
+<a name="l00810"></a>00810 }
+<a name="l00811"></a>00811 cpl_vector_delete(fwhms_good);
+<a name="l00812"></a>00812 hawki_step_detect_obj_output.iq[chip] *=
+<a name="l00813"></a>00813 hawki_step_detect_obj_output.pixscale;
+<a name="l00814"></a>00814 }
+<a name="l00815"></a>00815 cpl_msg_indent_less();
+<a name="l00816"></a>00816
+<a name="l00817"></a>00817 <span class="keywordflow">return</span> 0;
+<a name="l00818"></a>00818 }
+<a name="l00819"></a>00819
+<a name="l00820"></a>00820
+<a name="l00821"></a>00821 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00830"></a>00830 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00831"></a>00831 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_detect_obj_save
+<a name="l00832"></a>00832 (cpl_image ** mask_images,
+<a name="l00833"></a>00833 cpl_table ** obj_charac,
+<a name="l00834"></a>00834 cpl_propertylist ** obj_stats,
+<a name="l00835"></a>00835 cpl_parameterlist * parlist,
+<a name="l00836"></a>00836 cpl_frameset * framelist)
+<a name="l00837"></a>00837 {
+<a name="l00838"></a>00838 <span class="keyword">const</span> cpl_frame * ref_frame ;
+<a name="l00839"></a>00839 cpl_propertylist ** qclists;
+<a name="l00840"></a>00840 <span class="keywordtype">int</span> ext_nb ;
+<a name="l00841"></a>00841 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_detect_obj"</span> ;
+<a name="l00842"></a>00842 <span class="keywordtype">int</span> i;
+<a name="l00843"></a>00843 cpl_errorstate error_prevstate = cpl_errorstate_get();
+<a name="l00844"></a>00844
<a name="l00845"></a>00845
-<a name="l00846"></a>00846 <span class="comment">/* Create the QC lists */</span>
-<a name="l00847"></a>00847 qclists = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*)) ;
-<a name="l00848"></a>00848 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
-<a name="l00849"></a>00849 {
-<a name="l00850"></a>00850 cpl_propertylist * inputlist;
-<a name="l00851"></a>00851 cpl_propertylist * offsetlist;
-<a name="l00852"></a>00852 cpl_propertylist * wcslist;
-<a name="l00853"></a>00853
-<a name="l00854"></a>00854 <span class="comment">/* Get the extension number */</span>
-<a name="l00855"></a>00855 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(cpl_frame_get_filename(ref_frame), i+1);
-<a name="l00856"></a>00856 qclists[i] = cpl_propertylist_new() ;
-<a name="l00857"></a>00857
-<a name="l00858"></a>00858 <span class="comment">/* Fill the QC */</span>
-<a name="l00859"></a>00859 cpl_propertylist_append_int
-<a name="l00860"></a>00860 (qclists[i], <span class="stringliteral">"ESO QC NBOBJS"</span>,
-<a name="l00861"></a>00861 hawki_step_detect_obj_output.nbobjs[i]);
-<a name="l00862"></a>00862 cpl_propertylist_append_double
-<a name="l00863"></a>00863 (qclists[i], <span class="stringliteral">"ESO QC IQ"</span>, hawki_step_detect_obj_output.iq[i]);
-<a name="l00864"></a>00864 cpl_propertylist_append_double
-<a name="l00865"></a>00865 (qclists[i], <span class="stringliteral">"ESO QC FWHM PIX"</span>,
-<a name="l00866"></a>00866 hawki_step_detect_obj_output.fwhm_pix[i]);
+<a name="l00846"></a>00846
+<a name="l00847"></a>00847 <span class="comment">/* Load the WCS keys */</span>
+<a name="l00848"></a>00848 ref_frame = irplib_frameset_get_first_from_group
+<a name="l00849"></a>00849 (framelist, CPL_FRAME_GROUP_RAW);
+<a name="l00850"></a>00850
+<a name="l00851"></a>00851 <span class="comment">/* Create the QC lists */</span>
+<a name="l00852"></a>00852 qclists = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*)) ;
+<a name="l00853"></a>00853 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++)
+<a name="l00854"></a>00854 {
+<a name="l00855"></a>00855 cpl_propertylist * inputlist;
+<a name="l00856"></a>00856 cpl_propertylist * offsetlist;
+<a name="l00857"></a>00857 cpl_propertylist * wcslist;
+<a name="l00858"></a>00858
+<a name="l00859"></a>00859 <span class="comment">/* Get the extension number */</span>
+<a name="l00860"></a>00860 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>(cpl_frame_get_filename(ref_frame), i+1);
+<a name="l00861"></a>00861 qclists[i] = cpl_propertylist_new() ;
+<a name="l00862"></a>00862
+<a name="l00863"></a>00863 <span class="comment">/* Fill the QC */</span>
+<a name="l00864"></a>00864 cpl_propertylist_append_int
+<a name="l00865"></a>00865 (qclists[i], <span class="stringliteral">"ESO QC NBOBJS"</span>,
+<a name="l00866"></a>00866 hawki_step_detect_obj_output.nbobjs[i]);
<a name="l00867"></a>00867 cpl_propertylist_append_double
-<a name="l00868"></a>00868 (qclists[i], <span class="stringliteral">"ESO QC FWHM ARCSEC"</span>,
-<a name="l00869"></a>00869 hawki_step_detect_obj_output.fwhm_arcsec[i]);
-<a name="l00870"></a>00870 cpl_propertylist_append_double
-<a name="l00871"></a>00871 (qclists[i], <span class="stringliteral">"ESO QC FWHM MODE"</span>,
-<a name="l00872"></a>00872 hawki_step_detect_obj_output.fwhm_mode[i]);
-<a name="l00873"></a>00873
-<a name="l00874"></a>00874 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
-<a name="l00875"></a>00875 inputlist = cpl_propertylist_load_regexp(
-<a name="l00876"></a>00876 cpl_frame_get_filename(ref_frame), ext_nb,
-<a name="l00877"></a>00877 HAWKI_HEADER_EXT_FORWARD, 0);
-<a name="l00878"></a>00878 offsetlist = cpl_propertylist_load_regexp(
-<a name="l00879"></a>00879 cpl_frame_get_filename(ref_frame), ext_nb,
-<a name="l00880"></a>00880 HAWKI_HEADER_COMB_OFFSETS, 0);
-<a name="l00881"></a>00881 wcslist = cpl_propertylist_load_regexp(
-<a name="l00882"></a>00882 cpl_frame_get_filename(ref_frame), ext_nb,
-<a name="l00883"></a>00883 HAWKI_HEADER_WCS, 0);
-<a name="l00884"></a>00884 cpl_propertylist_append(qclists[i], inputlist);
-<a name="l00885"></a>00885 cpl_propertylist_append(qclists[i], offsetlist);
-<a name="l00886"></a>00886 cpl_propertylist_append(qclists[i], wcslist);
-<a name="l00887"></a>00887 cpl_propertylist_delete(inputlist);
-<a name="l00888"></a>00888 cpl_propertylist_delete(offsetlist);
-<a name="l00889"></a>00889 cpl_propertylist_delete(wcslist);
-<a name="l00890"></a>00890
-<a name="l00891"></a>00891 <span class="comment">/* Add the object statistics keywords */</span>
-<a name="l00892"></a>00892 cpl_propertylist_append(qclists[i], obj_stats[i]);
-<a name="l00893"></a>00893 }
-<a name="l00894"></a>00894
-<a name="l00895"></a>00895
-<a name="l00896"></a>00896 <span class="comment">/* Write the object mask */</span>
-<a name="l00897"></a>00897 <a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>(framelist,
-<a name="l00898"></a>00898 parlist,
-<a name="l00899"></a>00899 framelist,
-<a name="l00900"></a>00900 (<span class="keyword">const</span> cpl_image**)mask_images,
-<a name="l00901"></a>00901 recipe_name,
-<a name="l00902"></a>00902 HAWKI_CALPRO_OBJ_MASK,
-<a name="l00903"></a>00903 HAWKI_PROTYPE_OBJ_MASK,
-<a name="l00904"></a>00904 NULL,
-<a name="l00905"></a>00905 (<span class="keyword">const</span> cpl_propertylist**)qclists,
-<a name="l00906"></a>00906 <span class="stringliteral">"hawki_step_detect_obj_mask.fits"</span>) ;
-<a name="l00907"></a>00907
-<a name="l00908"></a>00908 <span class="comment">/* Write the FITS table with the objects statistics */</span>
-<a name="l00909"></a>00909 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(framelist,
-<a name="l00910"></a>00910 parlist,
-<a name="l00911"></a>00911 framelist,
-<a name="l00912"></a>00912 (<span class="keyword">const</span> cpl_table **)obj_charac,
-<a name="l00913"></a>00913 recipe_name,
-<a name="l00914"></a>00914 HAWKI_CALPRO_OBJ_PARAM,
-<a name="l00915"></a>00915 HAWKI_PROTYPE_OBJ_PARAM,
-<a name="l00916"></a>00916 NULL,
-<a name="l00917"></a>00917 (<span class="keyword">const</span> cpl_propertylist**)qclists,
-<a name="l00918"></a>00918 <span class="stringliteral">"hawki_step_detect_obj_stars.fits"</span>) ;
-<a name="l00919"></a>00919
-<a name="l00920"></a>00920
-<a name="l00921"></a>00921 <span class="comment">/* Free and return */</span>
-<a name="l00922"></a>00922 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++) {
-<a name="l00923"></a>00923 cpl_propertylist_delete(qclists[i]) ;
-<a name="l00924"></a>00924 }
-<a name="l00925"></a>00925 cpl_free(qclists) ;
-<a name="l00926"></a>00926 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
-<a name="l00927"></a>00927 {
-<a name="l00928"></a>00928 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l00929"></a>00929 <span class="keywordflow">return</span> -1;
-<a name="l00930"></a>00930 }
-<a name="l00931"></a>00931 <span class="keywordflow">return</span> 0;
-<a name="l00932"></a>00932 }
-<a name="l00933"></a>00933
-<a name="l00934"></a>00934 <span class="keyword">static</span> <span class="keywordtype">void</span> hawki_step_detect_obj_init_output(<span class="keywordtype">void</span>)
-<a name="l00935"></a>00935 {
-<a name="l00936"></a>00936 <span class="keywordtype">int</span> idet;
-<a name="l00937"></a>00937
-<a name="l00938"></a>00938 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00939"></a>00939 {
-<a name="l00940"></a>00940 hawki_step_detect_obj_output.iq[idet] = -1.0 ;
-<a name="l00941"></a>00941 hawki_step_detect_obj_output.nbobjs[idet] = -1 ;
-<a name="l00942"></a>00942 hawki_step_detect_obj_output.fwhm_pix[idet] = -1.0 ;
-<a name="l00943"></a>00943 hawki_step_detect_obj_output.fwhm_arcsec[idet] = -1.0 ;
-<a name="l00944"></a>00944 hawki_step_detect_obj_output.fwhm_mode[idet] = -1.0 ;
-<a name="l00945"></a>00945 hawki_step_detect_obj_output.pos_x[idet] = -1.0 ;
-<a name="l00946"></a>00946 hawki_step_detect_obj_output.pos_y[idet] = -1.0 ;
-<a name="l00947"></a>00947 }
-<a name="l00948"></a>00948 hawki_step_detect_obj_output.pixscale = -1.0;
-<a name="l00949"></a>00949 }
-<a name="l00950"></a>00950
-<a name="l00951"></a>00951 <span class="keyword">static</span> <span class="keywordtype">void</span> hawki_step_detect_obj_get_pscale
-<a name="l00952"></a>00952 (cpl_frameset * combframes)
-<a name="l00953"></a>00953 {
-<a name="l00954"></a>00954 cpl_propertylist * plist;
-<a name="l00955"></a>00955 cpl_frame * firstframe;
-<a name="l00956"></a>00956 cpl_errorstate error_prevstate = cpl_errorstate_get();
-<a name="l00957"></a>00957
-<a name="l00958"></a>00958 <span class="comment">/* Get the header infos */</span>
-<a name="l00959"></a>00959 firstframe = cpl_frameset_get_frame(combframes, 0) ;
-<a name="l00960"></a>00960 plist=cpl_propertylist_load(cpl_frame_get_filename(firstframe), 0) ;
-<a name="l00961"></a>00961 hawki_step_detect_obj_output.pixscale = <a class="code" href="group__hawki__pfits.html#ga79c432e5ab5585c45472cfa86b2d146b" title="find out the pixel scale">hawki_pfits_get_pixscale</a>(plist);
-<a name="l00962"></a>00962 cpl_propertylist_delete(plist) ;
-<a name="l00963"></a>00963 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
-<a name="l00964"></a>00964 {
-<a name="l00965"></a>00965 cpl_msg_error(__func__, <span class="stringliteral">"Missing PIXSCALE keyword in FITS header"</span>) ;
-<a name="l00966"></a>00966 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l00967"></a>00967 <span class="keywordflow">return</span>;
-<a name="l00968"></a>00968 }
-<a name="l00969"></a>00969 }
-<a name="l00970"></a>00970
+<a name="l00868"></a>00868 (qclists[i], <span class="stringliteral">"ESO QC IQ"</span>, hawki_step_detect_obj_output.iq[i]);
+<a name="l00869"></a>00869 cpl_propertylist_append_double
+<a name="l00870"></a>00870 (qclists[i], <span class="stringliteral">"ESO QC FWHM PIX"</span>,
+<a name="l00871"></a>00871 hawki_step_detect_obj_output.fwhm_pix[i]);
+<a name="l00872"></a>00872 cpl_propertylist_append_double
+<a name="l00873"></a>00873 (qclists[i], <span class="stringliteral">"ESO QC FWHM ARCSEC"</span>,
+<a name="l00874"></a>00874 hawki_step_detect_obj_output.fwhm_arcsec[i]);
+<a name="l00875"></a>00875 cpl_propertylist_append_double
+<a name="l00876"></a>00876 (qclists[i], <span class="stringliteral">"ESO QC FWHM MODE"</span>,
+<a name="l00877"></a>00877 hawki_step_detect_obj_output.fwhm_mode[i]);
+<a name="l00878"></a>00878
+<a name="l00879"></a>00879 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
+<a name="l00880"></a>00880 inputlist = cpl_propertylist_load_regexp(
+<a name="l00881"></a>00881 cpl_frame_get_filename(ref_frame), ext_nb,
+<a name="l00882"></a>00882 HAWKI_HEADER_EXT_FORWARD, 0);
+<a name="l00883"></a>00883 offsetlist = cpl_propertylist_load_regexp(
+<a name="l00884"></a>00884 cpl_frame_get_filename(ref_frame), ext_nb,
+<a name="l00885"></a>00885 HAWKI_HEADER_COMB_OFFSETS, 0);
+<a name="l00886"></a>00886 wcslist = cpl_propertylist_load_regexp(
+<a name="l00887"></a>00887 cpl_frame_get_filename(ref_frame), ext_nb,
+<a name="l00888"></a>00888 HAWKI_HEADER_WCS, 0);
+<a name="l00889"></a>00889 cpl_propertylist_append(qclists[i], inputlist);
+<a name="l00890"></a>00890 cpl_propertylist_append(qclists[i], offsetlist);
+<a name="l00891"></a>00891 cpl_propertylist_append(qclists[i], wcslist);
+<a name="l00892"></a>00892 cpl_propertylist_delete(inputlist);
+<a name="l00893"></a>00893 cpl_propertylist_delete(offsetlist);
+<a name="l00894"></a>00894 cpl_propertylist_delete(wcslist);
+<a name="l00895"></a>00895
+<a name="l00896"></a>00896 <span class="comment">/* Add the object statistics keywords */</span>
+<a name="l00897"></a>00897 cpl_propertylist_append(qclists[i], obj_stats[i]);
+<a name="l00898"></a>00898 }
+<a name="l00899"></a>00899
+<a name="l00900"></a>00900
+<a name="l00901"></a>00901 <span class="comment">/* Write the object mask */</span>
+<a name="l00902"></a>00902 <a class="code" href="group__hawki__save.html#ga096962e65c0aab2bce1e9b2419789bd4" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_images_save</a>(framelist,
+<a name="l00903"></a>00903 parlist,
+<a name="l00904"></a>00904 framelist,
+<a name="l00905"></a>00905 (<span class="keyword">const</span> cpl_image**)mask_images,
+<a name="l00906"></a>00906 recipe_name,
+<a name="l00907"></a>00907 HAWKI_CALPRO_OBJ_MASK,
+<a name="l00908"></a>00908 HAWKI_PROTYPE_OBJ_MASK,
+<a name="l00909"></a>00909 NULL,
+<a name="l00910"></a>00910 (<span class="keyword">const</span> cpl_propertylist**)qclists,
+<a name="l00911"></a>00911 <span class="stringliteral">"hawki_step_detect_obj_mask.fits"</span>) ;
+<a name="l00912"></a>00912
+<a name="l00913"></a>00913 <span class="comment">/* Write the FITS table with the objects statistics */</span>
+<a name="l00914"></a>00914 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(framelist,
+<a name="l00915"></a>00915 parlist,
+<a name="l00916"></a>00916 framelist,
+<a name="l00917"></a>00917 (<span class="keyword">const</span> cpl_table **)obj_charac,
+<a name="l00918"></a>00918 recipe_name,
+<a name="l00919"></a>00919 HAWKI_CALPRO_OBJ_PARAM,
+<a name="l00920"></a>00920 HAWKI_PROTYPE_OBJ_PARAM,
+<a name="l00921"></a>00921 NULL,
+<a name="l00922"></a>00922 (<span class="keyword">const</span> cpl_propertylist**)qclists,
+<a name="l00923"></a>00923 <span class="stringliteral">"hawki_step_detect_obj_stars.fits"</span>) ;
+<a name="l00924"></a>00924
+<a name="l00925"></a>00925
+<a name="l00926"></a>00926 <span class="comment">/* Free and return */</span>
+<a name="l00927"></a>00927 <span class="keywordflow">for</span> (i=0 ; i<HAWKI_NB_DETECTORS ; i++) {
+<a name="l00928"></a>00928 cpl_propertylist_delete(qclists[i]) ;
+<a name="l00929"></a>00929 }
+<a name="l00930"></a>00930 cpl_free(qclists) ;
+<a name="l00931"></a>00931 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
+<a name="l00932"></a>00932 {
+<a name="l00933"></a>00933 cpl_errorstate_set(CPL_ERROR_NONE);
+<a name="l00934"></a>00934 <span class="keywordflow">return</span> -1;
+<a name="l00935"></a>00935 }
+<a name="l00936"></a>00936 <span class="keywordflow">return</span> 0;
+<a name="l00937"></a>00937 }
+<a name="l00938"></a>00938
+<a name="l00939"></a>00939 <span class="keyword">static</span> <span class="keywordtype">void</span> hawki_step_detect_obj_init_output(<span class="keywordtype">void</span>)
+<a name="l00940"></a>00940 {
+<a name="l00941"></a>00941 <span class="keywordtype">int</span> idet;
+<a name="l00942"></a>00942
+<a name="l00943"></a>00943 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00944"></a>00944 {
+<a name="l00945"></a>00945 hawki_step_detect_obj_output.iq[idet] = -1.0 ;
+<a name="l00946"></a>00946 hawki_step_detect_obj_output.nbobjs[idet] = -1 ;
+<a name="l00947"></a>00947 hawki_step_detect_obj_output.fwhm_pix[idet] = -1.0 ;
+<a name="l00948"></a>00948 hawki_step_detect_obj_output.fwhm_arcsec[idet] = -1.0 ;
+<a name="l00949"></a>00949 hawki_step_detect_obj_output.fwhm_mode[idet] = -1.0 ;
+<a name="l00950"></a>00950 hawki_step_detect_obj_output.pos_x[idet] = -1.0 ;
+<a name="l00951"></a>00951 hawki_step_detect_obj_output.pos_y[idet] = -1.0 ;
+<a name="l00952"></a>00952 }
+<a name="l00953"></a>00953 hawki_step_detect_obj_output.pixscale = -1.0;
+<a name="l00954"></a>00954 }
+<a name="l00955"></a>00955
+<a name="l00956"></a>00956 <span class="keyword">static</span> <span class="keywordtype">void</span> hawki_step_detect_obj_get_pscale
+<a name="l00957"></a>00957 (cpl_frameset * combframes)
+<a name="l00958"></a>00958 {
+<a name="l00959"></a>00959 cpl_propertylist * plist;
+<a name="l00960"></a>00960 cpl_frame * firstframe;
+<a name="l00961"></a>00961 cpl_errorstate error_prevstate = cpl_errorstate_get();
+<a name="l00962"></a>00962
+<a name="l00963"></a>00963 <span class="comment">/* Get the header infos */</span>
+<a name="l00964"></a>00964 firstframe = cpl_frameset_get_frame(combframes, 0) ;
+<a name="l00965"></a>00965 plist=cpl_propertylist_load(cpl_frame_get_filename(firstframe), 0) ;
+<a name="l00966"></a>00966 hawki_step_detect_obj_output.pixscale = <a class="code" href="group__hawki__pfits.html#ga79c432e5ab5585c45472cfa86b2d146b" title="find out the pixel scale">hawki_pfits_get_pixscale</a>(plist);
+<a name="l00967"></a>00967 cpl_propertylist_delete(plist) ;
+<a name="l00968"></a>00968 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
+<a name="l00969"></a>00969 {
+<a name="l00970"></a>00970 cpl_msg_error(__func__, <span class="stringliteral">"Missing PIXSCALE keyword in FITS header"</span>) ;
+<a name="l00971"></a>00971 cpl_errorstate_set(CPL_ERROR_NONE);
+<a name="l00972"></a>00972 <span class="keywordflow">return</span>;
+<a name="l00973"></a>00973 }
+<a name="l00974"></a>00974 }
+<a name="l00975"></a>00975
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__step__photom__2mass_8c_source.html b/html/hawki__step__photom__2mass_8c_source.html
index 97b04c9..db5df84 100644
--- a/html/hawki__step__photom__2mass_8c_source.html
+++ b/html/hawki__step__photom__2mass_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/04/23 10:08:45 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.17 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -968,7 +968,7 @@
<a name="l00973"></a>00973 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__step__refine__offsets_8c_source.html b/html/hawki__step__refine__offsets_8c_source.html
index 0994f23..93477df 100644
--- a/html/hawki__step__refine__offsets_8c_source.html
+++ b/html/hawki__step__refine__offsets_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/10/24 10:42:12 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.17 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -804,7 +804,7 @@
<a name="l00813"></a>00813 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__step__stats_8c_source.html b/html/hawki__step__stats_8c_source.html
index 339aa8e..1a33a34 100644
--- a/html/hawki__step__stats_8c_source.html
+++ b/html/hawki__step__stats_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_step_stats.c</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_step_stats.c,v 1.12 2011/10/24 10:42:03 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_step_stats.c,v 1.13 2012/11/30 14:51:22 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/10/24 10:42:03 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.12 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/11/30 14:51:22 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.13 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -96,341 +96,346 @@
<a name="l00049"></a>00049 <span class="comment"> Functions prototypes</span>
<a name="l00050"></a>00050 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00051"></a>00051
-<a name="l00052"></a>00052 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_create(cpl_plugin *) ;
-<a name="l00053"></a>00053 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_exec(cpl_plugin *) ;
-<a name="l00054"></a>00054 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_destroy(cpl_plugin *) ;
-<a name="l00055"></a>00055 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats(cpl_parameterlist *, cpl_frameset *) ;
+<a name="l00052"></a>00052 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
+<a name="l00054"></a>00054 <span class="preprocessor">#endif</span>
+<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list);
<a name="l00056"></a>00056
-<a name="l00057"></a>00057 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_frameset_stats
-<a name="l00058"></a>00058 (cpl_table ** target_stats,
-<a name="l00059"></a>00059 cpl_propertylist ** stats_stats,
-<a name="l00060"></a>00060 cpl_frameset * target_frames);
+<a name="l00057"></a>00057 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_create(cpl_plugin *) ;
+<a name="l00058"></a>00058 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_exec(cpl_plugin *) ;
+<a name="l00059"></a>00059 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_destroy(cpl_plugin *) ;
+<a name="l00060"></a>00060 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats(cpl_parameterlist *, cpl_frameset *) ;
<a name="l00061"></a>00061
-<a name="l00062"></a>00062 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_save
-<a name="l00063"></a>00063 (cpl_table ** target_stats,
-<a name="l00064"></a>00064 cpl_parameterlist * recipe_parlist,
-<a name="l00065"></a>00065 cpl_frameset * recipe_frameset,
-<a name="l00066"></a>00066 cpl_frameset * used_frameset,
-<a name="l00067"></a>00067 cpl_propertylist ** stats_stats,
-<a name="l00068"></a>00068 <span class="keyword">const</span> <span class="keywordtype">char</span> * calpro,
-<a name="l00069"></a>00069 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype);
-<a name="l00070"></a>00070
-<a name="l00071"></a>00071 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00072"></a>00072 <span class="comment"> Static variables</span>
-<a name="l00073"></a>00073 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00074"></a>00074
-<a name="l00075"></a>00075 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_step_stats_description[] =
-<a name="l00076"></a>00076 <span class="stringliteral">"hawki_step_stats -- hawki statistics utility (mean, stdev, ...).\n"</span>
-<a name="l00077"></a>00077 <span class="stringliteral">"The files listed in the Set Of Frames (sof-file) must be tagged:\n"</span>
-<a name="l00078"></a>00078 <span class="stringliteral">"raw-jitter.fits "</span>HAWKI_IMG_JITTER_RAW<span class="stringliteral">" or\n"</span>
-<a name="l00079"></a>00079 <span class="stringliteral">"bkg.fits "</span>HAWKI_CALPRO_BKGIMAGE<span class="stringliteral">" or\n"</span>
-<a name="l00080"></a>00080 <span class="stringliteral">"raw-flat.fits "</span>HAWKI_CAL_FLAT_RAW<span class="stringliteral">" or\n"</span>
-<a name="l00081"></a>00081 <span class="stringliteral">"raw-dark.fits "</span>HAWKI_CAL_DARK_RAW<span class="stringliteral">" or\n"</span>
-<a name="l00082"></a>00082 <span class="stringliteral">"raw-zpoint.fits "</span>HAWKI_CAL_ZPOINT_RAW<span class="stringliteral">" \n"</span>
-<a name="l00083"></a>00083 <span class="stringliteral">"The recipe creates as an output:\n"</span>
-<a name="l00084"></a>00084 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_JITTER_STATS<span class="stringliteral">"): Statistics of raw jitter images, or\n"</span>
-<a name="l00085"></a>00085 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_JITTER_BKG_STATS<span class="stringliteral">"): Statistics of background images, or\n"</span>
-<a name="l00086"></a>00086 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_FLAT_STATS<span class="stringliteral">"): Statistics of raw flats, or\n"</span>
-<a name="l00087"></a>00087 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_DARK_STATS<span class="stringliteral">"): Statistics of raw darks, or\n"</span>
-<a name="l00088"></a>00088 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_ZPOINT_STATS<span class="stringliteral">"): Statistics of raw standard star images.\n"</span>
-<a name="l00089"></a>00089 <span class="stringliteral">"Return code:\n"</span>
-<a name="l00090"></a>00090 <span class="stringliteral">"esorex exits with an error code of 0 if the recipe completes successfully\n"</span>
-<a name="l00091"></a>00091 <span class="stringliteral">"or 1 otherwise"</span>;
-<a name="l00092"></a>00092
-<a name="l00093"></a>00093
-<a name="l00094"></a>00094 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00095"></a>00095 <span class="comment"> Functions code</span>
-<a name="l00096"></a>00096 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00062"></a>00062 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_frameset_stats
+<a name="l00063"></a>00063 (cpl_table ** target_stats,
+<a name="l00064"></a>00064 cpl_propertylist ** stats_stats,
+<a name="l00065"></a>00065 cpl_frameset * target_frames);
+<a name="l00066"></a>00066
+<a name="l00067"></a>00067 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_save
+<a name="l00068"></a>00068 (cpl_table ** target_stats,
+<a name="l00069"></a>00069 cpl_parameterlist * recipe_parlist,
+<a name="l00070"></a>00070 cpl_frameset * recipe_frameset,
+<a name="l00071"></a>00071 cpl_frameset * used_frameset,
+<a name="l00072"></a>00072 cpl_propertylist ** stats_stats,
+<a name="l00073"></a>00073 <span class="keyword">const</span> <span class="keywordtype">char</span> * calpro,
+<a name="l00074"></a>00074 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype);
+<a name="l00075"></a>00075
+<a name="l00076"></a>00076 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00077"></a>00077 <span class="comment"> Static variables</span>
+<a name="l00078"></a>00078 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00079"></a>00079
+<a name="l00080"></a>00080 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_step_stats_description[] =
+<a name="l00081"></a>00081 <span class="stringliteral">"hawki_step_stats -- hawki statistics utility (mean, stdev, ...).\n"</span>
+<a name="l00082"></a>00082 <span class="stringliteral">"The files listed in the Set Of Frames (sof-file) must be tagged:\n"</span>
+<a name="l00083"></a>00083 <span class="stringliteral">"raw-jitter.fits "</span>HAWKI_IMG_JITTER_RAW<span class="stringliteral">" or\n"</span>
+<a name="l00084"></a>00084 <span class="stringliteral">"bkg.fits "</span>HAWKI_CALPRO_BKGIMAGE<span class="stringliteral">" or\n"</span>
+<a name="l00085"></a>00085 <span class="stringliteral">"raw-flat.fits "</span>HAWKI_CAL_FLAT_RAW<span class="stringliteral">" or\n"</span>
+<a name="l00086"></a>00086 <span class="stringliteral">"raw-dark.fits "</span>HAWKI_CAL_DARK_RAW<span class="stringliteral">" or\n"</span>
+<a name="l00087"></a>00087 <span class="stringliteral">"raw-zpoint.fits "</span>HAWKI_CAL_ZPOINT_RAW<span class="stringliteral">" \n"</span>
+<a name="l00088"></a>00088 <span class="stringliteral">"The recipe creates as an output:\n"</span>
+<a name="l00089"></a>00089 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_JITTER_STATS<span class="stringliteral">"): Statistics of raw jitter images, or\n"</span>
+<a name="l00090"></a>00090 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_JITTER_BKG_STATS<span class="stringliteral">"): Statistics of background images, or\n"</span>
+<a name="l00091"></a>00091 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_FLAT_STATS<span class="stringliteral">"): Statistics of raw flats, or\n"</span>
+<a name="l00092"></a>00092 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_DARK_STATS<span class="stringliteral">"): Statistics of raw darks, or\n"</span>
+<a name="l00093"></a>00093 <span class="stringliteral">"hawki_step_stats.fits ("</span>HAWKI_CALPRO_ZPOINT_STATS<span class="stringliteral">"): Statistics of raw standard star images.\n"</span>
+<a name="l00094"></a>00094 <span class="stringliteral">"Return code:\n"</span>
+<a name="l00095"></a>00095 <span class="stringliteral">"esorex exits with an error code of 0 if the recipe completes successfully\n"</span>
+<a name="l00096"></a>00096 <span class="stringliteral">"or 1 otherwise"</span>;
<a name="l00097"></a>00097
-<a name="l00098"></a>00098 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00106"></a>00106 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00107"></a>00107 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
-<a name="l00108"></a>00108 {
-<a name="l00109"></a>00109 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
-<a name="l00110"></a>00110 cpl_plugin * plugin = &recipe->interface ;
-<a name="l00111"></a>00111
-<a name="l00112"></a>00112 cpl_plugin_init(plugin,
-<a name="l00113"></a>00113 CPL_PLUGIN_API,
-<a name="l00114"></a>00114 HAWKI_BINARY_VERSION,
-<a name="l00115"></a>00115 CPL_PLUGIN_TYPE_RECIPE,
-<a name="l00116"></a>00116 <span class="stringliteral">"hawki_step_stats"</span>,
-<a name="l00117"></a>00117 <span class="stringliteral">"Standard statistics utility"</span>,
-<a name="l00118"></a>00118 hawki_step_stats_description,
-<a name="l00119"></a>00119 <span class="stringliteral">"Cesar Enrique Garcia Dabo"</span>,
-<a name="l00120"></a>00120 PACKAGE_BUGREPORT,
-<a name="l00121"></a>00121 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
-<a name="l00122"></a>00122 hawki_step_stats_create,
-<a name="l00123"></a>00123 hawki_step_stats_exec,
-<a name="l00124"></a>00124 hawki_step_stats_destroy) ;
-<a name="l00125"></a>00125
-<a name="l00126"></a>00126 cpl_pluginlist_append(list, plugin) ;
-<a name="l00127"></a>00127
-<a name="l00128"></a>00128 <span class="keywordflow">return</span> 0;
-<a name="l00129"></a>00129 }
+<a name="l00098"></a>00098
+<a name="l00099"></a>00099 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00100"></a>00100 <span class="comment"> Functions code</span>
+<a name="l00101"></a>00101 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00102"></a>00102
+<a name="l00103"></a>00103 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00111"></a>00111 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00112"></a>00112 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
+<a name="l00113"></a>00113 {
+<a name="l00114"></a>00114 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
+<a name="l00115"></a>00115 cpl_plugin * plugin = &recipe->interface ;
+<a name="l00116"></a>00116
+<a name="l00117"></a>00117 cpl_plugin_init(plugin,
+<a name="l00118"></a>00118 CPL_PLUGIN_API,
+<a name="l00119"></a>00119 HAWKI_BINARY_VERSION,
+<a name="l00120"></a>00120 CPL_PLUGIN_TYPE_RECIPE,
+<a name="l00121"></a>00121 <span class="stringliteral">"hawki_step_stats"</span>,
+<a name="l00122"></a>00122 <span class="stringliteral">"Standard statistics utility"</span>,
+<a name="l00123"></a>00123 hawki_step_stats_description,
+<a name="l00124"></a>00124 <span class="stringliteral">"Cesar Enrique Garcia Dabo"</span>,
+<a name="l00125"></a>00125 PACKAGE_BUGREPORT,
+<a name="l00126"></a>00126 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
+<a name="l00127"></a>00127 hawki_step_stats_create,
+<a name="l00128"></a>00128 hawki_step_stats_exec,
+<a name="l00129"></a>00129 hawki_step_stats_destroy) ;
<a name="l00130"></a>00130
-<a name="l00131"></a>00131 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00140"></a>00140 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00141"></a>00141 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_create(cpl_plugin * plugin)
-<a name="l00142"></a>00142 {
-<a name="l00143"></a>00143 cpl_recipe * recipe ;
-<a name="l00144"></a>00144 <span class="comment">/* cpl_parameter * p ; */</span>
-<a name="l00145"></a>00145
-<a name="l00146"></a>00146 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00147"></a>00147 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00148"></a>00148 recipe = (cpl_recipe *)plugin ;
-<a name="l00149"></a>00149 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00131"></a>00131 cpl_pluginlist_append(list, plugin) ;
+<a name="l00132"></a>00132
+<a name="l00133"></a>00133 <span class="keywordflow">return</span> 0;
+<a name="l00134"></a>00134 }
+<a name="l00135"></a>00135
+<a name="l00136"></a>00136 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00145"></a>00145 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00146"></a>00146 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_create(cpl_plugin * plugin)
+<a name="l00147"></a>00147 {
+<a name="l00148"></a>00148 cpl_recipe * recipe ;
+<a name="l00149"></a>00149 <span class="comment">/* cpl_parameter * p ; */</span>
<a name="l00150"></a>00150
-<a name="l00151"></a>00151 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
-<a name="l00152"></a>00152 recipe->parameters = cpl_parameterlist_new() ;
-<a name="l00153"></a>00153 <span class="keywordflow">if</span> (recipe->parameters == NULL)
-<a name="l00154"></a>00154 <span class="keywordflow">return</span> 1;
+<a name="l00151"></a>00151 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00152"></a>00152 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00153"></a>00153 recipe = (cpl_recipe *)plugin ;
+<a name="l00154"></a>00154 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
<a name="l00155"></a>00155
-<a name="l00156"></a>00156 <span class="comment">/* Fill the parameters list */</span>
-<a name="l00157"></a>00157 <span class="comment">/* None.. */</span>
-<a name="l00158"></a>00158
-<a name="l00159"></a>00159 <span class="comment">/* Return */</span>
-<a name="l00160"></a>00160 <span class="keywordflow">return</span> 0;
-<a name="l00161"></a>00161 }
-<a name="l00162"></a>00162
-<a name="l00163"></a>00163 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00169"></a>00169 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00170"></a>00170 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_exec(cpl_plugin * plugin)
-<a name="l00171"></a>00171 {
-<a name="l00172"></a>00172 cpl_recipe * recipe ;
-<a name="l00173"></a>00173
-<a name="l00174"></a>00174 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00175"></a>00175 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00176"></a>00176 recipe = (cpl_recipe *)plugin ;
-<a name="l00177"></a>00177 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00156"></a>00156 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
+<a name="l00157"></a>00157 recipe->parameters = cpl_parameterlist_new() ;
+<a name="l00158"></a>00158 <span class="keywordflow">if</span> (recipe->parameters == NULL)
+<a name="l00159"></a>00159 <span class="keywordflow">return</span> 1;
+<a name="l00160"></a>00160
+<a name="l00161"></a>00161 <span class="comment">/* Fill the parameters list */</span>
+<a name="l00162"></a>00162 <span class="comment">/* None.. */</span>
+<a name="l00163"></a>00163
+<a name="l00164"></a>00164 <span class="comment">/* Return */</span>
+<a name="l00165"></a>00165 <span class="keywordflow">return</span> 0;
+<a name="l00166"></a>00166 }
+<a name="l00167"></a>00167
+<a name="l00168"></a>00168 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00174"></a>00174 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00175"></a>00175 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_exec(cpl_plugin * plugin)
+<a name="l00176"></a>00176 {
+<a name="l00177"></a>00177 cpl_recipe * recipe ;
<a name="l00178"></a>00178
-<a name="l00179"></a>00179 <span class="comment">/* Issue a banner */</span>
-<a name="l00180"></a>00180 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
-<a name="l00181"></a>00181
-<a name="l00182"></a>00182 <span class="keywordflow">return</span> hawki_step_stats(recipe->parameters, recipe->frames) ;
-<a name="l00183"></a>00183 }
-<a name="l00184"></a>00184
-<a name="l00185"></a>00185 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00191"></a>00191 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00192"></a>00192 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_destroy(cpl_plugin * plugin)
-<a name="l00193"></a>00193 {
-<a name="l00194"></a>00194 cpl_recipe * recipe ;
-<a name="l00195"></a>00195
-<a name="l00196"></a>00196 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00197"></a>00197 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00198"></a>00198 recipe = (cpl_recipe *)plugin ;
-<a name="l00199"></a>00199 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00179"></a>00179 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00180"></a>00180 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00181"></a>00181 recipe = (cpl_recipe *)plugin ;
+<a name="l00182"></a>00182 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00183"></a>00183
+<a name="l00184"></a>00184 <span class="comment">/* Issue a banner */</span>
+<a name="l00185"></a>00185 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
+<a name="l00186"></a>00186
+<a name="l00187"></a>00187 <span class="keywordflow">return</span> hawki_step_stats(recipe->parameters, recipe->frames) ;
+<a name="l00188"></a>00188 }
+<a name="l00189"></a>00189
+<a name="l00190"></a>00190 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00196"></a>00196 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00197"></a>00197 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_destroy(cpl_plugin * plugin)
+<a name="l00198"></a>00198 {
+<a name="l00199"></a>00199 cpl_recipe * recipe ;
<a name="l00200"></a>00200
-<a name="l00201"></a>00201 cpl_parameterlist_delete(recipe->parameters) ;
-<a name="l00202"></a>00202 <span class="keywordflow">return</span> 0 ;
-<a name="l00203"></a>00203 }
-<a name="l00204"></a>00204
-<a name="l00205"></a>00205 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00212"></a>00212 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00213"></a>00213 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats(
-<a name="l00214"></a>00214 cpl_parameterlist * parlist,
-<a name="l00215"></a>00215 cpl_frameset * framelist)
-<a name="l00216"></a>00216 {
-<a name="l00217"></a>00217 cpl_frameset * frames ;
-<a name="l00218"></a>00218 cpl_table ** target_stats;
-<a name="l00219"></a>00219 cpl_propertylist ** stats_stats;
-<a name="l00220"></a>00220 <span class="keywordtype">int</span> idet;
-<a name="l00221"></a>00221 <span class="keywordtype">char</span> calpro[1024];
-<a name="l00222"></a>00222 <span class="keywordtype">char</span> protype[1024];
-<a name="l00223"></a>00223
-<a name="l00224"></a>00224 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
-<a name="l00225"></a>00225 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist))
-<a name="l00226"></a>00226 {
-<a name="l00227"></a>00227 cpl_msg_error(__func__, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
-<a name="l00228"></a>00228 <span class="keywordflow">return</span> -1;
-<a name="l00229"></a>00229 }
-<a name="l00230"></a>00230
-<a name="l00231"></a>00231 <span class="comment">/* Retrieve raw frames */</span>
-<a name="l00232"></a>00232 cpl_msg_info(__func__, <span class="stringliteral">"Identifying input frames"</span>);
-<a name="l00233"></a>00233 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_IMG_JITTER_RAW) ;
-<a name="l00234"></a>00234 snprintf(calpro, 1024, HAWKI_CALPRO_JITTER_STATS);
-<a name="l00235"></a>00235 snprintf(protype, 1024, HAWKI_PROTYPE_JITTER_STATS);
-<a name="l00236"></a>00236 <span class="keywordflow">if</span> (frames == NULL)
-<a name="l00237"></a>00237 {
-<a name="l00238"></a>00238 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_BKGIMAGE);
-<a name="l00239"></a>00239 snprintf(calpro, 1024, HAWKI_CALPRO_JITTER_BKG_STATS);
-<a name="l00240"></a>00240 snprintf(protype, 1024, HAWKI_PROTYPE_JITTER_BKG_STATS);
-<a name="l00241"></a>00241 }
-<a name="l00242"></a>00242 <span class="keywordflow">if</span> (frames == NULL)
-<a name="l00243"></a>00243 {
-<a name="l00244"></a>00244 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CAL_DARK_RAW);
-<a name="l00245"></a>00245 snprintf(calpro, 1024, HAWKI_CALPRO_DARK_STATS);
-<a name="l00246"></a>00246 snprintf(protype, 1024, HAWKI_PROTYPE_DARK_STATS);
-<a name="l00247"></a>00247 }
-<a name="l00248"></a>00248 <span class="keywordflow">if</span> (frames == NULL)
-<a name="l00249"></a>00249 {
-<a name="l00250"></a>00250 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CAL_FLAT_RAW);
-<a name="l00251"></a>00251 snprintf(calpro, 1024, HAWKI_CALPRO_FLAT_STATS);
-<a name="l00252"></a>00252 snprintf(protype, 1024, HAWKI_PROTYPE_FLAT_STATS);
-<a name="l00253"></a>00253 }
-<a name="l00254"></a>00254 <span class="keywordflow">if</span> (frames == NULL)
-<a name="l00255"></a>00255 {
-<a name="l00256"></a>00256 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CAL_ZPOINT_RAW);
-<a name="l00257"></a>00257 snprintf(calpro, 1024, HAWKI_CALPRO_ZPOINT_STATS);
-<a name="l00258"></a>00258 snprintf(protype, 1024, HAWKI_PROTYPE_ZPOINT_STATS);
-<a name="l00259"></a>00259 }
-<a name="l00260"></a>00260 <span class="keywordflow">if</span> (frames == NULL)
-<a name="l00261"></a>00261 {
-<a name="l00262"></a>00262 cpl_msg_error(__func__,<span class="stringliteral">"Tag of input frames not supported"</span>);
-<a name="l00263"></a>00263 cpl_msg_error(__func__,<span class="stringliteral">"Supported: %s %s %s %s %s"</span>,
-<a name="l00264"></a>00264 HAWKI_IMG_JITTER_RAW, HAWKI_CALPRO_BKGIMAGE,
-<a name="l00265"></a>00265 HAWKI_CAL_DARK_RAW, HAWKI_CAL_FLAT_RAW, HAWKI_CAL_ZPOINT_RAW);
-<a name="l00266"></a>00266 <span class="keywordflow">return</span> -1;
-<a name="l00267"></a>00267 }
-<a name="l00268"></a>00268
-<a name="l00269"></a>00269 <span class="comment">/* Create the statistics table and the "stats of the stats"*/</span>
-<a name="l00270"></a>00270 target_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table *));
-<a name="l00271"></a>00271 stats_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist *));
-<a name="l00272"></a>00272 <span class="keywordflow">for</span>( idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00273"></a>00273 {
-<a name="l00274"></a>00274 target_stats[idet] = cpl_table_new(cpl_frameset_get_size(frames));
-<a name="l00275"></a>00275 stats_stats[idet] = cpl_propertylist_new();
-<a name="l00276"></a>00276 }
-<a name="l00277"></a>00277 <a class="code" href="group__hawki__image__stats.html#ga788a4b7f6fba705eddcebd1f2fe26fd6" title="Initialize the table with all the statistics columns.">hawki_image_stats_initialize</a>(target_stats);
-<a name="l00278"></a>00278
-<a name="l00279"></a>00279 <span class="comment">/* Compute actually the statistics */</span>
-<a name="l00280"></a>00280 hawki_step_stats_frameset_stats(target_stats, stats_stats, frames);
-<a name="l00281"></a>00281
-<a name="l00282"></a>00282 <span class="comment">/* Saving the table product */</span>
-<a name="l00283"></a>00283 <span class="keywordflow">if</span>(hawki_step_stats_save
-<a name="l00284"></a>00284 (target_stats, parlist, framelist, frames, stats_stats, calpro, protype) !=0)
-<a name="l00285"></a>00285 cpl_msg_warning(__func__,<span class="stringliteral">"Some data could not be saved. "</span>
-<a name="l00286"></a>00286 <span class="stringliteral">"Check permisions or disk space\n"</span>);
-<a name="l00287"></a>00287
-<a name="l00288"></a>00288 <span class="comment">/* Free and return */</span>
-<a name="l00289"></a>00289 cpl_frameset_delete(frames);
-<a name="l00290"></a>00290 <span class="keywordflow">for</span>( idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00291"></a>00291 {
-<a name="l00292"></a>00292 cpl_table_delete(target_stats[idet]);
-<a name="l00293"></a>00293 cpl_propertylist_delete(stats_stats[idet]);
-<a name="l00294"></a>00294 }
-<a name="l00295"></a>00295 cpl_free(target_stats);
-<a name="l00296"></a>00296 cpl_free(stats_stats);
-<a name="l00297"></a>00297
-<a name="l00298"></a>00298 <span class="comment">/* Return */</span>
-<a name="l00299"></a>00299 <span class="keywordflow">if</span> (cpl_error_get_code())
-<a name="l00300"></a>00300 {
-<a name="l00301"></a>00301 cpl_msg_error(__func__,
-<a name="l00302"></a>00302 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
-<a name="l00303"></a>00303 <span class="keywordflow">return</span> -1 ;
-<a name="l00304"></a>00304 }
-<a name="l00305"></a>00305 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
-<a name="l00306"></a>00306 }
-<a name="l00307"></a>00307
-<a name="l00308"></a>00308 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00318"></a>00318 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00319"></a>00319 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_frameset_stats
-<a name="l00320"></a>00320 (cpl_table ** target_stats,
-<a name="l00321"></a>00321 cpl_propertylist ** stats_stats,
-<a name="l00322"></a>00322 cpl_frameset * target_frames)
-<a name="l00323"></a>00323 {
-<a name="l00324"></a>00324 <span class="keywordtype">int</span> iframe;
-<a name="l00325"></a>00325 <span class="keywordtype">int</span> nframes;
-<a name="l00326"></a>00326
-<a name="l00327"></a>00327 <span class="comment">/* Loop on the number of frames */</span>
-<a name="l00328"></a>00328 nframes = cpl_frameset_get_size(target_frames);
-<a name="l00329"></a>00329 cpl_msg_info(__func__, <span class="stringliteral">"Looping the target frames: %d frames"</span>, nframes);
-<a name="l00330"></a>00330 cpl_msg_indent_more();
-<a name="l00331"></a>00331 <span class="keywordflow">for</span>( iframe = 0 ; iframe < nframes ; ++iframe)
-<a name="l00332"></a>00332 {
-<a name="l00333"></a>00333 <span class="comment">/* Local storage variables */</span>
-<a name="l00334"></a>00334 cpl_frame * this_target_frame;
-<a name="l00335"></a>00335
-<a name="l00336"></a>00336 <span class="comment">/* Computing statistics for this frame */</span>
-<a name="l00337"></a>00337 cpl_msg_info(__func__, <span class="stringliteral">"Computing stats for frame: %d"</span>, iframe +1);
-<a name="l00338"></a>00338 this_target_frame = cpl_frameset_get_frame(target_frames, iframe);
-<a name="l00339"></a>00339 <a class="code" href="group__hawki__image__stats.html#ga07a4f45b2ba4af9420f7d8600dbbe836" title="Fills a table with the statistics of the four detectors of a frame.">hawki_image_stats_fill_from_frame</a>
-<a name="l00340"></a>00340 (target_stats, this_target_frame, iframe);
-<a name="l00341"></a>00341 }
-<a name="l00342"></a>00342 cpl_msg_indent_less();
-<a name="l00343"></a>00343
-<a name="l00344"></a>00344 <span class="comment">/* Compute stats of the stats */</span>
-<a name="l00345"></a>00345 <a class="code" href="group__hawki__image__stats.html#gaaf82f2c0930f1c2bfcbc5cbef16b3928" title="Make the statistics (over image serie) of the each image statistics.">hawki_image_stats_stats</a>(target_stats, stats_stats);
-<a name="l00346"></a>00346
-<a name="l00347"></a>00347 <span class="comment">/* Print info about the statistics */</span>
-<a name="l00348"></a>00348 hawki_image_stats_print(target_stats);
-<a name="l00349"></a>00349
-<a name="l00350"></a>00350 <span class="keywordflow">return</span> 0;
-<a name="l00351"></a>00351 }
-<a name="l00352"></a>00352
-<a name="l00353"></a>00353 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00363"></a>00363 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00364"></a>00364 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_save
-<a name="l00365"></a>00365 (cpl_table ** target_stats,
-<a name="l00366"></a>00366 cpl_parameterlist * recipe_parlist,
-<a name="l00367"></a>00367 cpl_frameset * recipe_frameset,
-<a name="l00368"></a>00368 cpl_frameset * used_frameset,
-<a name="l00369"></a>00369 cpl_propertylist ** stats_stats,
-<a name="l00370"></a>00370 <span class="keyword">const</span> <span class="keywordtype">char</span> * calpro,
-<a name="l00371"></a>00371 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype)
-<a name="l00372"></a>00372 {
-<a name="l00373"></a>00373 <span class="keyword">const</span> cpl_frame * reference_frame;
-<a name="l00374"></a>00374 cpl_propertylist * referencelist;
-<a name="l00375"></a>00375 cpl_propertylist ** extlists;
-<a name="l00376"></a>00376 <span class="keywordtype">int</span> idet;
-<a name="l00377"></a>00377 <span class="keywordtype">int</span> ext_nb;
-<a name="l00378"></a>00378 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_stats"</span>;
-<a name="l00379"></a>00379 cpl_errorstate error_prevstate = cpl_errorstate_get();
-<a name="l00380"></a>00380
-<a name="l00381"></a>00381
-<a name="l00382"></a>00382 <span class="comment">/* Get the reference frame (the first one) */</span>
-<a name="l00383"></a>00383 reference_frame = cpl_frameset_get_first_const(used_frameset);
-<a name="l00384"></a>00384
-<a name="l00385"></a>00385 <span class="comment">/* Create the prop lists */</span>
-<a name="l00386"></a>00386 cpl_msg_info(__func__, <span class="stringliteral">"Creating the keywords list"</span>) ;
-<a name="l00387"></a>00387 referencelist = cpl_propertylist_load_regexp
-<a name="l00388"></a>00388 (cpl_frame_get_filename(reference_frame), 0,HAWKI_HEADER_EXT_FORWARD,0);
-<a name="l00389"></a>00389 extlists =
-<a name="l00390"></a>00390 cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*));
-<a name="l00391"></a>00391 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00392"></a>00392 {
-<a name="l00393"></a>00393 <span class="comment">/* Get the extension number */</span>
-<a name="l00394"></a>00394 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>
-<a name="l00395"></a>00395 (cpl_frame_get_filename(reference_frame), idet+1);
-<a name="l00396"></a>00396
-<a name="l00397"></a>00397 <span class="comment">/* Propagate the keywords from input frame extensions */</span>
-<a name="l00398"></a>00398 extlists[idet] = cpl_propertylist_load_regexp(
-<a name="l00399"></a>00399 cpl_frame_get_filename(reference_frame), ext_nb,
-<a name="l00400"></a>00400 HAWKI_HEADER_EXT_FORWARD, 0);
-<a name="l00401"></a>00401
-<a name="l00402"></a>00402 <span class="comment">/* Add the stats of the stats */</span>
-<a name="l00403"></a>00403 cpl_propertylist_append(extlists[idet],stats_stats[idet]);
-<a name="l00404"></a>00404 }
-<a name="l00405"></a>00405
-<a name="l00406"></a>00406 <span class="comment">/* Write the table with the statistics */</span>
-<a name="l00407"></a>00407 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(recipe_frameset,
-<a name="l00408"></a>00408 recipe_parlist,
-<a name="l00409"></a>00409 used_frameset,
-<a name="l00410"></a>00410 (<span class="keyword">const</span> cpl_table **)target_stats,
-<a name="l00411"></a>00411 recipe_name,
-<a name="l00412"></a>00412 calpro,
-<a name="l00413"></a>00413 protype,
-<a name="l00414"></a>00414 (<span class="keyword">const</span> cpl_propertylist*)referencelist,
-<a name="l00415"></a>00415 (<span class="keyword">const</span> cpl_propertylist**)extlists,
-<a name="l00416"></a>00416 <span class="stringliteral">"hawki_step_stats.fits"</span>);
-<a name="l00417"></a>00417
-<a name="l00418"></a>00418 <span class="comment">/* Free and return */</span>
-<a name="l00419"></a>00419 cpl_propertylist_delete(referencelist) ;
-<a name="l00420"></a>00420 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00421"></a>00421 {
-<a name="l00422"></a>00422 cpl_propertylist_delete(extlists[idet]) ;
-<a name="l00423"></a>00423 }
-<a name="l00424"></a>00424 cpl_free(extlists) ;
-<a name="l00425"></a>00425
-<a name="l00426"></a>00426 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
-<a name="l00427"></a>00427 {
-<a name="l00428"></a>00428 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l00429"></a>00429 <span class="keywordflow">return</span> -1;
-<a name="l00430"></a>00430 }
-<a name="l00431"></a>00431 <span class="keywordflow">return</span> 0;
-<a name="l00432"></a>00432 }
+<a name="l00201"></a>00201 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00202"></a>00202 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00203"></a>00203 recipe = (cpl_recipe *)plugin ;
+<a name="l00204"></a>00204 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00205"></a>00205
+<a name="l00206"></a>00206 cpl_parameterlist_delete(recipe->parameters) ;
+<a name="l00207"></a>00207 <span class="keywordflow">return</span> 0 ;
+<a name="l00208"></a>00208 }
+<a name="l00209"></a>00209
+<a name="l00210"></a>00210 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00217"></a>00217 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00218"></a>00218 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats(
+<a name="l00219"></a>00219 cpl_parameterlist * parlist,
+<a name="l00220"></a>00220 cpl_frameset * framelist)
+<a name="l00221"></a>00221 {
+<a name="l00222"></a>00222 cpl_frameset * frames ;
+<a name="l00223"></a>00223 cpl_table ** target_stats;
+<a name="l00224"></a>00224 cpl_propertylist ** stats_stats;
+<a name="l00225"></a>00225 <span class="keywordtype">int</span> idet;
+<a name="l00226"></a>00226 <span class="keywordtype">char</span> calpro[1024];
+<a name="l00227"></a>00227 <span class="keywordtype">char</span> protype[1024];
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
+<a name="l00230"></a>00230 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist))
+<a name="l00231"></a>00231 {
+<a name="l00232"></a>00232 cpl_msg_error(__func__, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
+<a name="l00233"></a>00233 <span class="keywordflow">return</span> -1;
+<a name="l00234"></a>00234 }
+<a name="l00235"></a>00235
+<a name="l00236"></a>00236 <span class="comment">/* Retrieve raw frames */</span>
+<a name="l00237"></a>00237 cpl_msg_info(__func__, <span class="stringliteral">"Identifying input frames"</span>);
+<a name="l00238"></a>00238 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_IMG_JITTER_RAW) ;
+<a name="l00239"></a>00239 snprintf(calpro, 1024, HAWKI_CALPRO_JITTER_STATS);
+<a name="l00240"></a>00240 snprintf(protype, 1024, HAWKI_PROTYPE_JITTER_STATS);
+<a name="l00241"></a>00241 <span class="keywordflow">if</span> (frames == NULL)
+<a name="l00242"></a>00242 {
+<a name="l00243"></a>00243 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CALPRO_BKGIMAGE);
+<a name="l00244"></a>00244 snprintf(calpro, 1024, HAWKI_CALPRO_JITTER_BKG_STATS);
+<a name="l00245"></a>00245 snprintf(protype, 1024, HAWKI_PROTYPE_JITTER_BKG_STATS);
+<a name="l00246"></a>00246 }
+<a name="l00247"></a>00247 <span class="keywordflow">if</span> (frames == NULL)
+<a name="l00248"></a>00248 {
+<a name="l00249"></a>00249 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CAL_DARK_RAW);
+<a name="l00250"></a>00250 snprintf(calpro, 1024, HAWKI_CALPRO_DARK_STATS);
+<a name="l00251"></a>00251 snprintf(protype, 1024, HAWKI_PROTYPE_DARK_STATS);
+<a name="l00252"></a>00252 }
+<a name="l00253"></a>00253 <span class="keywordflow">if</span> (frames == NULL)
+<a name="l00254"></a>00254 {
+<a name="l00255"></a>00255 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CAL_FLAT_RAW);
+<a name="l00256"></a>00256 snprintf(calpro, 1024, HAWKI_CALPRO_FLAT_STATS);
+<a name="l00257"></a>00257 snprintf(protype, 1024, HAWKI_PROTYPE_FLAT_STATS);
+<a name="l00258"></a>00258 }
+<a name="l00259"></a>00259 <span class="keywordflow">if</span> (frames == NULL)
+<a name="l00260"></a>00260 {
+<a name="l00261"></a>00261 frames = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>(framelist, HAWKI_CAL_ZPOINT_RAW);
+<a name="l00262"></a>00262 snprintf(calpro, 1024, HAWKI_CALPRO_ZPOINT_STATS);
+<a name="l00263"></a>00263 snprintf(protype, 1024, HAWKI_PROTYPE_ZPOINT_STATS);
+<a name="l00264"></a>00264 }
+<a name="l00265"></a>00265 <span class="keywordflow">if</span> (frames == NULL)
+<a name="l00266"></a>00266 {
+<a name="l00267"></a>00267 cpl_msg_error(__func__,<span class="stringliteral">"Tag of input frames not supported"</span>);
+<a name="l00268"></a>00268 cpl_msg_error(__func__,<span class="stringliteral">"Supported: %s %s %s %s %s"</span>,
+<a name="l00269"></a>00269 HAWKI_IMG_JITTER_RAW, HAWKI_CALPRO_BKGIMAGE,
+<a name="l00270"></a>00270 HAWKI_CAL_DARK_RAW, HAWKI_CAL_FLAT_RAW, HAWKI_CAL_ZPOINT_RAW);
+<a name="l00271"></a>00271 <span class="keywordflow">return</span> -1;
+<a name="l00272"></a>00272 }
+<a name="l00273"></a>00273
+<a name="l00274"></a>00274 <span class="comment">/* Create the statistics table and the "stats of the stats"*/</span>
+<a name="l00275"></a>00275 target_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_table *));
+<a name="l00276"></a>00276 stats_stats = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist *));
+<a name="l00277"></a>00277 <span class="keywordflow">for</span>( idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00278"></a>00278 {
+<a name="l00279"></a>00279 target_stats[idet] = cpl_table_new(cpl_frameset_get_size(frames));
+<a name="l00280"></a>00280 stats_stats[idet] = cpl_propertylist_new();
+<a name="l00281"></a>00281 }
+<a name="l00282"></a>00282 <a class="code" href="group__hawki__image__stats.html#ga788a4b7f6fba705eddcebd1f2fe26fd6" title="Initialize the table with all the statistics columns.">hawki_image_stats_initialize</a>(target_stats);
+<a name="l00283"></a>00283
+<a name="l00284"></a>00284 <span class="comment">/* Compute actually the statistics */</span>
+<a name="l00285"></a>00285 hawki_step_stats_frameset_stats(target_stats, stats_stats, frames);
+<a name="l00286"></a>00286
+<a name="l00287"></a>00287 <span class="comment">/* Saving the table product */</span>
+<a name="l00288"></a>00288 <span class="keywordflow">if</span>(hawki_step_stats_save
+<a name="l00289"></a>00289 (target_stats, parlist, framelist, frames, stats_stats, calpro, protype) !=0)
+<a name="l00290"></a>00290 cpl_msg_warning(__func__,<span class="stringliteral">"Some data could not be saved. "</span>
+<a name="l00291"></a>00291 <span class="stringliteral">"Check permisions or disk space\n"</span>);
+<a name="l00292"></a>00292
+<a name="l00293"></a>00293 <span class="comment">/* Free and return */</span>
+<a name="l00294"></a>00294 cpl_frameset_delete(frames);
+<a name="l00295"></a>00295 <span class="keywordflow">for</span>( idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00296"></a>00296 {
+<a name="l00297"></a>00297 cpl_table_delete(target_stats[idet]);
+<a name="l00298"></a>00298 cpl_propertylist_delete(stats_stats[idet]);
+<a name="l00299"></a>00299 }
+<a name="l00300"></a>00300 cpl_free(target_stats);
+<a name="l00301"></a>00301 cpl_free(stats_stats);
+<a name="l00302"></a>00302
+<a name="l00303"></a>00303 <span class="comment">/* Return */</span>
+<a name="l00304"></a>00304 <span class="keywordflow">if</span> (cpl_error_get_code())
+<a name="l00305"></a>00305 {
+<a name="l00306"></a>00306 cpl_msg_error(__func__,
+<a name="l00307"></a>00307 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
+<a name="l00308"></a>00308 <span class="keywordflow">return</span> -1 ;
+<a name="l00309"></a>00309 }
+<a name="l00310"></a>00310 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
+<a name="l00311"></a>00311 }
+<a name="l00312"></a>00312
+<a name="l00313"></a>00313 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00323"></a>00323 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00324"></a>00324 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_frameset_stats
+<a name="l00325"></a>00325 (cpl_table ** target_stats,
+<a name="l00326"></a>00326 cpl_propertylist ** stats_stats,
+<a name="l00327"></a>00327 cpl_frameset * target_frames)
+<a name="l00328"></a>00328 {
+<a name="l00329"></a>00329 <span class="keywordtype">int</span> iframe;
+<a name="l00330"></a>00330 <span class="keywordtype">int</span> nframes;
+<a name="l00331"></a>00331
+<a name="l00332"></a>00332 <span class="comment">/* Loop on the number of frames */</span>
+<a name="l00333"></a>00333 nframes = cpl_frameset_get_size(target_frames);
+<a name="l00334"></a>00334 cpl_msg_info(__func__, <span class="stringliteral">"Looping the target frames: %d frames"</span>, nframes);
+<a name="l00335"></a>00335 cpl_msg_indent_more();
+<a name="l00336"></a>00336 <span class="keywordflow">for</span>( iframe = 0 ; iframe < nframes ; ++iframe)
+<a name="l00337"></a>00337 {
+<a name="l00338"></a>00338 <span class="comment">/* Local storage variables */</span>
+<a name="l00339"></a>00339 cpl_frame * this_target_frame;
+<a name="l00340"></a>00340
+<a name="l00341"></a>00341 <span class="comment">/* Computing statistics for this frame */</span>
+<a name="l00342"></a>00342 cpl_msg_info(__func__, <span class="stringliteral">"Computing stats for frame: %d"</span>, iframe +1);
+<a name="l00343"></a>00343 this_target_frame = cpl_frameset_get_frame(target_frames, iframe);
+<a name="l00344"></a>00344 <a class="code" href="group__hawki__image__stats.html#ga07a4f45b2ba4af9420f7d8600dbbe836" title="Fills a table with the statistics of the four detectors of a frame.">hawki_image_stats_fill_from_frame</a>
+<a name="l00345"></a>00345 (target_stats, this_target_frame, iframe);
+<a name="l00346"></a>00346 }
+<a name="l00347"></a>00347 cpl_msg_indent_less();
+<a name="l00348"></a>00348
+<a name="l00349"></a>00349 <span class="comment">/* Compute stats of the stats */</span>
+<a name="l00350"></a>00350 <a class="code" href="group__hawki__image__stats.html#gaaf82f2c0930f1c2bfcbc5cbef16b3928" title="Make the statistics (over image serie) of the each image statistics.">hawki_image_stats_stats</a>(target_stats, stats_stats);
+<a name="l00351"></a>00351
+<a name="l00352"></a>00352 <span class="comment">/* Print info about the statistics */</span>
+<a name="l00353"></a>00353 hawki_image_stats_print(target_stats);
+<a name="l00354"></a>00354
+<a name="l00355"></a>00355 <span class="keywordflow">return</span> 0;
+<a name="l00356"></a>00356 }
+<a name="l00357"></a>00357
+<a name="l00358"></a>00358 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00368"></a>00368 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00369"></a>00369 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_stats_save
+<a name="l00370"></a>00370 (cpl_table ** target_stats,
+<a name="l00371"></a>00371 cpl_parameterlist * recipe_parlist,
+<a name="l00372"></a>00372 cpl_frameset * recipe_frameset,
+<a name="l00373"></a>00373 cpl_frameset * used_frameset,
+<a name="l00374"></a>00374 cpl_propertylist ** stats_stats,
+<a name="l00375"></a>00375 <span class="keyword">const</span> <span class="keywordtype">char</span> * calpro,
+<a name="l00376"></a>00376 <span class="keyword">const</span> <span class="keywordtype">char</span> * protype)
+<a name="l00377"></a>00377 {
+<a name="l00378"></a>00378 <span class="keyword">const</span> cpl_frame * reference_frame;
+<a name="l00379"></a>00379 cpl_propertylist * referencelist;
+<a name="l00380"></a>00380 cpl_propertylist ** extlists;
+<a name="l00381"></a>00381 <span class="keywordtype">int</span> idet;
+<a name="l00382"></a>00382 <span class="keywordtype">int</span> ext_nb;
+<a name="l00383"></a>00383 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_stats"</span>;
+<a name="l00384"></a>00384 cpl_errorstate error_prevstate = cpl_errorstate_get();
+<a name="l00385"></a>00385
+<a name="l00386"></a>00386
+<a name="l00387"></a>00387 <span class="comment">/* Get the reference frame (the first one) */</span>
+<a name="l00388"></a>00388 reference_frame = cpl_frameset_get_first_const(used_frameset);
+<a name="l00389"></a>00389
+<a name="l00390"></a>00390 <span class="comment">/* Create the prop lists */</span>
+<a name="l00391"></a>00391 cpl_msg_info(__func__, <span class="stringliteral">"Creating the keywords list"</span>) ;
+<a name="l00392"></a>00392 referencelist = cpl_propertylist_load_regexp
+<a name="l00393"></a>00393 (cpl_frame_get_filename(reference_frame), 0,HAWKI_HEADER_EXT_FORWARD,0);
+<a name="l00394"></a>00394 extlists =
+<a name="l00395"></a>00395 cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*));
+<a name="l00396"></a>00396 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00397"></a>00397 {
+<a name="l00398"></a>00398 <span class="comment">/* Get the extension number */</span>
+<a name="l00399"></a>00399 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>
+<a name="l00400"></a>00400 (cpl_frame_get_filename(reference_frame), idet+1);
+<a name="l00401"></a>00401
+<a name="l00402"></a>00402 <span class="comment">/* Propagate the keywords from input frame extensions */</span>
+<a name="l00403"></a>00403 extlists[idet] = cpl_propertylist_load_regexp(
+<a name="l00404"></a>00404 cpl_frame_get_filename(reference_frame), ext_nb,
+<a name="l00405"></a>00405 HAWKI_HEADER_EXT_FORWARD, 0);
+<a name="l00406"></a>00406
+<a name="l00407"></a>00407 <span class="comment">/* Add the stats of the stats */</span>
+<a name="l00408"></a>00408 cpl_propertylist_append(extlists[idet],stats_stats[idet]);
+<a name="l00409"></a>00409 }
+<a name="l00410"></a>00410
+<a name="l00411"></a>00411 <span class="comment">/* Write the table with the statistics */</span>
+<a name="l00412"></a>00412 <a class="code" href="group__hawki__save.html#ga6c4661fb9fa1fe2e8335f2ebb4deeab9" title="Save a HAWKI_NB_DETECTORS extensions HAWKI table.">hawki_tables_save</a>(recipe_frameset,
+<a name="l00413"></a>00413 recipe_parlist,
+<a name="l00414"></a>00414 used_frameset,
+<a name="l00415"></a>00415 (<span class="keyword">const</span> cpl_table **)target_stats,
+<a name="l00416"></a>00416 recipe_name,
+<a name="l00417"></a>00417 calpro,
+<a name="l00418"></a>00418 protype,
+<a name="l00419"></a>00419 (<span class="keyword">const</span> cpl_propertylist*)referencelist,
+<a name="l00420"></a>00420 (<span class="keyword">const</span> cpl_propertylist**)extlists,
+<a name="l00421"></a>00421 <span class="stringliteral">"hawki_step_stats.fits"</span>);
+<a name="l00422"></a>00422
+<a name="l00423"></a>00423 <span class="comment">/* Free and return */</span>
+<a name="l00424"></a>00424 cpl_propertylist_delete(referencelist) ;
+<a name="l00425"></a>00425 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00426"></a>00426 {
+<a name="l00427"></a>00427 cpl_propertylist_delete(extlists[idet]) ;
+<a name="l00428"></a>00428 }
+<a name="l00429"></a>00429 cpl_free(extlists) ;
+<a name="l00430"></a>00430
+<a name="l00431"></a>00431 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
+<a name="l00432"></a>00432 {
+<a name="l00433"></a>00433 cpl_errorstate_set(CPL_ERROR_NONE);
+<a name="l00434"></a>00434 <span class="keywordflow">return</span> -1;
+<a name="l00435"></a>00435 }
+<a name="l00436"></a>00436 <span class="keywordflow">return</span> 0;
+<a name="l00437"></a>00437 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__step__stitch_8c_source.html b/html/hawki__step__stitch_8c_source.html
index 90bc340..6854bbe 100644
--- a/html/hawki__step__stitch_8c_source.html
+++ b/html/hawki__step__stitch_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/10/24 10:41:54 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.7 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -360,7 +360,7 @@
<a name="l00351"></a>00351
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__step__subtract__bkg_8c_source.html b/html/hawki__step__subtract__bkg_8c_source.html
index 290c51d..a4ac18c 100644
--- a/html/hawki__step__subtract__bkg_8c_source.html
+++ b/html/hawki__step__subtract__bkg_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_step_subtract_bkg.c</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_step_subtract_bkg.c,v 1.17 2011/10/24 10:41:43 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_step_subtract_bkg.c,v 1.18 2012/11/30 14:50:51 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2008 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/10/24 10:41:43 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.17 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/11/30 14:50:51 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.18 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -100,432 +100,437 @@
<a name="l00053"></a>00053 <span class="comment"> Functions prototypes</span>
<a name="l00054"></a>00054 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00055"></a>00055
-<a name="l00056"></a>00056 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_create(cpl_plugin *) ;
-<a name="l00057"></a>00057 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_exec(cpl_plugin *) ;
-<a name="l00058"></a>00058 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_destroy(cpl_plugin *) ;
-<a name="l00059"></a>00059 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg(cpl_parameterlist *, cpl_frameset *) ;
+<a name="l00056"></a>00056 <span class="preprocessor">#ifdef __cplusplus</span>
+<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
+<a name="l00058"></a>00058 <span class="preprocessor">#endif</span>
+<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list);
<a name="l00060"></a>00060
-<a name="l00061"></a>00061 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_apply_one_to_one_save
-<a name="l00062"></a>00062 (cpl_frameset * objframes,
-<a name="l00063"></a>00063 cpl_frameset * bkgframes,
-<a name="l00064"></a>00064 cpl_parameterlist * parlist,
-<a name="l00065"></a>00065 cpl_frameset * recipe_framelist);
-<a name="l00066"></a>00066
-<a name="l00067"></a>00067 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_apply_one_to_all_save
-<a name="l00068"></a>00068 (cpl_frameset * objframes,
-<a name="l00069"></a>00069 cpl_frameset * bkgframes,
-<a name="l00070"></a>00070 cpl_parameterlist * recipe_parlist,
-<a name="l00071"></a>00071 cpl_frameset * recipe_framelist);
-<a name="l00072"></a>00072
-<a name="l00073"></a>00073 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_save
-<a name="l00074"></a>00074 (cpl_imagelist * obj_images,
-<a name="l00075"></a>00075 <span class="keywordtype">int</span> iserie,
-<a name="l00076"></a>00076 cpl_frameset * used_frameset,
-<a name="l00077"></a>00077 cpl_parameterlist * recipe_parlist,
-<a name="l00078"></a>00078 cpl_frameset * recipe_framelist);
-<a name="l00079"></a>00079
-<a name="l00080"></a>00080 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00081"></a>00081 <span class="comment"> Static variables</span>
-<a name="l00082"></a>00082 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00083"></a>00083
-<a name="l00084"></a>00084 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_step_subtract_bkg_description[] =
-<a name="l00085"></a>00085 <span class="stringliteral">"hawki_step_subtract_bkg -- hawki background subtraction utility.\n"</span>
-<a name="l00086"></a>00086 <span class="stringliteral">"This recipe will subtract the given background to the science images.\n"</span>
-<a name="l00087"></a>00087 <span class="stringliteral">"The background can be obtained from the sky or object images\n"</span>
-<a name="l00088"></a>00088 <span class="stringliteral">"using the hawki_util_compute_bkg utility.\n"</span>
-<a name="l00089"></a>00089 <span class="stringliteral">"There are two modes of operation:\n"</span>
-<a name="l00090"></a>00090 <span class="stringliteral">"One single background image that it is subtracted to all object images.\n"</span>
-<a name="l00091"></a>00091 <span class="stringliteral">"As many background images as objects. A one to one relationship is applied.\n"</span>
-<a name="l00092"></a>00092 <span class="stringliteral">"The files listed in the Set Of Frames (sof-file) must be tagged:\n"</span>
-<a name="l00093"></a>00093 <span class="stringliteral">"obj_basic_cal-file.fits "</span>HAWKI_CALPRO_BASICCALIBRATED<span class="stringliteral">" or\n"</span>
-<a name="l00094"></a>00094 <span class="stringliteral">"background-file.fits "</span>HAWKI_CALPRO_BKGIMAGE<span class="stringliteral">" \n"</span>;
-<a name="l00095"></a>00095
-<a name="l00096"></a>00096 <span class="comment">/*-----------------------------------------------------------------------------</span>
-<a name="l00097"></a>00097 <span class="comment"> Functions code</span>
-<a name="l00098"></a>00098 <span class="comment"> -----------------------------------------------------------------------------*/</span>
-<a name="l00099"></a>00099
-<a name="l00100"></a>00100 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00108"></a>00108 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00109"></a>00109 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
-<a name="l00110"></a>00110 {
-<a name="l00111"></a>00111 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
-<a name="l00112"></a>00112 cpl_plugin * plugin = &recipe->interface ;
-<a name="l00113"></a>00113
-<a name="l00114"></a>00114 cpl_plugin_init(plugin,
-<a name="l00115"></a>00115 CPL_PLUGIN_API,
-<a name="l00116"></a>00116 HAWKI_BINARY_VERSION,
-<a name="l00117"></a>00117 CPL_PLUGIN_TYPE_RECIPE,
-<a name="l00118"></a>00118 <span class="stringliteral">"hawki_step_subtract_bkg"</span>,
-<a name="l00119"></a>00119 <span class="stringliteral">"Background subtraction utility"</span>,
-<a name="l00120"></a>00120 hawki_step_subtract_bkg_description,
-<a name="l00121"></a>00121 <span class="stringliteral">"Cesar Enrique Garcia Dabo"</span>,
-<a name="l00122"></a>00122 PACKAGE_BUGREPORT,
-<a name="l00123"></a>00123 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
-<a name="l00124"></a>00124 hawki_step_subtract_bkg_create,
-<a name="l00125"></a>00125 hawki_step_subtract_bkg_exec,
-<a name="l00126"></a>00126 hawki_step_subtract_bkg_destroy) ;
-<a name="l00127"></a>00127
-<a name="l00128"></a>00128 cpl_pluginlist_append(list, plugin) ;
-<a name="l00129"></a>00129
-<a name="l00130"></a>00130 <span class="keywordflow">return</span> 0;
-<a name="l00131"></a>00131 }
+<a name="l00061"></a>00061 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_create(cpl_plugin *) ;
+<a name="l00062"></a>00062 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_exec(cpl_plugin *) ;
+<a name="l00063"></a>00063 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_destroy(cpl_plugin *) ;
+<a name="l00064"></a>00064 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg(cpl_parameterlist *, cpl_frameset *) ;
+<a name="l00065"></a>00065
+<a name="l00066"></a>00066 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_apply_one_to_one_save
+<a name="l00067"></a>00067 (cpl_frameset * objframes,
+<a name="l00068"></a>00068 cpl_frameset * bkgframes,
+<a name="l00069"></a>00069 cpl_parameterlist * parlist,
+<a name="l00070"></a>00070 cpl_frameset * recipe_framelist);
+<a name="l00071"></a>00071
+<a name="l00072"></a>00072 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_apply_one_to_all_save
+<a name="l00073"></a>00073 (cpl_frameset * objframes,
+<a name="l00074"></a>00074 cpl_frameset * bkgframes,
+<a name="l00075"></a>00075 cpl_parameterlist * recipe_parlist,
+<a name="l00076"></a>00076 cpl_frameset * recipe_framelist);
+<a name="l00077"></a>00077
+<a name="l00078"></a>00078 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_save
+<a name="l00079"></a>00079 (cpl_imagelist * obj_images,
+<a name="l00080"></a>00080 <span class="keywordtype">int</span> iserie,
+<a name="l00081"></a>00081 cpl_frameset * used_frameset,
+<a name="l00082"></a>00082 cpl_parameterlist * recipe_parlist,
+<a name="l00083"></a>00083 cpl_frameset * recipe_framelist);
+<a name="l00084"></a>00084
+<a name="l00085"></a>00085 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00086"></a>00086 <span class="comment"> Static variables</span>
+<a name="l00087"></a>00087 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 <span class="keyword">static</span> <span class="keywordtype">char</span> hawki_step_subtract_bkg_description[] =
+<a name="l00090"></a>00090 <span class="stringliteral">"hawki_step_subtract_bkg -- hawki background subtraction utility.\n"</span>
+<a name="l00091"></a>00091 <span class="stringliteral">"This recipe will subtract the given background to the science images.\n"</span>
+<a name="l00092"></a>00092 <span class="stringliteral">"The background can be obtained from the sky or object images\n"</span>
+<a name="l00093"></a>00093 <span class="stringliteral">"using the hawki_util_compute_bkg utility.\n"</span>
+<a name="l00094"></a>00094 <span class="stringliteral">"There are two modes of operation:\n"</span>
+<a name="l00095"></a>00095 <span class="stringliteral">"One single background image that it is subtracted to all object images.\n"</span>
+<a name="l00096"></a>00096 <span class="stringliteral">"As many background images as objects. A one to one relationship is applied.\n"</span>
+<a name="l00097"></a>00097 <span class="stringliteral">"The files listed in the Set Of Frames (sof-file) must be tagged:\n"</span>
+<a name="l00098"></a>00098 <span class="stringliteral">"obj_basic_cal-file.fits "</span>HAWKI_CALPRO_BASICCALIBRATED<span class="stringliteral">" or\n"</span>
+<a name="l00099"></a>00099 <span class="stringliteral">"background-file.fits "</span>HAWKI_CALPRO_BKGIMAGE<span class="stringliteral">" \n"</span>;
+<a name="l00100"></a>00100
+<a name="l00101"></a>00101 <span class="comment">/*-----------------------------------------------------------------------------</span>
+<a name="l00102"></a>00102 <span class="comment"> Functions code</span>
+<a name="l00103"></a>00103 <span class="comment"> -----------------------------------------------------------------------------*/</span>
+<a name="l00104"></a>00104
+<a name="l00105"></a>00105 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00113"></a>00113 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00114"></a>00114 <span class="keywordtype">int</span> cpl_plugin_get_info(cpl_pluginlist * list)
+<a name="l00115"></a>00115 {
+<a name="l00116"></a>00116 cpl_recipe * recipe = cpl_calloc(1, <span class="keyword">sizeof</span>(*recipe)) ;
+<a name="l00117"></a>00117 cpl_plugin * plugin = &recipe->interface ;
+<a name="l00118"></a>00118
+<a name="l00119"></a>00119 cpl_plugin_init(plugin,
+<a name="l00120"></a>00120 CPL_PLUGIN_API,
+<a name="l00121"></a>00121 HAWKI_BINARY_VERSION,
+<a name="l00122"></a>00122 CPL_PLUGIN_TYPE_RECIPE,
+<a name="l00123"></a>00123 <span class="stringliteral">"hawki_step_subtract_bkg"</span>,
+<a name="l00124"></a>00124 <span class="stringliteral">"Background subtraction utility"</span>,
+<a name="l00125"></a>00125 hawki_step_subtract_bkg_description,
+<a name="l00126"></a>00126 <span class="stringliteral">"Cesar Enrique Garcia Dabo"</span>,
+<a name="l00127"></a>00127 PACKAGE_BUGREPORT,
+<a name="l00128"></a>00128 <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(),
+<a name="l00129"></a>00129 hawki_step_subtract_bkg_create,
+<a name="l00130"></a>00130 hawki_step_subtract_bkg_exec,
+<a name="l00131"></a>00131 hawki_step_subtract_bkg_destroy) ;
<a name="l00132"></a>00132
-<a name="l00133"></a>00133 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00142"></a>00142 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00143"></a>00143 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_create(cpl_plugin * plugin)
-<a name="l00144"></a>00144 {
-<a name="l00145"></a>00145 cpl_recipe * recipe ;
-<a name="l00146"></a>00146 <span class="comment">//cpl_parameter * p ;</span>
-<a name="l00147"></a>00147
-<a name="l00148"></a>00148 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00149"></a>00149 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00150"></a>00150 recipe = (cpl_recipe *)plugin ;
-<a name="l00151"></a>00151 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00133"></a>00133 cpl_pluginlist_append(list, plugin) ;
+<a name="l00134"></a>00134
+<a name="l00135"></a>00135 <span class="keywordflow">return</span> 0;
+<a name="l00136"></a>00136 }
+<a name="l00137"></a>00137
+<a name="l00138"></a>00138 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00147"></a>00147 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00148"></a>00148 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_create(cpl_plugin * plugin)
+<a name="l00149"></a>00149 {
+<a name="l00150"></a>00150 cpl_recipe * recipe ;
+<a name="l00151"></a>00151 <span class="comment">//cpl_parameter * p ;</span>
<a name="l00152"></a>00152
-<a name="l00153"></a>00153 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
-<a name="l00154"></a>00154 recipe->parameters = cpl_parameterlist_new() ;
-<a name="l00155"></a>00155 <span class="keywordflow">if</span> (recipe->parameters == NULL)
-<a name="l00156"></a>00156 <span class="keywordflow">return</span> 1;
+<a name="l00153"></a>00153 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00154"></a>00154 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00155"></a>00155 recipe = (cpl_recipe *)plugin ;
+<a name="l00156"></a>00156 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
<a name="l00157"></a>00157
-<a name="l00158"></a>00158 <span class="comment">/* Fill the parameters list */</span>
-<a name="l00159"></a>00159 <span class="comment">/* None.. */</span>
-<a name="l00160"></a>00160
-<a name="l00161"></a>00161 <span class="comment">/* Return */</span>
-<a name="l00162"></a>00162 <span class="keywordflow">return</span> 0;
-<a name="l00163"></a>00163 }
-<a name="l00164"></a>00164
-<a name="l00165"></a>00165 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00171"></a>00171 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00172"></a>00172 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_exec(cpl_plugin * plugin)
-<a name="l00173"></a>00173 {
-<a name="l00174"></a>00174 cpl_recipe * recipe ;
-<a name="l00175"></a>00175
-<a name="l00176"></a>00176 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00177"></a>00177 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00178"></a>00178 recipe = (cpl_recipe *)plugin ;
-<a name="l00179"></a>00179 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00158"></a>00158 <span class="comment">/* Create the parameters list in the cpl_recipe object */</span>
+<a name="l00159"></a>00159 recipe->parameters = cpl_parameterlist_new() ;
+<a name="l00160"></a>00160 <span class="keywordflow">if</span> (recipe->parameters == NULL)
+<a name="l00161"></a>00161 <span class="keywordflow">return</span> 1;
+<a name="l00162"></a>00162
+<a name="l00163"></a>00163 <span class="comment">/* Fill the parameters list */</span>
+<a name="l00164"></a>00164 <span class="comment">/* None.. */</span>
+<a name="l00165"></a>00165
+<a name="l00166"></a>00166 <span class="comment">/* Return */</span>
+<a name="l00167"></a>00167 <span class="keywordflow">return</span> 0;
+<a name="l00168"></a>00168 }
+<a name="l00169"></a>00169
+<a name="l00170"></a>00170 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00176"></a>00176 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00177"></a>00177 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_exec(cpl_plugin * plugin)
+<a name="l00178"></a>00178 {
+<a name="l00179"></a>00179 cpl_recipe * recipe ;
<a name="l00180"></a>00180
-<a name="l00181"></a>00181 <span class="comment">/* Issue a banner */</span>
-<a name="l00182"></a>00182 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
-<a name="l00183"></a>00183
-<a name="l00184"></a>00184 <span class="keywordflow">return</span> hawki_step_subtract_bkg(recipe->parameters, recipe->frames) ;
-<a name="l00185"></a>00185 }
-<a name="l00186"></a>00186
-<a name="l00187"></a>00187 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00193"></a>00193 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00194"></a>00194 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_destroy(cpl_plugin * plugin)
-<a name="l00195"></a>00195 {
-<a name="l00196"></a>00196 cpl_recipe * recipe ;
-<a name="l00197"></a>00197
-<a name="l00198"></a>00198 <span class="comment">/* Get the recipe out of the plugin */</span>
-<a name="l00199"></a>00199 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
-<a name="l00200"></a>00200 recipe = (cpl_recipe *)plugin ;
-<a name="l00201"></a>00201 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00181"></a>00181 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00182"></a>00182 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00183"></a>00183 recipe = (cpl_recipe *)plugin ;
+<a name="l00184"></a>00184 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00185"></a>00185
+<a name="l00186"></a>00186 <span class="comment">/* Issue a banner */</span>
+<a name="l00187"></a>00187 <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>();
+<a name="l00188"></a>00188
+<a name="l00189"></a>00189 <span class="keywordflow">return</span> hawki_step_subtract_bkg(recipe->parameters, recipe->frames) ;
+<a name="l00190"></a>00190 }
+<a name="l00191"></a>00191
+<a name="l00192"></a>00192 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00198"></a>00198 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00199"></a>00199 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_destroy(cpl_plugin * plugin)
+<a name="l00200"></a>00200 {
+<a name="l00201"></a>00201 cpl_recipe * recipe ;
<a name="l00202"></a>00202
-<a name="l00203"></a>00203 cpl_parameterlist_delete(recipe->parameters) ;
-<a name="l00204"></a>00204 <span class="keywordflow">return</span> 0 ;
-<a name="l00205"></a>00205 }
-<a name="l00206"></a>00206
-<a name="l00207"></a>00207 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00214"></a>00214 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00215"></a>00215 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg(
-<a name="l00216"></a>00216 cpl_parameterlist * parlist,
-<a name="l00217"></a>00217 cpl_frameset * framelist)
-<a name="l00218"></a>00218 {
-<a name="l00219"></a>00219 <span class="keywordtype">int</span> nobj;
-<a name="l00220"></a>00220 <span class="keywordtype">int</span> nbkg;
-<a name="l00221"></a>00221 cpl_frameset * objframes;
-<a name="l00222"></a>00222 cpl_frameset * bkgframes;
-<a name="l00223"></a>00223
-<a name="l00224"></a>00224
-<a name="l00225"></a>00225 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
-<a name="l00226"></a>00226 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist))
-<a name="l00227"></a>00227 {
-<a name="l00228"></a>00228 cpl_msg_error(__func__, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
-<a name="l00229"></a>00229 <span class="keywordflow">return</span> -1 ;
-<a name="l00230"></a>00230 }
-<a name="l00231"></a>00231
-<a name="l00232"></a>00232 <span class="comment">/* Identifying objects and bkg data frames */</span>
-<a name="l00233"></a>00233 cpl_msg_info(__func__, <span class="stringliteral">"Identifying objects and background data"</span>);
-<a name="l00234"></a>00234 objframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
-<a name="l00235"></a>00235 (framelist, HAWKI_CALPRO_BASICCALIBRATED);
-<a name="l00236"></a>00236 <span class="keywordflow">if</span> (objframes == NULL)
-<a name="l00237"></a>00237 {
-<a name="l00238"></a>00238 cpl_msg_error(__func__, <span class="stringliteral">"No object frames provided (%s)"</span>,
-<a name="l00239"></a>00239 HAWKI_CALPRO_BASICCALIBRATED);
-<a name="l00240"></a>00240 <span class="keywordflow">return</span> -1 ;
-<a name="l00241"></a>00241 }
-<a name="l00242"></a>00242 <span class="comment">/* Retrieve bkg frames */</span>
-<a name="l00243"></a>00243 bkgframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
-<a name="l00244"></a>00244 (framelist, HAWKI_CALPRO_BKGIMAGE);
-<a name="l00245"></a>00245 <span class="keywordflow">if</span> (bkgframes == NULL)
-<a name="l00246"></a>00246 {
-<a name="l00247"></a>00247 cpl_msg_error(__func__, <span class="stringliteral">"No background frames provided (%s)"</span>,
-<a name="l00248"></a>00248 HAWKI_CALPRO_BKGIMAGE);
-<a name="l00249"></a>00249 cpl_frameset_delete(objframes);
-<a name="l00250"></a>00250 <span class="keywordflow">return</span> -1 ;
-<a name="l00251"></a>00251 }
-<a name="l00252"></a>00252
-<a name="l00253"></a>00253 <span class="comment">/* Subtract the background */</span>
-<a name="l00254"></a>00254 nobj = cpl_frameset_get_size(objframes);
-<a name="l00255"></a>00255 nbkg = cpl_frameset_get_size(bkgframes);
-<a name="l00256"></a>00256 <span class="keywordflow">if</span>(nobj == nbkg)
-<a name="l00257"></a>00257 hawki_step_subtract_bkg_apply_one_to_one_save
-<a name="l00258"></a>00258 (objframes, bkgframes, parlist, framelist);
-<a name="l00259"></a>00259 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(nbkg == 1)
-<a name="l00260"></a>00260 hawki_step_subtract_bkg_apply_one_to_all_save
-<a name="l00261"></a>00261 (objframes, bkgframes, parlist, framelist);
-<a name="l00262"></a>00262 <span class="keywordflow">else</span>
-<a name="l00263"></a>00263 {
-<a name="l00264"></a>00264 cpl_msg_error(__func__,<span class="stringliteral">"Incompatible number of science and background"</span>
-<a name="l00265"></a>00265 <span class="stringliteral">" images."</span>);
-<a name="l00266"></a>00266 cpl_msg_error(__func__,<span class="stringliteral">"Supply only 1 bkg frame or as many as objects"</span>);
-<a name="l00267"></a>00267 cpl_frameset_delete(objframes);
-<a name="l00268"></a>00268 cpl_frameset_delete(bkgframes);
-<a name="l00269"></a>00269 <span class="keywordflow">return</span> -1;
-<a name="l00270"></a>00270 }
-<a name="l00271"></a>00271
-<a name="l00272"></a>00272 <span class="comment">/* Free resources */</span>
-<a name="l00273"></a>00273 cpl_frameset_delete(objframes);
-<a name="l00274"></a>00274 cpl_frameset_delete(bkgframes);
-<a name="l00275"></a>00275
-<a name="l00276"></a>00276 <span class="comment">/* Return */</span>
-<a name="l00277"></a>00277 <span class="keywordflow">if</span> (cpl_error_get_code())
-<a name="l00278"></a>00278 {
-<a name="l00279"></a>00279 cpl_msg_error(__func__,
-<a name="l00280"></a>00280 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
-<a name="l00281"></a>00281 <span class="keywordflow">return</span> -1 ;
-<a name="l00282"></a>00282 }
-<a name="l00283"></a>00283 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
-<a name="l00284"></a>00284 }
-<a name="l00285"></a>00285
-<a name="l00286"></a>00286 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00295"></a>00295 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00296"></a>00296 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_apply_one_to_one_save
-<a name="l00297"></a>00297 (cpl_frameset * objframes,
-<a name="l00298"></a>00298 cpl_frameset * bkgframes,
-<a name="l00299"></a>00299 cpl_parameterlist * recipe_parlist,
-<a name="l00300"></a>00300 cpl_frameset * recipe_framelist)
-<a name="l00301"></a>00301 {
-<a name="l00302"></a>00302 <span class="keywordtype">int</span> iobj;
-<a name="l00303"></a>00303 <span class="keywordtype">int</span> nobjs;
-<a name="l00304"></a>00304
-<a name="l00305"></a>00305 <span class="comment">/* Subtract the background to each object frame */</span>
-<a name="l00306"></a>00306 cpl_msg_info(__func__,<span class="stringliteral">"Using a one to one relation btw objects and bkgs"</span>);
-<a name="l00307"></a>00307 nobjs = cpl_frameset_get_size(objframes);
-<a name="l00308"></a>00308 <span class="keywordflow">for</span>(iobj = 0; iobj < nobjs; ++iobj)
-<a name="l00309"></a>00309 {
-<a name="l00310"></a>00310 cpl_frame * obj_frame = NULL;
-<a name="l00311"></a>00311 cpl_frame * bkg_frame = NULL;
-<a name="l00312"></a>00312 cpl_imagelist * obj_images = NULL;
-<a name="l00313"></a>00313 cpl_imagelist * bkg_images = NULL;
-<a name="l00314"></a>00314 cpl_frameset * used_frameset;
-<a name="l00315"></a>00315
-<a name="l00316"></a>00316 <span class="comment">/* Allocate resources */</span>
-<a name="l00317"></a>00317 used_frameset = cpl_frameset_new();
-<a name="l00318"></a>00318
-<a name="l00319"></a>00319 <span class="comment">/* Read the object frame */</span>
-<a name="l00320"></a>00320 cpl_msg_indent_more();
-<a name="l00321"></a>00321 cpl_msg_info(__func__, <span class="stringliteral">"Applying correction to object %d"</span>, iobj+1) ;
-<a name="l00322"></a>00322 obj_frame = cpl_frameset_get_frame(objframes, iobj);
-<a name="l00323"></a>00323 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(obj_frame));
-<a name="l00324"></a>00324 <span class="keywordflow">if</span>(obj_frame != NULL)
-<a name="l00325"></a>00325 obj_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(obj_frame, CPL_TYPE_FLOAT);
-<a name="l00326"></a>00326 <span class="keywordflow">if</span>(obj_images == NULL)
-<a name="l00327"></a>00327 {
-<a name="l00328"></a>00328 cpl_msg_indent_less();
-<a name="l00329"></a>00329 cpl_msg_error(__func__, <span class="stringliteral">"Error reading obj image"</span>) ;
-<a name="l00330"></a>00330 cpl_frameset_delete(used_frameset);
-<a name="l00331"></a>00331 <span class="keywordflow">return</span> -1;
-<a name="l00332"></a>00332 }
-<a name="l00333"></a>00333
-<a name="l00334"></a>00334 <span class="comment">/* Read the bkg */</span>
-<a name="l00335"></a>00335 bkg_frame = cpl_frameset_get_frame(bkgframes, iobj);
-<a name="l00336"></a>00336 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(bkg_frame));
-<a name="l00337"></a>00337 <span class="keywordflow">if</span>(bkg_frame != NULL)
-<a name="l00338"></a>00338 bkg_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(bkg_frame, CPL_TYPE_FLOAT);
-<a name="l00339"></a>00339 <span class="keywordflow">if</span>(bkg_images == NULL)
-<a name="l00340"></a>00340 {
-<a name="l00341"></a>00341 cpl_msg_error(__func__, <span class="stringliteral">"Error reading background image"</span>) ;
-<a name="l00342"></a>00342 cpl_msg_indent_less();
-<a name="l00343"></a>00343 cpl_imagelist_delete(obj_images);
-<a name="l00344"></a>00344 cpl_frameset_delete(used_frameset);
-<a name="l00345"></a>00345 <span class="keywordflow">return</span> -1;
-<a name="l00346"></a>00346 }
-<a name="l00347"></a>00347
-<a name="l00348"></a>00348 <span class="comment">/* Make the correction */</span>
-<a name="l00349"></a>00349 <a class="code" href="group__hawki__calib.html#ga648180245b7cace291a654d5b31e5f75" title="Apply the background subtraction to the images.">hawki_bkg_imglist_calib</a>(obj_images, bkg_images);
-<a name="l00350"></a>00350
-<a name="l00351"></a>00351 <span class="comment">/* Save the subtracted frame */</span>
-<a name="l00352"></a>00352 <span class="keywordflow">if</span>(hawki_step_subtract_bkg_save(obj_images,
-<a name="l00353"></a>00353 iobj,
-<a name="l00354"></a>00354 used_frameset,
-<a name="l00355"></a>00355 recipe_parlist,
-<a name="l00356"></a>00356 recipe_framelist) != 0)
-<a name="l00357"></a>00357 cpl_msg_warning(__func__,<span class="stringliteral">"Some data could not be saved. "</span>
-<a name="l00358"></a>00358 <span class="stringliteral">"Check permisions or disk space"</span>);
-<a name="l00359"></a>00359
-<a name="l00360"></a>00360 <span class="comment">/* Free in loop */</span>
-<a name="l00361"></a>00361 cpl_msg_indent_less();
-<a name="l00362"></a>00362 cpl_imagelist_delete(obj_images);
-<a name="l00363"></a>00363 cpl_imagelist_delete(bkg_images);
-<a name="l00364"></a>00364 cpl_frameset_delete(used_frameset);
-<a name="l00365"></a>00365 }
-<a name="l00366"></a>00366
-<a name="l00367"></a>00367 <span class="comment">/* Exit */</span>
-<a name="l00368"></a>00368 <span class="keywordflow">return</span> 0;
-<a name="l00369"></a>00369 }
-<a name="l00370"></a>00370
-<a name="l00371"></a>00371 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00380"></a>00380 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00381"></a>00381 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_apply_one_to_all_save
-<a name="l00382"></a>00382 (cpl_frameset * objframes,
-<a name="l00383"></a>00383 cpl_frameset * bkgframes,
-<a name="l00384"></a>00384 cpl_parameterlist * recipe_parlist,
-<a name="l00385"></a>00385 cpl_frameset * recipe_framelist)
-<a name="l00386"></a>00386 {
-<a name="l00387"></a>00387 <span class="keywordtype">int</span> iobj;
-<a name="l00388"></a>00388 <span class="keywordtype">int</span> nobjs;
-<a name="l00389"></a>00389 cpl_frame * bkg_frame;
-<a name="l00390"></a>00390 cpl_imagelist * bkg_images = NULL;
-<a name="l00391"></a>00391
-<a name="l00392"></a>00392 <span class="comment">/* Read the bkg */</span>
-<a name="l00393"></a>00393 cpl_msg_info(__func__,<span class="stringliteral">"Using the same bkg for all the objects"</span>);
-<a name="l00394"></a>00394 bkg_frame = cpl_frameset_get_first(bkgframes);
-<a name="l00395"></a>00395 <span class="keywordflow">if</span>(bkg_frame != NULL)
-<a name="l00396"></a>00396 bkg_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(bkg_frame, CPL_TYPE_FLOAT);
-<a name="l00397"></a>00397 <span class="keywordflow">if</span>(bkg_images == NULL)
-<a name="l00398"></a>00398 {
-<a name="l00399"></a>00399 cpl_msg_error(__func__, <span class="stringliteral">"Error reading background image"</span>);
-<a name="l00400"></a>00400 <span class="keywordflow">return</span> -1;
-<a name="l00401"></a>00401 }
-<a name="l00402"></a>00402
-<a name="l00403"></a>00403 <span class="comment">/* Subtract the background to each object frame */</span>
-<a name="l00404"></a>00404 nobjs = cpl_frameset_get_size(objframes);
-<a name="l00405"></a>00405 <span class="keywordflow">for</span>(iobj = 0; iobj < nobjs; ++iobj)
-<a name="l00406"></a>00406 {
-<a name="l00407"></a>00407 cpl_frame * obj_frame;
-<a name="l00408"></a>00408 cpl_imagelist * obj_images = NULL;
-<a name="l00409"></a>00409 cpl_frameset * used_frameset;
-<a name="l00410"></a>00410
-<a name="l00411"></a>00411 <span class="comment">/* Allocate resources */</span>
-<a name="l00412"></a>00412 used_frameset = cpl_frameset_new();
-<a name="l00413"></a>00413
-<a name="l00414"></a>00414 <span class="comment">/* Read the object frame */</span>
-<a name="l00415"></a>00415 cpl_msg_indent_more();
-<a name="l00416"></a>00416 cpl_msg_info(__func__, <span class="stringliteral">"Applying correction to object %d"</span>, iobj+1) ;
-<a name="l00417"></a>00417 obj_frame = cpl_frameset_get_frame(objframes, iobj);
-<a name="l00418"></a>00418 <span class="keywordflow">if</span>(obj_frame != NULL)
-<a name="l00419"></a>00419 obj_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(obj_frame, CPL_TYPE_FLOAT);
-<a name="l00420"></a>00420 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(obj_frame));
-<a name="l00421"></a>00421 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(bkg_frame));
-<a name="l00422"></a>00422 <span class="keywordflow">if</span>(obj_images == NULL)
-<a name="l00423"></a>00423 {
-<a name="l00424"></a>00424 cpl_msg_indent_less();
-<a name="l00425"></a>00425 cpl_msg_error(__func__, <span class="stringliteral">"Error reading obj image"</span>) ;
-<a name="l00426"></a>00426 cpl_frameset_delete(used_frameset);
-<a name="l00427"></a>00427 <span class="keywordflow">return</span> -1;
-<a name="l00428"></a>00428 }
-<a name="l00429"></a>00429
-<a name="l00430"></a>00430 <span class="comment">/* Make the correction */</span>
-<a name="l00431"></a>00431 <a class="code" href="group__hawki__calib.html#ga648180245b7cace291a654d5b31e5f75" title="Apply the background subtraction to the images.">hawki_bkg_imglist_calib</a>(obj_images, bkg_images);
-<a name="l00432"></a>00432
-<a name="l00433"></a>00433 <span class="comment">/* Save the subtracted frame */</span>
-<a name="l00434"></a>00434 hawki_step_subtract_bkg_save(obj_images,
-<a name="l00435"></a>00435 iobj,
-<a name="l00436"></a>00436 used_frameset,
-<a name="l00437"></a>00437 recipe_parlist,
-<a name="l00438"></a>00438 recipe_framelist);
-<a name="l00439"></a>00439
-<a name="l00440"></a>00440 <span class="comment">/* Free in loop */</span>
-<a name="l00441"></a>00441 cpl_msg_indent_less();
-<a name="l00442"></a>00442 cpl_imagelist_delete(obj_images);
-<a name="l00443"></a>00443 cpl_frameset_delete(used_frameset);
-<a name="l00444"></a>00444 }
-<a name="l00445"></a>00445
-<a name="l00446"></a>00446 <span class="comment">/* Free and return */</span>
-<a name="l00447"></a>00447 cpl_imagelist_delete(bkg_images);
-<a name="l00448"></a>00448 <span class="keywordflow">return</span> 0;
-<a name="l00449"></a>00449 }
+<a name="l00203"></a>00203 <span class="comment">/* Get the recipe out of the plugin */</span>
+<a name="l00204"></a>00204 <span class="keywordflow">if</span> (cpl_plugin_get_type(plugin) == CPL_PLUGIN_TYPE_RECIPE)
+<a name="l00205"></a>00205 recipe = (cpl_recipe *)plugin ;
+<a name="l00206"></a>00206 <span class="keywordflow">else</span> <span class="keywordflow">return</span> -1 ;
+<a name="l00207"></a>00207
+<a name="l00208"></a>00208 cpl_parameterlist_delete(recipe->parameters) ;
+<a name="l00209"></a>00209 <span class="keywordflow">return</span> 0 ;
+<a name="l00210"></a>00210 }
+<a name="l00211"></a>00211
+<a name="l00212"></a>00212 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00219"></a>00219 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00220"></a>00220 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg(
+<a name="l00221"></a>00221 cpl_parameterlist * parlist,
+<a name="l00222"></a>00222 cpl_frameset * framelist)
+<a name="l00223"></a>00223 {
+<a name="l00224"></a>00224 <span class="keywordtype">int</span> nobj;
+<a name="l00225"></a>00225 <span class="keywordtype">int</span> nbkg;
+<a name="l00226"></a>00226 cpl_frameset * objframes;
+<a name="l00227"></a>00227 cpl_frameset * bkgframes;
+<a name="l00228"></a>00228
+<a name="l00229"></a>00229
+<a name="l00230"></a>00230 <span class="comment">/* Identify the RAW and CALIB frames in the input frameset */</span>
+<a name="l00231"></a>00231 <span class="keywordflow">if</span> (<a class="code" href="group__hawki__dfs.html#ga6d79b77b5f9d13aa0ceeb461410bb03b" title="Set the group as RAW or CALIB in a frameset.">hawki_dfs_set_groups</a>(framelist))
+<a name="l00232"></a>00232 {
+<a name="l00233"></a>00233 cpl_msg_error(__func__, <span class="stringliteral">"Cannot identify RAW and CALIB frames"</span>) ;
+<a name="l00234"></a>00234 <span class="keywordflow">return</span> -1 ;
+<a name="l00235"></a>00235 }
+<a name="l00236"></a>00236
+<a name="l00237"></a>00237 <span class="comment">/* Identifying objects and bkg data frames */</span>
+<a name="l00238"></a>00238 cpl_msg_info(__func__, <span class="stringliteral">"Identifying objects and background data"</span>);
+<a name="l00239"></a>00239 objframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
+<a name="l00240"></a>00240 (framelist, HAWKI_CALPRO_BASICCALIBRATED);
+<a name="l00241"></a>00241 <span class="keywordflow">if</span> (objframes == NULL)
+<a name="l00242"></a>00242 {
+<a name="l00243"></a>00243 cpl_msg_error(__func__, <span class="stringliteral">"No object frames provided (%s)"</span>,
+<a name="l00244"></a>00244 HAWKI_CALPRO_BASICCALIBRATED);
+<a name="l00245"></a>00245 <span class="keywordflow">return</span> -1 ;
+<a name="l00246"></a>00246 }
+<a name="l00247"></a>00247 <span class="comment">/* Retrieve bkg frames */</span>
+<a name="l00248"></a>00248 bkgframes = <a class="code" href="group__hawki__load.html#ga080ffcf787c686caacf741989e6e796a" title="Extract the frames with the given tag from a frameset.">hawki_extract_frameset</a>
+<a name="l00249"></a>00249 (framelist, HAWKI_CALPRO_BKGIMAGE);
+<a name="l00250"></a>00250 <span class="keywordflow">if</span> (bkgframes == NULL)
+<a name="l00251"></a>00251 {
+<a name="l00252"></a>00252 cpl_msg_error(__func__, <span class="stringliteral">"No background frames provided (%s)"</span>,
+<a name="l00253"></a>00253 HAWKI_CALPRO_BKGIMAGE);
+<a name="l00254"></a>00254 cpl_frameset_delete(objframes);
+<a name="l00255"></a>00255 <span class="keywordflow">return</span> -1 ;
+<a name="l00256"></a>00256 }
+<a name="l00257"></a>00257
+<a name="l00258"></a>00258 <span class="comment">/* Subtract the background */</span>
+<a name="l00259"></a>00259 nobj = cpl_frameset_get_size(objframes);
+<a name="l00260"></a>00260 nbkg = cpl_frameset_get_size(bkgframes);
+<a name="l00261"></a>00261 <span class="keywordflow">if</span>(nobj == nbkg)
+<a name="l00262"></a>00262 hawki_step_subtract_bkg_apply_one_to_one_save
+<a name="l00263"></a>00263 (objframes, bkgframes, parlist, framelist);
+<a name="l00264"></a>00264 <span class="keywordflow">else</span> <span class="keywordflow">if</span>(nbkg == 1)
+<a name="l00265"></a>00265 hawki_step_subtract_bkg_apply_one_to_all_save
+<a name="l00266"></a>00266 (objframes, bkgframes, parlist, framelist);
+<a name="l00267"></a>00267 <span class="keywordflow">else</span>
+<a name="l00268"></a>00268 {
+<a name="l00269"></a>00269 cpl_msg_error(__func__,<span class="stringliteral">"Incompatible number of science and background"</span>
+<a name="l00270"></a>00270 <span class="stringliteral">" images."</span>);
+<a name="l00271"></a>00271 cpl_msg_error(__func__,<span class="stringliteral">"Supply only 1 bkg frame or as many as objects"</span>);
+<a name="l00272"></a>00272 cpl_frameset_delete(objframes);
+<a name="l00273"></a>00273 cpl_frameset_delete(bkgframes);
+<a name="l00274"></a>00274 <span class="keywordflow">return</span> -1;
+<a name="l00275"></a>00275 }
+<a name="l00276"></a>00276
+<a name="l00277"></a>00277 <span class="comment">/* Free resources */</span>
+<a name="l00278"></a>00278 cpl_frameset_delete(objframes);
+<a name="l00279"></a>00279 cpl_frameset_delete(bkgframes);
+<a name="l00280"></a>00280
+<a name="l00281"></a>00281 <span class="comment">/* Return */</span>
+<a name="l00282"></a>00282 <span class="keywordflow">if</span> (cpl_error_get_code())
+<a name="l00283"></a>00283 {
+<a name="l00284"></a>00284 cpl_msg_error(__func__,
+<a name="l00285"></a>00285 <span class="stringliteral">"HAWK-I pipeline could not recover from previous errors"</span>);
+<a name="l00286"></a>00286 <span class="keywordflow">return</span> -1 ;
+<a name="l00287"></a>00287 }
+<a name="l00288"></a>00288 <span class="keywordflow">else</span> <span class="keywordflow">return</span> 0 ;
+<a name="l00289"></a>00289 }
+<a name="l00290"></a>00290
+<a name="l00291"></a>00291 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00300"></a>00300 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00301"></a>00301 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_apply_one_to_one_save
+<a name="l00302"></a>00302 (cpl_frameset * objframes,
+<a name="l00303"></a>00303 cpl_frameset * bkgframes,
+<a name="l00304"></a>00304 cpl_parameterlist * recipe_parlist,
+<a name="l00305"></a>00305 cpl_frameset * recipe_framelist)
+<a name="l00306"></a>00306 {
+<a name="l00307"></a>00307 <span class="keywordtype">int</span> iobj;
+<a name="l00308"></a>00308 <span class="keywordtype">int</span> nobjs;
+<a name="l00309"></a>00309
+<a name="l00310"></a>00310 <span class="comment">/* Subtract the background to each object frame */</span>
+<a name="l00311"></a>00311 cpl_msg_info(__func__,<span class="stringliteral">"Using a one to one relation btw objects and bkgs"</span>);
+<a name="l00312"></a>00312 nobjs = cpl_frameset_get_size(objframes);
+<a name="l00313"></a>00313 <span class="keywordflow">for</span>(iobj = 0; iobj < nobjs; ++iobj)
+<a name="l00314"></a>00314 {
+<a name="l00315"></a>00315 cpl_frame * obj_frame = NULL;
+<a name="l00316"></a>00316 cpl_frame * bkg_frame = NULL;
+<a name="l00317"></a>00317 cpl_imagelist * obj_images = NULL;
+<a name="l00318"></a>00318 cpl_imagelist * bkg_images = NULL;
+<a name="l00319"></a>00319 cpl_frameset * used_frameset;
+<a name="l00320"></a>00320
+<a name="l00321"></a>00321 <span class="comment">/* Allocate resources */</span>
+<a name="l00322"></a>00322 used_frameset = cpl_frameset_new();
+<a name="l00323"></a>00323
+<a name="l00324"></a>00324 <span class="comment">/* Read the object frame */</span>
+<a name="l00325"></a>00325 cpl_msg_indent_more();
+<a name="l00326"></a>00326 cpl_msg_info(__func__, <span class="stringliteral">"Applying correction to object %d"</span>, iobj+1) ;
+<a name="l00327"></a>00327 obj_frame = cpl_frameset_get_frame(objframes, iobj);
+<a name="l00328"></a>00328 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(obj_frame));
+<a name="l00329"></a>00329 <span class="keywordflow">if</span>(obj_frame != NULL)
+<a name="l00330"></a>00330 obj_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(obj_frame, CPL_TYPE_FLOAT);
+<a name="l00331"></a>00331 <span class="keywordflow">if</span>(obj_images == NULL)
+<a name="l00332"></a>00332 {
+<a name="l00333"></a>00333 cpl_msg_indent_less();
+<a name="l00334"></a>00334 cpl_msg_error(__func__, <span class="stringliteral">"Error reading obj image"</span>) ;
+<a name="l00335"></a>00335 cpl_frameset_delete(used_frameset);
+<a name="l00336"></a>00336 <span class="keywordflow">return</span> -1;
+<a name="l00337"></a>00337 }
+<a name="l00338"></a>00338
+<a name="l00339"></a>00339 <span class="comment">/* Read the bkg */</span>
+<a name="l00340"></a>00340 bkg_frame = cpl_frameset_get_frame(bkgframes, iobj);
+<a name="l00341"></a>00341 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(bkg_frame));
+<a name="l00342"></a>00342 <span class="keywordflow">if</span>(bkg_frame != NULL)
+<a name="l00343"></a>00343 bkg_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(bkg_frame, CPL_TYPE_FLOAT);
+<a name="l00344"></a>00344 <span class="keywordflow">if</span>(bkg_images == NULL)
+<a name="l00345"></a>00345 {
+<a name="l00346"></a>00346 cpl_msg_error(__func__, <span class="stringliteral">"Error reading background image"</span>) ;
+<a name="l00347"></a>00347 cpl_msg_indent_less();
+<a name="l00348"></a>00348 cpl_imagelist_delete(obj_images);
+<a name="l00349"></a>00349 cpl_frameset_delete(used_frameset);
+<a name="l00350"></a>00350 <span class="keywordflow">return</span> -1;
+<a name="l00351"></a>00351 }
+<a name="l00352"></a>00352
+<a name="l00353"></a>00353 <span class="comment">/* Make the correction */</span>
+<a name="l00354"></a>00354 <a class="code" href="group__hawki__calib.html#ga648180245b7cace291a654d5b31e5f75" title="Apply the background subtraction to the images.">hawki_bkg_imglist_calib</a>(obj_images, bkg_images);
+<a name="l00355"></a>00355
+<a name="l00356"></a>00356 <span class="comment">/* Save the subtracted frame */</span>
+<a name="l00357"></a>00357 <span class="keywordflow">if</span>(hawki_step_subtract_bkg_save(obj_images,
+<a name="l00358"></a>00358 iobj,
+<a name="l00359"></a>00359 used_frameset,
+<a name="l00360"></a>00360 recipe_parlist,
+<a name="l00361"></a>00361 recipe_framelist) != 0)
+<a name="l00362"></a>00362 cpl_msg_warning(__func__,<span class="stringliteral">"Some data could not be saved. "</span>
+<a name="l00363"></a>00363 <span class="stringliteral">"Check permisions or disk space"</span>);
+<a name="l00364"></a>00364
+<a name="l00365"></a>00365 <span class="comment">/* Free in loop */</span>
+<a name="l00366"></a>00366 cpl_msg_indent_less();
+<a name="l00367"></a>00367 cpl_imagelist_delete(obj_images);
+<a name="l00368"></a>00368 cpl_imagelist_delete(bkg_images);
+<a name="l00369"></a>00369 cpl_frameset_delete(used_frameset);
+<a name="l00370"></a>00370 }
+<a name="l00371"></a>00371
+<a name="l00372"></a>00372 <span class="comment">/* Exit */</span>
+<a name="l00373"></a>00373 <span class="keywordflow">return</span> 0;
+<a name="l00374"></a>00374 }
+<a name="l00375"></a>00375
+<a name="l00376"></a>00376 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00385"></a>00385 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00386"></a>00386 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_apply_one_to_all_save
+<a name="l00387"></a>00387 (cpl_frameset * objframes,
+<a name="l00388"></a>00388 cpl_frameset * bkgframes,
+<a name="l00389"></a>00389 cpl_parameterlist * recipe_parlist,
+<a name="l00390"></a>00390 cpl_frameset * recipe_framelist)
+<a name="l00391"></a>00391 {
+<a name="l00392"></a>00392 <span class="keywordtype">int</span> iobj;
+<a name="l00393"></a>00393 <span class="keywordtype">int</span> nobjs;
+<a name="l00394"></a>00394 cpl_frame * bkg_frame;
+<a name="l00395"></a>00395 cpl_imagelist * bkg_images = NULL;
+<a name="l00396"></a>00396
+<a name="l00397"></a>00397 <span class="comment">/* Read the bkg */</span>
+<a name="l00398"></a>00398 cpl_msg_info(__func__,<span class="stringliteral">"Using the same bkg for all the objects"</span>);
+<a name="l00399"></a>00399 bkg_frame = cpl_frameset_get_first(bkgframes);
+<a name="l00400"></a>00400 <span class="keywordflow">if</span>(bkg_frame != NULL)
+<a name="l00401"></a>00401 bkg_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(bkg_frame, CPL_TYPE_FLOAT);
+<a name="l00402"></a>00402 <span class="keywordflow">if</span>(bkg_images == NULL)
+<a name="l00403"></a>00403 {
+<a name="l00404"></a>00404 cpl_msg_error(__func__, <span class="stringliteral">"Error reading background image"</span>);
+<a name="l00405"></a>00405 <span class="keywordflow">return</span> -1;
+<a name="l00406"></a>00406 }
+<a name="l00407"></a>00407
+<a name="l00408"></a>00408 <span class="comment">/* Subtract the background to each object frame */</span>
+<a name="l00409"></a>00409 nobjs = cpl_frameset_get_size(objframes);
+<a name="l00410"></a>00410 <span class="keywordflow">for</span>(iobj = 0; iobj < nobjs; ++iobj)
+<a name="l00411"></a>00411 {
+<a name="l00412"></a>00412 cpl_frame * obj_frame;
+<a name="l00413"></a>00413 cpl_imagelist * obj_images = NULL;
+<a name="l00414"></a>00414 cpl_frameset * used_frameset;
+<a name="l00415"></a>00415
+<a name="l00416"></a>00416 <span class="comment">/* Allocate resources */</span>
+<a name="l00417"></a>00417 used_frameset = cpl_frameset_new();
+<a name="l00418"></a>00418
+<a name="l00419"></a>00419 <span class="comment">/* Read the object frame */</span>
+<a name="l00420"></a>00420 cpl_msg_indent_more();
+<a name="l00421"></a>00421 cpl_msg_info(__func__, <span class="stringliteral">"Applying correction to object %d"</span>, iobj+1) ;
+<a name="l00422"></a>00422 obj_frame = cpl_frameset_get_frame(objframes, iobj);
+<a name="l00423"></a>00423 <span class="keywordflow">if</span>(obj_frame != NULL)
+<a name="l00424"></a>00424 obj_images = <a class="code" href="group__hawki__load.html#gaa83706a01275860daf2d743f315e1751" title="Load all the chips of HAWKI images from a frame into an image list.">hawki_load_frame</a>(obj_frame, CPL_TYPE_FLOAT);
+<a name="l00425"></a>00425 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(obj_frame));
+<a name="l00426"></a>00426 cpl_frameset_insert(used_frameset, cpl_frame_duplicate(bkg_frame));
+<a name="l00427"></a>00427 <span class="keywordflow">if</span>(obj_images == NULL)
+<a name="l00428"></a>00428 {
+<a name="l00429"></a>00429 cpl_msg_indent_less();
+<a name="l00430"></a>00430 cpl_msg_error(__func__, <span class="stringliteral">"Error reading obj image"</span>) ;
+<a name="l00431"></a>00431 cpl_frameset_delete(used_frameset);
+<a name="l00432"></a>00432 <span class="keywordflow">return</span> -1;
+<a name="l00433"></a>00433 }
+<a name="l00434"></a>00434
+<a name="l00435"></a>00435 <span class="comment">/* Make the correction */</span>
+<a name="l00436"></a>00436 <a class="code" href="group__hawki__calib.html#ga648180245b7cace291a654d5b31e5f75" title="Apply the background subtraction to the images.">hawki_bkg_imglist_calib</a>(obj_images, bkg_images);
+<a name="l00437"></a>00437
+<a name="l00438"></a>00438 <span class="comment">/* Save the subtracted frame */</span>
+<a name="l00439"></a>00439 hawki_step_subtract_bkg_save(obj_images,
+<a name="l00440"></a>00440 iobj,
+<a name="l00441"></a>00441 used_frameset,
+<a name="l00442"></a>00442 recipe_parlist,
+<a name="l00443"></a>00443 recipe_framelist);
+<a name="l00444"></a>00444
+<a name="l00445"></a>00445 <span class="comment">/* Free in loop */</span>
+<a name="l00446"></a>00446 cpl_msg_indent_less();
+<a name="l00447"></a>00447 cpl_imagelist_delete(obj_images);
+<a name="l00448"></a>00448 cpl_frameset_delete(used_frameset);
+<a name="l00449"></a>00449 }
<a name="l00450"></a>00450
-<a name="l00451"></a>00451 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00461"></a>00461 <span class="comment">/*----------------------------------------------------------------------------*/</span>
-<a name="l00462"></a>00462 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_save
-<a name="l00463"></a>00463 (cpl_imagelist * obj_images,
-<a name="l00464"></a>00464 <span class="keywordtype">int</span> iserie,
-<a name="l00465"></a>00465 cpl_frameset * used_frameset,
-<a name="l00466"></a>00466 cpl_parameterlist * recipe_parlist,
-<a name="l00467"></a>00467 cpl_frameset * recipe_framelist)
-<a name="l00468"></a>00468 {
-<a name="l00469"></a>00469 <span class="keyword">const</span> cpl_frame * raw_reference;
-<a name="l00470"></a>00470 cpl_propertylist ** extproplists;
-<a name="l00471"></a>00471 <span class="keywordtype">char</span> filename[256] ;
-<a name="l00472"></a>00472 cpl_propertylist * inputlist ;
-<a name="l00473"></a>00473 <span class="keywordtype">int</span> ext_nb ;
-<a name="l00474"></a>00474 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_subtract_bkg"</span>;
-<a name="l00475"></a>00475 <span class="keywordtype">int</span> idet;
-<a name="l00476"></a>00476 cpl_errorstate error_prevstate = cpl_errorstate_get();
-<a name="l00477"></a>00477
-<a name="l00478"></a>00478 <span class="comment">/* Get the reference frame (the raw frame) */</span>
-<a name="l00479"></a>00479 raw_reference = irplib_frameset_get_first_from_group
-<a name="l00480"></a>00480 (used_frameset, CPL_FRAME_GROUP_RAW);
-<a name="l00481"></a>00481
-<a name="l00482"></a>00482 <span class="comment">/* Create the prop lists */</span>
-<a name="l00483"></a>00483 cpl_msg_indent_more();
-<a name="l00484"></a>00484 cpl_msg_info(__func__, <span class="stringliteral">"Creating the keywords list"</span>) ;
-<a name="l00485"></a>00485 extproplists = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*));
-<a name="l00486"></a>00486 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00487"></a>00487 {
-<a name="l00488"></a>00488 <span class="comment">/* Get the extension number */</span>
-<a name="l00489"></a>00489 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>
-<a name="l00490"></a>00490 (cpl_frame_get_filename(raw_reference), idet+1);
-<a name="l00491"></a>00491
-<a name="l00492"></a>00492 <span class="comment">/* Allocate this property list */</span>
-<a name="l00493"></a>00493 extproplists[idet] = cpl_propertylist_new();
-<a name="l00494"></a>00494
-<a name="l00495"></a>00495 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
-<a name="l00496"></a>00496 inputlist = cpl_propertylist_load_regexp(
-<a name="l00497"></a>00497 cpl_frame_get_filename(raw_reference), ext_nb,
-<a name="l00498"></a>00498 HAWKI_HEADER_EXT_FORWARD, 0);
-<a name="l00499"></a>00499 cpl_propertylist_append(extproplists[idet], inputlist);
-<a name="l00500"></a>00500 cpl_propertylist_delete(inputlist);
+<a name="l00451"></a>00451 <span class="comment">/* Free and return */</span>
+<a name="l00452"></a>00452 cpl_imagelist_delete(bkg_images);
+<a name="l00453"></a>00453 <span class="keywordflow">return</span> 0;
+<a name="l00454"></a>00454 }
+<a name="l00455"></a>00455
+<a name="l00456"></a>00456 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00466"></a>00466 <span class="comment">/*----------------------------------------------------------------------------*/</span>
+<a name="l00467"></a>00467 <span class="keyword">static</span> <span class="keywordtype">int</span> hawki_step_subtract_bkg_save
+<a name="l00468"></a>00468 (cpl_imagelist * obj_images,
+<a name="l00469"></a>00469 <span class="keywordtype">int</span> iserie,
+<a name="l00470"></a>00470 cpl_frameset * used_frameset,
+<a name="l00471"></a>00471 cpl_parameterlist * recipe_parlist,
+<a name="l00472"></a>00472 cpl_frameset * recipe_framelist)
+<a name="l00473"></a>00473 {
+<a name="l00474"></a>00474 <span class="keyword">const</span> cpl_frame * raw_reference;
+<a name="l00475"></a>00475 cpl_propertylist ** extproplists;
+<a name="l00476"></a>00476 <span class="keywordtype">char</span> filename[256] ;
+<a name="l00477"></a>00477 cpl_propertylist * inputlist ;
+<a name="l00478"></a>00478 <span class="keywordtype">int</span> ext_nb ;
+<a name="l00479"></a>00479 <span class="keyword">const</span> <span class="keywordtype">char</span> * recipe_name = <span class="stringliteral">"hawki_step_subtract_bkg"</span>;
+<a name="l00480"></a>00480 <span class="keywordtype">int</span> idet;
+<a name="l00481"></a>00481 cpl_errorstate error_prevstate = cpl_errorstate_get();
+<a name="l00482"></a>00482
+<a name="l00483"></a>00483 <span class="comment">/* Get the reference frame (the raw frame) */</span>
+<a name="l00484"></a>00484 raw_reference = irplib_frameset_get_first_from_group
+<a name="l00485"></a>00485 (used_frameset, CPL_FRAME_GROUP_RAW);
+<a name="l00486"></a>00486
+<a name="l00487"></a>00487 <span class="comment">/* Create the prop lists */</span>
+<a name="l00488"></a>00488 cpl_msg_indent_more();
+<a name="l00489"></a>00489 cpl_msg_info(__func__, <span class="stringliteral">"Creating the keywords list"</span>) ;
+<a name="l00490"></a>00490 extproplists = cpl_malloc(HAWKI_NB_DETECTORS * <span class="keyword">sizeof</span>(cpl_propertylist*));
+<a name="l00491"></a>00491 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
+<a name="l00492"></a>00492 {
+<a name="l00493"></a>00493 <span class="comment">/* Get the extension number */</span>
+<a name="l00494"></a>00494 ext_nb=<a class="code" href="group__hawki__load.html#gac0cd4814dd4a106963bb5e639132aac1" title="Get the extension corresponding to the wished chip.">hawki_get_ext_from_detector</a>
+<a name="l00495"></a>00495 (cpl_frame_get_filename(raw_reference), idet+1);
+<a name="l00496"></a>00496
+<a name="l00497"></a>00497 <span class="comment">/* Allocate this property list */</span>
+<a name="l00498"></a>00498 extproplists[idet] = cpl_propertylist_new();
+<a name="l00499"></a>00499
+<a name="l00500"></a>00500 <span class="comment">/* Propagate some keywords from input raw frame extensions */</span>
<a name="l00501"></a>00501 inputlist = cpl_propertylist_load_regexp(
<a name="l00502"></a>00502 cpl_frame_get_filename(raw_reference), ext_nb,
-<a name="l00503"></a>00503 HAWKI_HEADER_WCS, 0);
+<a name="l00503"></a>00503 HAWKI_HEADER_EXT_FORWARD, 0);
<a name="l00504"></a>00504 cpl_propertylist_append(extproplists[idet], inputlist);
<a name="l00505"></a>00505 cpl_propertylist_delete(inputlist);
-<a name="l00506"></a>00506 }
-<a name="l00507"></a>00507
-<a name="l00508"></a>00508 <span class="comment">/* Write the image */</span>
-<a name="l00509"></a>00509 snprintf(filename, 256, <span class="stringliteral">"hawki_step_subtract_bkg_%03d.fits"</span>, iserie+1);
-<a name="l00510"></a>00510 <a class="code" href="group__hawki__save.html#ga98c1ab4685617ddf7ea51d6e1337695d" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_imagelist_save</a>(recipe_framelist,
-<a name="l00511"></a>00511 recipe_parlist,
-<a name="l00512"></a>00512 used_frameset,
-<a name="l00513"></a>00513 obj_images,
-<a name="l00514"></a>00514 recipe_name,
-<a name="l00515"></a>00515 HAWKI_CALPRO_BKG_SUBTRACTED,
-<a name="l00516"></a>00516 HAWKI_PROTYPE_BKG_SUBTRACTED,
-<a name="l00517"></a>00517 NULL,
-<a name="l00518"></a>00518 (<span class="keyword">const</span> cpl_propertylist**)extproplists,
-<a name="l00519"></a>00519 filename);
-<a name="l00520"></a>00520
-<a name="l00521"></a>00521 <span class="comment">/* Free and return */</span>
-<a name="l00522"></a>00522 cpl_msg_indent_less();
-<a name="l00523"></a>00523 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
-<a name="l00524"></a>00524 {
-<a name="l00525"></a>00525 cpl_propertylist_delete(extproplists[idet]) ;
-<a name="l00526"></a>00526 }
-<a name="l00527"></a>00527 cpl_free(extproplists) ;
-<a name="l00528"></a>00528 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
+<a name="l00506"></a>00506 inputlist = cpl_propertylist_load_regexp(
+<a name="l00507"></a>00507 cpl_frame_get_filename(raw_reference), ext_nb,
+<a name="l00508"></a>00508 HAWKI_HEADER_WCS, 0);
+<a name="l00509"></a>00509 cpl_propertylist_append(extproplists[idet], inputlist);
+<a name="l00510"></a>00510 cpl_propertylist_delete(inputlist);
+<a name="l00511"></a>00511 }
+<a name="l00512"></a>00512
+<a name="l00513"></a>00513 <span class="comment">/* Write the image */</span>
+<a name="l00514"></a>00514 snprintf(filename, 256, <span class="stringliteral">"hawki_step_subtract_bkg_%04d.fits"</span>, iserie+1);
+<a name="l00515"></a>00515 <a class="code" href="group__hawki__save.html#ga98c1ab4685617ddf7ea51d6e1337695d" title="Save a HAWKI_NB_DETECTORS extensions HAWKI image.">hawki_imagelist_save</a>(recipe_framelist,
+<a name="l00516"></a>00516 recipe_parlist,
+<a name="l00517"></a>00517 used_frameset,
+<a name="l00518"></a>00518 obj_images,
+<a name="l00519"></a>00519 recipe_name,
+<a name="l00520"></a>00520 HAWKI_CALPRO_BKG_SUBTRACTED,
+<a name="l00521"></a>00521 HAWKI_PROTYPE_BKG_SUBTRACTED,
+<a name="l00522"></a>00522 NULL,
+<a name="l00523"></a>00523 (<span class="keyword">const</span> cpl_propertylist**)extproplists,
+<a name="l00524"></a>00524 filename);
+<a name="l00525"></a>00525
+<a name="l00526"></a>00526 <span class="comment">/* Free and return */</span>
+<a name="l00527"></a>00527 cpl_msg_indent_less();
+<a name="l00528"></a>00528 <span class="keywordflow">for</span> (idet=0 ; idet<HAWKI_NB_DETECTORS ; idet++)
<a name="l00529"></a>00529 {
-<a name="l00530"></a>00530 cpl_errorstate_set(CPL_ERROR_NONE);
-<a name="l00531"></a>00531 <span class="keywordflow">return</span> -1;
-<a name="l00532"></a>00532 }
-<a name="l00533"></a>00533 <span class="keywordflow">return</span> 0;
-<a name="l00534"></a>00534 }
+<a name="l00530"></a>00530 cpl_propertylist_delete(extproplists[idet]) ;
+<a name="l00531"></a>00531 }
+<a name="l00532"></a>00532 cpl_free(extproplists) ;
+<a name="l00533"></a>00533 <span class="keywordflow">if</span>(!cpl_errorstate_is_equal(error_prevstate))
+<a name="l00534"></a>00534 {
+<a name="l00535"></a>00535 cpl_errorstate_set(CPL_ERROR_NONE);
+<a name="l00536"></a>00536 <span class="keywordflow">return</span> -1;
+<a name="l00537"></a>00537 }
+<a name="l00538"></a>00538 <span class="keywordflow">return</span> 0;
+<a name="l00539"></a>00539 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__tec__filtchk_8c_source.html b/html/hawki__tec__filtchk_8c_source.html
index e82c512..0e51f66 100644
--- a/html/hawki__tec__filtchk_8c_source.html
+++ b/html/hawki__tec__filtchk_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/10/24 10:41:32 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.15 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -378,7 +378,7 @@
<a name="l00380"></a>00380 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__util__extinction_8c_source.html b/html/hawki__util__extinction_8c_source.html
index d05587e..091ee88 100644
--- a/html/hawki__util__extinction_8c_source.html
+++ b/html/hawki__util__extinction_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/12/22 14:28:43 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.3 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -536,7 +536,7 @@
<a name="l00537"></a>00537 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__util__gendist_8c_source.html b/html/hawki__util__gendist_8c_source.html
index 721cf45..e32371d 100644
--- a/html/hawki__util__gendist_8c_source.html
+++ b/html/hawki__util__gendist_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/10/24 10:40:50 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.22 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -578,7 +578,7 @@
<a name="l00602"></a>00602 }
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__util__stdstars_8c_source.html b/html/hawki__util__stdstars_8c_source.html
index 15f54a8..543a5a9 100644
--- a/html/hawki__util__stdstars_8c_source.html
+++ b/html/hawki__util__stdstars_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_dd1f22bf73a30aa083e3126f80060e44.html">recipes</a> </li>
+ <li class="navelem"><a class="el" href="dir_d72ebc9d7e5f36c34615460901eb48a9.html">recipes</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/07/06 08:21:36 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.16 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -312,7 +312,7 @@
<a name="l00315"></a>00315
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__utils_8c_source.html b/html/hawki__utils_8c_source.html
index 993fe7a..c80bf1d 100644
--- a/html/hawki__utils_8c_source.html
+++ b/html/hawki__utils_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_utils.c</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_utils.c,v 1.53 2012/04/26 15:18:04 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_utils.c,v 1.54 2012/12/06 16:55:32 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/04/26 15:18:04 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.53 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/06 16:55:32 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.54 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -1121,9 +1121,31 @@
<a name="l01264"></a>01264 <span class="keywordflow">return</span>;
<a name="l01265"></a>01265 }
<a name="l01266"></a>01266
+<a name="l01275"></a>01275 cpl_error_code
+<a name="l01276"></a><a class="code" href="group__hawki__utils.html#ga8750ba220d588314effce204619b015c">01276</a> <a class="code" href="group__hawki__utils.html#ga8750ba220d588314effce204619b015c" title="Insert all frames of other in self. To be removed after the same functionality exists in CPL...">hawki_frameset_append</a>(cpl_frameset *<span class="keyword">self</span>, <span class="keyword">const</span> cpl_frameset *other)
+<a name="l01277"></a>01277 {
+<a name="l01278"></a>01278 cpl_size iframe;
+<a name="l01279"></a>01279 cpl_size nframes;
+<a name="l01280"></a>01280
+<a name="l01281"></a>01281 nframes = cpl_frameset_get_size(other);
+<a name="l01282"></a>01282
+<a name="l01283"></a>01283 <span class="keywordflow">for</span>(iframe = 0; iframe<nframes; ++iframe)
+<a name="l01284"></a>01284 {
+<a name="l01285"></a>01285 cpl_frame * newframe;
+<a name="l01286"></a>01286 newframe = cpl_frame_duplicate
+<a name="l01287"></a>01287 (cpl_frameset_get_frame_const(other, iframe));
+<a name="l01288"></a>01288 <span class="keywordflow">if</span>(cpl_frameset_insert(<span class="keyword">self</span>, newframe) != CPL_ERROR_NONE)
+<a name="l01289"></a>01289 {
+<a name="l01290"></a>01290 cpl_error_set(cpl_func, CPL_ERROR_ILLEGAL_INPUT);
+<a name="l01291"></a>01291 <span class="keywordflow">return</span> CPL_ERROR_ILLEGAL_INPUT;
+<a name="l01292"></a>01292 }
+<a name="l01293"></a>01293 }
+<a name="l01294"></a>01294 <span class="keywordflow">return</span> CPL_ERROR_NONE;
+<a name="l01295"></a>01295 }
+<a name="l01296"></a>01296
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__utils_8h_source.html b/html/hawki__utils_8h_source.html
index e910e80..ace7313 100644
--- a/html/hawki__utils_8h_source.html
+++ b/html/hawki__utils_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -45,7 +45,7 @@
<div class="title">hawki_utils.h</div> </div>
</div>
<div class="contents">
-<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_utils.h,v 1.41 2011/09/16 15:18:04 cgarcia Exp $</span>
+<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* $Id: hawki_utils.h,v 1.43 2012/12/06 16:55:32 cgarcia Exp $</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> * This file is part of the HAWKI Pipeline</span>
<a name="l00004"></a>00004 <span class="comment"> * Copyright (C) 2002,2003 European Southern Observatory</span>
@@ -67,9 +67,9 @@
<a name="l00020"></a>00020
<a name="l00021"></a>00021 <span class="comment">/*</span>
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
-<a name="l00023"></a>00023 <span class="comment"> * $Date: 2011/09/16 15:18:04 $</span>
-<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.41 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00023"></a>00023 <span class="comment"> * $Date: 2012/12/06 16:55:32 $</span>
+<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.43 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_UTILS_H</span>
@@ -128,75 +128,80 @@
<a name="l00081"></a>00081 <span class="comment"> Prototypes</span>
<a name="l00082"></a>00082 <span class="comment"> -----------------------------------------------------------------------------*/</span>
<a name="l00083"></a>00083
-<a name="l00084"></a>00084 <span class="keywordtype">void</span> <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>(<span class="keywordtype">void</span>);
-<a name="l00085"></a>00085 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(<span class="keywordtype">void</span>);
-<a name="l00086"></a>00086 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__utils.html#ga4e8a1eeb0faaa8793bdb37b7450c33e3" title="Returns the version of the pipeline.">hawki_get_version</a>(<span class="keywordtype">void</span>);
-<a name="l00087"></a>00087
-<a name="l00088"></a>00088 cpl_image * <a class="code" href="group__hawki__utils.html#ga49279015ecc6c4dcc6a00de6ed6109bd" title="Compute the large scale background.">hawki_compute_lsbg</a>
-<a name="l00089"></a>00089 (<span class="keyword">const</span> cpl_image * in);
-<a name="l00090"></a>00090 cpl_image * <a class="code" href="group__hawki__utils.html#ga292d87e3996e9bb4331980a41d8b45bb" title="Compute the bpm from the dark (hot pixels)">hawki_compute_darkbpm</a>
-<a name="l00091"></a>00091 (<span class="keyword">const</span> cpl_image * in,
-<a name="l00092"></a>00092 <span class="keywordtype">double</span> sigma);
-<a name="l00093"></a>00093 cpl_image * <a class="code" href="group__hawki__utils.html#ga5d0deca1786f42488784c23e361d0877" title="Compute the bpm from the flat (aka cold pixels mask)">hawki_compute_flatbpm</a>
-<a name="l00094"></a>00094 (<span class="keyword">const</span> cpl_image * in,
-<a name="l00095"></a>00095 <span class="keywordtype">double</span> sigma,
-<a name="l00096"></a>00096 <span class="keywordtype">double</span> lowval,
-<a name="l00097"></a>00097 <span class="keywordtype">double</span> highval);
-<a name="l00098"></a>00098 cpl_error_code <a class="code" href="group__hawki__utils.html#ga8ad7002b08a8f9dff942f46b3f3456f0" title="Create an image with a given value for pixels within a range and another value for pixels outside tha...">hawki_image_inverse_threshold</a>
-<a name="l00099"></a>00099 (cpl_image * image_in,
-<a name="l00100"></a>00100 <span class="keywordtype">double</span> lo_valid,
-<a name="l00101"></a>00101 <span class="keywordtype">double</span> hi_valid,
-<a name="l00102"></a>00102 <span class="keywordtype">double</span> assign_in_range,
-<a name="l00103"></a>00103 <span class="keywordtype">double</span> assign_out_range);
-<a name="l00104"></a>00104 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#gaa24cf39f777ab8389419b3d18a8bec96" title="Apply the harmonization.">hawki_apply_harmonization</a>
-<a name="l00105"></a>00105 (cpl_imagelist * in,
-<a name="l00106"></a>00106 <span class="keywordtype">double</span> h1,
-<a name="l00107"></a>00107 <span class="keywordtype">double</span> h2,
-<a name="l00108"></a>00108 <span class="keywordtype">double</span> h3,
-<a name="l00109"></a>00109 <span class="keywordtype">double</span> h4);
-<a name="l00110"></a>00110 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#ga367515ebe3345fcd79c2849879633ebf" title="Compute the harmonization.">hawki_compute_harmonization</a>
-<a name="l00111"></a>00111 (<span class="keyword">const</span> cpl_imagelist * in,
-<a name="l00112"></a>00112 <span class="keywordtype">double</span> * h1,
-<a name="l00113"></a>00113 <span class="keywordtype">double</span> * h2,
-<a name="l00114"></a>00114 <span class="keywordtype">double</span> * h3,
-<a name="l00115"></a>00115 <span class="keywordtype">double</span> * h4,
-<a name="l00116"></a>00116 <span class="keywordtype">double</span> * h);
-<a name="l00117"></a>00117 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__utils.html#ga0ee9f37ad441f9fcc16865b34f9459a9" title="Extract the filename ffor the first frame of the given tag.">hawki_extract_first_filename</a>
-<a name="l00118"></a>00118 (<span class="keyword">const</span> cpl_frameset * in,
-<a name="l00119"></a>00119 <span class="keyword">const</span> <span class="keywordtype">char</span> * tag);
-<a name="l00120"></a>00120 hawki_band <a class="code" href="group__hawki__utils.html#ga6d85879fd8b8895544f7787e8a6ddade" title="Get the band.">hawki_get_band</a>
-<a name="l00121"></a>00121 (<span class="keyword">const</span> <span class="keywordtype">char</span> * band);
-<a name="l00122"></a>00122 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__utils.html#ga49b3f45aa7c812c0a90faf073998dbc4" title="Return a band name.">hawki_std_band_name</a>
-<a name="l00123"></a>00123 (hawki_band band);
-<a name="l00124"></a>00124 cpl_image * <a class="code" href="group__hawki__utils.html#ga7f6d3694df0e3a441b20267a1e5894db" title="Apply the stitching.">hawki_images_stitch</a>
-<a name="l00125"></a>00125 (cpl_image ** ima,
-<a name="l00126"></a>00126 <span class="keywordtype">double</span> * x,
-<a name="l00127"></a>00127 <span class="keywordtype">double</span> * y);
-<a name="l00128"></a>00128 cpl_bivector * <a class="code" href="group__hawki__utils.html#ga4c2e0ffe688ffdfd93f0d61c60ac91fd" title="Get the nominal header offsets from a set of frames.">hawki_get_header_tel_offsets</a>
-<a name="l00129"></a>00129 (<span class="keyword">const</span> cpl_frameset * frameset);
-<a name="l00130"></a>00130 <span class="keywordtype">double</span> <a class="code" href="group__hawki__utils.html#ga7b165e9e91b6c6519595109b36d4fb46" title="Get the mean airmass for a set of frames.">hawki_get_mean_airmass</a>(cpl_frameset * <span class="keyword">set</span>);
-<a name="l00131"></a>00131 <span class="keywordtype">int</span> * <a class="code" href="group__hawki__utils.html#ga024bd2557115d5d7d3265dbcbb3b1884" title="Get the frames in which the star is for a given chip.">hawki_detectors_labelise</a>
-<a name="l00132"></a>00132 (<span class="keyword">const</span> cpl_frameset * frameset);
-<a name="l00133"></a>00133 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#gabee84f3ed597df9a6ae97f07fc2204a0" title="Get the frames in which the star is for a given chip.">hawki_detectors_locate_star</a>
-<a name="l00134"></a>00134 (<span class="keyword">const</span> cpl_frameset * in,
-<a name="l00135"></a>00135 <span class="keywordtype">double</span> star_ra,
-<a name="l00136"></a>00136 <span class="keywordtype">double</span> star_dec,
-<a name="l00137"></a>00137 <span class="keywordtype">int</span> * labels);
-<a name="l00138"></a>00138 <span class="keywordtype">double</span> <a class="code" href="group__hawki__utils.html#ga29ae7b4052fd284d8b01f33e127c2846" title="Gets the minimum value of a vector according to an array of flags.">hawki_vector_get_min_select</a>
-<a name="l00139"></a>00139 (<span class="keyword">const</span> cpl_vector * <span class="keyword">self</span>, <span class="keyword">const</span> cpl_vector * valid);
-<a name="l00140"></a>00140 <span class="keywordtype">double</span> <a class="code" href="group__hawki__utils.html#gaba8fca8aa585fed96efc75545bfc6b04" title="Gets the maximum value of a vector according to an array of flags.">hawki_vector_get_max_select</a>
-<a name="l00141"></a>00141 (<span class="keyword">const</span> cpl_vector * <span class="keyword">self</span>, <span class="keyword">const</span> cpl_vector * valid);
-<a name="l00142"></a>00142 <span class="keywordtype">double</span> <a class="code" href="group__hawki__utils.html#gac64c154f22c4d25e242833fbe75da886" title="Compute the histogram mode.">hawki_vector_get_mode</a>(cpl_vector * vec);
-<a name="l00143"></a>00143 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#ga4c041169d43f161a8c9d7f23d7fc57a7" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_double_keys</a>
-<a name="l00144"></a>00144 (cpl_frameset * frames, <span class="keywordtype">double</span> (*func)(<span class="keyword">const</span> cpl_propertylist *));
-<a name="l00145"></a>00145 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#ga8c1508e389b7fd0da8fbda451ffd1663" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_int_keys</a>
-<a name="l00146"></a>00146 (cpl_frameset * frames, <span class="keywordtype">int</span> (*func)(<span class="keyword">const</span> cpl_propertylist *));
-<a name="l00147"></a>00147 <span class="keywordtype">void</span> <a class="code" href="group__hawki__utils.html#gaa6f925bb6e5320dcd0f06ad5238813b3" title="This functions formats a right ascension in degrees to a string of the form HH:MM:SS. It is based on ra2str from file libwcs/ang2str.c in wcstools library (http://tdc-www.harvard.edu/wcstools/)">hawki_utils_ra2str</a>(<span class="keywordtype">char</span> * str, <span class="keywordtype">int</span> length_str, <span class="keywordtype" [...]
-<a name="l00148"></a>00148 <span class="keywordtype">void</span> <a class="code" href="group__hawki__utils.html#ga38bbbd4f8537d1cab5cfba056bd8edf6" title="This functions formats a declination in degrees to a string of the form DD:MM:SS. It is based on dec2...">hawki_utils_dec2str</a>(<span class="keywordtype">char</span> * str, <span class="keywordtype">int</span> length_str, <span class="keywordtype">double</span> dec);
-<a name="l00149"></a>00149 <span class="preprocessor">#endif</span>
+<a name="l00084"></a>00084 CPL_BEGIN_DECLS
+<a name="l00085"></a>00085 <span class="keywordtype">void</span> <a class="code" href="group__hawki__utils.html#gadfbb9f93a998ca86bbe90dbf808e5566" title="Issue a banner with the pipeline version.">hawki_print_banner</a>(<span class="keywordtype">void</span>);
+<a name="l00086"></a>00086 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__utils.html#gafde011eb3e31e78d4d01cc9c26e2d33a" title="Get the pipeline copyright and license.">hawki_get_license</a>(<span class="keywordtype">void</span>);
+<a name="l00087"></a>00087 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__utils.html#ga4e8a1eeb0faaa8793bdb37b7450c33e3" title="Returns the version of the pipeline.">hawki_get_version</a>(<span class="keywordtype">void</span>);
+<a name="l00088"></a>00088
+<a name="l00089"></a>00089 cpl_image * <a class="code" href="group__hawki__utils.html#ga49279015ecc6c4dcc6a00de6ed6109bd" title="Compute the large scale background.">hawki_compute_lsbg</a>
+<a name="l00090"></a>00090 (<span class="keyword">const</span> cpl_image * in);
+<a name="l00091"></a>00091 cpl_image * <a class="code" href="group__hawki__utils.html#ga292d87e3996e9bb4331980a41d8b45bb" title="Compute the bpm from the dark (hot pixels)">hawki_compute_darkbpm</a>
+<a name="l00092"></a>00092 (<span class="keyword">const</span> cpl_image * in,
+<a name="l00093"></a>00093 <span class="keywordtype">double</span> sigma);
+<a name="l00094"></a>00094 cpl_image * <a class="code" href="group__hawki__utils.html#ga5d0deca1786f42488784c23e361d0877" title="Compute the bpm from the flat (aka cold pixels mask)">hawki_compute_flatbpm</a>
+<a name="l00095"></a>00095 (<span class="keyword">const</span> cpl_image * in,
+<a name="l00096"></a>00096 <span class="keywordtype">double</span> sigma,
+<a name="l00097"></a>00097 <span class="keywordtype">double</span> lowval,
+<a name="l00098"></a>00098 <span class="keywordtype">double</span> highval);
+<a name="l00099"></a>00099 cpl_error_code <a class="code" href="group__hawki__utils.html#ga8ad7002b08a8f9dff942f46b3f3456f0" title="Create an image with a given value for pixels within a range and another value for pixels outside tha...">hawki_image_inverse_threshold</a>
+<a name="l00100"></a>00100 (cpl_image * image_in,
+<a name="l00101"></a>00101 <span class="keywordtype">double</span> lo_valid,
+<a name="l00102"></a>00102 <span class="keywordtype">double</span> hi_valid,
+<a name="l00103"></a>00103 <span class="keywordtype">double</span> assign_in_range,
+<a name="l00104"></a>00104 <span class="keywordtype">double</span> assign_out_range);
+<a name="l00105"></a>00105 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#gaa24cf39f777ab8389419b3d18a8bec96" title="Apply the harmonization.">hawki_apply_harmonization</a>
+<a name="l00106"></a>00106 (cpl_imagelist * in,
+<a name="l00107"></a>00107 <span class="keywordtype">double</span> h1,
+<a name="l00108"></a>00108 <span class="keywordtype">double</span> h2,
+<a name="l00109"></a>00109 <span class="keywordtype">double</span> h3,
+<a name="l00110"></a>00110 <span class="keywordtype">double</span> h4);
+<a name="l00111"></a>00111 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#ga367515ebe3345fcd79c2849879633ebf" title="Compute the harmonization.">hawki_compute_harmonization</a>
+<a name="l00112"></a>00112 (<span class="keyword">const</span> cpl_imagelist * in,
+<a name="l00113"></a>00113 <span class="keywordtype">double</span> * h1,
+<a name="l00114"></a>00114 <span class="keywordtype">double</span> * h2,
+<a name="l00115"></a>00115 <span class="keywordtype">double</span> * h3,
+<a name="l00116"></a>00116 <span class="keywordtype">double</span> * h4,
+<a name="l00117"></a>00117 <span class="keywordtype">double</span> * h);
+<a name="l00118"></a>00118 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__utils.html#ga0ee9f37ad441f9fcc16865b34f9459a9" title="Extract the filename ffor the first frame of the given tag.">hawki_extract_first_filename</a>
+<a name="l00119"></a>00119 (<span class="keyword">const</span> cpl_frameset * in,
+<a name="l00120"></a>00120 <span class="keyword">const</span> <span class="keywordtype">char</span> * tag);
+<a name="l00121"></a>00121 hawki_band <a class="code" href="group__hawki__utils.html#ga6d85879fd8b8895544f7787e8a6ddade" title="Get the band.">hawki_get_band</a>
+<a name="l00122"></a>00122 (<span class="keyword">const</span> <span class="keywordtype">char</span> * band);
+<a name="l00123"></a>00123 <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="group__hawki__utils.html#ga49b3f45aa7c812c0a90faf073998dbc4" title="Return a band name.">hawki_std_band_name</a>
+<a name="l00124"></a>00124 (hawki_band band);
+<a name="l00125"></a>00125 cpl_image * <a class="code" href="group__hawki__utils.html#ga7f6d3694df0e3a441b20267a1e5894db" title="Apply the stitching.">hawki_images_stitch</a>
+<a name="l00126"></a>00126 (cpl_image ** ima,
+<a name="l00127"></a>00127 <span class="keywordtype">double</span> * x,
+<a name="l00128"></a>00128 <span class="keywordtype">double</span> * y);
+<a name="l00129"></a>00129 cpl_bivector * <a class="code" href="group__hawki__utils.html#ga4c2e0ffe688ffdfd93f0d61c60ac91fd" title="Get the nominal header offsets from a set of frames.">hawki_get_header_tel_offsets</a>
+<a name="l00130"></a>00130 (<span class="keyword">const</span> cpl_frameset * frameset);
+<a name="l00131"></a>00131 <span class="keywordtype">double</span> <a class="code" href="group__hawki__utils.html#ga7b165e9e91b6c6519595109b36d4fb46" title="Get the mean airmass for a set of frames.">hawki_get_mean_airmass</a>(cpl_frameset * <span class="keyword">set</span>);
+<a name="l00132"></a>00132 <span class="keywordtype">int</span> * <a class="code" href="group__hawki__utils.html#ga024bd2557115d5d7d3265dbcbb3b1884" title="Get the frames in which the star is for a given chip.">hawki_detectors_labelise</a>
+<a name="l00133"></a>00133 (<span class="keyword">const</span> cpl_frameset * frameset);
+<a name="l00134"></a>00134 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#gabee84f3ed597df9a6ae97f07fc2204a0" title="Get the frames in which the star is for a given chip.">hawki_detectors_locate_star</a>
+<a name="l00135"></a>00135 (<span class="keyword">const</span> cpl_frameset * in,
+<a name="l00136"></a>00136 <span class="keywordtype">double</span> star_ra,
+<a name="l00137"></a>00137 <span class="keywordtype">double</span> star_dec,
+<a name="l00138"></a>00138 <span class="keywordtype">int</span> * labels);
+<a name="l00139"></a>00139 <span class="keywordtype">double</span> <a class="code" href="group__hawki__utils.html#ga29ae7b4052fd284d8b01f33e127c2846" title="Gets the minimum value of a vector according to an array of flags.">hawki_vector_get_min_select</a>
+<a name="l00140"></a>00140 (<span class="keyword">const</span> cpl_vector * <span class="keyword">self</span>, <span class="keyword">const</span> cpl_vector * valid);
+<a name="l00141"></a>00141 <span class="keywordtype">double</span> <a class="code" href="group__hawki__utils.html#gaba8fca8aa585fed96efc75545bfc6b04" title="Gets the maximum value of a vector according to an array of flags.">hawki_vector_get_max_select</a>
+<a name="l00142"></a>00142 (<span class="keyword">const</span> cpl_vector * <span class="keyword">self</span>, <span class="keyword">const</span> cpl_vector * valid);
+<a name="l00143"></a>00143 <span class="keywordtype">double</span> <a class="code" href="group__hawki__utils.html#gac64c154f22c4d25e242833fbe75da886" title="Compute the histogram mode.">hawki_vector_get_mode</a>(cpl_vector * vec);
+<a name="l00144"></a>00144 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#ga4c041169d43f161a8c9d7f23d7fc57a7" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_double_keys</a>
+<a name="l00145"></a>00145 (cpl_frameset * frames, <span class="keywordtype">double</span> (*func)(<span class="keyword">const</span> cpl_propertylist *));
+<a name="l00146"></a>00146 <span class="keywordtype">int</span> <a class="code" href="group__hawki__utils.html#ga8c1508e389b7fd0da8fbda451ffd1663" title="Check that all the frames share the same value of a given keyword.">hawki_utils_check_equal_int_keys</a>
+<a name="l00147"></a>00147 (cpl_frameset * frames, <span class="keywordtype">int</span> (*func)(<span class="keyword">const</span> cpl_propertylist *));
+<a name="l00148"></a>00148 <span class="keywordtype">void</span> <a class="code" href="group__hawki__utils.html#gaa6f925bb6e5320dcd0f06ad5238813b3" title="This functions formats a right ascension in degrees to a string of the form HH:MM:SS. It is based on ra2str from file libwcs/ang2str.c in wcstools library (http://tdc-www.harvard.edu/wcstools/)">hawki_utils_ra2str</a>(<span class="keywordtype">char</span> * str, <span class="keywordtype">int</span> length_str, <span class="keywordtype" [...]
+<a name="l00149"></a>00149 <span class="keywordtype">void</span> <a class="code" href="group__hawki__utils.html#ga38bbbd4f8537d1cab5cfba056bd8edf6" title="This functions formats a declination in degrees to a string of the form DD:MM:SS. It is based on dec2...">hawki_utils_dec2str</a>(<span class="keywordtype">char</span> * str, <span class="keywordtype">int</span> length_str, <span class="keywordtype">double</span> dec);
+<a name="l00150"></a>00150 cpl_error_code <a class="code" href="group__hawki__utils.html#ga8750ba220d588314effce204619b015c" title="Insert all frames of other in self. To be removed after the same functionality exists in CPL...">hawki_frameset_append</a>
+<a name="l00151"></a>00151 (cpl_frameset *<span class="keyword">self</span>, <span class="keyword">const</span> cpl_frameset *other);
+<a name="l00152"></a>00152 CPL_END_DECLS
+<a name="l00153"></a>00153
+<a name="l00154"></a>00154 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__variance_8c_source.html b/html/hawki__variance_8c_source.html
index bfbe3ba..d655a3b 100644
--- a/html/hawki__variance_8c_source.html
+++ b/html/hawki__variance_8c_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/03/13 11:52:06 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.2 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifdef HAVE_CONFIG_H</span>
@@ -165,7 +165,7 @@
<a name="l00182"></a>00182
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/hawki__variance_8h_source.html b/html/hawki__variance_8h_source.html
index 6b7ae12..b1287c7 100644
--- a/html/hawki__variance_8h_source.html
+++ b/html/hawki__variance_8h_source.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div id="nav-path" class="navpath">
<ul>
- <li class="navelem"><a class="el" href="dir_61a4ab009ead72bcdcfcf8e0d997aa51.html">hawki</a> </li>
+ <li class="navelem"><a class="el" href="dir_b8c9749b1863662f2d5b3897d8ee4a45.html">hawki</a> </li>
</ul>
</div>
</div>
@@ -69,7 +69,7 @@
<a name="l00022"></a>00022 <span class="comment"> * $Author: cgarcia $</span>
<a name="l00023"></a>00023 <span class="comment"> * $Date: 2009/03/13 11:52:14 $</span>
<a name="l00024"></a>00024 <span class="comment"> * $Revision: 1.2 $</span>
-<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_9 $</span>
+<a name="l00025"></a>00025 <span class="comment"> * $Name: hawki-1_8_10 $</span>
<a name="l00026"></a>00026 <span class="comment"> */</span>
<a name="l00027"></a>00027
<a name="l00028"></a>00028 <span class="preprocessor">#ifndef HAWKI_VARIANCE_H</span>
@@ -102,7 +102,7 @@
<a name="l00055"></a>00055 <span class="preprocessor">#endif</span>
</pre></div></div>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/index.html b/html/index.html
index 8ebc6c3..d18ea33 100644
--- a/html/index.html
+++ b/html/index.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -36,7 +36,7 @@
</div>
<div class="contents">
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/modules.html b/html/modules.html
index 798a763..c0e6aaa 100644
--- a/html/modules.html
+++ b/html/modules.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -37,11 +37,12 @@
<div class="contents">
<div class="textblock">Here is a list of all modules:</div><ul>
<li><a class="el" href="group__hawki__alloc.html">Allocation rutines</a></li>
-<li><a class="el" href="group__hawki__image__stats.html">Compute several statistics on images</a></li>
<li><a class="el" href="group__hawki__calib.html">Basic calibration Utilities</a></li>
<li><a class="el" href="group__hawki__combine.html">Images combination routines</a></li>
<li><a class="el" href="group__hawki__dfs.html">DFS related functions</a></li>
<li><a class="el" href="group__hawki__distortion.html">Distortion correction</a></li>
+<li><a class="el" href="group__hawki__image.html">Image manipulation</a></li>
+<li><a class="el" href="group__hawki__image__stats.html">Compute several statistics on images</a></li>
<li><a class="el" href="group__hawki__load.html">Loading related functions</a></li>
<li><a class="el" href="group__hawki__mask.html">Mask manipulation</a></li>
<li><a class="el" href="group__hawki__obj__det.html">Functionality related to catalogue matching</a></li>
@@ -52,7 +53,7 @@
<li><a class="el" href="group__hawki__variance.html">Variance estimation for raw images.</a></li>
</ul>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/html/struct__hawki__distortion__obj__function__args__.html b/html/struct__hawki__distortion__obj__function__args__.html
index f972ae7..627cef9 100644
--- a/html/struct__hawki__distortion__obj__function__args__.html
+++ b/html/struct__hawki__distortion__obj__function__args__.html
@@ -14,7 +14,7 @@
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
- <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.9</span></div>
+ <div id="projectname">HAWKI Pipeline Reference Manual <span id="projectnumber">1.8.10</span></div>
</td>
</tr>
</tbody>
@@ -52,7 +52,7 @@
<li><a class="el" href="hawki__distortion_8c_source.html">hawki_distortion.c</a></li>
</ul>
</div>
-<hr class="footer"/><address class="footer"><small>Generated on Tue May 22 2012 for HAWKI Pipeline Reference Manual by
+<hr class="footer"/><address class="footer"><small>Generated on Mon Dec 10 2012 for HAWKI Pipeline Reference Manual by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
diff --git a/irplib/Makefile.in b/irplib/Makefile.in
index 3d7bdf7..1f838dd 100644
--- a/irplib/Makefile.in
+++ b/irplib/Makefile.in
@@ -162,6 +162,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -250,6 +254,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
diff --git a/irplib/irplib_calib.c b/irplib/irplib_calib.c
index 82a4657..a7f7ffa 100644
--- a/irplib/irplib_calib.c
+++ b/irplib/irplib_calib.c
@@ -22,7 +22,7 @@
* $Author: amodigli $
* $Date: 2009/02/17 08:05:25 $
* $Revision: 1.17 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_calib.h b/irplib/irplib_calib.h
index 92fbfd8..b143371 100644
--- a/irplib/irplib_calib.h
+++ b/irplib/irplib_calib.h
@@ -22,7 +22,7 @@
* $Author: amodigli $
* $Date: 2007/02/12 10:34:51 $
* $Revision: 1.8 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_CALIB_H
diff --git a/irplib/irplib_cat.c b/irplib/irplib_cat.c
index b0a1c73..7be9326 100644
--- a/irplib/irplib_cat.c
+++ b/irplib/irplib_cat.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/12/01 12:34:25 $
* $Revision: 1.10 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_cat.h b/irplib/irplib_cat.h
index 39264a5..a0d1640 100644
--- a/irplib/irplib_cat.h
+++ b/irplib/irplib_cat.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/12/16 14:49:52 $
* $Revision: 1.5 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_CAT_H
diff --git a/irplib/irplib_distortion.c b/irplib/irplib_distortion.c
index a3482ed..ab7dbcc 100644
--- a/irplib/irplib_distortion.c
+++ b/irplib/irplib_distortion.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2012/02/03 15:08:14 $
* $Revision: 1.51 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_distortion.h b/irplib/irplib_distortion.h
index 25d63f5..d4a242b 100644
--- a/irplib/irplib_distortion.h
+++ b/irplib/irplib_distortion.h
@@ -22,7 +22,7 @@
* $Author: yjung $
* $Date: 2006/07/26 14:47:34 $
* $Revision: 1.5 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_DISTORTION_H
diff --git a/irplib/irplib_flat.c b/irplib/irplib_flat.c
index 6f46559..0aa52a8 100644
--- a/irplib/irplib_flat.c
+++ b/irplib/irplib_flat.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2007/08/07 12:15:41 $
* $Revision: 1.15 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_flat.h b/irplib/irplib_flat.h
index b319cf0..9f0224f 100644
--- a/irplib/irplib_flat.h
+++ b/irplib/irplib_flat.h
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2005/09/15 11:47:16 $
* $Revision: 1.4 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_FLAT_H
diff --git a/irplib/irplib_framelist.c b/irplib/irplib_framelist.c
index c812f8d..2e0bb23 100644
--- a/irplib/irplib_framelist.c
+++ b/irplib/irplib_framelist.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2012/02/03 13:55:14 $
* $Revision: 1.29 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
diff --git a/irplib/irplib_framelist.h b/irplib/irplib_framelist.h
index fe209cb..27d73b4 100644
--- a/irplib/irplib_framelist.h
+++ b/irplib/irplib_framelist.h
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2008/11/20 10:24:47 $
* $Revision: 1.8 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_FRAMELIST_H
diff --git a/irplib/irplib_hist.c b/irplib/irplib_hist.c
index 9629dcc..700f85a 100644
--- a/irplib/irplib_hist.c
+++ b/irplib/irplib_hist.c
@@ -24,7 +24,7 @@
* $Id: irplib_hist.c,v 1.7 2009/10/15 14:02:18 kmirny Exp $
* $Date: 2009/10/15 14:02:18 $
* $Revision: 1.7 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_hist.h b/irplib/irplib_hist.h
index f452bb6..cda907d 100644
--- a/irplib/irplib_hist.h
+++ b/irplib/irplib_hist.h
@@ -22,7 +22,7 @@
* $Author: lbilbao $
* $Date: 2007/09/07 14:23:50 $
* $Revision: 1.3 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_HIST_H
diff --git a/irplib/irplib_ksigma_clip.c b/irplib/irplib_ksigma_clip.c
index 555a7f6..8e8733c 100644
--- a/irplib/irplib_ksigma_clip.c
+++ b/irplib/irplib_ksigma_clip.c
@@ -22,7 +22,7 @@
* $Author: amodigli $
* $Date: 2011/11/02 13:18:28 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_ksigma_clip.h b/irplib/irplib_ksigma_clip.h
index b0c1d4f..a4e6c50 100644
--- a/irplib/irplib_ksigma_clip.h
+++ b/irplib/irplib_ksigma_clip.h
@@ -22,7 +22,7 @@
* $Author: amodigli $
* $Date: 2011/11/02 13:18:28 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_KSIGMA_CLIP_H
diff --git a/irplib/irplib_ksigma_clip_body.h b/irplib/irplib_ksigma_clip_body.h
index a48a6ac..5b993c9 100644
--- a/irplib/irplib_ksigma_clip_body.h
+++ b/irplib/irplib_ksigma_clip_body.h
@@ -22,7 +22,7 @@
* $Author: amodigli $
* $Date: 2011/11/02 13:18:28 $
* $Revision: 1.1 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#define TYPE_ADD(a) CONCAT2X(a, CPL_TYPE)
diff --git a/irplib/irplib_match_cats.c b/irplib/irplib_match_cats.c
index e4346c8..0e57922 100644
--- a/irplib/irplib_match_cats.c
+++ b/irplib/irplib_match_cats.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/12/18 10:44:48 $
* $Revision: 1.10 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_match_cats.h b/irplib/irplib_match_cats.h
index ea7c662..cf20cf4 100644
--- a/irplib/irplib_match_cats.h
+++ b/irplib/irplib_match_cats.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/12/18 10:44:48 $
* $Revision: 1.5 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_MATCH_CATS_H
diff --git a/irplib/irplib_mkmaster.c b/irplib/irplib_mkmaster.c
index ed1aa5f..997c77b 100644
--- a/irplib/irplib_mkmaster.c
+++ b/irplib/irplib_mkmaster.c
@@ -22,7 +22,7 @@
* $Author: amodigli $
* $Date: 2012/01/12 14:29:41 $
* $Revision: 1.5 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_mkmaster.h b/irplib/irplib_mkmaster.h
index 8a48534..bfb73bf 100644
--- a/irplib/irplib_mkmaster.h
+++ b/irplib/irplib_mkmaster.h
@@ -22,7 +22,7 @@
* $Author: amodigli $
* $Date: 2011/11/02 13:17:25 $
* $Revision: 1.3 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_MKMASTER_H
diff --git a/irplib/irplib_oddeven.c b/irplib/irplib_oddeven.c
index 14c54d8..97507c4 100644
--- a/irplib/irplib_oddeven.c
+++ b/irplib/irplib_oddeven.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2012/01/12 11:50:41 $
* $Revision: 1.9 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_oddeven.h b/irplib/irplib_oddeven.h
index 1f1414d..d949a85 100644
--- a/irplib/irplib_oddeven.h
+++ b/irplib/irplib_oddeven.h
@@ -22,7 +22,7 @@
* $Author: yjung $
* $Date: 2006/10/06 20:46:04 $
* $Revision: 1.4 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_ODDEVEN_H
diff --git a/irplib/irplib_plugin.c b/irplib/irplib_plugin.c
index e6f2626..a30457b 100644
--- a/irplib/irplib_plugin.c
+++ b/irplib/irplib_plugin.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2012/02/03 14:19:06 $
* $Revision: 1.39 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
/*-----------------------------------------------------------------------------
diff --git a/irplib/irplib_plugin.h b/irplib/irplib_plugin.h
index 481ed05..a16b543 100644
--- a/irplib/irplib_plugin.h
+++ b/irplib/irplib_plugin.h
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2012/01/11 08:03:37 $
* $Revision: 1.23 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_PLUGIN_H
diff --git a/irplib/irplib_polynomial.c b/irplib/irplib_polynomial.c
index 58d129f..1573078 100644
--- a/irplib/irplib_polynomial.c
+++ b/irplib/irplib_polynomial.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2012/02/03 14:54:06 $
* $Revision: 1.34 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_polynomial.h b/irplib/irplib_polynomial.h
index 64d3f4d..fd4aab7 100644
--- a/irplib/irplib_polynomial.h
+++ b/irplib/irplib_polynomial.h
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2012/01/12 10:40:21 $
* $Revision: 1.9 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_POLYNOMIAL_H
diff --git a/irplib/irplib_ppm.c b/irplib/irplib_ppm.c
index 24d6288..326c838 100644
--- a/irplib/irplib_ppm.c
+++ b/irplib/irplib_ppm.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_ppm.c,v 1.30 2011/11/23 13:58:45 yjung Exp $
+/* $Id: irplib_ppm.c,v 1.31 2012/06/11 07:24:09 llundin Exp $
*
* This file is part of the irplib package
* Copyright (C) 2002,2003 European Southern Observatory
@@ -19,10 +19,10 @@
*/
/*
- * $Author: yjung $
- * $Date: 2011/11/23 13:58:45 $
- * $Revision: 1.30 $
- * $Name: hawki-1_8_9 $
+ * $Author: llundin $
+ * $Date: 2012/06/11 07:24:09 $
+ * $Revision: 1.31 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -440,7 +440,7 @@ static cpl_vector * irplib_ppm_detect_lines(
while ((max = cpl_vector_get_max(spec_loc)) > threshold) {
/* Find the max position */
max_ind = 0 ;
- while (pspec_loc[max_ind]<max && max_ind<spec_loc_sz) max_ind++ ;
+ while (max_ind < spec_loc_sz && pspec_loc[max_ind] < max) max_ind++ ;
if (max_ind == spec_loc_sz) {
cpl_msg_error(cpl_func, "Cannot find maximum") ;
cpl_vector_delete(spec_loc) ;
diff --git a/irplib/irplib_ppm.h b/irplib/irplib_ppm.h
index 1b59754..f5f8df0 100644
--- a/irplib/irplib_ppm.h
+++ b/irplib/irplib_ppm.h
@@ -22,7 +22,7 @@
* $Author: yjung $
* $Date: 2007/07/23 09:27:07 $
* $Revision: 1.5 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_PPM_H
diff --git a/irplib/irplib_slitpos.c b/irplib/irplib_slitpos.c
index 916d58c..67dab5e 100644
--- a/irplib/irplib_slitpos.c
+++ b/irplib/irplib_slitpos.c
@@ -22,7 +22,7 @@
* $Author: yjung $
* $Date: 2011/11/23 13:58:45 $
* $Revision: 1.30 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_slitpos.h b/irplib/irplib_slitpos.h
index b4a1f1c..922b48f 100644
--- a/irplib/irplib_slitpos.h
+++ b/irplib/irplib_slitpos.h
@@ -22,7 +22,7 @@
* $Author: yjung $
* $Date: 2006/11/29 13:22:59 $
* $Revision: 1.6 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_SLITPOS_H
diff --git a/irplib/irplib_spectrum.c b/irplib/irplib_spectrum.c
index e71163c..781d9af 100644
--- a/irplib/irplib_spectrum.c
+++ b/irplib/irplib_spectrum.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2012/01/12 11:50:41 $
* $Revision: 1.29 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_spectrum.h b/irplib/irplib_spectrum.h
index 83c275f..d2aa982 100644
--- a/irplib/irplib_spectrum.h
+++ b/irplib/irplib_spectrum.h
@@ -22,7 +22,7 @@
* $Author: yjung $
* $Date: 2009/07/30 12:38:37 $
* $Revision: 1.7 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_SPECTRUM_H
diff --git a/irplib/irplib_stdstar.c b/irplib/irplib_stdstar.c
index d91b477..0714724 100644
--- a/irplib/irplib_stdstar.c
+++ b/irplib/irplib_stdstar.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2012/05/04 13:58:12 $
* $Revision: 1.41 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_stdstar.h b/irplib/irplib_stdstar.h
index 4f51f5a..9b50470 100644
--- a/irplib/irplib_stdstar.h
+++ b/irplib/irplib_stdstar.h
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/12/14 08:53:04 $
* $Revision: 1.15 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_STDSTAR_H
diff --git a/irplib/irplib_strehl.c b/irplib/irplib_strehl.c
index f1e6a24..cf33f91 100644
--- a/irplib/irplib_strehl.c
+++ b/irplib/irplib_strehl.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2009/11/18 21:37:48 $
* $Revision: 1.43 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_strehl.h b/irplib/irplib_strehl.h
index c8da3fe..965cc1f 100644
--- a/irplib/irplib_strehl.h
+++ b/irplib/irplib_strehl.h
@@ -22,7 +22,7 @@
* $Author: kmirny $
* $Date: 2009/06/29 14:32:53 $
* $Revision: 1.12 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_STREHL_H
diff --git a/irplib/irplib_utils.c b/irplib/irplib_utils.c
index 0f40913..411210b 100644
--- a/irplib/irplib_utils.c
+++ b/irplib/irplib_utils.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_utils.c,v 1.78 2012/05/08 13:56:09 llundin Exp $
+/* $Id: irplib_utils.c,v 1.79 2012/08/06 06:14:18 llundin Exp $
*
* This file is part of the irplib package
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: llundin $
- * $Date: 2012/05/08 13:56:09 $
- * $Revision: 1.78 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/08/06 06:14:18 $
+ * $Revision: 1.79 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -1317,59 +1317,6 @@ int irplib_isnan(double value)
#endif
}
-
-
-/*----------------------------------------------------------------------------*/
-/**
- @brief Dump a single CPL error
- @param self The number of the current error to be dumped
- @param first The number of the first error to be dumped
- @param last The number of the last error to be dumped
- @return void
- @note This function differs from cpl_errorstate_dump_one only in message level
- @see cpl_errorstate_dump_one
-
- */
-/*----------------------------------------------------------------------------*/
-void irplib_errorstate_warning(unsigned self, unsigned first, unsigned last)
-{
-
- const cpl_boolean is_reverse = first > last ? CPL_TRUE : CPL_FALSE;
- const unsigned newest = is_reverse ? first : last;
- const unsigned oldest = is_reverse ? last : first;
- const char * revmsg = is_reverse ? " in reverse order" : "";
-
-
- assert( oldest <= self );
- assert( newest >= self );
-
- if (newest == 0) {
- cpl_msg_info(cpl_func, "No error(s) to dump");
- assert( oldest == 0);
- } else {
- assert( oldest > 0);
- assert( newest >= oldest);
- if (self == first) {
- if (oldest == 1) {
- cpl_msg_warning(cpl_func, "Dumping all %u error(s)%s:", newest,
- revmsg);
- } else {
- cpl_msg_warning(cpl_func, "Dumping the %u most recent error(s) "
- "out of a total of %u errors%s:",
- newest - oldest + 1, newest, revmsg);
- }
- cpl_msg_indent_more();
- }
-
- cpl_msg_warning(cpl_func, "[%u/%u] '%s' (%u) at %s", self, newest,
- cpl_error_get_message(), cpl_error_get_code(),
- cpl_error_get_where());
-
- if (self == last) cpl_msg_indent_less();
- }
-}
-
-
/**@}*/
diff --git a/irplib/irplib_utils.h b/irplib/irplib_utils.h
index 9fd58b7..6f34754 100644
--- a/irplib/irplib_utils.h
+++ b/irplib/irplib_utils.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_utils.h,v 1.55 2011/06/01 06:47:56 llundin Exp $
+/* $Id: irplib_utils.h,v 1.56 2012/08/06 06:14:18 llundin Exp $
*
* This file is part of the irplib package
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,10 +20,13 @@
/*
* $Author: llundin $
- * $Date: 2011/06/01 06:47:56 $
- * $Revision: 1.55 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/08/06 06:14:18 $
+ * $Revision: 1.56 $
+ * $Name: hawki-1_8_10 $
* $Log: irplib_utils.h,v $
+ * Revision 1.56 2012/08/06 06:14:18 llundin
+ * irplib_errorstate_warning(): Replaced by cpl_errorstate_dump_one_warning() from CPL 6.X
+ *
* Revision 1.55 2011/06/01 06:47:56 llundin
* skip_if_lt(): Fix previous edits switch of A and B in error message
*
@@ -52,10 +55,10 @@
Includes
-----------------------------------------------------------------------------*/
-#include <stdarg.h>
-
#include <cpl.h>
+#include <stdarg.h>
+
/*-----------------------------------------------------------------------------
Define
-----------------------------------------------------------------------------*/
@@ -72,13 +75,14 @@
cpl_msg_debug(cpl_func, __FILE__ " at line %d: OK", __LINE__); \
} while (0)
-#define irplib_error_recover(ESTATE, ...) \
- do if (!cpl_errorstate_is_equal(ESTATE)) { \
- cpl_msg_warning(cpl_func, __VA_ARGS__); \
- cpl_msg_indent_more(); \
- cpl_errorstate_dump(ESTATE, CPL_FALSE, irplib_errorstate_warning); \
- cpl_msg_indent_less(); \
- cpl_errorstate_set(ESTATE); \
+#define irplib_error_recover(ESTATE, ...) \
+ do if (!cpl_errorstate_is_equal(ESTATE)) { \
+ cpl_msg_warning(cpl_func, __VA_ARGS__); \
+ cpl_msg_indent_more(); \
+ cpl_errorstate_dump(ESTATE, CPL_FALSE, \
+ cpl_errorstate_dump_one_warning); \
+ cpl_msg_indent_less(); \
+ cpl_errorstate_set(ESTATE); \
} while (0)
@@ -400,8 +404,6 @@ cpl_error_code irplib_apertures_find_max_flux(const cpl_apertures *, int *,
int irplib_isinf(double value);
int irplib_isnan(double value);
-void irplib_errorstate_warning(unsigned, unsigned, unsigned);
-
cpl_error_code
irplib_dfs_table_convert(cpl_table *, cpl_frameset *, const cpl_frameset *,
int, char, const char *, const char *,
diff --git a/irplib/irplib_wavecal.c b/irplib/irplib_wavecal.c
index f7b38b0..d131618 100644
--- a/irplib/irplib_wavecal.c
+++ b/irplib/irplib_wavecal.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_wavecal.c,v 1.46 2012/03/02 09:01:04 amodigli Exp $
+/* $Id: irplib_wavecal.c,v 1.52 2012/08/03 21:05:32 llundin Exp $
*
* This file is part of the IRPLIB Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -19,10 +19,10 @@
*/
/*
- * $Author: amodigli $
- * $Date: 2012/03/02 09:01:04 $
- * $Revision: 1.46 $
- * $Name: hawki-1_8_9 $
+ * $Author: llundin $
+ * $Date: 2012/08/03 21:05:32 $
+ * $Revision: 1.52 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -65,7 +65,7 @@ typedef struct {
cpl_vector * spectrum;
irplib_base_spectrum_model * param;
cpl_error_code (* filler)(cpl_vector *, const cpl_polynomial *,
- irplib_base_spectrum_model *, int);
+ irplib_base_spectrum_model *);
cpl_vector * vxc;
double xc;
int maxxc;
@@ -94,6 +94,18 @@ typedef struct {
static double irplib_gsl_correlation(const gsl_vector *, void *);
#endif
+static cpl_error_code
+irplib_polynomial_find_1d_from_correlation_(cpl_polynomial *, int,
+ const cpl_vector *,
+ irplib_base_spectrum_model *,
+ cpl_error_code (*)
+ (cpl_vector *,
+ const cpl_polynomial *,
+ irplib_base_spectrum_model *),
+ double, double, int, int,
+ double *, cpl_boolean *);
+
+
/*----------------------------------------------------------------------------*/
/**
* @defgroup irplib_wavecal Spectro functionality
@@ -236,13 +248,61 @@ irplib_polynomial_find_1d_from_correlation(cpl_polynomial * self,
cpl_error_code (* filler)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *, int),
+ irplib_base_spectrum_model *),
double pixtol,
double pixstep,
int hsize,
int maxite,
double * pxc)
{
+ cpl_boolean restart = CPL_FALSE;
+ const cpl_error_code error = irplib_polynomial_find_1d_from_correlation_
+ (self, maxdeg, obs, model, filler, pixtol, pixstep, hsize, maxite, pxc,
+ &restart);
+
+ return error ? cpl_error_set_where(cpl_func) :
+ (restart ? cpl_error_set(cpl_func, CPL_ERROR_CONTINUE)
+ : CPL_ERROR_NONE);
+}
+
+/*----------------------------------------------------------------------------*/
+/**
+ @internal
+ @brief Modify self by maximizing the cross-correlation
+ @param self 1D-Dispersion relation to modify, at least of degree 1
+ @param maxdeg Maximize the cross-correlation by modifying maxdeg degree
+ @param obs The observed spectrum to correlate against
+ @param model The model of the lines/OTF etc.
+ @param filler The function to fill the model spectrum
+ @param pixtol The (positive) dispersion tolerance, e.g. 1e-6
+ @param pixstep The step length used in the maximization, e.g. 0.5 [pixel]
+ @param hsize Half the search-distance to ensure a global-maximum, hsize >= 0
+ @param maxite Maximum number of iterations, e.g. 100 * maxdeg
+ @param pxc On sucess, *pxc is the cross-correlation
+ @param prestart CPL_TRUE, iff the call can be redone
+ @return CPL_ERROR_NONE on success, otherwise the relevant CPL error code
+ @see irplib_polynomial_find_1d_from_correlation
+ @note Fails with CPL_ERROR_UNSUPPORTED_MODE if compiled without GSL.
+ self must be increasing in the interval from 1 to the length of obs.
+
+ */
+/*----------------------------------------------------------------------------*/
+static cpl_error_code
+irplib_polynomial_find_1d_from_correlation_(cpl_polynomial * self,
+ int maxdeg,
+ const cpl_vector * obs,
+ irplib_base_spectrum_model * model,
+ cpl_error_code (* filler)
+ (cpl_vector *,
+ const cpl_polynomial *,
+ irplib_base_spectrum_model *),
+ double pixtol,
+ double pixstep,
+ int hsize,
+ int maxite,
+ double * pxc,
+ cpl_boolean * prestart)
+{
#ifdef HAVE_GSL
const gsl_multimin_fminimizer_type * T = gsl_multimin_fminimizer_nmsimplex;
@@ -267,11 +327,13 @@ irplib_polynomial_find_1d_from_correlation(cpl_polynomial * self,
#endif
- cpl_ensure_code(self != NULL, CPL_ERROR_NULL_INPUT);
- cpl_ensure_code(obs != NULL, CPL_ERROR_NULL_INPUT);
- cpl_ensure_code(model != NULL, CPL_ERROR_NULL_INPUT);
- cpl_ensure_code(filler != NULL, CPL_ERROR_NULL_INPUT);
- cpl_ensure_code(pxc != NULL, CPL_ERROR_NULL_INPUT);
+ cpl_ensure_code(prestart != NULL, CPL_ERROR_NULL_INPUT);
+ *prestart = CPL_FALSE;
+ cpl_ensure_code(self != NULL, CPL_ERROR_NULL_INPUT);
+ cpl_ensure_code(obs != NULL, CPL_ERROR_NULL_INPUT);
+ cpl_ensure_code(model != NULL, CPL_ERROR_NULL_INPUT);
+ cpl_ensure_code(filler != NULL, CPL_ERROR_NULL_INPUT);
+ cpl_ensure_code(pxc != NULL, CPL_ERROR_NULL_INPUT);
cpl_ensure_code(cpl_polynomial_get_dimension(self) == 1,
CPL_ERROR_ILLEGAL_INPUT);
@@ -372,7 +434,7 @@ irplib_polynomial_find_1d_from_correlation(cpl_polynomial * self,
data.mxc, data.ishift, -minimizer->fval);
cpl_polynomial_shift_1d(data.mdisp, 0, (double)data.ishift);
cpl_polynomial_copy(self, data.mdisp);
- status = GSL_CONTINUE;
+ *prestart = CPL_TRUE;
} else {
*pxc = -minimizer->fval;
for (i=0; i < nfit; i++) {
@@ -405,7 +467,6 @@ irplib_polynomial_find_1d_from_correlation(cpl_polynomial * self,
@param self Vector to fill with spectrum
@param disp 1D-Dispersion relation, at least of degree 1
@param lsslamp Pointer to irplib_line_spectrum_model struct
- @param hsize The 1st intensity in self will be disp(1-hsize), hsize >= 0
@return CPL_ERROR_NONE on success, otherwise the relevant CPL error code
The model comprises these elements:
@@ -418,8 +479,8 @@ irplib_polynomial_find_1d_from_correlation(cpl_polynomial * self,
cpl_vector * linepix; // NULL, or temporary work-space of size
// equal to the lines bivector
// - should be uninitialized to zero
- unsigned cost; // Will be incremented for each call
- unsigned xcost; // Will be incremented for each OK call
+ cpl_size cost; // Will be incremented for each call
+ cpl_size xcost; // Will be incremented for each OK call
@endcode
The units of the X-values of the lines is assumed to be the same as
@@ -432,8 +493,7 @@ irplib_polynomial_find_1d_from_correlation(cpl_polynomial * self,
cpl_error_code
irplib_vector_fill_line_spectrum(cpl_vector * self,
const cpl_polynomial * disp,
- irplib_base_spectrum_model * lsslamp,
- int hsize)
+ irplib_base_spectrum_model * lsslamp)
{
irplib_line_spectrum_model * arclamp
@@ -452,7 +512,7 @@ irplib_vector_fill_line_spectrum(cpl_vector * self,
arclamp->wslit,
arclamp->wfwhm,
arclamp->xtrunc,
- hsize, CPL_FALSE, CPL_FALSE,
+ 0, CPL_FALSE, CPL_FALSE,
&(arclamp->ulines));
cpl_ensure_code(!error, error);
@@ -467,7 +527,6 @@ irplib_vector_fill_line_spectrum(cpl_vector * self,
@param self Vector to fill with spectrum
@param disp 1D-Dispersion relation, at least of degree 1
@param lsslamp Pointer to irplib_line_spectrum_model struct
- @param hsize The 1st intensity in self will be disp(1-hsize), hsize >= 0
@return CPL_ERROR_NONE on success, otherwise the relevant CPL error code
@note The logarithm is taken on the intensities
@see irplib_vector_fill_line_spectrum
@@ -479,8 +538,7 @@ irplib_vector_fill_line_spectrum(cpl_vector * self,
cpl_error_code
irplib_vector_fill_logline_spectrum(cpl_vector * self,
const cpl_polynomial * disp,
- irplib_base_spectrum_model * lsslamp,
- int hsize)
+ irplib_base_spectrum_model * lsslamp)
{
irplib_line_spectrum_model * arclamp
@@ -499,7 +557,7 @@ irplib_vector_fill_logline_spectrum(cpl_vector * self,
arclamp->wslit,
arclamp->wfwhm,
arclamp->xtrunc,
- hsize, CPL_FALSE, CPL_TRUE,
+ 0, CPL_FALSE, CPL_TRUE,
&(arclamp->ulines));
cpl_ensure_code(!error, error);
@@ -515,7 +573,6 @@ irplib_vector_fill_logline_spectrum(cpl_vector * self,
@param self Vector to fill with spectrum
@param disp 1D-Dispersion relation, at least of degree 1
@param lsslamp Pointer to irplib_line_spectrum_model struct
- @param hsize The 1st intensity in self will be disp(1-hsize), hsize >= 0
@return CPL_ERROR_NONE on success, otherwise the relevant CPL error code
@see irplib_vector_fill_line_spectrum()
@@ -527,8 +584,7 @@ irplib_vector_fill_logline_spectrum(cpl_vector * self,
cpl_error_code
irplib_vector_fill_line_spectrum_fast(cpl_vector * self,
const cpl_polynomial * disp,
- irplib_base_spectrum_model * lsslamp,
- int hsize)
+ irplib_base_spectrum_model * lsslamp)
{
irplib_line_spectrum_model * arclamp
@@ -547,7 +603,7 @@ irplib_vector_fill_line_spectrum_fast(cpl_vector * self,
arclamp->wslit,
arclamp->wfwhm,
arclamp->xtrunc,
- hsize, CPL_TRUE, CPL_FALSE,
+ 0, CPL_TRUE, CPL_FALSE,
&(arclamp->ulines));
cpl_ensure_code(!error, error);
@@ -562,7 +618,6 @@ irplib_vector_fill_line_spectrum_fast(cpl_vector * self,
@param self Vector to fill with spectrum
@param disp 1D-Dispersion relation, at least of degree 1
@param lsslamp Pointer to irplib_line_spectrum_model struct
- @param hsize The 1st intensity in self will be disp(1-hsize), hsize >= 0
@return CPL_ERROR_NONE on success, otherwise the relevant CPL error code
@note The logarithm is taken on the intensities
@see irplib_vector_fill_line_spectrum_fast()
@@ -574,8 +629,7 @@ irplib_vector_fill_line_spectrum_fast(cpl_vector * self,
cpl_error_code
irplib_vector_fill_logline_spectrum_fast(cpl_vector * self,
const cpl_polynomial * disp,
- irplib_base_spectrum_model * lsslamp,
- int hsize)
+ irplib_base_spectrum_model * lsslamp)
{
irplib_line_spectrum_model * arclamp
@@ -594,7 +648,7 @@ irplib_vector_fill_logline_spectrum_fast(cpl_vector * self,
arclamp->wslit,
arclamp->wfwhm,
arclamp->xtrunc,
- hsize, CPL_TRUE, CPL_TRUE,
+ 0, CPL_TRUE, CPL_TRUE,
&(arclamp->ulines));
cpl_ensure_code(!error, error);
@@ -621,8 +675,7 @@ cpl_error_code irplib_plot_spectrum_and_model(const cpl_vector * self,
cpl_error_code (* filler)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *,
- int))
+ irplib_base_spectrum_model *))
{
cpl_errorstate prestate = cpl_errorstate_get();
@@ -650,7 +703,7 @@ cpl_error_code irplib_plot_spectrum_and_model(const cpl_vector * self,
vxc = cpl_vector_new(1);
error |= (int)cpl_vector_fill_polynomial(wl, disp1d, 1.0, 1.0);
- error |= filler(spectrum, disp1d, model, 0);
+ error |= filler(spectrum, disp1d, model);
ixc = cpl_vector_correlate(vxc, self, spectrum);
xc = cpl_vector_get(vxc, ixc);
@@ -698,6 +751,8 @@ cpl_error_code irplib_plot_spectrum_and_model(const cpl_vector * self,
The shifts are listed in order of decreasing cross-correlation. If pxc is
non-NULL, *pxc will be set to the cross-correlation at shift 0.
+ The shifts may include the extrema -hsize and hsize.
+
*/
/*----------------------------------------------------------------------------*/
cpl_error_code
@@ -708,22 +763,23 @@ irplib_bivector_find_shift_from_correlation(cpl_bivector * self,
cpl_error_code (*filler)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *, int),
+ irplib_base_spectrum_model *),
int hsize,
cpl_boolean doplot,
double *pxc)
{
- const int nobs = cpl_vector_get_size(obs);
- const int nmodel = 2 * hsize + nobs;
- cpl_vector * xself = cpl_bivector_get_x(self);
- cpl_vector * yself = cpl_bivector_get_y(self);
- cpl_vector * mspec1d;
- cpl_vector * xcorr;
- cpl_error_code error = CPL_ERROR_NONE;
- double xcprev, xcnext;
- int ixc, imax = 0;
- int i;
+ const int nobs = cpl_vector_get_size(obs);
+ const int nmodel = 2 * hsize + nobs;
+ cpl_polynomial * shdisp;
+ cpl_vector * xself = cpl_bivector_get_x(self);
+ cpl_vector * yself = cpl_bivector_get_y(self);
+ cpl_vector * mspec1d;
+ cpl_vector * xcorr;
+ cpl_error_code error = CPL_ERROR_NONE;
+ double xcprev, xcnext;
+ int ixc, imax = 0;
+ int i;
cpl_ensure_code(self != NULL, CPL_ERROR_NULL_INPUT);
cpl_ensure_code(disp != NULL, CPL_ERROR_NULL_INPUT);
@@ -732,9 +788,17 @@ irplib_bivector_find_shift_from_correlation(cpl_bivector * self,
cpl_ensure_code(filler != NULL, CPL_ERROR_NULL_INPUT);
cpl_ensure_code(hsize > 0, CPL_ERROR_ILLEGAL_INPUT);
+ shdisp = cpl_polynomial_duplicate(disp);
+
+ /* Shift reference by -hsize so filler can be used without offset */
+ if (cpl_polynomial_shift_1d(shdisp, 0, -hsize)) {
+ cpl_polynomial_delete(shdisp);
+ return cpl_error_set_where(cpl_func);
+ }
+
mspec1d = cpl_vector_new(nmodel);
- if (filler(mspec1d, disp, model, hsize)) {
+ if (filler(mspec1d, shdisp, model)) {
cpl_vector_delete(mspec1d);
return cpl_error_set_where(cpl_func);
}
@@ -745,10 +809,11 @@ irplib_bivector_find_shift_from_correlation(cpl_bivector * self,
#ifdef IRPLIB_SPC_DUMP
/* Need irplib_wavecal.c rev. 1.12 through 1.15 */
- irplib_polynomial_dump_corr_step(disp, xcorr, "Shift");
+ irplib_polynomial_dump_corr_step(shdisp, xcorr, "Shift");
#endif
cpl_vector_delete(mspec1d);
+ cpl_polynomial_delete(shdisp);
/* Find local maxima. */
/* FIXME(?): Also include stationary points */
@@ -818,6 +883,7 @@ irplib_bivector_find_shift_from_correlation(cpl_bivector * self,
}
if (doplot) {
+ /* Vector of -hsize, 1-hsize, 2-hsize, ..., 0, ..., hsize */
cpl_vector * xvals = cpl_vector_new(1 + 2 * hsize);
cpl_bivector * bcorr = cpl_bivector_wrap_vectors(xvals, xcorr);
double x = (double)-hsize;
@@ -873,7 +939,7 @@ irplib_polynomial_shift_1d_from_correlation(cpl_polynomial * self,
cpl_error_code (*filler)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *, int),
+ irplib_base_spectrum_model *),
int hsize,
cpl_boolean doplot,
double * pxc)
@@ -893,9 +959,13 @@ irplib_polynomial_shift_1d_from_correlation(cpl_polynomial * self,
cpl_ensure_code(filler != NULL, CPL_ERROR_NULL_INPUT);
cpl_ensure_code(hsize > 0, CPL_ERROR_ILLEGAL_INPUT);
+ /* Shift reference by -hsize so filler can be used without offset */
+ cpl_ensure_code(!cpl_polynomial_shift_1d(self, 0, -hsize),
+ cpl_error_get_code());
+
mspec1d = cpl_vector_new(nmodel);
- if (filler(mspec1d, self, model, hsize)) {
+ if (filler(mspec1d, self, model)) {
cpl_vector_delete(mspec1d);
cpl_ensure_code(0, cpl_error_get_code());
}
@@ -911,12 +981,12 @@ irplib_polynomial_shift_1d_from_correlation(cpl_polynomial * self,
cpl_vector_delete(mspec1d);
- xxc = ixc - hsize;
-
- error = cpl_polynomial_shift_1d(self, 0, (double)xxc);
+ error = cpl_polynomial_shift_1d(self, 0, (double)ixc);
xc = cpl_vector_get(xcorr, ixc);
+ xxc = ixc - hsize; /* The effect of the two shifts */
+
cpl_msg_info(cpl_func, "Shifting %d pixels (%g < %g)", xxc,
cpl_vector_get(xcorr, hsize), xc);
@@ -984,7 +1054,7 @@ irplib_vector_fill_line_spectrum_model(cpl_vector * self,
int hsize,
cpl_boolean dofast,
cpl_boolean dolog,
- unsigned * pulines)
+ cpl_size * pulines)
{
cpl_errorstate prestate;
@@ -1007,7 +1077,7 @@ irplib_vector_fill_line_spectrum_model(cpl_vector * self,
double xderiv, xextreme;
cpl_error_code error = CPL_ERROR_NONE;
int iline;
- unsigned ulines = 0;
+ cpl_size ulines = 0;
cpl_ensure_code(self != NULL, CPL_ERROR_NULL_INPUT);
cpl_ensure_code(disp != NULL, CPL_ERROR_NULL_INPUT);
@@ -1305,7 +1375,6 @@ inline double irplib_erf_antideriv(double x, double sigma)
@param self The 1D-dispersion relation
@param data Pointer to a irplib_multimin struct
@return Minus the cross-correlation or GSL_NAN on error
- @note Just a stub so far
*/
/*----------------------------------------------------------------------------*/
static double irplib_gsl_correlation(const gsl_vector * self, void * data)
@@ -1339,8 +1408,13 @@ static double irplib_gsl_correlation(const gsl_vector * self, void * data)
cpl_polynomial_set_coeff(mindata->disp1d, &i, value);
}
+ /* Shift reference by -ndiff so filler can be used without offset.
+ The subsequent polynomial shift is reduced by -ndiff. */
+ cpl_ensure_code(!cpl_polynomial_shift_1d(mindata->disp1d, 0, -ndiff),
+ cpl_error_get_code());
+
if (mindata->filler(mindata->spectrum, mindata->disp1d,
- mindata->param, ndiff)
+ mindata->param)
|| !cpl_errorstate_is_equal(prestate)) {
/* The fill failed. Ensure the discarding of this candidate by
@@ -1382,10 +1456,11 @@ static double irplib_gsl_correlation(const gsl_vector * self, void * data)
cpl_polynomial_copy(mindata->mdisp, mindata->disp1d);
}
mindata->mxc = cpl_vector_get(mindata->vxc, mindata->maxxc);
- mindata->ishift = mindata->maxxc - ndiff;
+ mindata->ishift = mindata->maxxc; /* Offset -ndiff pre-shifted above */
cpl_msg_debug(cpl_func, "Local maximum: %g(%d) > %g(%d) (cost=%u:%u. "
"lines=%u)", mindata->mxc, mindata->maxxc, mindata->xc,
- ndiff, arclamp->cost, arclamp->xcost, arclamp->ulines);
+ ndiff, (unsigned)arclamp->cost, (unsigned)arclamp->xcost,
+ (unsigned)arclamp->ulines);
}
return -mindata->xc;
@@ -1410,7 +1485,7 @@ static double irplib_gsl_correlation(const gsl_vector * self, void * data)
@param maxfail Number of retries on failure
@param maxcont Number of retries on non-convergence
@param doplot Plot the cross-correlation as a function of pixel shift
- @param pxc On sucess, *pxc is the cross-correlation
+ @param pxc On success, *pxc is the cross-correlation
@return CPL_ERROR_NONE on success, otherwise the relevant CPL error code
@note Fails with CPL_ERROR_UNSUPPORTED_MODE if compiled without GSL.
self must be increasing in the interval from 1 to the length of obs.
@@ -1427,8 +1502,7 @@ irplib_polynomial_find_1d_from_correlation_all(cpl_polynomial * self,
cpl_error_code (* filler)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *,
- int),
+ irplib_base_spectrum_model *),
double pixtol,
double pixstep,
int hsize,
@@ -1493,13 +1567,14 @@ irplib_polynomial_find_1d_from_correlation_all(cpl_polynomial * self,
return cpl_error_set_where(cpl_func);
}
- if (model->ulines > (unsigned)linelim) {
+ if (model->ulines > (cpl_size)linelim) {
/* The initial, optimal (integer) shift */
const double xxc = cpl_vector_get(xtshiftx, 0);
const double xc0 = cpl_vector_get(xtshifty, 0);
cpl_msg_warning(cpl_func, "Doing only shift=%g pixels with lines=%u > "
- "%d and XC=%g", xxc, model->ulines, linelim, xc0);
+ "%d and XC=%g", xxc, (unsigned)model->ulines, linelim,
+ xc0);
cpl_polynomial_shift_1d(self, 0, xxc);
@@ -1541,49 +1616,69 @@ irplib_polynomial_find_1d_from_correlation_all(cpl_polynomial * self,
for (nfail = 0; nfail < maxfail; nfail++, xtpixtol *= 2.0,
xtpixstep *= 2.0) {
int restart = maxcont;
+ cpl_boolean redo;
+
do {
- error = irplib_polynomial_find_1d_from_correlation
+ if (error) {
+ cpl_errorstate_dump(prestate, CPL_FALSE,
+ irplib_errorstate_dump_debug);
+ cpl_errorstate_set(prestate);
+ }
+ error = irplib_polynomial_find_1d_from_correlation_
(cand, maxdeg, obs, model,
filler, xtpixtol, xtpixstep, 2,
- maxite, &xtxc);
- } while (error == CPL_ERROR_CONTINUE && --restart);
+ maxite, &xtxc, &redo);
+ if (redo && !error) error = CPL_ERROR_CONTINUE;
+ } while (((!error && redo) || error == CPL_ERROR_CONTINUE)
+ && --restart);
- if (!error) {
+ if (!error && !redo) {
cpl_msg_debug(cpl_func, "XC(imax=%d/%d:xtpixtol=%g): %g "
"(cost=%u:%u)", 1+imaxima, nmaxima, xtpixtol,
- xtxc, model->cost, model->xcost);
+ xtxc, (unsigned)model->cost,
+ (unsigned)model->xcost);
break;
}
cpl_msg_warning(cpl_func, "Increasing xtpixtol from %g (%g, imax="
"%d/%d)", xtpixtol, xtpixstep, 1+imaxima, nmaxima);
- if (model->ulines > (unsigned)linelim) {
+ if (model->ulines > (cpl_size)linelim) {
cpl_msg_warning(cpl_func, "Stopping search-refinement via "
- "catalogue with %u lines > %u", model->ulines,
- linelim);
+ "catalogue with %u lines > %d",
+ (unsigned)model->ulines, linelim);
break;
}
cpl_polynomial_copy(cand, start);
}
- /* Decrease tolerance until inconvergence, keep previous */
+ /* Decrease tolerance until divergence, keep previous */
for (; !error && xtpixtol > 0.0; xtpixtol *= 0.25, xtpixstep *= 0.5) {
int restart = maxcont;
+ cpl_boolean redo;
cpl_polynomial_copy(backup, cand);
do {
- error = irplib_polynomial_find_1d_from_correlation
+ if (error) {
+ cpl_errorstate_dump(prestate, CPL_FALSE,
+ irplib_errorstate_dump_debug);
+ cpl_errorstate_set(prestate);
+ }
+ error = irplib_polynomial_find_1d_from_correlation_
(cand, maxdeg, obs, model, filler,
- xtpixtol, xtpixstep, 2, maxite, &xtxc);
- } while (error == CPL_ERROR_CONTINUE && --restart);
+ xtpixtol, xtpixstep, 2, maxite, &xtxc, &redo);
+ if (redo && !error) error = CPL_ERROR_CONTINUE;
+ } while (((!error && redo) || error == CPL_ERROR_CONTINUE)
+ && --restart);
if (error) break;
ok = CPL_TRUE;
+ if (redo) break;
cpl_msg_debug(cpl_func, "XC(imax=%d/%d:xtpixtol=%g): %g (cost=%u:%u"
". ulines=%u)", 1+imaxima, nmaxima, xtpixtol, xtxc,
- model->cost, model->xcost, model->ulines);
- if (model->ulines > (unsigned)linelim) {
+ (unsigned)model->cost, (unsigned)model->xcost,
+ (unsigned)model->ulines);
+ if (model->ulines > (cpl_size)linelim) {
cpl_msg_info(cpl_func, "Stopping search-refinement via "
- "catalogue with %u lines > %u", model->ulines,
- linelim);
+ "catalogue with %u lines > %u",
+ (unsigned)model->ulines, linelim);
break;
}
}
@@ -1603,14 +1698,16 @@ irplib_polynomial_find_1d_from_correlation_all(cpl_polynomial * self,
cpl_msg_info(cpl_func, "XC(imax=%d/%d): %g -> %g (initial-shift=%g. "
"cost=%u:%u. lines=%u)", 1+imaxima, nmaxima,
cpl_vector_get(xtshifty, imaxima), xtxc,
- cpl_vector_get(xtshiftx, imaxima), model->cost,
- model->xcost, model->ulines);
+ cpl_vector_get(xtshiftx, imaxima),
+ (unsigned)model->cost, (unsigned)model->xcost,
+ (unsigned)model->ulines);
} else {
cpl_msg_info(cpl_func, "xc(imax=%d/%d): %g -> %g (initial-shift=%g. "
"cost=%u:%u. lines=%u)", 1+imaxima, nmaxima,
cpl_vector_get(xtshifty, imaxima), xtxc,
cpl_vector_get(xtshiftx, imaxima),
- model->cost, model->xcost, model->ulines);
+ (unsigned)model->cost, (unsigned)model->xcost,
+ (unsigned)model->ulines);
}
}
@@ -1619,9 +1716,14 @@ irplib_polynomial_find_1d_from_correlation_all(cpl_polynomial * self,
cpl_polynomial_delete(cand);
if (imaximum < 0) {
+ /* The initial, optimal (integer) shift */
+ const double xxc = cpl_vector_get(xtshiftx, 0);
+ const double xc0 = cpl_vector_get(xtshifty, 0);
+
error = cpl_error_set_message(cpl_func, CPL_ERROR_DATA_NOT_FOUND,
- "XC could not be optimized over %d "
- "local shift-maxima (xc=%g)", nmaxima, xc);
+ "Could not improve XC=%g over %d "
+ "local shift-maxima, best at shift %g",
+ xc0, nmaxima, xxc);
} else {
cpl_msg_info(cpl_func, "Maximal XC=%g (up from %g, with initial pixel-"
"shift of %g) at %d/%d local shift-maximi", xc,
diff --git a/irplib/irplib_wavecal.h b/irplib/irplib_wavecal.h
index 15189e5..1f29c20 100644
--- a/irplib/irplib_wavecal.h
+++ b/irplib/irplib_wavecal.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_wavecal.h,v 1.16 2009/10/21 14:49:42 llundin Exp $
+/* $Id: irplib_wavecal.h,v 1.18 2012/08/03 21:05:33 llundin Exp $
*
* This file is part of the IRPLIB Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: llundin $
- * $Date: 2009/10/21 14:49:42 $
- * $Revision: 1.16 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/08/03 21:05:33 $
+ * $Revision: 1.18 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_WAVECAL_H
@@ -63,16 +63,16 @@
/* Any spectrum model must have these members first! */
typedef struct {
- unsigned cost; /* May be incremented for cost counting */
- unsigned xcost; /* Ditto (can exclude failed fills) */
- unsigned ulines; /* May be set to number of lines used */
+ cpl_size cost; /* May be incremented for cost counting */
+ cpl_size xcost; /* Ditto (can exclude failed fills) */
+ cpl_size ulines; /* May be set to number of lines used */
} irplib_base_spectrum_model;
typedef struct {
- unsigned cost; /* May be incremented for cost counting */
- unsigned xcost; /* Ditto (can exclude failed fills) */
- unsigned ulines; /* May be set to number of lines used */
+ cpl_size cost; /* May be incremented for cost counting */
+ cpl_size xcost; /* Ditto (can exclude failed fills) */
+ cpl_size ulines; /* May be set to number of lines used */
double wslit; /* Slit Width */
double wfwhm; /* FWHM of transfer function */
@@ -99,8 +99,7 @@ irplib_polynomial_find_1d_from_correlation_all(cpl_polynomial *,
cpl_error_code (*)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *,
- int),
+ irplib_base_spectrum_model *),
double,
double,
int,
@@ -118,7 +117,7 @@ irplib_bivector_find_shift_from_correlation(cpl_bivector *,
cpl_error_code (*)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *, int),
+ irplib_base_spectrum_model *),
int,
cpl_boolean,
double *);
@@ -130,7 +129,7 @@ irplib_polynomial_shift_1d_from_correlation(cpl_polynomial *,
cpl_error_code (*)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *, int),
+ irplib_base_spectrum_model *),
int, cpl_boolean, double *);
cpl_error_code
@@ -140,31 +139,27 @@ irplib_polynomial_find_1d_from_correlation(cpl_polynomial *, int,
cpl_error_code (*)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *, int),
+ irplib_base_spectrum_model *),
double, double,
int, int, double *);
cpl_error_code irplib_vector_fill_line_spectrum(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *,
- int);
+ irplib_base_spectrum_model *);
cpl_error_code irplib_vector_fill_logline_spectrum(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *,
- int);
+ irplib_base_spectrum_model *);
cpl_error_code
irplib_vector_fill_line_spectrum_fast(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *,
- int);
+ irplib_base_spectrum_model *);
cpl_error_code
irplib_vector_fill_logline_spectrum_fast(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *,
- int);
+ irplib_base_spectrum_model *);
cpl_error_code irplib_plot_spectrum_and_model(const cpl_vector *,
const cpl_polynomial *,
@@ -172,8 +167,7 @@ cpl_error_code irplib_plot_spectrum_and_model(const cpl_vector *,
cpl_error_code (*)
(cpl_vector *,
const cpl_polynomial *,
- irplib_base_spectrum_model *,
- int));
+ irplib_base_spectrum_model *));
cpl_error_code irplib_polynomial_fit_2d_dispersion(cpl_polynomial *,
const cpl_image *,
diff --git a/irplib/irplib_wavecal_impl.h b/irplib/irplib_wavecal_impl.h
index d3e174a..c6d4b49 100644
--- a/irplib/irplib_wavecal_impl.h
+++ b/irplib/irplib_wavecal_impl.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_wavecal_impl.h,v 1.6 2009/10/21 14:49:42 llundin Exp $
+/* $Id: irplib_wavecal_impl.h,v 1.7 2012/08/03 21:05:34 llundin Exp $
*
* This file is part of the IRPLIB Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: llundin $
- * $Date: 2009/10/21 14:49:42 $
- * $Revision: 1.6 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/08/03 21:05:34 $
+ * $Revision: 1.7 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_WAVECAL_IMPL_H
@@ -49,7 +49,7 @@ cpl_error_code irplib_vector_fill_line_spectrum_model(cpl_vector *,
int,
cpl_boolean,
cpl_boolean,
- unsigned *);
+ cpl_size *);
double irplib_erf_antideriv(double, double);
diff --git a/irplib/irplib_wcs.c b/irplib/irplib_wcs.c
index 7e1d622..ff780c9 100644
--- a/irplib/irplib_wcs.c
+++ b/irplib/irplib_wcs.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2010/10/07 14:10:55 $
* $Revision: 1.8 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/irplib/irplib_wcs.h b/irplib/irplib_wcs.h
index 48d4482..e7eac7b 100644
--- a/irplib/irplib_wcs.h
+++ b/irplib/irplib_wcs.h
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2010/10/07 14:10:55 $
* $Revision: 1.7 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_WCS_H
diff --git a/irplib/irplib_wlxcorr.c b/irplib/irplib_wlxcorr.c
index 3b116b8..4f813b1 100644
--- a/irplib/irplib_wlxcorr.c
+++ b/irplib/irplib_wlxcorr.c
@@ -1,4 +1,4 @@
-/* $Id: irplib_wlxcorr.c,v 1.55 2012/01/12 11:50:41 llundin Exp $
+/* $Id: irplib_wlxcorr.c,v 1.57 2012/09/04 09:58:44 yjung Exp $
*
* This file is part of the IRPLIB package
* Copyright (C) 2002,2003 European Southern Observatory
@@ -19,10 +19,10 @@
*/
/*
- * $Author: llundin $
- * $Date: 2012/01/12 11:50:41 $
- * $Revision: 1.55 $
- * $Name: hawki-1_8_9 $
+ * $Author: yjung $
+ * $Date: 2012/09/04 09:58:44 $
+ * $Revision: 1.57 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -493,12 +493,25 @@ cpl_bivector * irplib_wlxcorr_cat_extract(
cpl_ensure(lines_catalog != NULL, CPL_ERROR_NULL_INPUT, NULL);
/* Find the 1st line */
- wave_min_id = cpl_vector_find(xlines, wave_min);
+ wave_min_id = (int)cpl_vector_find(xlines, wave_min);
+ if (wave_min_id < 0) {
+ cpl_error_set_message_macro(cpl_func, CPL_ERROR_ILLEGAL_INPUT,
+ __FILE__, __LINE__,
+ "The starting wavelength cannot be found") ;
+ return NULL ;
+ }
+
/* The first line must be greater than (at least?) wave_min */
if (dxlines[wave_min_id] <= wave_min) wave_min_id++;
/* Find the last line */
- wave_max_id = cpl_vector_find(xlines, wave_max);
+ wave_max_id = (int)cpl_vector_find(xlines, wave_max);
+ if (wave_max_id < 0) {
+ cpl_error_set_message_macro(cpl_func, CPL_ERROR_ILLEGAL_INPUT,
+ __FILE__, __LINE__,
+ "The ending wavelength cannot be found") ;
+ return NULL ;
+ }
/* The last line must be less than wave_max */
if (dxlines[wave_max_id] >= wave_min) wave_max_id--;
@@ -724,12 +737,18 @@ int irplib_wlxcorr_plot_solution(
@brief Plot the spectral table
@param spc_table The spectral table
@param title A title
+ @param first_plotted_line idx of the first line to plot (strongest to
+ weakest, 1 is the strongest)
+ @param last_plotted_line idx of the last line to plot (strongest to
+ weakest, 1 is the strongest). If 0, no line is plotted.
@return 0 if ok, -1 otherwise
*/
/*----------------------------------------------------------------------------*/
int irplib_wlxcorr_plot_spc_table(
const cpl_table * spc_table,
- const char * title)
+ const char * title,
+ int first_plotted_line,
+ int last_plotted_line)
{
char title_loc[1024] ;
cpl_vector ** vectors ;
@@ -737,16 +756,17 @@ int irplib_wlxcorr_plot_spc_table(
cpl_vector * tmp_vec ;
int nsamples ;
double max, mean1, mean3 ;
- int start_ind, stop_ind, nblines, hsize_pix ;
+ int start_ind, stop_ind, hsize_pix ;
int i, j ;
/* Test entries */
+ if (first_plotted_line > last_plotted_line) return -1 ;
if (spc_table == NULL) return -1 ;
/* Initialise */
nsamples = cpl_table_get_nrow(spc_table) ;
hsize_pix = 10 ;
- nblines = 0 ;
+
sprintf(title_loc,
"t '%s - 1-Initial catalog/2-Corrected catalog/3-Observed' w lines",
title) ;
@@ -785,10 +805,10 @@ int irplib_wlxcorr_plot_spc_table(
title) ;
title_loc[1023] = (char)0 ;
tmp_vec = cpl_vector_duplicate(vectors[2]) ;
- for (i=0 ; i<nblines ; i++) {
+ for (i=0 ; i<last_plotted_line ; i++) {
/* Find the brightest line */
if ((max = cpl_vector_get_max(tmp_vec)) <= 0.0) break ;
- for (j=0 ; i<nsamples ; j++) {
+ for (j=0 ; j<nsamples ; j++) {
if (cpl_vector_get(tmp_vec, j) == max) break ;
}
if (j-hsize_pix < 0) start_ind = 0 ;
@@ -797,20 +817,22 @@ int irplib_wlxcorr_plot_spc_table(
else stop_ind = j+hsize_pix ;
for (j=start_ind ; j<=stop_ind ; j++) cpl_vector_set(tmp_vec, j, 0.0) ;
- sub_vectors = cpl_malloc(4*sizeof(cpl_vector*)) ;
- sub_vectors[0]=cpl_vector_extract(vectors[0],start_ind,stop_ind,1);
- sub_vectors[1]=cpl_vector_extract(vectors[1],start_ind,stop_ind,1);
- sub_vectors[2]=cpl_vector_extract(vectors[2],start_ind,stop_ind,1);
- sub_vectors[3]=cpl_vector_extract(vectors[3],start_ind,stop_ind,1);
-
- cpl_plot_vectors("set grid;set xlabel 'Wavelength (nm)';", title_loc,
- "", (const cpl_vector **)sub_vectors, 4);
-
- cpl_vector_delete(sub_vectors[0]) ;
- cpl_vector_delete(sub_vectors[1]) ;
- cpl_vector_delete(sub_vectors[2]) ;
- cpl_vector_delete(sub_vectors[3]) ;
- cpl_free(sub_vectors) ;
+ if (i+1 >= first_plotted_line) {
+ sub_vectors = cpl_malloc(4*sizeof(cpl_vector*)) ;
+ sub_vectors[0]=cpl_vector_extract(vectors[0],start_ind,stop_ind,1);
+ sub_vectors[1]=cpl_vector_extract(vectors[1],start_ind,stop_ind,1);
+ sub_vectors[2]=cpl_vector_extract(vectors[2],start_ind,stop_ind,1);
+ sub_vectors[3]=cpl_vector_extract(vectors[3],start_ind,stop_ind,1);
+
+ cpl_plot_vectors("set grid;set xlabel 'Wavelength (nm)';",
+ title_loc, "", (const cpl_vector **)sub_vectors, 4);
+
+ cpl_vector_delete(sub_vectors[0]) ;
+ cpl_vector_delete(sub_vectors[1]) ;
+ cpl_vector_delete(sub_vectors[2]) ;
+ cpl_vector_delete(sub_vectors[3]) ;
+ cpl_free(sub_vectors) ;
+ }
}
cpl_vector_delete(tmp_vec) ;
diff --git a/irplib/irplib_wlxcorr.h b/irplib/irplib_wlxcorr.h
index d19ae4e..e6a3510 100644
--- a/irplib/irplib_wlxcorr.h
+++ b/irplib/irplib_wlxcorr.h
@@ -1,4 +1,4 @@
-/* $Id: irplib_wlxcorr.h,v 1.20 2008/11/06 12:45:28 llundin Exp $
+/* $Id: irplib_wlxcorr.h,v 1.21 2012/06/28 09:03:02 yjung Exp $
*
* This file is part of the IRPLIB package
* Copyright (C) 2002,2003 European Southern Observatory
@@ -19,10 +19,10 @@
*/
/*
- * $Author: llundin $
- * $Date: 2008/11/06 12:45:28 $
- * $Revision: 1.20 $
- * $Name: hawki-1_8_9 $
+ * $Author: yjung $
+ * $Date: 2012/06/28 09:03:02 $
+ * $Revision: 1.21 $
+ * $Name: hawki-1_8_10 $
*/
#ifndef IRPLIB_WLXCORR_H
@@ -48,7 +48,7 @@
Functions prototypes
-----------------------------------------------------------------------------*/
-int irplib_wlxcorr_plot_spc_table(const cpl_table *, const char *) ;
+int irplib_wlxcorr_plot_spc_table(const cpl_table *, const char *, int, int) ;
int irplib_wlxcorr_catalog_plot(const cpl_bivector *, double, double) ;
int irplib_wlxcorr_plot_solution(const cpl_polynomial *, const cpl_polynomial *,
const cpl_polynomial *, int, int) ;
diff --git a/irplib/tests/Makefile.in b/irplib/tests/Makefile.in
index 61c0341..10dc108 100644
--- a/irplib/tests/Makefile.in
+++ b/irplib/tests/Makefile.in
@@ -153,6 +153,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -241,6 +245,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
diff --git a/irplib/tests/irplib_cat-test.c b/irplib/tests/irplib_cat-test.c
index efe51d6..18ae507 100644
--- a/irplib/tests/irplib_cat-test.c
+++ b/irplib/tests/irplib_cat-test.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2009/08/12 14:26:44 $
* $Revision: 1.9 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
/*-----------------------------------------------------------------------------
diff --git a/irplib/tests/irplib_polynomial-test.c b/irplib/tests/irplib_polynomial-test.c
index 9755a97..d6ad23f 100644
--- a/irplib/tests/irplib_polynomial-test.c
+++ b/irplib/tests/irplib_polynomial-test.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2011/12/14 13:05:01 $
* $Revision: 1.35 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
/*-----------------------------------------------------------------------------
diff --git a/irplib/tests/irplib_utils-test.c b/irplib/tests/irplib_utils-test.c
index 7d75f3f..66f8696 100644
--- a/irplib/tests/irplib_utils-test.c
+++ b/irplib/tests/irplib_utils-test.c
@@ -122,13 +122,13 @@ static cpl_boolean my_table_set_row(cpl_table * self,
const cpl_parameterlist * parlist)
{
- cpl_ensure_code(self != NULL, CPL_ERROR_NULL_INPUT);
- cpl_ensure_code(line != NULL, CPL_ERROR_NULL_INPUT);
- cpl_ensure_code(irow >= 0, CPL_ERROR_ILLEGAL_INPUT);
- cpl_ensure_code(rawframe != NULL, CPL_ERROR_NULL_INPUT);
- cpl_ensure_code(parlist != NULL, CPL_ERROR_NULL_INPUT);
+ cpl_ensure(self != NULL, CPL_ERROR_NULL_INPUT, CPL_FALSE);
+ cpl_ensure(line != NULL, CPL_ERROR_NULL_INPUT, CPL_FALSE);
+ cpl_ensure(irow >= 0, CPL_ERROR_ILLEGAL_INPUT, CPL_FALSE);
+ cpl_ensure(rawframe != NULL, CPL_ERROR_NULL_INPUT, CPL_FALSE);
+ cpl_ensure(parlist != NULL, CPL_ERROR_NULL_INPUT, CPL_FALSE);
- return CPL_ERROR_NONE;
+ return CPL_TRUE;
}
diff --git a/irplib/tests/irplib_wcs-test.c b/irplib/tests/irplib_wcs-test.c
index af75703..7937840 100644
--- a/irplib/tests/irplib_wcs-test.c
+++ b/irplib/tests/irplib_wcs-test.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2010/10/07 14:10:55 $
* $Revision: 1.8 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
/*-----------------------------------------------------------------------------
diff --git a/irplib/tests/irplib_wlxcorr-test.c b/irplib/tests/irplib_wlxcorr-test.c
index 629cae9..a8bc743 100644
--- a/irplib/tests/irplib_wlxcorr-test.c
+++ b/irplib/tests/irplib_wlxcorr-test.c
@@ -22,7 +22,7 @@
* $Author: llundin $
* $Date: 2012/01/12 12:38:38 $
* $Revision: 1.15 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
/*-----------------------------------------------------------------------------
diff --git a/recipes/Makefile.am b/recipes/Makefile.am
index 6ef3694..044e590 100644
--- a/recipes/Makefile.am
+++ b/recipes/Makefile.am
@@ -55,95 +55,95 @@ plugin_LTLIBRARIES = hawki_cal_dark.la \
hawki_cal_dark_la_SOURCES = hawki_cal_dark.c
hawki_cal_dark_la_LIBADD = $(LIBHAWKI)
-hawki_cal_dark_la_LDFLAGS = -module -avoid-version
+hawki_cal_dark_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_cal_dark_la_DEPENDENCIES = $(LIBHAWKI)
hawki_cal_flat_la_SOURCES = hawki_cal_flat.c
hawki_cal_flat_la_LIBADD = $(LIBHAWKI)
-hawki_cal_flat_la_LDFLAGS = -module -avoid-version
+hawki_cal_flat_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_cal_flat_la_DEPENDENCIES = $(LIBHAWKI)
hawki_cal_zpoint_la_SOURCES = hawki_cal_zpoint.c
hawki_cal_zpoint_la_LIBADD = $(LIBHAWKI)
-hawki_cal_zpoint_la_LDFLAGS = -module -avoid-version
+hawki_cal_zpoint_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_cal_zpoint_la_DEPENDENCIES = $(LIBHAWKI)
hawki_util_extinction_la_SOURCES = hawki_util_extinction.c
hawki_util_extinction_la_LIBADD = $(LIBHAWKI)
-hawki_util_extinction_la_LDFLAGS = -module -avoid-version
+hawki_util_extinction_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_util_extinction_la_DEPENDENCIES = $(LIBHAWKI)
hawki_cal_distortion_la_SOURCES = hawki_cal_distortion.c
hawki_cal_distortion_la_LIBADD = $(LIBHAWKI)
-hawki_cal_distortion_la_LDFLAGS = -module -avoid-version
+hawki_cal_distortion_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_cal_distortion_la_DEPENDENCIES = $(LIBHAWKI)
hawki_sci_jitter_la_SOURCES = hawki_sci_jitter.c
hawki_sci_jitter_la_LIBADD = $(LIBHAWKI)
-hawki_sci_jitter_la_LDFLAGS = -module -avoid-version
+hawki_sci_jitter_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_sci_jitter_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_basic_calib_la_SOURCES = hawki_step_basic_calib.c
hawki_step_basic_calib_la_LIBADD = $(LIBHAWKI)
-hawki_step_basic_calib_la_LDFLAGS = -module -avoid-version
+hawki_step_basic_calib_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_basic_calib_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_stats_la_SOURCES = hawki_step_stats.c
hawki_step_stats_la_LIBADD = $(LIBHAWKI)
-hawki_step_stats_la_LDFLAGS = -module -avoid-version
+hawki_step_stats_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_stats_la_DEPENDENCIES = $(LIBHAWKI)
-hawki_step_compute_bkg_la_SOURCES = hawki_step_compute_bkg.c
+hawki_step_compute_bkg_la_SOURCES = hawki_step_compute_bkg.cc
hawki_step_compute_bkg_la_LIBADD = $(LIBHAWKI)
-hawki_step_compute_bkg_la_LDFLAGS = -module -avoid-version
+hawki_step_compute_bkg_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_compute_bkg_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_subtract_bkg_la_SOURCES = hawki_step_subtract_bkg.c
hawki_step_subtract_bkg_la_LIBADD = $(LIBHAWKI)
-hawki_step_subtract_bkg_la_LDFLAGS = -module -avoid-version
+hawki_step_subtract_bkg_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_subtract_bkg_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_stitch_la_SOURCES = hawki_step_stitch.c
hawki_step_stitch_la_LIBADD = $(LIBHAWKI)
-hawki_step_stitch_la_LDFLAGS = -module -avoid-version
+hawki_step_stitch_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_stitch_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_apply_dist_la_SOURCES = hawki_step_apply_dist.c
hawki_step_apply_dist_la_LIBADD = $(LIBHAWKI)
-hawki_step_apply_dist_la_LDFLAGS = -module -avoid-version
+hawki_step_apply_dist_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_apply_dist_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_refine_offsets_la_SOURCES = hawki_step_refine_offsets.c
hawki_step_refine_offsets_la_LIBADD = $(LIBHAWKI)
-hawki_step_refine_offsets_la_LDFLAGS = -module -avoid-version
+hawki_step_refine_offsets_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_refine_offsets_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_combine_la_SOURCES = hawki_step_combine.c
hawki_step_combine_la_LIBADD = $(LIBHAWKI)
-hawki_step_combine_la_LDFLAGS = -module -avoid-version
+hawki_step_combine_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_combine_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_detect_obj_la_SOURCES = hawki_step_detect_obj.c
hawki_step_detect_obj_la_LIBADD = $(LIBHAWKI)
-hawki_step_detect_obj_la_LDFLAGS = -module -avoid-version
+hawki_step_detect_obj_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_detect_obj_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_photom_2mass_la_SOURCES = hawki_step_photom_2mass.c
hawki_step_photom_2mass_la_LIBADD = $(LIBHAWKI)
-hawki_step_photom_2mass_la_LDFLAGS = -module -avoid-version
+hawki_step_photom_2mass_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_photom_2mass_la_DEPENDENCIES = $(LIBHAWKI)
hawki_tec_filtchk_la_SOURCES = hawki_tec_filtchk.c
hawki_tec_filtchk_la_LIBADD = $(LIBHAWKI)
-hawki_tec_filtchk_la_LDFLAGS = -module -avoid-version
+hawki_tec_filtchk_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_tec_filtchk_la_DEPENDENCIES = $(LIBHAWKI)
hawki_util_gendist_la_SOURCES = hawki_util_gendist.c
hawki_util_gendist_la_LIBADD = $(LIBHAWKI)
-hawki_util_gendist_la_LDFLAGS = -module -avoid-version
+hawki_util_gendist_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_util_gendist_la_DEPENDENCIES = $(LIBHAWKI)
hawki_util_stdstars_la_SOURCES = hawki_util_stdstars.c
hawki_util_stdstars_la_LIBADD = $(LIBHAWKI)
-hawki_util_stdstars_la_LDFLAGS = -module -avoid-version
+hawki_util_stdstars_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_util_stdstars_la_DEPENDENCIES = $(LIBHAWKI)
diff --git a/recipes/Makefile.in b/recipes/Makefile.in
index 2908f53..2b4f62e 100644
--- a/recipes/Makefile.in
+++ b/recipes/Makefile.in
@@ -127,10 +127,10 @@ hawki_step_combine_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
am_hawki_step_compute_bkg_la_OBJECTS = hawki_step_compute_bkg.lo
hawki_step_compute_bkg_la_OBJECTS = \
$(am_hawki_step_compute_bkg_la_OBJECTS)
-hawki_step_compute_bkg_la_LINK = $(LIBTOOL) --tag=CC \
- $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(AM_CFLAGS) $(CFLAGS) $(hawki_step_compute_bkg_la_LDFLAGS) \
- $(LDFLAGS) -o $@
+hawki_step_compute_bkg_la_LINK = $(LIBTOOL) --tag=CXX \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
+ $(AM_CXXFLAGS) $(CXXFLAGS) \
+ $(hawki_step_compute_bkg_la_LDFLAGS) $(LDFLAGS) -o $@
am_hawki_step_detect_obj_la_OBJECTS = hawki_step_detect_obj.lo
hawki_step_detect_obj_la_OBJECTS = \
$(am_hawki_step_detect_obj_la_OBJECTS)
@@ -203,6 +203,15 @@ CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
SOURCES = $(hawki_cal_dark_la_SOURCES) \
$(hawki_cal_distortion_la_SOURCES) \
$(hawki_cal_flat_la_SOURCES) $(hawki_cal_zpoint_la_SOURCES) \
@@ -255,6 +264,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -343,6 +356,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
@@ -428,84 +442,84 @@ plugin_LTLIBRARIES = hawki_cal_dark.la \
hawki_cal_dark_la_SOURCES = hawki_cal_dark.c
hawki_cal_dark_la_LIBADD = $(LIBHAWKI)
-hawki_cal_dark_la_LDFLAGS = -module -avoid-version
+hawki_cal_dark_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_cal_dark_la_DEPENDENCIES = $(LIBHAWKI)
hawki_cal_flat_la_SOURCES = hawki_cal_flat.c
hawki_cal_flat_la_LIBADD = $(LIBHAWKI)
-hawki_cal_flat_la_LDFLAGS = -module -avoid-version
+hawki_cal_flat_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_cal_flat_la_DEPENDENCIES = $(LIBHAWKI)
hawki_cal_zpoint_la_SOURCES = hawki_cal_zpoint.c
hawki_cal_zpoint_la_LIBADD = $(LIBHAWKI)
-hawki_cal_zpoint_la_LDFLAGS = -module -avoid-version
+hawki_cal_zpoint_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_cal_zpoint_la_DEPENDENCIES = $(LIBHAWKI)
hawki_util_extinction_la_SOURCES = hawki_util_extinction.c
hawki_util_extinction_la_LIBADD = $(LIBHAWKI)
-hawki_util_extinction_la_LDFLAGS = -module -avoid-version
+hawki_util_extinction_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_util_extinction_la_DEPENDENCIES = $(LIBHAWKI)
hawki_cal_distortion_la_SOURCES = hawki_cal_distortion.c
hawki_cal_distortion_la_LIBADD = $(LIBHAWKI)
-hawki_cal_distortion_la_LDFLAGS = -module -avoid-version
+hawki_cal_distortion_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_cal_distortion_la_DEPENDENCIES = $(LIBHAWKI)
hawki_sci_jitter_la_SOURCES = hawki_sci_jitter.c
hawki_sci_jitter_la_LIBADD = $(LIBHAWKI)
-hawki_sci_jitter_la_LDFLAGS = -module -avoid-version
+hawki_sci_jitter_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_sci_jitter_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_basic_calib_la_SOURCES = hawki_step_basic_calib.c
hawki_step_basic_calib_la_LIBADD = $(LIBHAWKI)
-hawki_step_basic_calib_la_LDFLAGS = -module -avoid-version
+hawki_step_basic_calib_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_basic_calib_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_stats_la_SOURCES = hawki_step_stats.c
hawki_step_stats_la_LIBADD = $(LIBHAWKI)
-hawki_step_stats_la_LDFLAGS = -module -avoid-version
+hawki_step_stats_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_stats_la_DEPENDENCIES = $(LIBHAWKI)
-hawki_step_compute_bkg_la_SOURCES = hawki_step_compute_bkg.c
+hawki_step_compute_bkg_la_SOURCES = hawki_step_compute_bkg.cc
hawki_step_compute_bkg_la_LIBADD = $(LIBHAWKI)
-hawki_step_compute_bkg_la_LDFLAGS = -module -avoid-version
+hawki_step_compute_bkg_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_compute_bkg_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_subtract_bkg_la_SOURCES = hawki_step_subtract_bkg.c
hawki_step_subtract_bkg_la_LIBADD = $(LIBHAWKI)
-hawki_step_subtract_bkg_la_LDFLAGS = -module -avoid-version
+hawki_step_subtract_bkg_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_subtract_bkg_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_stitch_la_SOURCES = hawki_step_stitch.c
hawki_step_stitch_la_LIBADD = $(LIBHAWKI)
-hawki_step_stitch_la_LDFLAGS = -module -avoid-version
+hawki_step_stitch_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_stitch_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_apply_dist_la_SOURCES = hawki_step_apply_dist.c
hawki_step_apply_dist_la_LIBADD = $(LIBHAWKI)
-hawki_step_apply_dist_la_LDFLAGS = -module -avoid-version
+hawki_step_apply_dist_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_apply_dist_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_refine_offsets_la_SOURCES = hawki_step_refine_offsets.c
hawki_step_refine_offsets_la_LIBADD = $(LIBHAWKI)
-hawki_step_refine_offsets_la_LDFLAGS = -module -avoid-version
+hawki_step_refine_offsets_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_refine_offsets_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_combine_la_SOURCES = hawki_step_combine.c
hawki_step_combine_la_LIBADD = $(LIBHAWKI)
-hawki_step_combine_la_LDFLAGS = -module -avoid-version
+hawki_step_combine_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_combine_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_detect_obj_la_SOURCES = hawki_step_detect_obj.c
hawki_step_detect_obj_la_LIBADD = $(LIBHAWKI)
-hawki_step_detect_obj_la_LDFLAGS = -module -avoid-version
+hawki_step_detect_obj_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_detect_obj_la_DEPENDENCIES = $(LIBHAWKI)
hawki_step_photom_2mass_la_SOURCES = hawki_step_photom_2mass.c
hawki_step_photom_2mass_la_LIBADD = $(LIBHAWKI)
-hawki_step_photom_2mass_la_LDFLAGS = -module -avoid-version
+hawki_step_photom_2mass_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_step_photom_2mass_la_DEPENDENCIES = $(LIBHAWKI)
hawki_tec_filtchk_la_SOURCES = hawki_tec_filtchk.c
hawki_tec_filtchk_la_LIBADD = $(LIBHAWKI)
-hawki_tec_filtchk_la_LDFLAGS = -module -avoid-version
+hawki_tec_filtchk_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_tec_filtchk_la_DEPENDENCIES = $(LIBHAWKI)
hawki_util_gendist_la_SOURCES = hawki_util_gendist.c
hawki_util_gendist_la_LIBADD = $(LIBHAWKI)
-hawki_util_gendist_la_LDFLAGS = -module -avoid-version
+hawki_util_gendist_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_util_gendist_la_DEPENDENCIES = $(LIBHAWKI)
hawki_util_stdstars_la_SOURCES = hawki_util_stdstars.c
hawki_util_stdstars_la_LIBADD = $(LIBHAWKI)
-hawki_util_stdstars_la_LDFLAGS = -module -avoid-version
+hawki_util_stdstars_la_LDFLAGS = -module -avoid-version -no-undefined
hawki_util_stdstars_la_DEPENDENCIES = $(LIBHAWKI)
all: all-am
.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
+.SUFFIXES: .c .cc .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
@@ -653,6 +667,27 @@ distclean-compile:
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
+.cc.o:
+ at am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
+
+.cc.obj:
+ at am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
+ at am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.cc.lo:
+ at am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+ at am__fastdepCXX_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+ at AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+ at am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
+
mostlyclean-libtool:
-rm -f *.lo
diff --git a/recipes/hawki_cal_dark.c b/recipes/hawki_cal_dark.c
index 76a1bf5..9ddd12b 100644
--- a/recipes/hawki_cal_dark.c
+++ b/recipes/hawki_cal_dark.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/02/16 16:33:21 $
* $Revision: 1.21 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_cal_distortion.c b/recipes/hawki_cal_distortion.c
index 0e9d812..3f5913e 100644
--- a/recipes/hawki_cal_distortion.c
+++ b/recipes/hawki_cal_distortion.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2012/04/23 10:02:57 $
* $Revision: 1.14 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_cal_flat.c b/recipes/hawki_cal_flat.c
index fda775f..dc88e2d 100644
--- a/recipes/hawki_cal_flat.c
+++ b/recipes/hawki_cal_flat.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2012/01/11 15:02:18 $
* $Revision: 1.25 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_cal_zpoint.c b/recipes/hawki_cal_zpoint.c
index bdc612a..797610b 100644
--- a/recipes/hawki_cal_zpoint.c
+++ b/recipes/hawki_cal_zpoint.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2012/04/23 09:58:56 $
* $Revision: 1.34 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_sci_jitter.c b/recipes/hawki_sci_jitter.c
index c4732ba..b0eb49f 100644
--- a/recipes/hawki_sci_jitter.c
+++ b/recipes/hawki_sci_jitter.c
@@ -1,4 +1,4 @@
-/* $Id: hawki_sci_jitter.c,v 1.30 2011/12/22 15:27:06 cgarcia Exp $
+/* $Id: hawki_sci_jitter.c,v 1.31 2012/12/04 09:41:34 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2011/12/22 15:27:06 $
- * $Revision: 1.30 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/04 09:41:34 $
+ * $Revision: 1.31 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -64,6 +64,11 @@
Functions prototypes
-----------------------------------------------------------------------------*/
+#ifdef __cplusplus
+extern "C"
+#endif
+int cpl_plugin_get_info(cpl_pluginlist * list);
+
static int hawki_sci_jitter_create(cpl_plugin *) ;
static int hawki_sci_jitter_exec(cpl_plugin *) ;
static int hawki_sci_jitter_destroy(cpl_plugin *) ;
@@ -1203,7 +1208,8 @@ static int hawki_sci_jitter_sky_running
/* Tests on validity of rejection parameters */
if (((rejmin+rejmax)>=halfw) || (halfw<1) || (rejmin<0) || (rejmax<0)) {
- cpl_msg_error(cpl_func, "cannot run filter with rej parms %d (%d-%d)",
+ cpl_msg_error(cpl_func, "cannot compute running median with "
+ "rejection parameters %d (%d-%d)",
halfw, rejmin, rejmax);
return -1;
}
@@ -1227,7 +1233,7 @@ static int hawki_sci_jitter_sky_running
/* Create the background image, to later compute stats */
bkg = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
- hawki_bkg_from_running_mean_detector
+ hawki_bkg_from_running_mean
(in, medians, k, halfw, rejmin, rejmax, bkg);
/* Subtract the background from the current image */
@@ -1907,15 +1913,25 @@ static int hawki_sci_jitter_save
/* Fill the QC */
cpl_propertylist_append_double
- (qclists[i], "ESO QC BACKGD MEAN", bg_mean) ;
+ (qclists[i], "ESO QC BACKGD MEAN", bg_mean);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC BACKGD MEAN",
+ "Mean of all the image mean backgrounds");
cpl_propertylist_append_double
(qclists[i], "ESO QC BACKGD STDEV", bg_stdev);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC BACKGD STDEV",
+ "The standard deviation of all the image mean backgrounds");
cpl_propertylist_append_double
(qclists[i], "ESO QC BACKGD INSTMAG", bg_instmag) ;
+ cpl_propertylist_set_comment(qclists[i], "ESO QC BACKGD INSTMAG",
+ "Mean of all the image mean backgrounds in instrumental magnitudes");
cpl_propertylist_append_int
(qclists[i], "ESO QC NBOBJS", hawki_sci_jitter_output.nbobjs[i]);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC NBOBJS",
+ "Number of detected objects in the combined image");
cpl_propertylist_append_double
(qclists[i], "ESO QC IQ", hawki_sci_jitter_output.iq[i]);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC IQ",
+ "Estimated image quality [arcsec]");
cpl_propertylist_append_double
(qclists[i], "ESO QC IQ DIFF AMBI",
hawki_sci_jitter_output.iq[i] - cpl_propertylist_get_double
@@ -1927,18 +1943,28 @@ static int hawki_sci_jitter_save
cpl_propertylist_append_double
(qclists[i], "ESO QC FWHM PIX",
hawki_sci_jitter_output.fwhm_pix[i]);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC FWHM PIX",
+ "The median FWHM in the image [pixels]");
cpl_propertylist_append_double
(qclists[i], "ESO QC FWHM ARCSEC",
hawki_sci_jitter_output.fwhm_arcsec[i]);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC FWHM ARCSEC",
+ "The median FWHM in the image [arcsec]");
cpl_propertylist_append_double
(qclists[i], "ESO QC FWHM MODE",
hawki_sci_jitter_output.fwhm_mode[i]);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC FWHM MODE",
+ "The mode FWHM in the image [pixels]");
cpl_propertylist_append_double
(qclists[i], "ESO QC COMBINED POSX",
hawki_sci_jitter_output.combined_pos_x[i]);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC COMBINED POSX",
+ "Position in X of the first image");
cpl_propertylist_append_double
(qclists[i], "ESO QC COMBINED POSY",
hawki_sci_jitter_output.combined_pos_y[i]);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC COMBINED POSY",
+ "Position in Y of the first image");
cpl_propertylist_append_double
(qclists[i], "ESO QC COMBINED CUMOFFSETX",
hawki_sci_jitter_output.combined_cumoffset_x[i]);
@@ -1947,9 +1973,13 @@ static int hawki_sci_jitter_save
hawki_sci_jitter_output.combined_cumoffset_y[i]);
cpl_propertylist_append_int
(qclists[i], "ESO QC DATANCOM",hawki_sci_jitter_output.ncomb[i]);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC DATANCOM",
+ "Number of files used for the reduction");
cpl_propertylist_append_double
(qclists[i], "ESO QC AIRMASS MEAN",
hawki_sci_jitter_output.mean_airmass);
+ cpl_propertylist_set_comment(qclists[i], "ESO QC AIRMASS MEAN",
+ "Average airmass");
/* Update WCS and write them */
crpix1 = cpl_propertylist_get_double(wcslist, "CRPIX1");
diff --git a/recipes/hawki_step_apply_dist.c b/recipes/hawki_step_apply_dist.c
index 57314e3..3e99588 100644
--- a/recipes/hawki_step_apply_dist.c
+++ b/recipes/hawki_step_apply_dist.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/03/09 10:48:38 $
* $Revision: 1.10 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_step_basic_calib.c b/recipes/hawki_step_basic_calib.c
index d4b3375..8be70b3 100644
--- a/recipes/hawki_step_basic_calib.c
+++ b/recipes/hawki_step_basic_calib.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/01/31 11:03:23 $
* $Revision: 1.13 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_step_combine.c b/recipes/hawki_step_combine.c
index f315c5a..a6d3752 100644
--- a/recipes/hawki_step_combine.c
+++ b/recipes/hawki_step_combine.c
@@ -1,4 +1,4 @@
-/* $Id: hawki_step_combine.c,v 1.24 2012/04/23 10:04:04 cgarcia Exp $
+/* $Id: hawki_step_combine.c,v 1.25 2012/11/30 14:50:51 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2012/04/23 10:04:04 $
- * $Revision: 1.24 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/11/30 14:50:51 $
+ * $Revision: 1.25 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -56,6 +56,11 @@
Functions prototypes
-----------------------------------------------------------------------------*/
+#ifdef __cplusplus
+extern "C"
+#endif
+int cpl_plugin_get_info(cpl_pluginlist * list);
+
static int hawki_step_combine_create(cpl_plugin *) ;
static int hawki_step_combine_exec(cpl_plugin *) ;
static int hawki_step_combine_destroy(cpl_plugin *) ;
diff --git a/recipes/hawki_step_compute_bkg.c b/recipes/hawki_step_compute_bkg.cc
similarity index 74%
rename from recipes/hawki_step_compute_bkg.c
rename to recipes/hawki_step_compute_bkg.cc
index 4e77b87..f7d2e52 100644
--- a/recipes/hawki_step_compute_bkg.c
+++ b/recipes/hawki_step_compute_bkg.cc
@@ -1,4 +1,4 @@
-/* $Id: hawki_step_compute_bkg.c,v 1.17 2011/10/24 10:42:43 cgarcia Exp $
+/* $Id: hawki_step_compute_bkg.cc,v 1.5 2012/12/07 13:44:19 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2008 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2011/10/24 10:42:43 $
- * $Revision: 1.17 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/12/07 13:44:19 $
+ * $Revision: 1.5 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -45,6 +45,7 @@
#include "hawki_dfs.h"
#include "hawki_bkg.h"
#include "hawki_calib.h"
+#include "hawki_image.h"
/*-----------------------------------------------------------------------------
Structs
@@ -64,6 +65,11 @@ static struct
Functions prototypes
-----------------------------------------------------------------------------*/
+#ifdef __cplusplus
+extern "C"
+#endif
+int cpl_plugin_get_info(cpl_pluginlist * list);
+
static int hawki_step_compute_bkg_create(cpl_plugin *) ;
static int hawki_step_compute_bkg_exec(cpl_plugin *) ;
static int hawki_step_compute_bkg_destroy(cpl_plugin *) ;
@@ -73,8 +79,8 @@ static int hawki_step_compute_bkg_from_objects_qc_save
(cpl_frameset * objframes,
cpl_frameset * maskframes,
cpl_frameset * offsetsframes,
- cpl_frameset * x_distortionframes,
- cpl_frameset * y_distortionframes,
+ cpl_frameset * distortionframes_x,
+ cpl_frameset * distortionframes_y,
cpl_parameterlist * parlist,
cpl_frameset * recipe_framelist);
static int hawki_step_compute_bkg_from_objects_median_save
@@ -91,8 +97,8 @@ static int hawki_step_compute_bkg_from_objects_running_median_save
(cpl_frameset * objframes,
cpl_frameset * maskframes,
cpl_frameset * offsetframes,
- cpl_frameset * x_distortionframes,
- cpl_frameset * y_distortionframes,
+ cpl_frameset * distortionframes_x,
+ cpl_frameset * distortionframes_y,
cpl_parameterlist * recipe_parlist,
cpl_frameset * recipe_framelist);
static int hawki_step_compute_bkg_from_running_median_nonmasked_save
@@ -104,10 +110,10 @@ static int hawki_step_compute_bkg_from_running_median_nonmasked_save
cpl_parameterlist * recipe_parlist);
static int hawki_step_compute_bkg_from_running_median_masked_save
(const cpl_frameset * objframes,
- cpl_frame * maskframe,
+ cpl_frame * globalmaskframe,
cpl_bivector ** offsets,
- cpl_frame * x_distortionframe,
- cpl_frame * y_distortionframe,
+ cpl_frame * distortionframe_x,
+ cpl_frame * distortionframe_y,
int nhalf_window,
int rejlow,
int rejhigh,
@@ -118,10 +124,19 @@ static int hawki_step_compute_bkg_from_running_median_masked_save
int hawki_step_compute_bkg_retrieve_input_param
(cpl_parameterlist * parlist);
+cpl_image * hawki_step_compute_bkg_load_mask
+(cpl_frame * maskframe, int extension, double * mask_off_x, double * mask_off_y);
+
+int hawki_step_compute_bkg_get_inverse_dist
+(cpl_frame * x_distortionframe, cpl_frame * y_distortionframe, int idet,
+ cpl_image ** dist_x, cpl_image **dist_y,
+ cpl_size target_nx, cpl_size target_ny);
+
/*-----------------------------------------------------------------------------
Static variables
-----------------------------------------------------------------------------*/
+
static char hawki_step_compute_bkg_description[] =
"hawki_step_compute_bkg -- hawki background computation utility.\n"
"This recipe will create the associated background images\n"
@@ -153,7 +168,7 @@ static char hawki_step_compute_bkg_description[] =
/*----------------------------------------------------------------------------*/
int cpl_plugin_get_info(cpl_pluginlist * list)
{
- cpl_recipe * recipe = cpl_calloc(1, sizeof(*recipe)) ;
+ cpl_recipe * recipe = (cpl_recipe*)cpl_calloc(1, sizeof(*recipe)) ;
cpl_plugin * plugin = &recipe->interface ;
cpl_plugin_init(plugin,
@@ -306,13 +321,28 @@ static int hawki_step_compute_bkg(
cpl_frameset * objframes = NULL;
cpl_frameset * skyframes;
cpl_frameset * maskframes;
- cpl_frameset * x_distortionframes;
- cpl_frameset * y_distortionframes;
+ cpl_frameset * distortionframes_x;
+ cpl_frameset * distortionframes_y;
cpl_frameset * offsetsframes = NULL;
/* Get the recipe parameters */
hawki_step_compute_bkg_retrieve_input_param(parlist);
+ /* Tests on validity of rejection parameters */
+ if (((hawki_step_compute_bkg_config.rejlow +
+ hawki_step_compute_bkg_config.rejhigh) >=
+ hawki_step_compute_bkg_config.nhalf_window) ||
+ (hawki_step_compute_bkg_config.nhalf_window<1) ||
+ (hawki_step_compute_bkg_config.rejlow<0) ||
+ (hawki_step_compute_bkg_config.rejhigh<0)) {
+ cpl_msg_error(cpl_func,
+ "nhalf_window (%d) must be greater than rejlow (%d) + rejhigh (%d)",
+ hawki_step_compute_bkg_config.nhalf_window,
+ hawki_step_compute_bkg_config.rejlow,
+ hawki_step_compute_bkg_config.rejhigh);
+ return -1;
+ }
+
/* Identify the RAW and CALIB frames in the input frameset */
if (hawki_dfs_set_groups(framelist))
{
@@ -333,26 +363,26 @@ static int hawki_step_compute_bkg(
return -1 ;
}
- /* Retrieve the mask */
+ /* Retrieve the mask and distortion */
maskframes = hawki_extract_frameset
(framelist, HAWKI_CALPRO_OBJ_MASK);
if(maskframes != NULL)
{
offsetsframes = hawki_extract_frameset
(framelist, HAWKI_CALPRO_OFFSETS);
- x_distortionframes = hawki_extract_frameset
+ distortionframes_x = hawki_extract_frameset
(framelist, HAWKI_CALPRO_DISTORTION_X);
- y_distortionframes = hawki_extract_frameset
+ distortionframes_y = hawki_extract_frameset
(framelist, HAWKI_CALPRO_DISTORTION_Y);
- if((x_distortionframes == NULL && y_distortionframes != NULL) ||
- (x_distortionframes != NULL && y_distortionframes == NULL))
+ if((distortionframes_x == NULL && distortionframes_y != NULL) ||
+ (distortionframes_x != NULL && distortionframes_y == NULL))
{
cpl_msg_error(__func__, "One X-distortion frame (%s) and one Y-distortion (%s)"
"must be provided", HAWKI_CALPRO_DISTORTION_X, HAWKI_CALPRO_DISTORTION_Y);
cpl_frameset_delete(skyframes);
cpl_frameset_delete(maskframes);
- cpl_frameset_delete(x_distortionframes);
- cpl_frameset_delete(y_distortionframes);
+ cpl_frameset_delete(distortionframes_x);
+ cpl_frameset_delete(distortionframes_y);
return -1 ;
}
}
@@ -361,7 +391,7 @@ static int hawki_step_compute_bkg(
if(skyframes == NULL)
hawki_step_compute_bkg_from_objects_qc_save
(objframes,
- maskframes, offsetsframes, x_distortionframes, y_distortionframes,
+ maskframes, offsetsframes, distortionframes_x, distortionframes_y,
parlist, framelist);
else
hawki_step_compute_bkg_from_sky_median_save
@@ -376,10 +406,10 @@ static int hawki_step_compute_bkg(
if(maskframes != NULL)
{
cpl_frameset_delete(maskframes);
- if(x_distortionframes != NULL)
- cpl_frameset_delete(x_distortionframes);
- if(y_distortionframes != NULL)
- cpl_frameset_delete(y_distortionframes);
+ if(distortionframes_x != NULL)
+ cpl_frameset_delete(distortionframes_x);
+ if(distortionframes_y != NULL)
+ cpl_frameset_delete(distortionframes_y);
if(offsetsframes != NULL)
cpl_frameset_delete(offsetsframes);
}
@@ -404,8 +434,8 @@ static int hawki_step_compute_bkg_from_objects_qc_save
(cpl_frameset * objframes,
cpl_frameset * maskframes,
cpl_frameset * offsetsframes,
- cpl_frameset * x_distortionframes,
- cpl_frameset * y_distortionframes,
+ cpl_frameset * distortionframes_x,
+ cpl_frameset * distortionframes_y,
cpl_parameterlist * parlist,
cpl_frameset * recipe_framelist)
{
@@ -428,7 +458,7 @@ static int hawki_step_compute_bkg_from_objects_qc_save
cpl_msg_info(__func__, "Using running median of object images");
hawki_step_compute_bkg_from_objects_running_median_save
(objframes, maskframes, offsetsframes,
- x_distortionframes, y_distortionframes,
+ distortionframes_x, distortionframes_y,
parlist, recipe_framelist);
}
if (cpl_error_get_code())
@@ -555,8 +585,8 @@ static int hawki_step_compute_bkg_from_objects_running_median_save
(cpl_frameset * objframes,
cpl_frameset * maskframes,
cpl_frameset * offsetframes,
- cpl_frameset * x_distortionframes,
- cpl_frameset * y_distortionframes,
+ cpl_frameset * distortionframes_x,
+ cpl_frameset * distortionframes_y,
cpl_parameterlist * recipe_parlist,
cpl_frameset * recipe_framelist)
{
@@ -585,22 +615,22 @@ static int hawki_step_compute_bkg_from_objects_running_median_save
{
cpl_frame * maskframe;
cpl_bivector ** offsets; /* Detector order */
- cpl_frame * x_distortionframe;
- cpl_frame * y_distortionframe;
+ cpl_frame * distortionframe_x;
+ cpl_frame * distortionframe_y;
int idet;
cpl_msg_info(__func__,"Using masked objects");
maskframe = cpl_frameset_get_first(maskframes);
- if(x_distortionframes == NULL && y_distortionframes == NULL )
+ if(distortionframes_x == NULL && distortionframes_y == NULL )
{
- x_distortionframe = NULL;
- y_distortionframe = NULL;
+ distortionframe_x = NULL;
+ distortionframe_y = NULL;
}
else
{
- x_distortionframe = cpl_frameset_get_first(x_distortionframes);
- y_distortionframe = cpl_frameset_get_first(y_distortionframes);
+ distortionframe_x = cpl_frameset_get_first(distortionframes_x);
+ distortionframe_y = cpl_frameset_get_first(distortionframes_y);
}
/* Get the offsets */
@@ -615,7 +645,7 @@ static int hawki_step_compute_bkg_from_objects_running_median_save
cpl_msg_error(__func__, "Cannot load the header offsets");
return -1;
}
- offsets = cpl_malloc(HAWKI_NB_DETECTORS * sizeof(cpl_bivector *));
+ offsets = (cpl_bivector **)cpl_malloc(HAWKI_NB_DETECTORS * sizeof(cpl_bivector *));
for(idet = 0; idet < HAWKI_NB_DETECTORS; ++idet)
{
offsets[idet] = cpl_bivector_duplicate(offsets_all_chips);
@@ -644,8 +674,8 @@ static int hawki_step_compute_bkg_from_objects_running_median_save
(objframes,
maskframe,
offsets,
- x_distortionframe,
- y_distortionframe,
+ distortionframe_x,
+ distortionframe_x,
hawki_step_compute_bkg_config.nhalf_window,
hawki_step_compute_bkg_config.rejlow,
hawki_step_compute_bkg_config.rejhigh,
@@ -694,10 +724,11 @@ int hawki_step_compute_bkg_from_running_median_nonmasked_save
cpl_frameset * used_frameset;
const cpl_frame * target_frame;
char filename[256];
- snprintf(filename, 256, "hawki_step_compute_bkg_%03d.fits", iobj + 1);
+ snprintf(filename, 256, "hawki_step_compute_bkg_%04d.fits", iobj + 1);
target_frame = cpl_frameset_get_frame_const(objframes, iobj);
used_frameset = cpl_frameset_new();
cpl_frameset_insert(used_frameset, cpl_frame_duplicate(target_frame));
+ hawki_frameset_append(used_frameset, objframes);
hawki_main_header_save(recipe_framelist,
recipe_parlist,
used_frameset,
@@ -706,7 +737,7 @@ int hawki_step_compute_bkg_from_running_median_nonmasked_save
HAWKI_PROTYPE_BKGIMAGE,
NULL,
filename);
- snprintf(filename, 256, "hawki_step_compute_bkg_bpm_%03d.fits", iobj + 1);
+ snprintf(filename, 256, "hawki_step_compute_bkg_bpm_%04d.fits", iobj + 1);
hawki_main_header_save(recipe_framelist,
recipe_parlist,
used_frameset,
@@ -722,35 +753,27 @@ int hawki_step_compute_bkg_from_running_median_nonmasked_save
cpl_msg_indent_more();
for(iext = 0; iext < HAWKI_NB_DETECTORS; ++iext)
{
- cpl_imagelist * img_serie;
- cpl_vector * medians;
+ hawki_bkg_frames_buffer * frames_buffer;
+ cpl_image * img_ref;
+ int nx;
+ int ny;
/* Info message */
cpl_msg_info(__func__,"Working on extension %d", iext + 1);
-
- /* Loading the object frame */
- img_serie = hawki_load_extensions(objframes, iext + 1, CPL_TYPE_FLOAT);
- if(img_serie== NULL)
- {
- cpl_msg_error(__func__, "Error reading object image") ;
- return -1;
- }
-
- /* Pre-compute median value in each plane */
- medians = cpl_vector_new(nobj);
- for (iobj=0 ; iobj<nobj ; iobj++)
- {
- cpl_vector_set
- (medians,
- iobj,
- cpl_image_get_median(cpl_imagelist_get(img_serie, iobj))) ;
- }
+ /* Get the size of the bkg */
+ img_ref = hawki_load_frame_extension
+ (cpl_frameset_get_first_const(objframes), iext + 1, CPL_TYPE_FLOAT);
+ nx = cpl_image_get_size_x(img_ref);
+ ny = cpl_image_get_size_y(img_ref);
+ cpl_image_delete(img_ref);
+
+ /* Allocating the buffer structure */
+ frames_buffer = hawki_bkg_frames_buffer_init(objframes);
+
cpl_msg_indent_more();
for(iobj = 0 ; iobj < nobj ; ++iobj)
{
- int nx;
- int ny;
cpl_image * this_bkg_image;
cpl_image * this_bkg_image_mask;
char filename[256];
@@ -758,15 +781,14 @@ int hawki_step_compute_bkg_from_running_median_nonmasked_save
/* Info message */
cpl_msg_info(__func__,"Computing bkg for image %d", iobj + 1);
- /* Creates the background image */
- nx = cpl_image_get_size_x(cpl_imagelist_get(img_serie, 0));
- ny = cpl_image_get_size_y(cpl_imagelist_get(img_serie, 0));
+ /* Create the background image */
this_bkg_image = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
/* Actually computing the running mean */
- if(hawki_bkg_from_running_mean_detector
- (img_serie,
- medians,
+ if(hawki_bkg_from_running_mean_frame_extension
+ (frames_buffer,
+ NULL, NULL, NULL, 0,0, NULL, NULL,
+ iext,
iobj,
nhalf_window,
rejlow,
@@ -774,16 +796,14 @@ int hawki_step_compute_bkg_from_running_median_nonmasked_save
this_bkg_image) != 0)
{
cpl_msg_error(__func__, "Cannot compute bkg");
- cpl_vector_delete(medians);
- cpl_imagelist_delete(img_serie);
cpl_image_delete(this_bkg_image);
return -1;
}
-
+
/* Save the extension bad pixel mask */
this_bkg_image_mask =
cpl_image_new_from_mask(cpl_image_get_bpm(this_bkg_image));
- snprintf(filename, 256, "hawki_step_compute_bkg_bpm_%03d.fits",iobj +1);
+ snprintf(filename, 256, "hawki_step_compute_bkg_bpm_%04d.fits",iobj +1);
hawki_image_ext_save
(objframes,
this_bkg_image_mask,
@@ -795,7 +815,7 @@ int hawki_step_compute_bkg_from_running_median_nonmasked_save
hawki_step_compute_bkg_interpolate_badpix(this_bkg_image);
/* Save this extension */
- snprintf(filename, 256, "hawki_step_compute_bkg_%03d.fits",iobj +1);
+ snprintf(filename, 256, "hawki_step_compute_bkg_%04d.fits",iobj +1);
hawki_image_ext_save
(objframes,
this_bkg_image,
@@ -808,17 +828,16 @@ int hawki_step_compute_bkg_from_running_median_nonmasked_save
cpl_image_delete(this_bkg_image_mask);
}
cpl_msg_indent_less();
-
- /* Freeing */
- cpl_vector_delete(medians);
- cpl_imagelist_delete(img_serie);
+
+ /* Deallocating the buffer structure */
+ hawki_bkg_frames_buffer_delete(frames_buffer);
}
cpl_msg_indent_less();
if(!cpl_errorstate_is_equal(error_prevstate))
{
cpl_msg_warning(__func__,"Probably some data could not be saved. "
"Check permisions or disk space");
- cpl_errorstate_set(CPL_ERROR_NONE);
+ cpl_error_set(cpl_func, CPL_ERROR_NONE);
return 1;
}
return 0;
@@ -826,10 +845,10 @@ int hawki_step_compute_bkg_from_running_median_nonmasked_save
int hawki_step_compute_bkg_from_running_median_masked_save
(const cpl_frameset * objframes,
- cpl_frame * maskframe,
+ cpl_frame * globalmaskframe,
cpl_bivector ** offsets,
- cpl_frame * x_distortionframe,
- cpl_frame * y_distortionframe,
+ cpl_frame * distortionframe_x,
+ cpl_frame * distortionframe_y,
int nhalf_window,
int rejlow,
int rejhigh,
@@ -845,13 +864,13 @@ int hawki_step_compute_bkg_from_running_median_masked_save
cpl_frameset * calib_frameset;
- //Add all the used frames
+ //Set the calibration frames
calib_frameset = cpl_frameset_new();
- cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(maskframe));
- if(x_distortionframe != NULL)
- cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(x_distortionframe));
- if(y_distortionframe != NULL)
- cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(y_distortionframe));
+ cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(globalmaskframe));
+ if(distortionframe_x != NULL)
+ cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(distortionframe_x));
+ if(distortionframe_y != NULL)
+ cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(distortionframe_y));
/* Preparing the files to save */
cpl_msg_info(__func__,"Preparing the final files");
@@ -861,11 +880,12 @@ int hawki_step_compute_bkg_from_running_median_masked_save
cpl_frameset * used_frameset;
const cpl_frame * target_frame;
char filename[256];
- snprintf(filename, 256, "hawki_step_compute_bkg_%03d.fits", iobj + 1);
+ snprintf(filename, 256, "hawki_step_compute_bkg_%04d.fits", iobj + 1);
target_frame = cpl_frameset_get_frame_const(objframes, iobj);
- used_frameset = cpl_frameset_duplicate(calib_frameset);
+ used_frameset = cpl_frameset_new();
cpl_frameset_insert(used_frameset, cpl_frame_duplicate(target_frame));
- cpl_frameset_insert(calib_frameset, cpl_frame_duplicate(maskframe));
+ hawki_frameset_append(used_frameset, objframes);
+ hawki_frameset_append(used_frameset, calib_frameset);
hawki_main_header_save(recipe_framelist,
recipe_parlist,
used_frameset,
@@ -874,7 +894,7 @@ int hawki_step_compute_bkg_from_running_median_masked_save
HAWKI_PROTYPE_BKGIMAGE,
NULL,
filename);
- snprintf(filename, 256, "hawki_step_compute_bkg_bpm_%03d.fits", iobj + 1);
+ snprintf(filename, 256, "hawki_step_compute_bkg_bpm_%04d.fits", iobj + 1);
hawki_main_header_save(recipe_framelist,
recipe_parlist,
used_frameset,
@@ -891,200 +911,88 @@ int hawki_step_compute_bkg_from_running_median_masked_save
cpl_msg_indent_more();
for(iext = 0; iext < HAWKI_NB_DETECTORS; ++iext)
{
- cpl_imagelist * img_serie;
- cpl_vector * medians;
- cpl_image * mask;
- hawki_distortion * inv_distortion = NULL;
- cpl_propertylist * prop_list;
- cpl_image * dist_x = NULL;
- cpl_image * dist_y = NULL;
- double mask_off_x;
- double mask_off_y;
+ hawki_bkg_frames_buffer * frames_buffer;
+ cpl_image * img_ref;
+ int nx;
+ int ny;
+ cpl_image * globalmask;
+ cpl_image * dist_x = NULL;
+ cpl_image * dist_y = NULL;
+ double mask_off_x;
+ double mask_off_y;
+ cpl_vector * off_x;
+ cpl_vector * off_y;
cpl_msg_info(__func__,"Working on extension %d", iext + 1);
cpl_msg_indent_more();
- /* Loading the object frames */
- img_serie = hawki_load_extensions(objframes, iext + 1, CPL_TYPE_FLOAT);
- if(img_serie== NULL)
- {
- cpl_msg_error(__func__, "Error reading object image") ;
- cpl_msg_indent_less();
- return -1;
- }
- nobj = cpl_imagelist_get_size(img_serie);
+ /* Identifying the detector */
+ idet = hawki_get_detector_from_ext
+ (cpl_frame_get_filename(globalmaskframe), iext+1);
- /* Loading the mask frame */
- mask = hawki_load_frame_extension(maskframe, iext + 1, CPL_TYPE_FLOAT);
- if(mask == NULL)
+ /* Get the size of the bkg */
+ img_ref = hawki_load_frame_extension
+ (cpl_frameset_get_first_const(objframes), iext + 1, CPL_TYPE_FLOAT);
+ nx = cpl_image_get_size_x(img_ref);
+ ny = cpl_image_get_size_y(img_ref);
+ cpl_image_delete(img_ref);
+
+ /* Retrieve the offsets. Warning, it is in chip order */
+ off_x = cpl_bivector_get_x(offsets[idet-1]);
+ off_y = cpl_bivector_get_y(offsets[idet-1]);
+
+ /* Loading the mask frame. It is read in float because the distortion
+ * correction will work on float data */
+ globalmask = hawki_step_compute_bkg_load_mask
+ (globalmaskframe, iext, &mask_off_x, &mask_off_y);
+ if(globalmask == NULL)
{
cpl_msg_error(__func__, "Error reading mask image");
cpl_msg_indent_less();
cpl_msg_indent_less();
return -1;
}
- idet =
- hawki_get_detector_from_ext(cpl_frame_get_filename(maskframe), iext+1);
- prop_list =
- cpl_propertylist_load(cpl_frame_get_filename(maskframe), iext + 1);
- mask_off_x = hawki_pfits_get_comb_cumoffsetx(prop_list);
- mask_off_y = hawki_pfits_get_comb_cumoffsety(prop_list);
- /* Change the offsets to cpl convention */
- mask_off_x *= -1;
- mask_off_y *= -1;
- if(!cpl_errorstate_is_equal(CPL_ERROR_NONE))
- {
- cpl_msg_error(__func__,"Could not get the offsets from mask file.\n"
- "Keywords %s are missing","ESO QC COMBINED CUMOFFSET{X,Y}");
- cpl_imagelist_delete(img_serie);
- cpl_image_delete(mask);
- cpl_msg_indent_less();
- cpl_msg_indent_less();
- cpl_propertylist_delete(prop_list);
- return -1;
- }
- cpl_msg_info(__func__,"Mask offsets: %f %f", mask_off_x, mask_off_y);
- if(x_distortionframe != NULL && y_distortionframe != NULL)
+ if(distortionframe_x != NULL && distortionframe_y != NULL)
{
- int nx;
- int ny;
-
- /* Load the distortion */
- if ((inv_distortion = hawki_distortion_load
- (x_distortionframe, y_distortionframe, idet)) == NULL)
- {
- cpl_imagelist_delete(img_serie);
- cpl_propertylist_delete(prop_list);
- cpl_image_delete(mask);
- cpl_msg_error(__func__,
- "Cannot load distortion for chip %d",idet);
- cpl_msg_indent_less();
- cpl_msg_indent_less();
- return -1 ;
- }
- /* Multiply distortion by -1, to get the inverse distortion */
- cpl_image_multiply_scalar(inv_distortion->dist_x, -1.);
- cpl_image_multiply_scalar(inv_distortion->dist_y, -1.);
- /* Create the distortion maps */
- nx = cpl_image_get_size_x(mask);
- ny = cpl_image_get_size_y(mask);
- dist_x = cpl_image_new(nx, ny, CPL_TYPE_DOUBLE);
- dist_y = cpl_image_new(nx, ny, CPL_TYPE_DOUBLE);
- if (hawki_distortion_create_maps_detector
- (inv_distortion, dist_x, dist_y))
+ if(hawki_step_compute_bkg_get_inverse_dist
+ (distortionframe_x, distortionframe_y, idet,
+ &dist_x, &dist_y, nx, ny) == -1)
{
- cpl_msg_error(__func__, "Cannot create the distortion maps") ;
- cpl_imagelist_delete(img_serie);
- cpl_propertylist_delete(prop_list);
- cpl_image_delete(mask);
- cpl_image_delete(dist_x);
- cpl_image_delete(dist_y);
- hawki_distortion_delete(inv_distortion);
+ cpl_msg_error(__func__, "Error computing inverse distortion");
+ cpl_image_delete(globalmask);
cpl_msg_indent_less();
cpl_msg_indent_less();
return -1;
}
-
}
- /* Creating a different mask for each object, using the offsets
- * and the distortion (if applies) */
- cpl_msg_info(__func__,"Constructing the masks");
- for (iobj=0 ; iobj<nobj ; iobj++)
- {
- cpl_image * mask_shifted;
- cpl_image * mask_trim;
- cpl_mask * mask_final;
- cpl_image * target_image;
- cpl_vector * off_x;
- cpl_vector * off_y;
-
- /* Retrieve the offsets. Warning, it is in chip order */
- off_x = cpl_bivector_get_x(offsets[idet-1]);
- off_y = cpl_bivector_get_y(offsets[idet-1]);
-
- target_image = cpl_imagelist_get(img_serie, iobj);
- mask_shifted = cpl_image_duplicate(mask);
- cpl_image_shift(mask_shifted,
- -(int)(cpl_vector_get(off_x, iobj) - mask_off_x),
- -(int)(cpl_vector_get(off_y, iobj) - mask_off_y));
- if(x_distortionframe != NULL && y_distortionframe != NULL)
- {
- cpl_image * mask_distcorr;
-
- /* Dedistort the mask */
- mask_distcorr = hawki_distortion_correct_detector
- (mask_shifted, dist_x, dist_y);
- if(mask_distcorr == NULL)
- {
- cpl_msg_error(__func__, "Cannot correct the distortion") ;
- cpl_image_delete(dist_x);
- cpl_image_delete(dist_y);
- cpl_image_delete(mask_shifted);
- cpl_imagelist_delete(img_serie);
- cpl_image_delete(mask);
- cpl_propertylist_delete(prop_list);
- hawki_distortion_delete(inv_distortion);
- cpl_msg_indent_less();
- cpl_msg_indent_less();
- return -1 ;
- }
- mask_trim = cpl_image_extract
- (mask_distcorr, 1, 1,
- cpl_image_get_size_x(target_image),
- cpl_image_get_size_y(target_image));
- cpl_image_delete(mask_distcorr);
- }
- else
- {
- mask_trim = cpl_image_extract
- (mask_shifted, 1, 1,
- cpl_image_get_size_x(target_image),
- cpl_image_get_size_y(target_image));
- }
- mask_final =
- cpl_mask_threshold_image_create(mask_trim, 0.5, FLT_MAX);
- /* TODO: Add the current bpm to this mask? */
- cpl_image_reject_from_mask
- (target_image, mask_final);
- cpl_image_delete(mask_shifted);
- cpl_image_delete(mask_trim);
- cpl_mask_delete(mask_final);
- }
+ /* Allocating the buffer structure */
+ frames_buffer = hawki_bkg_frames_buffer_init(objframes);
- /* Pre-compute median value in each plane */
- cpl_msg_info(__func__,"Computing the medians");
- medians = cpl_vector_new(nobj);
- for (iobj=0 ; iobj<nobj ; iobj++)
- {
- cpl_vector_set
- (medians,
- iobj,
- cpl_image_get_median(cpl_imagelist_get(img_serie, iobj))) ;
- }
-
/* Object loop to get the bkg */
cpl_msg_info(__func__,"Computing backgrounds");
cpl_msg_indent_more();
for(iobj = 0 ; iobj < nobj ; ++iobj)
{
- int nx;
- int ny;
cpl_image * this_bkg_image;
cpl_image * this_bkg_image_mask;
char filename[256];
- /* Creates the background image */
+ /* Info message */
cpl_msg_info(__func__,"Computing bkg for image %d", iobj + 1);
- nx = cpl_image_get_size_x(cpl_imagelist_get(img_serie, 0));
- ny = cpl_image_get_size_y(cpl_imagelist_get(img_serie, 0));
+
+ /* Create the background image */
this_bkg_image = cpl_image_new(nx, ny, CPL_TYPE_FLOAT);
/* Actually computing the running mean */
- if(hawki_bkg_from_running_mean_detector
- (img_serie,
- medians,
+ if(hawki_bkg_from_running_mean_frame_extension
+ (frames_buffer,
+ off_x, off_y,
+ globalmask,
+ mask_off_x, mask_off_y,
+ dist_x, dist_y,
+ iext,
iobj,
nhalf_window,
rejlow,
@@ -1093,13 +1001,9 @@ int hawki_step_compute_bkg_from_running_median_masked_save
{
cpl_msg_error(__func__, "Cannot compute bkg");
cpl_image_delete(this_bkg_image);
- cpl_vector_delete(medians);
- cpl_imagelist_delete(img_serie);
- cpl_image_delete(mask);
- cpl_propertylist_delete(prop_list);
- if(x_distortionframe != NULL && y_distortionframe != NULL)
+ cpl_image_delete(globalmask);
+ if(distortionframe_x != NULL && distortionframe_y != NULL)
{
- hawki_distortion_delete(inv_distortion);
cpl_image_delete(dist_x);
cpl_image_delete(dist_y);
}
@@ -1112,7 +1016,7 @@ int hawki_step_compute_bkg_from_running_median_masked_save
/* Save the extension bad pixel mask */
this_bkg_image_mask =
cpl_image_new_from_mask(cpl_image_get_bpm(this_bkg_image));
- snprintf(filename, 256, "hawki_step_compute_bkg_bpm_%03d.fits",iobj +1);
+ snprintf(filename, 256, "hawki_step_compute_bkg_bpm_%04d.fits",iobj +1);
hawki_image_ext_save
(objframes,
this_bkg_image_mask,
@@ -1124,7 +1028,7 @@ int hawki_step_compute_bkg_from_running_median_masked_save
hawki_step_compute_bkg_interpolate_badpix(this_bkg_image);
/* Save this extension */
- snprintf(filename, 256, "hawki_step_compute_bkg_%03d.fits",iobj +1);
+ snprintf(filename, 256, "hawki_step_compute_bkg_%04d.fits",iobj +1);
hawki_image_ext_save
(objframes,
this_bkg_image,
@@ -1139,24 +1043,23 @@ int hawki_step_compute_bkg_from_running_median_masked_save
cpl_msg_indent_less();
/* Freeing */
- cpl_vector_delete(medians);
- cpl_imagelist_delete(img_serie);
- cpl_image_delete(mask);
- cpl_propertylist_delete(prop_list);
- if(x_distortionframe != NULL && y_distortionframe != NULL)
+ cpl_image_delete(globalmask);
+ if(distortionframe_x != NULL && distortionframe_y != NULL)
{
- hawki_distortion_delete(inv_distortion);
cpl_image_delete(dist_x);
cpl_image_delete(dist_y);
}
cpl_msg_indent_less();
+
+ /* Deallocating the buffer structure */
+ hawki_bkg_frames_buffer_delete(frames_buffer);
}
cpl_msg_indent_less();
if(!cpl_errorstate_is_equal(error_prevstate))
{
cpl_msg_warning(__func__,"Probably some data could not be saved. "
"Check permissions or disk space");
- cpl_errorstate_set(CPL_ERROR_NONE);
+ cpl_error_set(cpl_func, CPL_ERROR_NONE);
return 1;
}
return 0;
@@ -1192,7 +1095,7 @@ static int hawki_step_compute_bkg_interpolate_badpix
image_p[ipix] = median;
}
}
- //This cannot be used until DFS08929 is solved
+ //TODO: This cannot be used until DFS08929 is solved
//cpl_detector_interpolate_rejected(image);
}
return 0;
@@ -1222,3 +1125,81 @@ int hawki_step_compute_bkg_retrieve_input_param
return 0;
}
+
+cpl_image * hawki_step_compute_bkg_load_mask
+(cpl_frame * globalmaskframe, int extension,
+ double * mask_off_x, double * mask_off_y)
+{
+ cpl_image * globalmask;
+ cpl_propertylist * prop_list;
+ cpl_errorstate prestate = cpl_errorstate_get();
+
+ globalmask = hawki_load_frame_extension(globalmaskframe,
+ extension + 1, CPL_TYPE_FLOAT);
+ if(globalmask == NULL)
+ {
+ cpl_msg_error(__func__, "Error reading mask image");
+ cpl_msg_indent_less();
+ cpl_msg_indent_less();
+ return NULL;
+ }
+ prop_list =
+ cpl_propertylist_load(cpl_frame_get_filename(globalmaskframe),
+ extension + 1);
+ *mask_off_x = hawki_pfits_get_comb_cumoffsetx(prop_list);
+ *mask_off_y = hawki_pfits_get_comb_cumoffsety(prop_list);
+ /* Change the offsets to cpl convention */
+ *mask_off_x *= -1;
+ *mask_off_y *= -1;
+ if(!cpl_errorstate_is_equal(prestate))
+ {
+ cpl_msg_error(__func__,"Could not get the offsets from mask file.\n"
+ "Keywords %s are missing","ESO QC COMBINED CUMOFFSET{X,Y}");
+ cpl_image_delete(globalmask);
+ cpl_msg_indent_less();
+ cpl_msg_indent_less();
+ cpl_propertylist_delete(prop_list);
+ return NULL;
+ }
+ cpl_msg_info(__func__,"Mask offsets: %f %f", *mask_off_x, *mask_off_y);
+
+ return globalmask;
+}
+
+int hawki_step_compute_bkg_get_inverse_dist
+(cpl_frame * x_distortionframe, cpl_frame * y_distortionframe, int idet,
+ cpl_image ** dist_x, cpl_image **dist_y,
+ cpl_size target_nx, cpl_size target_ny)
+{
+ hawki_distortion * inv_distortion;
+
+ /* Load the distortion */
+ if ((inv_distortion = hawki_distortion_load
+ (x_distortionframe, y_distortionframe, idet)) == NULL)
+ {
+ cpl_msg_error(__func__,
+ "Cannot load distortion for chip %d",idet);
+ cpl_msg_indent_less();
+ cpl_msg_indent_less();
+ return -1 ;
+ }
+ /* Multiply distortion by -1, to get the inverse distortion */
+ cpl_image_multiply_scalar(inv_distortion->dist_x, -1.);
+ cpl_image_multiply_scalar(inv_distortion->dist_y, -1.);
+ /* Create the distortion maps that will be used for the masks */
+ *dist_x = cpl_image_new(target_nx, target_ny, CPL_TYPE_DOUBLE);
+ *dist_y = cpl_image_new(target_nx, target_ny, CPL_TYPE_DOUBLE);
+ if (hawki_distortion_create_maps_detector
+ (inv_distortion, *dist_x, *dist_y))
+ {
+ cpl_msg_error(__func__, "Cannot create the distortion maps") ;
+ cpl_image_delete(*dist_x);
+ cpl_image_delete(*dist_y);
+ hawki_distortion_delete(inv_distortion);
+ cpl_msg_indent_less();
+ cpl_msg_indent_less();
+ return -1;
+ }
+
+}
+
diff --git a/recipes/hawki_step_detect_obj.c b/recipes/hawki_step_detect_obj.c
index 7f50e18..a6dd58d 100644
--- a/recipes/hawki_step_detect_obj.c
+++ b/recipes/hawki_step_detect_obj.c
@@ -1,4 +1,4 @@
-/* $Id: hawki_step_detect_obj.c,v 1.26 2012/05/03 10:43:22 cgarcia Exp $
+/* $Id: hawki_step_detect_obj.c,v 1.27 2012/11/30 14:50:51 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2012/05/03 10:43:22 $
- * $Revision: 1.26 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/11/30 14:50:51 $
+ * $Revision: 1.27 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -54,6 +54,11 @@
Functions prototypes
-----------------------------------------------------------------------------*/
+#ifdef __cplusplus
+extern "C"
+#endif
+int cpl_plugin_get_info(cpl_pluginlist * list);
+
static int hawki_step_detect_obj_create(cpl_plugin *) ;
static int hawki_step_detect_obj_exec(cpl_plugin *) ;
static int hawki_step_detect_obj_destroy(cpl_plugin *) ;
diff --git a/recipes/hawki_step_photom_2mass.c b/recipes/hawki_step_photom_2mass.c
index ef54261..4295b5b 100644
--- a/recipes/hawki_step_photom_2mass.c
+++ b/recipes/hawki_step_photom_2mass.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2012/04/23 10:08:45 $
* $Revision: 1.17 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_step_refine_offsets.c b/recipes/hawki_step_refine_offsets.c
index 3d90b13..f1182a0 100644
--- a/recipes/hawki_step_refine_offsets.c
+++ b/recipes/hawki_step_refine_offsets.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/10/24 10:42:12 $
* $Revision: 1.17 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_step_stats.c b/recipes/hawki_step_stats.c
index e2a4a16..c16cc15 100644
--- a/recipes/hawki_step_stats.c
+++ b/recipes/hawki_step_stats.c
@@ -1,4 +1,4 @@
-/* $Id: hawki_step_stats.c,v 1.12 2011/10/24 10:42:03 cgarcia Exp $
+/* $Id: hawki_step_stats.c,v 1.13 2012/11/30 14:51:22 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2002,2003 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2011/10/24 10:42:03 $
- * $Revision: 1.12 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/11/30 14:51:22 $
+ * $Revision: 1.13 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -49,6 +49,11 @@
Functions prototypes
-----------------------------------------------------------------------------*/
+#ifdef __cplusplus
+extern "C"
+#endif
+int cpl_plugin_get_info(cpl_pluginlist * list);
+
static int hawki_step_stats_create(cpl_plugin *) ;
static int hawki_step_stats_exec(cpl_plugin *) ;
static int hawki_step_stats_destroy(cpl_plugin *) ;
diff --git a/recipes/hawki_step_stitch.c b/recipes/hawki_step_stitch.c
index 69510dc..baf14f5 100644
--- a/recipes/hawki_step_stitch.c
+++ b/recipes/hawki_step_stitch.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/10/24 10:41:54 $
* $Revision: 1.7 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_step_subtract_bkg.c b/recipes/hawki_step_subtract_bkg.c
index 7dff1c1..5f78edb 100644
--- a/recipes/hawki_step_subtract_bkg.c
+++ b/recipes/hawki_step_subtract_bkg.c
@@ -1,4 +1,4 @@
-/* $Id: hawki_step_subtract_bkg.c,v 1.17 2011/10/24 10:41:43 cgarcia Exp $
+/* $Id: hawki_step_subtract_bkg.c,v 1.18 2012/11/30 14:50:51 cgarcia Exp $
*
* This file is part of the HAWKI Pipeline
* Copyright (C) 2008 European Southern Observatory
@@ -20,9 +20,9 @@
/*
* $Author: cgarcia $
- * $Date: 2011/10/24 10:41:43 $
- * $Revision: 1.17 $
- * $Name: hawki-1_8_9 $
+ * $Date: 2012/11/30 14:50:51 $
+ * $Revision: 1.18 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
@@ -53,6 +53,11 @@
Functions prototypes
-----------------------------------------------------------------------------*/
+#ifdef __cplusplus
+extern "C"
+#endif
+int cpl_plugin_get_info(cpl_pluginlist * list);
+
static int hawki_step_subtract_bkg_create(cpl_plugin *) ;
static int hawki_step_subtract_bkg_exec(cpl_plugin *) ;
static int hawki_step_subtract_bkg_destroy(cpl_plugin *) ;
@@ -506,7 +511,7 @@ static int hawki_step_subtract_bkg_save
}
/* Write the image */
- snprintf(filename, 256, "hawki_step_subtract_bkg_%03d.fits", iserie+1);
+ snprintf(filename, 256, "hawki_step_subtract_bkg_%04d.fits", iserie+1);
hawki_imagelist_save(recipe_framelist,
recipe_parlist,
used_frameset,
diff --git a/recipes/hawki_tec_filtchk.c b/recipes/hawki_tec_filtchk.c
index 5a5de84..a012075 100644
--- a/recipes/hawki_tec_filtchk.c
+++ b/recipes/hawki_tec_filtchk.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/10/24 10:41:32 $
* $Revision: 1.15 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_util_extinction.c b/recipes/hawki_util_extinction.c
index e19240c..d7d328b 100644
--- a/recipes/hawki_util_extinction.c
+++ b/recipes/hawki_util_extinction.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/12/22 14:28:43 $
* $Revision: 1.3 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_util_gendist.c b/recipes/hawki_util_gendist.c
index 16d654d..e3dacab 100644
--- a/recipes/hawki_util_gendist.c
+++ b/recipes/hawki_util_gendist.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/10/24 10:40:50 $
* $Revision: 1.22 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/recipes/hawki_util_stdstars.c b/recipes/hawki_util_stdstars.c
index d1b76c7..e951789 100644
--- a/recipes/hawki_util_stdstars.c
+++ b/recipes/hawki_util_stdstars.c
@@ -22,7 +22,7 @@
* $Author: cgarcia $
* $Date: 2011/07/06 08:21:36 $
* $Revision: 1.16 $
- * $Name: hawki-1_8_9 $
+ * $Name: hawki-1_8_10 $
*/
#ifdef HAVE_CONFIG_H
diff --git a/reflex/Makefile.in b/reflex/Makefile.in
index d06c3e0..0bcce2b 100644
--- a/reflex/Makefile.in
+++ b/reflex/Makefile.in
@@ -95,6 +95,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -183,6 +187,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
diff --git a/regtests/Makefile.in b/regtests/Makefile.in
index b9b7960..6f98d14 100644
--- a/regtests/Makefile.in
+++ b/regtests/Makefile.in
@@ -110,6 +110,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -198,6 +202,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
diff --git a/regtests/tests/Makefile.in b/regtests/tests/Makefile.in
index f589e8d..00a9bcf 100644
--- a/regtests/tests/Makefile.in
+++ b/regtests/tests/Makefile.in
@@ -70,6 +70,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -158,6 +162,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
diff --git a/setup b/setup
index 0c1c500..2acb71b 100755
--- a/setup
+++ b/setup
@@ -19,7 +19,7 @@
# $Author: cgarcia $
# $Date: 2012/01/09 14:15:47 $
# $Revision: 1.2 $
-# $Name: hawki-1_8_9 $
+# $Name: hawki-1_8_10 $
# This script is the autoinstaller for the VLT instrument pipeline
diff --git a/tests/Makefile.am b/tests/Makefile.am
index e845b90..506909d 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -46,3 +46,4 @@ TESTS =
# We need to remove any files that the above tests created.
clean-local:
+ $(RM) *.fits *.tfits *.log
diff --git a/tests/Makefile.in b/tests/Makefile.in
index b16a8d1..cdb7cb7 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -74,6 +74,10 @@ CPL_INCLUDES = @CPL_INCLUDES@
CPL_LDFLAGS = @CPL_LDFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
CX_INCLUDES = @CX_INCLUDES@
CX_LDFLAGS = @CX_LDFLAGS@
CYGPATH_W = @CYGPATH_W@
@@ -162,6 +166,7 @@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
all_includes = @all_includes@
all_ldflags = @all_ldflags@
@@ -526,6 +531,7 @@ uninstall-am:
# We need to remove any files that the above tests created.
clean-local:
+ $(RM) *.fits *.tfits *.log
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/cpl-plugin-hawki.git
More information about the debian-science-commits
mailing list