|
Archives
D Programming
DD.gnu digitalmars.D digitalmars.D.bugs digitalmars.D.dtl digitalmars.D.dwt digitalmars.D.announce digitalmars.D.learn digitalmars.D.debugger C/C++ Programming
c++c++.announce c++.atl c++.beta c++.chat c++.command-line c++.dos c++.dos.16-bits c++.dos.32-bits c++.idde c++.mfc c++.rtl c++.stl c++.stl.hp c++.stl.port c++.stl.sgi c++.stlsoft c++.windows c++.windows.16-bits c++.windows.32-bits c++.wxwindows digitalmars.empire digitalmars.DMDScript |
c++ - Prolem including time.h, defining MSDOS
Having solved (at least, i hope) the problems with atlas, i have a problem
trying to compile clapack for windows.
The two problematic files are:
dtime_.c:
******************
#include "time.h"
#ifdef MSDOS
#undef USE_CLOCK
#define USE_CLOCK
#endif
#ifndef USE_CLOCK
#define _INCLUDE_POSIX_SOURCE /* for HP-UX */
#define _INCLUDE_XOPEN_SOURCE /* for HP-UX */
#include "sys/types.h"
#include "sys/times.h"
#endif
#undef Hz
#ifdef CLK_TCK
#define Hz CLK_TCK
#else
#ifdef HZ
#define Hz HZ
#else
#define Hz 60
#endif
#endif
double
#ifdef KR_headers
dtime_(tarray) float *tarray;
#else
dtime_(float *tarray)
#endif
{
#ifdef USE_CLOCK
#ifndef CLOCKS_PER_SECOND
#define CLOCKS_PER_SECOND Hz
#endif
static double t0;
double t = clock();
tarray[1] = 0;
tarray[0] = (t - t0) / CLOCKS_PER_SECOND;
t0 = t;
return tarray[0];
#else
struct tms t;
static struct tms t0;
times(&t);
tarray[0] = (t.tms_utime - t0.tms_utime) / Hz;
tarray[1] = (t.tms_stime - t0.tms_stime) / Hz;
t0 = t;
return tarray[0] + tarray[1];
#endif
}
***************
etime_.c:
*************
#include "time.h"
#ifdef MSDOS
#undef USE_CLOCK
#define USE_CLOCK
#endif
#ifndef USE_CLOCK
#define _INCLUDE_POSIX_SOURCE /* for HP-UX */
#define _INCLUDE_XOPEN_SOURCE /* for HP-UX */
#include "sys/types.h"
#include "sys/times.h"
#endif
#undef Hz
#ifdef CLK_TCK
#define Hz CLK_TCK
#else
#ifdef HZ
#define Hz HZ
#else
#define Hz 60
#endif
#endif
double
#ifdef KR_headers
etime_(tarray) float *tarray;
#else
etime_(float *tarray)
#endif
{
#ifdef USE_CLOCK
#ifndef CLOCKS_PER_SECOND
#define CLOCKS_PER_SECOND Hz
#endif
double t = clock();
tarray[1] = 0;
return tarray[0] = t / CLOCKS_PER_SECOND;
#else
struct tms t;
times(&t);
return (tarray[0] = t.tms_utime/Hz) + (tarray[1] = t.tms_stime/Hz);
#endif
}
**************
The problem is that when i compile i get:
"size of tms not known"
I have looked in c:\dm\lib\time.h but that didn't help me at all.
Also, i need to define "MSDOS" (to be able to load the correct headers, instead
of the unix ones), but setting _MSDOS in the project settings under build,
defines doen's help at all. Where am i wrong?
Thank you for your help :)
Greetings
Stefano
Feb 16 2006
I have solved the problem, as dtime_.c and etime_.c compiled fine if i define the MSDOS macro. I was having problems entering the MSDOS macro in the define section correctly, hope that the library will works ok, time will tell :) Also, i don't undestrand clearly the difference in choosing winNT vs win32 vs win95. Does it only affect the define macros or something more? Thank you! Stefano In article <dt2966$p6j$1 digitaldaemon.com>, Stefano says... Feb 16 2006
"Stefano" <Stefano_member pathlink.com> wrote in message news:dt2hj7$12nd$1 digitaldaemon.com...Also, i don't undestrand clearly the difference in choosing winNT vs win32 vs win95. Does it only affect the define macros or something more? Feb 16 2006
|