summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/freebsd30
-rwxr-xr-xhl/fortran/src/H5f90i.h97
2 files changed, 93 insertions, 34 deletions
diff --git a/config/freebsd b/config/freebsd
index c1af4d9..caeca9c 100644
--- a/config/freebsd
+++ b/config/freebsd
@@ -15,6 +15,30 @@ fi
# from /usr/include/sys/cdefs.h
CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=1"
+# Figure out C compiler flags
+. $srcdir/config/gnu-flags
+
+# Figure out Intel C compiler flags
+. $srcdir/config/intel-flags
+
+# The default Fortran 90 compiler
+if test "X-" = "X-$F9X"; then
+ case $CC_BASENAME in
+ gcc*|pgcc*)
+ F9X=gfortran40
+ F9X_BASENAME=gfortran40
+ ;;
+ icc*)
+ F9X=ifort
+ F9X_BASENAME=ifort
+ ;;
+ mpicc*)
+ F9X=mpif90
+ F9X_BASENAME=mpif90
+ ;;
+ esac
+fi
+
#
# HDF5 FORTRAN integers
#
@@ -30,12 +54,12 @@ HID_T='SELECTED_INT_KIND(R_INTEGER)'
SIZE_T='SELECTED_INT_KIND(R_INTEGER)'
OBJECT_NAMELEN_DEFAULT_F=-1
-# Figure out C compiler flags
-. $srcdir/config/gnu-flags
-
# Figure out FORTRAN compiler flags
. $srcdir/config/gnu-fflags
+# Figure out Intel F90 compiler flags
+. $srcdir/config/intel-fflags
+
# Special setup to use pthread support if enable-threadsafe is on.
# Works with static executable only.
if test "X-" != "X-$enable_threadsafe"; then
diff --git a/hl/fortran/src/H5f90i.h b/hl/fortran/src/H5f90i.h
index 52496a9..e39e3f8 100755
--- a/hl/fortran/src/H5f90i.h
+++ b/hl/fortran/src/H5f90i.h
@@ -25,6 +25,7 @@
#include <fortran.h>
/*typedef char* _fcd;*/
+typedef long haddr_t_f;
typedef long hsize_t_f;
typedef long hssize_t_f;
typedef long size_t_f;
@@ -39,6 +40,7 @@ typedef double real_f;
#if defined(IBM6000) || defined(_AIX)
typedef char *_fcd;
+typedef long long haddr_t_f;
typedef long long hsize_t_f;
typedef long long hssize_t_f;
typedef int size_t_f;
@@ -51,6 +53,7 @@ typedef float real_f;
/* MAC APPLE definitions with IBM XL compiler*/
#if defined(__APPLE__)
typedef char *_fcd;
+typedef long long haddr_t_f;
typedef long long hsize_t_f;
typedef long long hssize_t_f;
typedef int size_t_f;
@@ -65,61 +68,54 @@ typedef float real_f;
#endif /*APPLE*/
-
/* LINUX definitions */
-#if (defined(i386) || defined(__i386__)) && (defined(linux) || defined(__linux__))
+#if (defined(linux) || defined(__gnu_linux__) || defined(__linux__))
+/* Common definitions */
+typedef char *_fcd;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define _fcdtocp(desc) (desc)
-/*#error "LINUX definitions"*/
+/* IA32 specific definitions */
+#if (defined(i386) || defined(__i386) || defined(__i386__))
-typedef char *_fcd;
+typedef long long haddr_t_f;
typedef long long hsize_t_f;
typedef long long hssize_t_f;
typedef int size_t_f;
-typedef int int_f;
-typedef int hid_t_f;
-typedef float real_f;
#if defined H5_ABSOFT
#define DF_CAPFNAMES
#else
#define FNAME_POST_UNDERSCORE
#endif /*H5_ABSOFT*/
-#define _fcdtocp(desc) (desc)
-#endif /*LINUX*/
+/* AMD64 specific definitions */
+#elif defined __x86_64__
-/* LINUX64 definitions */
-#if defined __x86_64__
-
-typedef char *_fcd;
+typedef long long haddr_t_f;
typedef long long hsize_t_f;
typedef long long hssize_t_f;
typedef int size_t_f;
-typedef int int_f;
-typedef int hid_t_f;
-typedef float real_f;
#define FNAME_POST_UNDERSCORE
-#define _fcdtocp(desc) (desc)
-#endif /*LINUX64*/
-/* IA64 LINUX definitions */
-#if defined __ia64
+/* IA64 specific definitions */
+#elif defined __ia64
-typedef char *_fcd;
+typedef long haddr_t_f;
typedef long hsize_t_f;
typedef long hssize_t_f;
typedef long size_t_f;
-typedef int int_f;
-typedef int hid_t_f;
-typedef float real_f;
#define FNAME_POST_UNDERSCORE
-#define _fcdtocp(desc) (desc)
-#endif /* IA64 LINUX*/
+#endif /* IA64 */
+#endif /* LINUX*/
#if defined(IRIX) || defined(IRIS4) || defined(sgi) || defined(__sgi__) || defined(__sgi)
typedef char *_fcd;
+typedef long haddr_t_f;
typedef long hsize_t_f;
typedef long hssize_t_f;
typedef long size_t_f;
@@ -133,6 +129,7 @@ typedef float real_f;
#if (defined(SUN) || defined(sun) || defined(__sun__) || defined(__SUNPRO_C)) & !defined(__i386)
typedef char *_fcd;
+typedef long long haddr_t_f;
typedef long long hssize_t_f;
typedef long long hsize_t_f;
typedef int size_t_f;
@@ -147,6 +144,7 @@ typedef float real_f;
#if defined DEC_ALPHA || (defined __alpha && defined __unix__ && !defined __linux__)
typedef char *_fcd;
+typedef long haddr_t_f;
typedef long hsize_t_f;
typedef long hssize_t_f;
typedef long size_t_f;
@@ -161,9 +159,10 @@ typedef float real_f;
#if defined __alpha__ && defined __linux__
typedef char *_fcd;
-typedef long long hsize_t_f;
-typedef long long hssize_t_f;
-typedef long long size_t_f;
+typedef long long haddr_t_f;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
+typedef long long size_t_f;
typedef int int_f;
typedef int hid_t_f;
typedef float real_f;
@@ -175,8 +174,9 @@ typedef float real_f;
#if defined(HP9000) || (!defined(__convexc__) && (defined(hpux) || defined(__hpux)))
typedef char *_fcd;
-typedef long long hsize_t_f;
-typedef long long hssize_t_f;
+typedef long long haddr_t_f;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
typedef long size_t_f;
typedef int int_f;
typedef int hid_t_f;
@@ -189,6 +189,7 @@ typedef float real_f;
#if defined _WINDOWS || defined WIN32
typedef char *_fcd;
+typedef int haddr_t_f;
typedef int hsize_t_f;
typedef int hssize_t_f;
typedef int size_t_f;
@@ -201,6 +202,40 @@ typedef float real_f;
#endif /*WINDOWS */
+/* FreeBSD definitions */
+#if (defined(__FreeBSD) || defined(__FreeBSD__))
+
+/* Common definitions */
+typedef char *_fcd;
+typedef int int_f;
+typedef int hid_t_f;
+typedef float real_f;
+#define _fcdtocp(desc) (desc)
+
+/* IA32 specific definitions */
+#if (defined(i386) || defined(__i386) || defined(__i386__))
+typedef long long haddr_t_f;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
+typedef int size_t_f;
+/* AMD64 specific definitions */
+#elif defined __x86_64__
+typedef long long haddr_t_f;
+typedef long long hsize_t_f;
+typedef long long hssize_t_f;
+typedef int size_t_f;
+/* IA64 specific definitions */
+#elif defined __ia64
+typedef long haddr_t_f;
+typedef long hsize_t_f;
+typedef long hssize_t_f;
+typedef long size_t_f;
+#endif /* IA64 */
+
+#define FNAME_POST_UNDERSCORE
+
+#endif /* FreeBSD */
+
/*----------------------------------------------------------------
** MACRO FNAME for any fortran callable routine name.
**