| @@ -118,6 +118,13 @@ endif | |||||
| #Save the config files for installation | #Save the config files for installation | ||||
| cp Makefile.conf Makefile.conf_last | cp Makefile.conf Makefile.conf_last | ||||
| cp config.h config_last.h | cp config.h config_last.h | ||||
| ifdef QUAD_PRECISION | |||||
| echo "#define QUAD_PRECISION">> config_last.h | |||||
| endif | |||||
| ifeq ($(EXPRECISION), 1) | |||||
| echo "#define EXPRECISION">> config_last.h | |||||
| endif | |||||
| ## | |||||
| ifdef DYNAMIC_ARCH | ifdef DYNAMIC_ARCH | ||||
| $(MAKE) -C kernel commonlibs || exit 1 | $(MAKE) -C kernel commonlibs || exit 1 | ||||
| for d in $(DYNAMIC_CORE) ; \ | for d in $(DYNAMIC_CORE) ; \ | ||||
| @@ -38,6 +38,11 @@ | |||||
| #ifndef ASSEMBLER | #ifndef ASSEMBLER | ||||
| #ifdef __cplusplus | |||||
| extern "C" { | |||||
| /* Assume C declarations for C++ */ | |||||
| #endif /* __cplusplus */ | |||||
| int BLASFUNC(xerbla)(char *, blasint *info, blasint); | int BLASFUNC(xerbla)(char *, blasint *info, blasint); | ||||
| FLOATRET BLASFUNC(sdot) (blasint *, float *, blasint *, float *, blasint *); | FLOATRET BLASFUNC(sdot) (blasint *, float *, blasint *, float *, blasint *); | ||||
| @@ -733,4 +738,10 @@ xdouble BLASFUNC(qlamch)(char *); | |||||
| FLOATRET BLASFUNC(slamc3)(float *, float *); | FLOATRET BLASFUNC(slamc3)(float *, float *); | ||||
| double BLASFUNC(dlamc3)(double *, double *); | double BLASFUNC(dlamc3)(double *, double *); | ||||
| xdouble BLASFUNC(qlamc3)(xdouble *, xdouble *); | xdouble BLASFUNC(qlamc3)(xdouble *, xdouble *); | ||||
| #ifdef __cplusplus | |||||
| } | |||||
| #endif /* __cplusplus */ | |||||
| #endif | #endif | ||||
| @@ -6,6 +6,16 @@ | |||||
| #define BLASFUNC(FUNC) FUNC | #define BLASFUNC(FUNC) FUNC | ||||
| #endif | #endif | ||||
| #ifdef QUAD_PRECISION | |||||
| typedef struct { | |||||
| unsigned long x[2]; | |||||
| } xdouble; | |||||
| #elif defined EXPRECISION | |||||
| #define xdouble long double | |||||
| #else | |||||
| #define xdouble double | |||||
| #endif | |||||
| #if defined(OS_WINDOWS) && defined(__64BIT__) | #if defined(OS_WINDOWS) && defined(__64BIT__) | ||||
| typedef long long BLASLONG; | typedef long long BLASLONG; | ||||
| typedef unsigned long long BLASULONG; | typedef unsigned long long BLASULONG; | ||||
| @@ -19,3 +29,13 @@ typedef BLASLONG blasint; | |||||
| #else | #else | ||||
| typedef int blasint; | typedef int blasint; | ||||
| #endif | #endif | ||||
| #if defined(XDOUBLE) || defined(DOUBLE) | |||||
| #define FLOATRET FLOAT | |||||
| #else | |||||
| #ifdef NEED_F2CCONV | |||||
| #define FLOATRET double | |||||
| #else | |||||
| #define FLOATRET float | |||||
| #endif | |||||
| #endif | |||||