[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