Commit aa52c8bf authored by Emmanuel Bertin's avatar Emmanuel Bertin
Browse files

Added support for the INTEL MKL library in place of ATLAS and FFTW (configure --enable-mkl option).

Updated LevMar library to V2.6.
Pushed version number to 2.18.0.
parent 1b190b55
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
* *
* This file part of: AstrOmatic software * This file part of: AstrOmatic software
* *
* Copyright: (C) 2007-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 2007-2012 Emmanuel Bertin -- IAP/CNRS/UPMC
* (C) 2004 Manolis Lourakis (original version) * (C) 2004-2011 Manolis Lourakis (orig. version)
* *
* Licenses: GNU General Public License * Licenses: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* along with AstrOmatic software. * along with AstrOmatic software.
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 25/10/2010 * Last modified: 09/07/2012
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
...@@ -75,6 +75,9 @@ struct LMLEC_DATA{ ...@@ -75,6 +75,9 @@ struct LMLEC_DATA{
}; };
/* prototypes for LAPACK routines */ /* prototypes for LAPACK routines */
#ifdef __cplusplus
extern "C" {
#endif
extern int GEQP3(int *m, int *n, LM_REAL *a, int *lda, int *jpvt, extern int GEQP3(int *m, int *n, LM_REAL *a, int *lda, int *jpvt,
LM_REAL *tau, LM_REAL *work, int *lwork, int *info); LM_REAL *tau, LM_REAL *work, int *lwork, int *info);
...@@ -82,6 +85,9 @@ extern int ORGQR(int *m, int *n, int *k, LM_REAL *a, int *lda, LM_REAL *tau, ...@@ -82,6 +85,9 @@ extern int ORGQR(int *m, int *n, int *k, LM_REAL *a, int *lda, LM_REAL *tau,
LM_REAL *work, int *lwork, int *info); LM_REAL *work, int *lwork, int *info);
extern int TRTRI(char *uplo, char *diag, int *n, LM_REAL *a, int *lda, int *info); extern int TRTRI(char *uplo, char *diag, int *n, LM_REAL *a, int *lda, int *info);
#ifdef __cplusplus
}
#endif
/* /*
* This function implements an elimination strategy for linearly constrained * This function implements an elimination strategy for linearly constrained
...@@ -203,16 +209,17 @@ register int i, j, k; ...@@ -203,16 +209,17 @@ register int i, j, k;
} }
/* compute the permuted inverse transpose of R */ /* compute the permuted inverse transpose of R */
/* first, copy R from the upper triangular part of a to r. R is rank x rank */ /* first, copy R from the upper triangular part of a to the lower part of r (thus transposing it). R is rank x rank */
for(j=0; j<rank; ++j){ for(j=0; j<rank; ++j){
for(i=0; i<=j; ++i) for(i=0; i<=j; ++i)
r[i+j*rank]=a[i+j*tm]; r[j+i*rank]=a[i+j*tm];
for(i=j+1; i<rank; ++i) for(i=j+1; i<rank; ++i)
r[i+j*rank]=0.0; // lower part is zero r[j+i*rank]=0.0; // upper part is zero
} }
/* r now contains R^T */
/* compute the inverse */ /* compute the inverse */
TRTRI("U", "N", (int *)&rank, r, (int *)&rank, &info); TRTRI("L", "N", (int *)&rank, r, (int *)&rank, &info);
/* error checking */ /* error checking */
if(info!=0){ if(info!=0){
if(info<0){ if(info<0){
...@@ -224,14 +231,6 @@ register int i, j, k; ...@@ -224,14 +231,6 @@ register int i, j, k;
free(buf); free(buf);
return LM_ERROR; return LM_ERROR;
} }
/* then, transpose r in place */
for(i=0; i<rank; ++i)
for(j=i+1; j<rank; ++j){
tmp=r[i+j*rank];
k=j+i*rank;
r[i+j*rank]=r[k];
r[k]=tmp;
}
/* finally, permute R^-T using Y as intermediate storage */ /* finally, permute R^-T using Y as intermediate storage */
for(j=0; j<rank; ++j) for(j=0; j<rank; ++j)
......
...@@ -220,15 +220,16 @@ double *mp; ...@@ -220,15 +220,16 @@ double *mp;
/* /*
[ret, p, info, covar]=levmar_der (f, j, p0, x, itmax, opts, 'unc' ...) [ret, p, info, covar]=levmar_der (f, j, p0, x, itmax, opts, 'unc' ...)
[ret, p, info, covar]=levmar_bc (f, j, p0, x, itmax, opts, 'bc', lb, ub, ...) [ret, p, info, covar]=levmar_bc (f, j, p0, x, itmax, opts, 'bc', lb, ub, ...)
[ret, p, info, covar]=levmar_lec (f, j, p0, x, itmax, opts, 'lec', A, b, ...) [ret, p, info, covar]=levmar_bc (f, j, p0, x, itmax, opts, 'bc', lb, ub, dscl, ...)
[ret, p, info, covar]=levmar_blec(f, j, p0, x, itmax, opts, 'blec', lb, ub, A, b, wghts, ...) [ret, p, info, covar]=levmar_lec (f, j, p0, x, itmax, opts, 'lec', A, b, ...)
[ret, p, info, covar]=levmar_blec(f, j, p0, x, itmax, opts, 'blec', lb, ub, A, b, wghts, ...)
[ret, p, info, covar]=levmar_bleic(f, j, p0, x, itmax, opts, 'bleic', lb, ub, A, b, C, d, ...) [ret, p, info, covar]=levmar_bleic(f, j, p0, x, itmax, opts, 'bleic', lb, ub, A, b, C, d, ...)
[ret, p, info, covar]=levmar_blic (f, j, p0, x, itmax, opts, 'blic', lb, ub, C, d, ...) [ret, p, info, covar]=levmar_blic (f, j, p0, x, itmax, opts, 'blic', lb, ub, C, d, ...)
[ret, p, info, covar]=levmar_leic (f, j, p0, x, itmax, opts, 'leic', A, b, C, d, ...) [ret, p, info, covar]=levmar_leic (f, j, p0, x, itmax, opts, 'leic', A, b, C, d, ...)
[ret, p, info, covar]=levmar_lic (f, j, p0, x, itmax, opts, 'lic', C, d, ...) [ret, p, info, covar]=levmar_lic (f, j, p0, x, itmax, opts, 'lic', C, d, ...)
*/ */
...@@ -243,7 +244,7 @@ double *p, *p0, *ret, *x; ...@@ -243,7 +244,7 @@ double *p, *p0, *ret, *x;
int m, n, havejac, Arows, Crows, itmax, nopts, mintype, nextra; int m, n, havejac, Arows, Crows, itmax, nopts, mintype, nextra;
double opts[LM_OPTS_SZ]={LM_INIT_MU, LM_STOP_THRESH, LM_STOP_THRESH, LM_STOP_THRESH, LM_DIFF_DELTA}; double opts[LM_OPTS_SZ]={LM_INIT_MU, LM_STOP_THRESH, LM_STOP_THRESH, LM_STOP_THRESH, LM_DIFF_DELTA};
double info[LM_INFO_SZ]; double info[LM_INFO_SZ];
double *lb=NULL, *ub=NULL, *A=NULL, *b=NULL, *wghts=NULL, *C=NULL, *d=NULL, *covar=NULL; double *lb=NULL, *ub=NULL, *dscl=NULL, *A=NULL, *b=NULL, *wghts=NULL, *C=NULL, *d=NULL, *covar=NULL;
/* parse input args; start by checking their number */ /* parse input args; start by checking their number */
if((nrhs<5)) if((nrhs<5))
...@@ -410,6 +411,20 @@ if(!mxIsDouble(prhs[1]) || mxIsComplex(prhs[1]) || !(mxGetM(prhs[1])==1 && mxGet ...@@ -410,6 +411,20 @@ if(!mxIsDouble(prhs[1]) || mxIsComplex(prhs[1]) || !(mxGetM(prhs[1])==1 && mxGet
} }
} }
/** dscl **/
if(nrhs>=7 && (mintype==MIN_CONSTRAINED_BC)){
/* check if the next argument is a real row or column vector */
if(mxIsDouble(prhs[5]) && !mxIsComplex(prhs[5]) && (mxGetM(prhs[5])==1 || mxGetN(prhs[5])==1)){
if((i=__MAX__(mxGetM(prhs[5]), mxGetN(prhs[5])))!=m)
matlabFmtdErrMsgTxt("levmar: dscl must have %d elements, got %d.", m, i);
dscl=mxGetPr(prhs[5]);
++prhs;
--nrhs;
}
}
/** A, b **/ /** A, b **/
if(nrhs>=7 && (mintype==MIN_CONSTRAINED_LEC || mintype==MIN_CONSTRAINED_BLEC || mintype==MIN_CONSTRAINED_LEIC || mintype==MIN_CONSTRAINED_BLEIC)){ if(nrhs>=7 && (mintype==MIN_CONSTRAINED_LEC || mintype==MIN_CONSTRAINED_BLEC || mintype==MIN_CONSTRAINED_LEIC || mintype==MIN_CONSTRAINED_BLEIC)){
/* check if the next two arguments are a real matrix and a real row or column vector */ /* check if the next two arguments are a real matrix and a real row or column vector */
...@@ -519,9 +534,9 @@ extraargs: ...@@ -519,9 +534,9 @@ extraargs:
break; break;
case MIN_CONSTRAINED_BC: /* box constraints */ case MIN_CONSTRAINED_BC: /* box constraints */
if(havejac) if(havejac)
status=dlevmar_bc_der(func, jacfunc, p, x, m, n, lb, ub, itmax, opts, info, NULL, covar, (void *)&mdata); status=dlevmar_bc_der(func, jacfunc, p, x, m, n, lb, ub, dscl, itmax, opts, info, NULL, covar, (void *)&mdata);
else else
status=dlevmar_bc_dif(func, p, x, m, n, lb, ub, itmax, opts, info, NULL, covar, (void *)&mdata); status=dlevmar_bc_dif(func, p, x, m, n, lb, ub, dscl, itmax, opts, info, NULL, covar, (void *)&mdata);
#ifdef DEBUG #ifdef DEBUG
fflush(stderr); fflush(stderr);
fprintf(stderr, "LEVMAR: calling dlevmar_bc_der()/dlevmar_bc_dif()\n"); fprintf(stderr, "LEVMAR: calling dlevmar_bc_der()/dlevmar_bc_dif()\n");
......
function [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, type)
% LEVMAR matlab MEX interface to the levmar non-linear least squares minimization % LEVMAR matlab MEX interface to the levmar non-linear least squares minimization
% library available from http://www.ics.forth.gr/~lourakis/levmar/ % library available from http://www.ics.forth.gr/~lourakis/levmar/
% %
% levmar can be used in any of the 8 following ways: % Usage: levmar can be used in any of the 8 following ways:
% [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, 'unc', ...) % [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, 'unc', ...)
% [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, 'bc', lb, ub, ...) % [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, 'bc', lb, ub, ...)
% [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, 'lec', A, b, ...) % [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, 'lec', A, b, ...)
...@@ -14,7 +13,7 @@ function [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, typ ...@@ -14,7 +13,7 @@ function [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, typ
% [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, 'lic', C, d, ...) % [ret, popt, info, covar]=levmar(fname, jacname, p0, x, itmax, opts, 'lic', C, d, ...)
% %
% %
% The dots at the end denote any additional, problem specific data that are passed uniterpreted to % The dots at the end denote any additional, problem specific data that are passed uninterpreted to
% all invocations of fname and jacname, see below for details. % all invocations of fname and jacname, see below for details.
% %
% In the following, the word "vector" is meant to imply either a row or a column vector. % In the following, the word "vector" is meant to imply either a row or a column vector.
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
* *
* This file part of: AstrOmatic software * This file part of: AstrOmatic software
* *
* Copyright: (C) 2007-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 2007-2012 Emmanuel Bertin -- IAP/CNRS/UPMC
* (C) 2004 Manolis Lourakis (original version) * (C) 2004-2011 Manolis Lourakis (orig. version)
* *
* Licenses: GNU General Public License * Licenses: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* along with AstrOmatic software. * along with AstrOmatic software.
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 25/10/2010 * Last modified: 09/07/2012
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
* *
* This file part of: AstrOmatic software * This file part of: AstrOmatic software
* *
* Copyright: (C) 2007-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 2007-2012 Emmanuel Bertin -- IAP/CNRS/UPMC
* (C) 2004 Manolis Lourakis (original version) * (C) 2004-2011 Manolis Lourakis (orig. version)
* *
* Licenses: GNU General Public License * Licenses: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* along with AstrOmatic software. * along with AstrOmatic software.
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 25/10/2010 * Last modified: 09/07/2012
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
...@@ -71,6 +71,12 @@ ...@@ -71,6 +71,12 @@
#define LM_MK_LAPACK_NAME(s) LM_ADD_PREFIX(LM_CAT_(s, LM_LAPACK_SUFFIX)) #define LM_MK_LAPACK_NAME(s) LM_ADD_PREFIX(LM_CAT_(s, LM_LAPACK_SUFFIX))
#ifdef LM_BLAS_PREFIX
#define LM_MK_BLAS_NAME(s) LM_CAT_(LM_BLAS_PREFIX, LM_ADD_PREFIX(LM_CAT_(s, LM_BLAS_SUFFIX)))
#else
#define LM_MK_BLAS_NAME(s) LM_ADD_PREFIX(LM_CAT_(s, LM_BLAS_SUFFIX))
#endif
#define __BLOCKSZ__ 32 /* block size for cache-friendly matrix-matrix multiply. It should be #define __BLOCKSZ__ 32 /* block size for cache-friendly matrix-matrix multiply. It should be
* such that __BLOCKSZ__^2*sizeof(LM_REAL) is smaller than the CPU (L1) * such that __BLOCKSZ__^2*sizeof(LM_REAL) is smaller than the CPU (L1)
...@@ -86,6 +92,8 @@ ...@@ -86,6 +92,8 @@
#define LM_CAT_(a, b) LM_CAT__(a, b) // force substitution #define LM_CAT_(a, b) LM_CAT__(a, b) // force substitution
#define LM_ADD_PREFIX(s) LM_CAT_(LM_PREFIX, s) #define LM_ADD_PREFIX(s) LM_CAT_(LM_PREFIX, s)
#define FABS(x) (((x)>=0.0)? (x) : -(x))
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
* *
* This file part of: AstrOmatic software * This file part of: AstrOmatic software
* *
* Copyright: (C) 2007-2011 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 2007-2012 Emmanuel Bertin -- IAP/CNRS/UPMC
* (C) 2004 Manolis Lourakis (original version) * (C) 2004-2011 Manolis Lourakis (orig. version)
* *
* Licenses: GNU General Public License * Licenses: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* along with AstrOmatic software. * along with AstrOmatic software.
* If not, see <http://www.gnu.org/licenses/>. * If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 11/03/2011 * Last modified: 09/07/2012
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
///////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////
...@@ -65,12 +65,11 @@ ...@@ -65,12 +65,11 @@
#define LEVMAR_PSEUDOINVERSE LM_ADD_PREFIX(levmar_pseudoinverse) #define LEVMAR_PSEUDOINVERSE LM_ADD_PREFIX(levmar_pseudoinverse)
static int LEVMAR_PSEUDOINVERSE(LM_REAL *A, LM_REAL *B, int m); static int LEVMAR_PSEUDOINVERSE(LM_REAL *A, LM_REAL *B, int m);
/* BLAS matrix multiplication & LAPACK SVD routines */ #ifdef __cplusplus
#ifdef LM_BLAS_PREFIX extern "C" {
#define GEMM LM_CAT_(LM_BLAS_PREFIX, LM_ADD_PREFIX(LM_CAT_(gemm, LM_BLAS_SUFFIX)))
#else
#define GEMM LM_ADD_PREFIX(LM_CAT_(gemm, LM_BLAS_SUFFIX))
#endif #endif
/* BLAS matrix multiplication, LAPACK SVD & Cholesky routines */
#define GEMM LM_MK_BLAS_NAME(gemm)
/* C := alpha*op( A )*op( B ) + beta*C */ /* C := alpha*op( A )*op( B ) + beta*C */
extern void GEMM(char *transa, char *transb, int *m, int *n, int *k, extern void GEMM(char *transa, char *transb, int *m, int *n, int *k,
LM_REAL *alpha, LM_REAL *a, int *lda, LM_REAL *b, int *ldb, LM_REAL *beta, LM_REAL *c, int *ldc); LM_REAL *alpha, LM_REAL *a, int *lda, LM_REAL *b, int *ldb, LM_REAL *beta, LM_REAL *c, int *ldc);
...@@ -87,10 +86,13 @@ extern int GESDD(char *jobz, int *m, int *n, LM_REAL *a, int *lda, LM_REAL *s, L ...@@ -87,10 +86,13 @@ extern int GESDD(char *jobz, int *m, int *n, LM_REAL *a, int *lda, LM_REAL *s, L
/* Cholesky decomposition */ /* Cholesky decomposition */
#define POTF2 LM_MK_LAPACK_NAME(potf2) #define POTF2 LM_MK_LAPACK_NAME(potf2)
extern int POTF2(char *uplo, int *n, LM_REAL *a, int *lda, int *info); extern int POTF2(char *uplo, int *n, LM_REAL *a, int *lda, int *info);
#ifdef __cplusplus
}
#endif
#define LEVMAR_CHOLESKY LM_ADD_PREFIX(levmar_chol) #define LEVMAR_CHOLESKY LM_ADD_PREFIX(levmar_chol)
#else #else /* !HAVE_LAPACK */
#define LEVMAR_LUINVERSE LM_ADD_PREFIX(levmar_LUinverse_noLapack) #define LEVMAR_LUINVERSE LM_ADD_PREFIX(levmar_LUinverse_noLapack)
static int LEVMAR_LUINVERSE(LM_REAL *A, LM_REAL *B, int m); static int LEVMAR_LUINVERSE(LM_REAL *A, LM_REAL *B, int m);
...@@ -572,12 +574,11 @@ LM_REAL *a, *x, *work, max, sum, tmp; ...@@ -572,12 +574,11 @@ LM_REAL *a, *x, *work, max, sum, tmp;
/* precision-specific definitions */ /* precision-specific definitions */
/* Added by EB */ /* Added by EB */
#ifdef HAVE_CONFIG_H #ifdef HAVE_ATLAS_CLAPACK
#include "config.h" #include ATLAS_LAPACK_H
#define ATLAS_POTRF LM_CAT_(clapack_, LM_ADD_PREFIX(potrf))
#define ATLAS_POTRI LM_CAT_(clapack_, LM_ADD_PREFIX(potri))
#endif #endif
#include ATLAS_LAPACK_H
#define ATLAS_POTRF LM_CAT_(clapack_, LM_ADD_PREFIX(potrf))
#define ATLAS_POTRI LM_CAT_(clapack_, LM_ADD_PREFIX(potri))
/* End added by EB */ /* End added by EB */
/* /*
...@@ -620,24 +621,23 @@ LM_REAL fact; ...@@ -620,24 +621,23 @@ LM_REAL fact;
// rnk=LEVMAR_LUINVERSE(JtJ, C, m); // rnk=LEVMAR_LUINVERSE(JtJ, C, m);
rnk = SVDINV(JtJ, C, m); rnk = SVDINV(JtJ, C, m);
if(!rnk) return 0;
if (!rnk) return 0; rnk=m; /* assume full rank */
// rnk=m; /* assume full rank */
#endif /* HAVE_LAPACK */ #endif /* HAVE_LAPACK */
fact=(LM_REAL)n/(LM_REAL)(n-rnk);
for(i=0; i<m*m; ++i)
C[i]*=fact;
for(i=0; i<m; ++i) fact=sumsq/(LM_REAL)(n-rnk);
if (C[i*(m+1)]<0.0 || fabs(C[i*(m+1)])>1e30) for(i=0; i<m*m; ++i)
{ C[i]*=fact;
for(j=0; j<m; ++j)
C[i*m+j] = 0.0; for(i=0; i<m; ++i)
for(j=0; j<m; ++j) if (C[i*(m+1)]<0.0 || fabs(C[i*(m+1)])>1e30)
C[j*m+i] = 0.0; {
} for(j=0; j<m; ++j)
C[i*m+j] = 0.0;
for(j=0; j<m; ++j)
C[j*m+i] = 0.0;
}
return rnk; return rnk;
} }
...@@ -683,17 +683,26 @@ LM_REAL SSerr, // sum of squared errors, i.e. residual sum of squares \sum_i (x ...@@ -683,17 +683,26 @@ LM_REAL SSerr, // sum of squared errors, i.e. residual sum of squares \sum_i (x
/* hx=f(p) */ /* hx=f(p) */
(*func)(p, hx, m, n, adata); (*func)(p, hx, m, n, adata);
for(i=0, tmp=0.0; i<n; ++i) for(i=n, tmp=0.0; i-->0; )
tmp+=x[i]; tmp+=x[i];
xavg=tmp/(LM_REAL)n; xavg=tmp/(LM_REAL)n;
for(i=0, SSerr=SStot=0.0; i<n; ++i){ if(x)
tmp=x[i]-hx[i]; for(i=n, SSerr=SStot=0.0; i-->0; ){
SSerr+=tmp*tmp; tmp=x[i]-hx[i];
SSerr+=tmp*tmp;
tmp=x[i]-xavg; tmp=x[i]-xavg;
SStot+=tmp*tmp; SStot+=tmp*tmp;
} }
else /* x==0 */
for(i=n, SSerr=SStot=0.0; i-->0; ){
tmp=-hx[i];
SSerr+=tmp*tmp;
tmp=-xavg;
SStot+=tmp*tmp;
}
free(hx); free(hx);
...@@ -728,7 +737,7 @@ int info; ...@@ -728,7 +737,7 @@ int info;
W[i]=C[i]; W[i]=C[i];
/* Cholesky decomposition */ /* Cholesky decomposition */
POTF2("U", (int *)&m, W, (int *)&m, (int *)&info); POTF2("L", (int *)&m, W, (int *)&m, (int *)&info);
/* error treatment */ /* error treatment */
if(info!=0){ if(info!=0){
if(info<0){ if(info<0){
...@@ -741,15 +750,13 @@ int info; ...@@ -741,15 +750,13 @@ int info;
return LM_ERROR; return LM_ERROR;
} }
/* the decomposition is in the upper part of W (in column-major order!). /* the decomposition is in the lower part of W (in column-major order!).
* copying it to the lower part and zeroing the upper transposes * zeroing the upper part makes it lower triangular which is equivalent to
* W in row-major order * upper triangular in row-major order
*/ */
for(i=0; i<m; i++) for(i=0; i<m; i++)
for(j=0; j<i; j++){ for(j=i+1; j<m; j++)
W[i+j*m]=W[j+i*m]; W[i+j*m]=0.0;
W[j+i*m]=0.0;
}
return 0; return 0;
} }
...@@ -851,6 +858,7 @@ register LM_REAL sum0=0.0, sum1=0.0, sum2=0.0, sum3=0.0; ...@@ -851,6 +858,7 @@ register LM_REAL sum0=0.0, sum1=0.0, sum2=0.0, sum3=0.0;
return sum0+sum1+sum2+sum3; return sum0+sum1+sum2+sum3;
} }
#ifndef HAVE_LAPACK
/****** svdinv ************************************************************* /****** svdinv *************************************************************
PROTO int svdinv(double *a, double *b, int m) PROTO int svdinv(double *a, double *b, int m)
PURPOSE Matrix inversion based on Singular Value Decomposition (SVD). PURPOSE Matrix inversion based on Singular Value Decomposition (SVD).
...@@ -1157,7 +1165,13 @@ static int SVDINV(LM_REAL *a, LM_REAL *b, int m) ...@@ -1157,7 +1165,13 @@ static int SVDINV(LM_REAL *a, LM_REAL *b, int m)
#undef SIGN #undef SIGN
#undef MAX #undef MAX
#undef PYTHAG #undef PYTHAG
#endif
/* undefine everything. THIS MUST REMAIN AT THE END OF THE FILE */ /* undefine everything. THIS MUST REMAIN AT THE END OF THE FILE */
#undef POTF2
#undef GESVD
#undef GESDD
#undef GEMM
#undef LEVMAR_PSEUDOINVERSE #undef LEVMAR_PSEUDOINVERSE
#undef LEVMAR_LUINVERSE #undef LEVMAR_LUINVERSE
#undef LEVMAR_BOX_CHECK #undef LEVMAR_BOX_CHECK
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* This file part of: SExtractor * This file part of: SExtractor
* *
* Copyright: (C) 2007-2010 Emmanuel Bertin -- IAP/CNRS/UPMC * Copyright: (C) 2007-2012 Emmanuel Bertin -- IAP/CNRS/UPMC
* *
* License: GNU General Public License * License: GNU General Public License
* *
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with SExtractor. If not, see <http://www.gnu.org/licenses/>. * along with SExtractor. If not, see <http://www.gnu.org/licenses/>.
* *
* Last modified: 11/10/2010 * Last modified: 09/07/2012
* *
*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ *%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include ATLAS_LAPACK_H
#include "define.h" #include "define.h"
#include "globals.h" #include "globals.h"
...@@ -51,6 +50,14 @@ ...@@ -51,6 +50,14 @@
#include "pattern.h" #include "pattern.h"
#include "profit.h" #include "profit.h"
#ifdef HAVE_ATLAS
#include ATLAS_LAPACK_H
#endif
#ifdef HAVE_LAPACKE
#include LAPACKE_H
#endif
static double psf_laguerre(double x, int p, int q); static double psf_laguerre(double x, int p, int q);
/*------------------------------- variables ---------------------------------*/ /*------------------------------- variables ---------------------------------*/
...@@ -152,7 +159,7 @@ INPUT Pointer to pattern structure. ...@@ -152,7 +159,7 @@ INPUT Pointer to pattern structure.
OUTPUT -. OUTPUT -.
NOTES -. NOTES -.
AUTHOR E. Bertin (IAP) AUTHOR E. Bertin (IAP)
VERSION 18/11/2009 VERSION 09/07/2012
***/ ***/
void pattern_fit(patternstruct *pattern, profitstruct *profit) void pattern_fit(patternstruct *pattern, profitstruct *profit)
{ {
...@@ -210,8 +217,12 @@ void pattern_fit(patternstruct *pattern, profitstruct *profit) ...@@ -210,8 +217,12 @@ void pattern_fit(patternstruct *pattern, profitstruct *profit)
} }
/* Solve the system */ /* Solve the system */
clapack_dpotrf(CblasRowMajor,CblasUpper,nvec,alpha,nvec); #if defined(HAVE_LAPACKE)
clapack_dpotrs(CblasRowMajor,CblasUpper,nvec,1,alpha,nvec,beta,nvec); LAPACKE_dposv(LAPACK_COL_MAJOR, 'L', nvec, 1, alpha, nvec, beta, nvec);
#else
clapack_dposv(CblasRowMajor, CblasUpper, nvec, 1, alpha, nvec, beta, nvec);
#endif
betat = beta; betat = beta;
coefft = pattern->coeff; coefft = pattern->coeff;
for (p=nvec; p--;) for (p=nvec; p--;)
......
...@@ -39,6 +39,10 @@ ...@@ -39,6 +39,10 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#ifndef FFTW3_H
#include FFTW_H
#endif
#include "define.h" #include "define.h"
#include "globals.h" #include "globals.h"
#include "prefs.h" #include "prefs.h"
...@@ -145,7 +149,7 @@ void profit_end(profitstruct *profit) ...@@ -145,7 +149,7 @@ void profit_end(profitstruct *profit)
free(profit->resi); free(profit->resi);
free(profit->prof); free(profit->prof);
free(profit->covar); free(profit->covar);
free(profit->psfdft); fftwf_free(profit->psfdft);
free(profit); free(profit);
return; return;
...@@ -190,9 +194,11 @@ void profit_fit(profitstruct *profit, ...@@ -190,9 +194,11 @@ void profit_fit(profitstruct *profit,
nparam = profit->nparam; nparam = profit->nparam;
nparam2 = nparam*nparam; nparam2 = nparam*nparam;
nprof = profit->nprof; nprof = profit->nprof;
if (profit->psfdft) if (profit->psfdft)
{ {
QFREE(profit->psfdft); fftwf_free(profit->psfdft);
profit->psfdft = NULL;
} }
psf = profit->psf; psf = profit->psf;
......
# Makefile.in generated by automake 1.10.1 from Makefile.am. # Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
...@@ -47,8 +48,9 @@ ...@@ -47,8 +48,9 @@
VPATH = @srcdir@ VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644 install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c install_sh_PROGRAM = $(install_sh) -c
...@@ -67,7 +69,8 @@ subdir = src/wcs ...@@ -67,7 +69,8 @@ subdir = src/wcs
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \ am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \
$(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_prog_cc_optim.m4 \ $(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_mkl.m4 \
$(top_srcdir)/acx_prog_cc_optim.m4 \
$(top_srcdir)/acx_pthread.m4 \ $(top_srcdir)/acx_pthread.m4 \
$(top_srcdir)/acx_urbi_resolve_dir.m4 \ $(top_srcdir)/acx_urbi_resolve_dir.m4 \
$(top_srcdir)/configure.ac $(top_srcdir)/configure.ac
...@@ -76,6 +79,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ...@@ -76,6 +79,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
LIBRARIES = $(noinst_LIBRARIES) LIBRARIES = $(noinst_LIBRARIES)
ARFLAGS = cru ARFLAGS = cru
libwcs_c_a_AR = $(AR) $(ARFLAGS) libwcs_c_a_AR = $(AR) $(ARFLAGS)
...@@ -87,6 +91,7 @@ libwcs_c_a_OBJECTS = $(am_libwcs_c_a_OBJECTS) ...@@ -87,6 +91,7 @@ libwcs_c_a_OBJECTS = $(am_libwcs_c_a_OBJECTS)
DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp depcomp = $(SHELL) $(top_srcdir)/autoconf/depcomp
am__depfiles_maybe = depfiles am__depfiles_maybe = depfiles
am__mv = mv -f
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
...@@ -109,8 +114,8 @@ AM_LDFLAGS = @AM_LDFLAGS@ ...@@ -109,8 +114,8 @@ AM_LDFLAGS = @AM_LDFLAGS@
AR = @AR@ AR = @AR@
ATLAS_CFLAGS = @ATLAS_CFLAGS@ ATLAS_CFLAGS = @ATLAS_CFLAGS@
ATLAS_ERROR = @ATLAS_ERROR@ ATLAS_ERROR = @ATLAS_ERROR@
ATLAS_LIB = @ATLAS_LIB@
ATLAS_LIBPATH = @ATLAS_LIBPATH@ ATLAS_LIBPATH = @ATLAS_LIBPATH@
ATLAS_LIBS = @ATLAS_LIBS@
ATLAS_WARN = @ATLAS_WARN@ ATLAS_WARN = @ATLAS_WARN@
AUTOCONF = @AUTOCONF@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
...@@ -121,47 +126,56 @@ CCDEPMODE = @CCDEPMODE@ ...@@ -121,47 +126,56 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPP = @CPP@ CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@ CYGPATH_W = @CYGPATH_W@
DATE2 = @DATE2@ DATE2 = @DATE2@
DATE3 = @DATE3@ DATE3 = @DATE3@
DEFS = @DEFS@ DEFS = @DEFS@
DEPDIR = @DEPDIR@ DEPDIR = @DEPDIR@
ECHO = @ECHO@ DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@ EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FFTW_ERROR = @FFTW_ERROR@ FFTW_ERROR = @FFTW_ERROR@
FFTW_LIBS = @FFTW_LIBS@ FFTW_LIBS = @FFTW_LIBS@
FFTW_WARN = @FFTW_WARN@ FFTW_WARN = @FFTW_WARN@
FGREP = @FGREP@
GREP = @GREP@ GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@ LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@ MKDIR_P = @MKDIR_P@
MKL_CFLAGS = @MKL_CFLAGS@
MKL_LIBS = @MKL_LIBS@
MKL_WARN = @MKL_WARN@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@ OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@ PACKAGE = @PACKAGE@
PACKAGER = @PACKAGER@ PACKAGER = @PACKAGER@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@ PATH_SEPARATOR = @PATH_SEPARATOR@
PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CC = @PTHREAD_CC@
...@@ -177,9 +191,9 @@ abs_builddir = @abs_builddir@ ...@@ -177,9 +191,9 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@ abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@ ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_F77 = @ac_ct_F77@
am__include = @am__include@ am__include = @am__include@
am__leading_dot = @am__leading_dot@ am__leading_dot = @am__leading_dot@
am__quote = @am__quote@ am__quote = @am__quote@
...@@ -240,14 +254,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) ...@@ -240,14 +254,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \ @for dep in $?; do \
case '$(am__configure_deps)' in \ case '$(am__configure_deps)' in \
*$$dep*) \ *$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& exit 0; \ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \ exit 1;; \
esac; \ esac; \
done; \ done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/wcs/Makefile'; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/wcs/Makefile'; \
cd $(top_srcdir) && \ $(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign src/wcs/Makefile $(AUTOMAKE) --gnu src/wcs/Makefile
.PRECIOUS: Makefile .PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \ @case '$?' in \
...@@ -265,6 +279,7 @@ $(top_srcdir)/configure: $(am__configure_deps) ...@@ -265,6 +279,7 @@ $(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps) $(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
clean-noinstLIBRARIES: clean-noinstLIBRARIES:
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
...@@ -290,21 +305,21 @@ distclean-compile: ...@@ -290,21 +305,21 @@ distclean-compile:
.c.o: .c.o:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $< @am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj: .c.obj:
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` @am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` @am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo: .c.lo:
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo @am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
...@@ -320,14 +335,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ...@@ -320,14 +335,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
unique=`for i in $$list; do \ unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \ done | \
$(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique mkid -fID $$unique
tags: TAGS tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) $(TAGS_FILES) $(LISP)
tags=; \ set x; \
here=`pwd`; \ here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \ unique=`for i in $$list; do \
...@@ -335,29 +350,34 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ ...@@ -335,29 +350,34 @@ TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
done | \ done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \ END { if (nonempty) { for (i in files) print i; }; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ shift; \
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \ test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ if test $$# -gt 0; then \
$$tags $$unique; \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
"$$@" $$unique; \
else \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$unique; \
fi; \
fi fi
ctags: CTAGS ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) $(TAGS_FILES) $(LISP)
tags=; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \ unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \ done | \
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { if (nonempty) { for (i in files) print i; }; }'`; \ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \ test -z "$(CTAGS_ARGS)$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique $$unique
GTAGS: GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \ here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \ && $(am__cd) $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here && gtags -i $(GTAGS_ARGS) "$$here"
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
...@@ -378,13 +398,17 @@ distdir: $(DISTFILES) ...@@ -378,13 +398,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \ if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \ fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \ else \
test -f $(distdir)/$$file \ test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file $(distdir)/$$file \ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \ || exit 1; \
fi; \ fi; \
done done
...@@ -412,6 +436,7 @@ clean-generic: ...@@ -412,6 +436,7 @@ clean-generic:
distclean-generic: distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
...@@ -433,6 +458,8 @@ dvi-am: ...@@ -433,6 +458,8 @@ dvi-am:
html: html-am html: html-am
html-am:
info: info-am info: info-am
info-am: info-am:
...@@ -441,18 +468,28 @@ install-data-am: ...@@ -441,18 +468,28 @@ install-data-am:
install-dvi: install-dvi-am install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-exec-am:
install-html: install-html-am install-html: install-html-am
install-html-am:
install-info: install-info-am install-info: install-info-am
install-info-am:
install-man: install-man:
install-pdf: install-pdf-am install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am install-ps: install-ps-am
install-ps-am:
installcheck-am: installcheck-am:
maintainer-clean: maintainer-clean-am maintainer-clean: maintainer-clean-am
...@@ -490,6 +527,7 @@ uninstall-am: ...@@ -490,6 +527,7 @@ uninstall-am:
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am pdf pdf-am ps ps-am tags uninstall uninstall-am
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:
# Makefile.in generated by automake 1.10.1 from Makefile.am. # Makefile.in generated by automake 1.11.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
# Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
...@@ -15,8 +16,9 @@ ...@@ -15,8 +16,9 @@
@SET_MAKE@ @SET_MAKE@
VPATH = @srcdir@ VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkglibexecdir = $(libexecdir)/@PACKAGE@
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
install_sh_DATA = $(install_sh) -c -m 644 install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c install_sh_PROGRAM = $(install_sh) -c
...@@ -35,7 +37,8 @@ subdir = tests ...@@ -35,7 +37,8 @@ subdir = tests
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \ am__aclocal_m4_deps = $(top_srcdir)/acx_atlas.m4 \
$(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_prog_cc_optim.m4 \ $(top_srcdir)/acx_fftw.m4 $(top_srcdir)/acx_mkl.m4 \
$(top_srcdir)/acx_prog_cc_optim.m4 \
$(top_srcdir)/acx_pthread.m4 \ $(top_srcdir)/acx_pthread.m4 \
$(top_srcdir)/acx_urbi_resolve_dir.m4 \ $(top_srcdir)/acx_urbi_resolve_dir.m4 \
$(top_srcdir)/configure.ac $(top_srcdir)/configure.ac
...@@ -44,8 +47,11 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ ...@@ -44,8 +47,11 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs mkinstalldirs = $(SHELL) $(top_srcdir)/autoconf/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES = CONFIG_CLEAN_FILES =
CONFIG_CLEAN_VPATH_FILES =
SOURCES = SOURCES =
DIST_SOURCES = DIST_SOURCES =
am__tty_colors = \
red=; grn=; lgn=; blu=; std=
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
...@@ -55,8 +61,8 @@ AM_LDFLAGS = @AM_LDFLAGS@ ...@@ -55,8 +61,8 @@ AM_LDFLAGS = @AM_LDFLAGS@
AR = @AR@ AR = @AR@
ATLAS_CFLAGS = @ATLAS_CFLAGS@ ATLAS_CFLAGS = @ATLAS_CFLAGS@
ATLAS_ERROR = @ATLAS_ERROR@ ATLAS_ERROR = @ATLAS_ERROR@
ATLAS_LIB = @ATLAS_LIB@
ATLAS_LIBPATH = @ATLAS_LIBPATH@ ATLAS_LIBPATH = @ATLAS_LIBPATH@
ATLAS_LIBS = @ATLAS_LIBS@
ATLAS_WARN = @ATLAS_WARN@ ATLAS_WARN = @ATLAS_WARN@
AUTOCONF = @AUTOCONF@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
...@@ -67,47 +73,56 @@ CCDEPMODE = @CCDEPMODE@ ...@@ -67,47 +73,56 @@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
CPP = @CPP@ CPP = @CPP@
CPPFLAGS = @CPPFLAGS@ CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@ CYGPATH_W = @CYGPATH_W@
DATE2 = @DATE2@ DATE2 = @DATE2@
DATE3 = @DATE3@ DATE3 = @DATE3@
DEFS = @DEFS@ DEFS = @DEFS@
DEPDIR = @DEPDIR@ DEPDIR = @DEPDIR@
ECHO = @ECHO@ DLLTOOL = @DLLTOOL@
DSYMUTIL = @DSYMUTIL@
DUMPBIN = @DUMPBIN@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@ ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@ ECHO_T = @ECHO_T@
EGREP = @EGREP@ EGREP = @EGREP@
EXEEXT = @EXEEXT@ EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FFTW_ERROR = @FFTW_ERROR@ FFTW_ERROR = @FFTW_ERROR@
FFTW_LIBS = @FFTW_LIBS@ FFTW_LIBS = @FFTW_LIBS@
FFTW_WARN = @FFTW_WARN@ FFTW_WARN = @FFTW_WARN@
FGREP = @FGREP@
GREP = @GREP@ GREP = @GREP@
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LD = @LD@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
LIPO = @LIPO@
LN_S = @LN_S@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@ LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MANIFEST_TOOL = @MANIFEST_TOOL@
MKDIR_P = @MKDIR_P@ MKDIR_P = @MKDIR_P@
MKL_CFLAGS = @MKL_CFLAGS@
MKL_LIBS = @MKL_LIBS@
MKL_WARN = @MKL_WARN@
NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@ OBJEXT = @OBJEXT@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@ PACKAGE = @PACKAGE@
PACKAGER = @PACKAGER@ PACKAGER = @PACKAGER@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@ PATH_SEPARATOR = @PATH_SEPARATOR@
PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CC = @PTHREAD_CC@
...@@ -123,9 +138,9 @@ abs_builddir = @abs_builddir@ ...@@ -123,9 +138,9 @@ abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@ abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@ abs_top_srcdir = @abs_top_srcdir@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@ ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@ ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
ac_ct_F77 = @ac_ct_F77@
am__include = @am__include@ am__include = @am__include@
am__leading_dot = @am__leading_dot@ am__leading_dot = @am__leading_dot@
am__quote = @am__quote@ am__quote = @am__quote@
...@@ -186,14 +201,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) ...@@ -186,14 +201,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \ @for dep in $?; do \
case '$(am__configure_deps)' in \ case '$(am__configure_deps)' in \
*$$dep*) \ *$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
&& exit 0; \ && { if test -f $@; then exit 0; else break; fi; }; \
exit 1;; \ exit 1;; \
esac; \ esac; \
done; \ done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign tests/Makefile'; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \
cd $(top_srcdir) && \ $(am__cd) $(top_srcdir) && \
$(AUTOMAKE) --foreign tests/Makefile $(AUTOMAKE) --gnu tests/Makefile
.PRECIOUS: Makefile .PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \ @case '$?' in \
...@@ -211,6 +226,7 @@ $(top_srcdir)/configure: $(am__configure_deps) ...@@ -211,6 +226,7 @@ $(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps) $(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(am__aclocal_m4_deps):
mostlyclean-libtool: mostlyclean-libtool:
-rm -f *.lo -rm -f *.lo
...@@ -225,9 +241,10 @@ CTAGS: ...@@ -225,9 +241,10 @@ CTAGS:
check-TESTS: $(TESTS) check-TESTS: $(TESTS)
@failed=0; all=0; xfail=0; xpass=0; skip=0; ws='[ ]'; \ @failed=0; all=0; xfail=0; xpass=0; skip=0; \
srcdir=$(srcdir); export srcdir; \ srcdir=$(srcdir); export srcdir; \
list=' $(TESTS) '; \ list=' $(TESTS) '; \
$(am__tty_colors); \
if test -n "$$list"; then \ if test -n "$$list"; then \
for tst in $$list; do \ for tst in $$list; do \
if test -f ./$$tst; then dir=./; \ if test -f ./$$tst; then dir=./; \
...@@ -236,49 +253,63 @@ check-TESTS: $(TESTS) ...@@ -236,49 +253,63 @@ check-TESTS: $(TESTS)
if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \ if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
all=`expr $$all + 1`; \ all=`expr $$all + 1`; \
case " $(XFAIL_TESTS) " in \ case " $(XFAIL_TESTS) " in \
*$$ws$$tst$$ws*) \ *[\ \ ]$$tst[\ \ ]*) \
xpass=`expr $$xpass + 1`; \ xpass=`expr $$xpass + 1`; \
failed=`expr $$failed + 1`; \ failed=`expr $$failed + 1`; \
echo "XPASS: $$tst"; \ col=$$red; res=XPASS; \
;; \ ;; \
*) \ *) \
echo "PASS: $$tst"; \ col=$$grn; res=PASS; \
;; \ ;; \
esac; \ esac; \
elif test $$? -ne 77; then \ elif test $$? -ne 77; then \
all=`expr $$all + 1`; \ all=`expr $$all + 1`; \
case " $(XFAIL_TESTS) " in \ case " $(XFAIL_TESTS) " in \
*$$ws$$tst$$ws*) \ *[\ \ ]$$tst[\ \ ]*) \
xfail=`expr $$xfail + 1`; \ xfail=`expr $$xfail + 1`; \
echo "XFAIL: $$tst"; \ col=$$lgn; res=XFAIL; \
;; \ ;; \
*) \ *) \
failed=`expr $$failed + 1`; \ failed=`expr $$failed + 1`; \
echo "FAIL: $$tst"; \ col=$$red; res=FAIL; \
;; \ ;; \
esac; \ esac; \
else \ else \
skip=`expr $$skip + 1`; \ skip=`expr $$skip + 1`; \
echo "SKIP: $$tst"; \ col=$$blu; res=SKIP; \
fi; \ fi; \
echo "$${col}$$res$${std}: $$tst"; \
done; \ done; \
if test "$$all" -eq 1; then \
tests="test"; \
All=""; \
else \
tests="tests"; \
All="All "; \
fi; \
if test "$$failed" -eq 0; then \ if test "$$failed" -eq 0; then \
if test "$$xfail" -eq 0; then \ if test "$$xfail" -eq 0; then \
banner="All $$all tests passed"; \ banner="$$All$$all $$tests passed"; \
else \ else \
banner="All $$all tests behaved as expected ($$xfail expected failures)"; \ if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
fi; \ fi; \
else \ else \
if test "$$xpass" -eq 0; then \ if test "$$xpass" -eq 0; then \
banner="$$failed of $$all tests failed"; \ banner="$$failed of $$all $$tests failed"; \
else \ else \
banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \ if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
fi; \ fi; \
fi; \ fi; \
dashes="$$banner"; \ dashes="$$banner"; \
skipped=""; \ skipped=""; \
if test "$$skip" -ne 0; then \ if test "$$skip" -ne 0; then \
skipped="($$skip tests were not run)"; \ if test "$$skip" -eq 1; then \
skipped="($$skip test was not run)"; \
else \
skipped="($$skip tests were not run)"; \
fi; \
test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \ test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
dashes="$$skipped"; \ dashes="$$skipped"; \
fi; \ fi; \
...@@ -289,11 +320,15 @@ check-TESTS: $(TESTS) ...@@ -289,11 +320,15 @@ check-TESTS: $(TESTS)
dashes="$$report"; \ dashes="$$report"; \
fi; \ fi; \
dashes=`echo "$$dashes" | sed s/./=/g`; \ dashes=`echo "$$dashes" | sed s/./=/g`; \
echo "$$dashes"; \ if test "$$failed" -eq 0; then \
echo "$$grn$$dashes"; \
else \
echo "$$red$$dashes"; \
fi; \
echo "$$banner"; \ echo "$$banner"; \
test -z "$$skipped" || echo "$$skipped"; \ test -z "$$skipped" || echo "$$skipped"; \
test -z "$$report" || echo "$$report"; \ test -z "$$report" || echo "$$report"; \
echo "$$dashes"; \ echo "$$dashes$$std"; \
test "$$failed" -eq 0; \ test "$$failed" -eq 0; \
else :; fi else :; fi
...@@ -313,13 +348,17 @@ distdir: $(DISTFILES) ...@@ -313,13 +348,17 @@ distdir: $(DISTFILES)
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
if test -d $$d/$$file; then \ if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d "$(distdir)/$$file"; then \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
fi; \ fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
else \ else \
test -f $(distdir)/$$file \ test -f "$(distdir)/$$file" \
|| cp -p $$d/$$file $(distdir)/$$file \ || cp -p $$d/$$file "$(distdir)/$$file" \
|| exit 1; \ || exit 1; \
fi; \ fi; \
done done
...@@ -348,6 +387,7 @@ clean-generic: ...@@ -348,6 +387,7 @@ clean-generic:
distclean-generic: distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
...@@ -366,6 +406,8 @@ dvi-am: ...@@ -366,6 +406,8 @@ dvi-am:
html: html-am html: html-am
html-am:
info: info-am info: info-am
info-am: info-am:
...@@ -374,18 +416,28 @@ install-data-am: ...@@ -374,18 +416,28 @@ install-data-am:
install-dvi: install-dvi-am install-dvi: install-dvi-am
install-dvi-am:
install-exec-am: install-exec-am:
install-html: install-html-am install-html: install-html-am
install-html-am:
install-info: install-info-am install-info: install-info-am
install-info-am:
install-man: install-man:
install-pdf: install-pdf-am install-pdf: install-pdf-am
install-pdf-am:
install-ps: install-ps-am install-ps: install-ps-am
install-ps-am:
installcheck-am: installcheck-am:
maintainer-clean: maintainer-clean-am maintainer-clean: maintainer-clean-am
...@@ -406,7 +458,7 @@ ps-am: ...@@ -406,7 +458,7 @@ ps-am:
uninstall-am: uninstall-am:
.MAKE: install-am install-strip .MAKE: check-am install-am install-strip
.PHONY: all all-am check check-TESTS check-am clean clean-generic \ .PHONY: all all-am check check-TESTS check-am clean clean-generic \
clean-libtool distclean distclean-generic distclean-libtool \ clean-libtool distclean distclean-generic distclean-libtool \
...@@ -422,6 +474,7 @@ uninstall-am: ...@@ -422,6 +474,7 @@ uninstall-am:
distclean-local: distclean-local:
-rm *.cat *.xml -rm *.cat *.xml
# Tell versions [3.59,3.63) of GNU make to not export all variables. # 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. # Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT: .NOEXPORT:
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment