aboutsummaryrefslogtreecommitdiff
path: root/bench/btl/generic_bench/utils/utilities.h
blob: d2330d06b83feb9aa975ca07832ce54b8260461f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
//=============================================================================
// File      : utilities.h
// Created   : mar jun 19 13:18:14 CEST 2001
// Author    : Antoine YESSAYAN, Paul RASCLE, EDF
// Project   : SALOME
// Copyright : EDF 2001
// $Header$
//=============================================================================

/* ---  Definition macros file to print information if _DEBUG_ is defined --- */

# ifndef UTILITIES_H
# define UTILITIES_H

# include <stdlib.h>
//# include <iostream> ok for gcc3.01
# include <iostream>

/* ---  INFOS is always defined (without _DEBUG_): to be used for warnings, with release version --- */

# define HEREWEARE cout<<flush ; cerr << __FILE__ << " [" << __LINE__ << "] : " << flush ;
# define INFOS(chain) {HEREWEARE ; cerr << chain << endl ;}
# define PYSCRIPT(chain) {cout<<flush ; cerr << "---PYSCRIPT--- " << chain << endl ;}

/* --- To print date and time of compilation of current source on stdout --- */

# if defined ( __GNUC__ )
# define COMPILER		"g++" ;
# elif defined ( __sun )
# define COMPILER		"CC" ;
# elif defined ( __KCC )
# define COMPILER		"KCC" ;
# elif defined ( __PGI )
# define COMPILER		"pgCC" ;
# else
# define COMPILER		"undefined" ;
# endif

# ifdef INFOS_COMPILATION
# error INFOS_COMPILATION already defined
# endif
# define INFOS_COMPILATION	{\
					cerr << flush;\
					cout << __FILE__ ;\
					cout << " [" << __LINE__ << "] : " ;\
					cout << "COMPILED with " << COMPILER ;\
					cout << ", " << __DATE__ ; \
					cout << " at " << __TIME__ << endl ;\
					cout << "\n\n" ;\
					cout << flush ;\
				}

# ifdef _DEBUG_

/* --- the following MACROS are useful at debug time --- */

# define HERE cout<<flush ; cerr << "- Trace " << __FILE__ << " [" << __LINE__ << "] : " << flush ;
# define SCRUTE(var) HERE ; cerr << #var << "=" << var << endl ;
# define MESSAGE(chain) {HERE ; cerr << chain << endl ;}
# define INTERRUPTION(code) HERE ; cerr << "INTERRUPTION return code= " << code << endl ; exit(code) ;

# ifndef ASSERT
# define ASSERT(condition) if (!(condition)){ HERE ; cerr << "CONDITION " << #condition << " NOT VERIFIED"<< endl ; INTERRUPTION(1) ;}
# endif /* ASSERT */

#define REPERE cout<<flush ; cerr << "   --------------" << endl << flush ;
#define BEGIN_OF(chain) {REPERE ; HERE ; cerr << "Begin of: " << chain << endl ; REPERE ; }
#define END_OF(chain) {REPERE ; HERE ; cerr << "Normal end of: " << chain << endl ; REPERE ; }



# else /* ifdef _DEBUG_*/

# define HERE
# define SCRUTE(var)
# define MESSAGE(chain)
# define INTERRUPTION(code)

# ifndef ASSERT
# define ASSERT(condition)
# endif /* ASSERT */

#define REPERE
#define BEGIN_OF(chain)
#define END_OF(chain)


# endif /* ifdef _DEBUG_*/

# endif /* ifndef UTILITIES_H */