libflame revision_anchor
FLA_f77_name_mangling.h
Go to the documentation of this file.
1/*
2
3 Copyright (C) 2014, The University of Texas at Austin
4
5 This file is part of libflame and is available under the 3-Clause
6 BSD license, which can be found in the LICENSE file at the top-level
7 directory, or at http://opensource.org/licenses/BSD-3-Clause
8
9*/
10
11// --- Define Fortran name-mangling macro --------------------------------------
12
13// If the F77_FUNC name-mangling macro is undefined, then we we need to define
14// it ourselves.
15#ifndef F77_FUNC
16
17 // Case 1: F77_FUNC is undefined because we're building for Windows.
18 #ifdef FLA_ENABLE_WINDOWS_BUILD
19
20 // Check whether we need to use uppercase BLAS routine names; otherwise
21 // default to lowercase.
22 #ifdef FLA_ENABLE_UPPERCASE_BLAS
23
24 // Use uppercase routine names (no underscore).
25 #define F77_FUNC( name_lower, name_upper ) \
26 name_upper
27 #else
28
29 // Use lowercase routine names (no underscore).
30 #define F77_FUNC( name_lower, name_upper ) \
31 name_lower
32 #endif
33
34 // Case 2: F77_FUNC is undefined because we're in a Linux-like environment
35 // that did not define it for us.
36 #else
37
38 // Check whether we need to use uppercase BLAS routine names; otherwise
39 // default to lowercase.
40 #ifdef FLA_ENABLE_UPPERCASE_BLAS
41
42 // Use uppercase routine names (single underscore).
43 #define F77_FUNC( name_lower, name_upper ) \
44 name_upper ## _
45 #else
46
47 // Use lowercase routine names (single underscore).
48 #define F77_FUNC( name_lower, name_upper ) \
49 name_lower ## _
50 #endif
51
52 #endif // #ifdef FLA_ENABLE_WINDOWS_BUILD
53
54#endif // #ifndef F77_FUNC
55