[EMAIL PROTECTED] wrote on Thu, 10 Jan 2008 11:54 -0700:
> Pete Wyckoff wrote:
>> [EMAIL PROTECTED] wrote on Thu, 10 Jan 2008 09:48 -0700:
>>> I found a problem building pvfs-2.7.0, GM, on an
>>> x86_64 platform.  The file Makefile.in assumes that
>>> the libraries for GM are found in [EMAIL PROTECTED]@/lib,
>>> but since the system is 64-bit, they are in [EMAIL PROTECTED]@/lib64.
>>> I have never used MX, but I suspect it has the same problem.
>>>
>>> Changing the Makefile.in file allowed me to build the
>>> code, but I suspect this should be automated.
>>
>> I don't use GM or MX, so can't really test this.  But I did the IB
>> configure rules a while back and it is still fresh enough in my mind
>> for me to do similar for these.  Here's a first stab at a patch.  If
>> you are willing to test the GM part and make it work for you, we can
>> check it in and cross fingers there are no typos.
>
> I will test it out and send it back for inclusion.

Craig, did you get a chance to look at this?

Scott, I think it's a worthwhile cleanup regardless.  Can you glance
over the MX bits and see if I made any obvious mistakes?  Some
differences:

    -I @MX_HOME@/include only affects mx.c now, not entire tree.

    Removed the "-g -O0" global CFLAGS, hoping mx will work for
    whatever CFLAGS one might choose.

    Addition of --with-mx-includes and --with-mx-libs with defaults
    as @MX_HOME@/include; and @MX_HOME@/lib64 or @MX_HOME@/lib,
    whichever exists, in that order.

    Check for existence of libmyriexpress.so or .a in libdir.

I think it will be more robust in case you run into vendor-installed
RPMs or such where you don't have the handy lib soft link into the
right place.  We must fix it on GM at least to address Craig's
64-bit machine config problem, but the MX bit is your call.

                -- Pete


>From 5951ebd35ee250bc762d20e644dbce93c8802383 Sun Feb 10 12:15:24 EST 2008
From: Pete Wyckoff <[EMAIL PROTECTED]>
Date: Sun, 10 Feb 2008 12:03:17 -0500
Subject: [PATCH] gm-mx-autoconf

Convert GM and MX to use autoconf tests to find includes and libs.  Move
these tests into new config files to keep the top-level Makefile clean.
This fixes a configuration problem with GM on x86_64 where libs are
in lib64/, and generalizes both GM and MX to be a bit more clever at
autodetection.

Signed-off-by: Pete Wyckoff <[EMAIL PROTECTED]>
---
 Makefile.in                    |   32 +++-----
 configure                      |  167 ++++++++++++++++++++++++++++++++--------
 configure.in                   |   49 ++----------
 maint/config/gm.m4             |   72 +++++++++++++++++
 maint/config/mx.m4             |   73 +++++++++++++++++
 src/apps/admin/pvfs2-config.in |    8 +-
 src/io/bmi/bmi_gm/module.mk.in |   45 ++++++++----
 src/io/bmi/bmi_mx/module.mk.in |   40 +++++++---
 8 files changed, 363 insertions(+), 123 deletions(-)
 create mode 100644 maint/config/gm.m4
 create mode 100644 maint/config/mx.m4

diff --git a/Makefile.in b/Makefile.in
index f487bcf..e5b42a3 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -299,32 +299,24 @@ endif
 # enable GM if configure detected it
 
 ifdef BUILD_GM
-       CFLAGS += -I @GM_HOME@/include -I @GM_HOME@/include/gm
-       CFLAGS += -D__STATIC_METHOD_BMI_GM__
-       # TODO: later on we will want the ability to modify this at configure
-       # time
-       CFLAGS += -DENABLE_GM_BUFPOOL
-       LDFLAGS += [EMAIL PROTECTED]@/lib
-       SERVER_LDFLAGS += [EMAIL PROTECTED]@/lib
-       LIBS += -lgm
-       LIBS_THREADED += -lgm
-       SERVERLIBS += -lgm
+    # other settings in bmi_gm/module.mk.in
+    CFLAGS += -D__STATIC_METHOD_BMI_GM__
+    GMLIBS := [EMAIL PROTECTED]@ -lgm
+    LIBS += $(GMLIBS)
+    LIBS_THREADED += $(GMLIBS)
+    SERVERLIBS += $(GMLIBS)
 endif
 
 ################################################################
 # enable MX if configure detected it
 
 ifdef BUILD_MX
-       CFLAGS += -I @MX_HOME@/include
-       CFLAGS += -D__STATIC_METHOD_BMI_MX__
-       # TODO: later on we will want the ability to modify this at configure
-       # time
-       CFLAGS += -g -O0
-       LDFLAGS += [EMAIL PROTECTED]@/lib
-       SERVER_LDFLAGS += [EMAIL PROTECTED]@/lib
-       LIBS += -lmyriexpress -lpthread
-       LIBS_THREADED += -lmyriexpress -lpthread
-       SERVERLIBS += -lmyriexpress -lpthread
+    # other settings in bmi_mx/module.mk.in
+    CFLAGS += -D__STATIC_METHOD_BMI_MX__
+    MXLIBS := [EMAIL PROTECTED]@ -lmyriexpress -lpthread
+    LIBS += $(MXLIBS)
+    LIBS_THREADED += $(MXLIBS)
+    SERVERLIBS += $(MXLIBS)
 endif
 
 #####################################
diff --git a/configure b/configure
index 59c4752..679baa2 100755
--- a/configure
+++ b/configure
@@ -712,10 +712,12 @@ NEEDS_LIBRT
 TARGET_OS_DARWIN
 TARGET_OS_LINUX
 BUILD_BMI_TCP
-GM_HOME
 BUILD_GM
-MX_HOME
+GM_INCDIR
+GM_LIBDIR
 BUILD_MX
+MX_INCDIR
+MX_LIBDIR
 BUILD_IB
 IB_INCDIR
 IB_LIBDIR
@@ -1355,8 +1357,12 @@ Optional Packages:
   --with-valgrind=<path>  Use valgrind annotations for debugging.
   --with-db=<dir>         Location of installed DB package (default=/usr)
   --without-bmi-tcp       Disable BMI TCP method
-  --with-gm=<dir>         Location of the GM installation (default no GM)
-  --with-mx=<dir>         Location of the MX installation (default no MX)
+  --with-gm=<dir>     Location of the GM install (default no GM)
+  --with-gm-includes=<dir>  Location of the GM includes
+  --with-gm-libs=<dir>      Location of the GM libraries
+  --with-mx=<dir>     Location of the MX install (default no MX)
+  --with-mx-includes=<dir>  Location of the MX includes
+  --with-mx-libs=<dir>      Location of the MX libraries
   --with-ib=<dir>         Location of the IB installation (default no IB)
   --with-ib-includes=<dir>      Location of the IB includes
   --with-ib-libs=<dir>          Location of the IB libraries
@@ -14439,24 +14445,62 @@ fi
 
 
 
-GM_HOME=
+
+                    gm_home=
 
 # Check whether --with-gm was given.
 if test "${with_gm+set}" = set; then
   withval=$with_gm; if test -z "$withval" -o "$withval" = yes ; then
-       { { echo "$as_me:$LINENO: error: Option --with-gm requires the path to 
your GM tree." >&5
+           { { echo "$as_me:$LINENO: error: Option --with-gm requires the path 
to your GM tree." >&5
 echo "$as_me: error: Option --with-gm requires the path to your GM tree." >&2;}
    { (exit 1); exit 1; }; }
-    elif test "$withval" != no ; then
-       GM_HOME="$withval"
-    fi
+       elif test "$withval" != no ; then
+           gm_home="$withval"
+       fi
 
 fi
 
-if test -n "$GM_HOME" ; then
-    save_cppflags="$CPPFLAGS"
-    CPPFLAGS="$CPPFLAGS -I ${GM_HOME}/include -I ${GM_HOME}/include/gm"
-    if test "${ac_cv_header_gm_h+set}" = set; then
+
+# Check whether --with-gm-includes was given.
+if test "${with_gm_includes+set}" = set; then
+  withval=$with_gm_includes; if test -z "$withval" -o "$withval" = yes ; then
+           { { echo "$as_me:$LINENO: error: Option --with-gm-includes requires 
path to GM headers." >&5
+echo "$as_me: error: Option --with-gm-includes requires path to GM headers." 
>&2;}
+   { (exit 1); exit 1; }; }
+       elif test "$withval" != no ; then
+           GM_INCDIR="$withval"
+       fi
+
+fi
+
+
+# Check whether --with-gm-libs was given.
+if test "${with_gm_libs+set}" = set; then
+  withval=$with_gm_libs; if test -z "$withval" -o "$withval" = yes ; then
+           { { echo "$as_me:$LINENO: error: Option --with-gm-libs requires 
path to GM libraries." >&5
+echo "$as_me: error: Option --with-gm-libs requires path to GM libraries." 
>&2;}
+   { (exit 1); exit 1; }; }
+       elif test "$withval" != no ; then
+           GM_LIBDIR="$withval"
+       fi
+
+fi
+
+            if test -n "$gm_home" ; then
+       if test -z "$GM_INCDIR"; then
+           GM_INCDIR=$gm_home/include
+       fi
+       if test -z "$GM_LIBDIR"; then
+           GM_LIBDIR=$gm_home/lib64
+           if test ! -d "$GM_LIBDIR" ; then
+               GM_LIBDIR=$gm_home/lib
+           fi
+       fi
+    fi
+        if test -n "$GM_INCDIR$GM_LIBDIR" ; then
+       save_cppflags="$CPPFLAGS"
+       CPPFLAGS="$CPPFLAGS -I$GM_INCDIR -I$GM_INCDIR/gm"
+       if test "${ac_cv_header_gm_h+set}" = set; then
   { echo "$as_me:$LINENO: checking for gm.h" >&5
 echo $ECHO_N "checking for gm.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_gm_h+set}" = set; then
@@ -14590,29 +14634,77 @@ echo "$as_me: error: Header gm.h not found." >&2;}
 fi
 
 
-    BUILD_GM=1
-    CPPFLAGS="$save_cppflags"
-fi
+                       if test ! -f $GM_LIBDIR/libgm.so ; then
+           if test ! -f $GM_LIBDIR/libgm.a ; then
+               { { echo "$as_me:$LINENO: error: Neither GM library libgm.so or 
libgm.a found." >&5
+echo "$as_me: error: Neither GM library libgm.so or libgm.a found." >&2;}
+   { (exit 1); exit 1; }; }
+           fi
+       fi
+       BUILD_GM=1
+       CPPFLAGS="$save_cppflags"
+    fi
+
+
 
 
 
-MX_HOME=
+
+                    mx_home=
 
 # Check whether --with-mx was given.
 if test "${with_mx+set}" = set; then
   withval=$with_mx; if test -z "$withval" -o "$withval" = yes ; then
-       { { echo "$as_me:$LINENO: error: Option --with-mx requires the path to 
your MX tree." >&5
+           { { echo "$as_me:$LINENO: error: Option --with-mx requires the path 
to your MX tree." >&5
 echo "$as_me: error: Option --with-mx requires the path to your MX tree." >&2;}
    { (exit 1); exit 1; }; }
-    elif test "$withval" != no ; then
-       MX_HOME="$withval"
-    fi
+       elif test "$withval" != no ; then
+           mx_home="$withval"
+       fi
+
+fi
+
+
+# Check whether --with-mx-includes was given.
+if test "${with_mx_includes+set}" = set; then
+  withval=$with_mx_includes; if test -z "$withval" -o "$withval" = yes ; then
+           { { echo "$as_me:$LINENO: error: Option --with-mx-includes requires 
path to MX headers." >&5
+echo "$as_me: error: Option --with-mx-includes requires path to MX headers." 
>&2;}
+   { (exit 1); exit 1; }; }
+       elif test "$withval" != no ; then
+           MX_INCDIR="$withval"
+       fi
 
 fi
 
-if test -n "$MX_HOME" ; then
-    CPPFLAGS="$CPPFLAGS -I ${MX_HOME}/include"
-    if test "${ac_cv_header_myriexpress_h+set}" = set; then
+
+# Check whether --with-mx-libs was given.
+if test "${with_mx_libs+set}" = set; then
+  withval=$with_mx_libs; if test -z "$withval" -o "$withval" = yes ; then
+           { { echo "$as_me:$LINENO: error: Option --with-mx-libs requires 
path to MX libraries." >&5
+echo "$as_me: error: Option --with-mx-libs requires path to MX libraries." 
>&2;}
+   { (exit 1); exit 1; }; }
+       elif test "$withval" != no ; then
+           MX_LIBDIR="$withval"
+       fi
+
+fi
+
+            if test -n "$mx_home" ; then
+       if test -z "$MX_INCDIR"; then
+           MX_INCDIR=$mx_home/include
+       fi
+       if test -z "$MX_LIBDIR"; then
+           MX_LIBDIR=$mx_home/lib64
+           if test ! -d "$MX_LIBDIR" ; then
+               MX_LIBDIR=$mx_home/lib
+           fi
+       fi
+    fi
+        if test -n "$MX_INCDIR$MX_LIBDIR" ; then
+       save_cppflags="$CPPFLAGS"
+       CPPFLAGS="$CPPFLAGS -I$MX_INCDIR -I$MX_INCDIR/mx"
+       if test "${ac_cv_header_myriexpress_h+set}" = set; then
   { echo "$as_me:$LINENO: checking for myriexpress.h" >&5
 echo $ECHO_N "checking for myriexpress.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_myriexpress_h+set}" = set; then
@@ -14746,13 +14838,18 @@ echo "$as_me: error: Header myriexpress.h not found." 
>&2;}
 fi
 
 
-    BUILD_MX=1
-    CPPFLAGS="$CPPFLAGS_OLD"
-    CFLAGS="${CFLAGS} -I${MX_HOME}/include"
-    LDFLAGS="$LDFLAGS -L${MX_HOME}/lib"
-    SERVER_LDFLAGS="$SERVER_LDFLAGS -L${MX_HOME}/lib"
-    LIBS="$LIBS -lmyriexpress"
-fi
+                       if test ! -f $MX_LIBDIR/libmyriexpress.so ; then
+           if test ! -f $MX_LIBDIR/libmyriexpress.a ; then
+               { { echo "$as_me:$LINENO: error: Neither MX library 
libmyriexpress.so or libmyriexpress.a found." >&5
+echo "$as_me: error: Neither MX library libmyriexpress.so or libmyriexpress.a 
found." >&2;}
+   { (exit 1); exit 1; }; }
+           fi
+       fi
+       BUILD_MX=1
+       CPPFLAGS="$save_cppflags"
+    fi
+
+
 
 
 
@@ -18423,10 +18520,12 @@ for ac_last_try in false false false false false :; do
   cat >conf$$subs.sed <<_ACEOF
 TARGET_OS_LINUX!$TARGET_OS_LINUX$ac_delim
 BUILD_BMI_TCP!$BUILD_BMI_TCP$ac_delim
-GM_HOME!$GM_HOME$ac_delim
 BUILD_GM!$BUILD_GM$ac_delim
-MX_HOME!$MX_HOME$ac_delim
+GM_INCDIR!$GM_INCDIR$ac_delim
+GM_LIBDIR!$GM_LIBDIR$ac_delim
 BUILD_MX!$BUILD_MX$ac_delim
+MX_INCDIR!$MX_INCDIR$ac_delim
+MX_LIBDIR!$MX_LIBDIR$ac_delim
 BUILD_IB!$BUILD_IB$ac_delim
 IB_INCDIR!$IB_INCDIR$ac_delim
 IB_LIBDIR!$IB_LIBDIR$ac_delim
@@ -18445,7 +18544,7 @@ LIBOBJS!$LIBOBJS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 22; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 24; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
diff --git a/configure.in b/configure.in
index 526cc26..d08f845 100644
--- a/configure.in
+++ b/configure.in
@@ -789,48 +789,15 @@ AC_ARG_WITH(bmi-tcp,
 )
 AC_SUBST(BUILD_BMI_TCP)
 
-dnl configure options for GM install path
-GM_HOME=
-AC_ARG_WITH(gm,
-[  --with-gm=<dir>         Location of the GM installation (default no GM)],
-    if test -z "$withval" -o "$withval" = yes ; then
-       AC_MSG_ERROR([Option --with-gm requires the path to your GM tree.])
-    elif test "$withval" != no ; then
-       GM_HOME="$withval"
-    fi
-)
-if test -n "$GM_HOME" ; then
-    save_cppflags="$CPPFLAGS"
-    CPPFLAGS="$CPPFLAGS -I ${GM_HOME}/include -I ${GM_HOME}/include/gm"
-    AC_CHECK_HEADER(gm.h,, AC_MSG_ERROR([Header gm.h not found.]))
-    BUILD_GM=1
-    CPPFLAGS="$save_cppflags"
-fi
-AC_SUBST(GM_HOME)
-AC_SUBST(BUILD_GM)
+dnl
+dnl Configure bmi_gm, if --with-gm or a variant given.
+dnl
+AX_GM
 
-dnl configure options for MX install path
-MX_HOME=
-AC_ARG_WITH(mx,
-[  --with-mx=<dir>         Location of the MX installation (default no MX)],
-    if test -z "$withval" -o "$withval" = yes ; then
-       AC_MSG_ERROR([Option --with-mx requires the path to your MX tree.])
-    elif test "$withval" != no ; then
-       MX_HOME="$withval"
-    fi
-)
-if test -n "$MX_HOME" ; then
-    CPPFLAGS="$CPPFLAGS -I ${MX_HOME}/include"
-    AC_CHECK_HEADER(myriexpress.h,, AC_MSG_ERROR([Header myriexpress.h not 
found.]))
-    BUILD_MX=1
-    CPPFLAGS="$CPPFLAGS_OLD"
-    CFLAGS="${CFLAGS} -I${MX_HOME}/include"
-    LDFLAGS="$LDFLAGS -L${MX_HOME}/lib"
-    SERVER_LDFLAGS="$SERVER_LDFLAGS -L${MX_HOME}/lib"
-    LIBS="$LIBS -lmyriexpress"
-fi
-AC_SUBST(MX_HOME)
-AC_SUBST(BUILD_MX)
+dnl
+dnl Configure bmi_mx, if --with-mx or a variant given.
+dnl
+AX_MX
 
 dnl
 dnl Configure bmi_ib, if --with-ib or a variant given.
diff --git a/maint/config/gm.m4 b/maint/config/gm.m4
new file mode 100644
index 0000000..06fb152
--- /dev/null
+++ b/maint/config/gm.m4
@@ -0,0 +1,72 @@
+#
+# Configure rules for GM
+#
+# Copyright (C) 2008 Pete Wyckoff <[EMAIL PROTECTED]>
+#
+# See COPYING in top-level directory.
+#
+AC_DEFUN([AX_GM],
+[
+    dnl Configure options for GM install path.
+    dnl --with-gm=<dir> is shorthand for
+    dnl    --with-gm-includes=<dir>/include
+    dnl    --with-gm-libs=<dir>/lib  (or lib64 if that exists)
+    gm_home=
+    AC_ARG_WITH(gm,
+    [  --with-gm=<dir>     Location of the GM install (default no GM)],
+       if test -z "$withval" -o "$withval" = yes ; then
+           AC_MSG_ERROR([Option --with-gm requires the path to your GM tree.])
+       elif test "$withval" != no ; then
+           gm_home="$withval"
+       fi
+    )
+    AC_ARG_WITH(gm-includes,
+    [  --with-gm-includes=<dir>  Location of the GM includes],
+       if test -z "$withval" -o "$withval" = yes ; then
+           AC_MSG_ERROR([Option --with-gm-includes requires path to GM 
headers.])
+       elif test "$withval" != no ; then
+           GM_INCDIR="$withval"
+       fi
+    )
+    AC_ARG_WITH(gm-libs,
+    [  --with-gm-libs=<dir>      Location of the GM libraries],
+       if test -z "$withval" -o "$withval" = yes ; then
+           AC_MSG_ERROR([Option --with-gm-libs requires path to GM libraries.])
+       elif test "$withval" != no ; then
+           GM_LIBDIR="$withval"
+       fi
+    )
+    dnl If supplied the incls and libs explicitly, use them, else populate them
+    dnl using guesses from the --with-gm dir.
+    if test -n "$gm_home" ; then
+       if test -z "$GM_INCDIR"; then
+           GM_INCDIR=$gm_home/include
+       fi
+       if test -z "$GM_LIBDIR"; then
+           GM_LIBDIR=$gm_home/lib64
+           if test ! -d "$GM_LIBDIR" ; then
+               GM_LIBDIR=$gm_home/lib
+           fi
+       fi
+    fi
+    dnl If anything GM-ish was set, go look for header.
+    if test -n "$GM_INCDIR$GM_LIBDIR" ; then
+       save_cppflags="$CPPFLAGS"
+       CPPFLAGS="$CPPFLAGS -I$GM_INCDIR -I$GM_INCDIR/gm"
+       AC_CHECK_HEADER(gm.h,, AC_MSG_ERROR([Header gm.h not found.]))
+       dnl Run test is not possible on a machine that does not have a GM NIC.
+       dnl Link test would work, but just check for existence.
+       if test ! -f $GM_LIBDIR/libgm.so ; then
+           if test ! -f $GM_LIBDIR/libgm.a ; then
+               AC_MSG_ERROR([Neither GM library libgm.so or libgm.a found.])
+           fi
+       fi
+       BUILD_GM=1
+       CPPFLAGS="$save_cppflags"
+    fi
+    AC_SUBST(BUILD_GM)
+    AC_SUBST(GM_INCDIR)
+    AC_SUBST(GM_LIBDIR)
+])
+
+dnl vim: set ft=config :
diff --git a/maint/config/mx.m4 b/maint/config/mx.m4
new file mode 100644
index 0000000..ab5d151
--- /dev/null
+++ b/maint/config/mx.m4
@@ -0,0 +1,73 @@
+#
+# Configure rules for MX
+#
+# Copyright (C) 2008 Pete Wyckoff <[EMAIL PROTECTED]>
+#
+# See COPYING in top-level directory.
+#
+AC_DEFUN([AX_MX],
+[
+    dnl Configure options for MX install path.
+    dnl --with-mx=<dir> is shorthand for
+    dnl    --with-mx-includes=<dir>/include
+    dnl    --with-mx-libs=<dir>/lib  (or lib64 if that exists)
+    mx_home=
+    AC_ARG_WITH(mx,
+    [  --with-mx=<dir>     Location of the MX install (default no MX)],
+       if test -z "$withval" -o "$withval" = yes ; then
+           AC_MSG_ERROR([Option --with-mx requires the path to your MX tree.])
+       elif test "$withval" != no ; then
+           mx_home="$withval"
+       fi
+    )
+    AC_ARG_WITH(mx-includes,
+    [  --with-mx-includes=<dir>  Location of the MX includes],
+       if test -z "$withval" -o "$withval" = yes ; then
+           AC_MSG_ERROR([Option --with-mx-includes requires path to MX 
headers.])
+       elif test "$withval" != no ; then
+           MX_INCDIR="$withval"
+       fi
+    )
+    AC_ARG_WITH(mx-libs,
+    [  --with-mx-libs=<dir>      Location of the MX libraries],
+       if test -z "$withval" -o "$withval" = yes ; then
+           AC_MSG_ERROR([Option --with-mx-libs requires path to MX libraries.])
+       elif test "$withval" != no ; then
+           MX_LIBDIR="$withval"
+       fi
+    )
+    dnl If supplied the incls and libs explicitly, use them, else populate them
+    dnl using guesses from the --with-mx dir.
+    if test -n "$mx_home" ; then
+       if test -z "$MX_INCDIR"; then
+           MX_INCDIR=$mx_home/include
+       fi
+       if test -z "$MX_LIBDIR"; then
+           MX_LIBDIR=$mx_home/lib64
+           if test ! -d "$MX_LIBDIR" ; then
+               MX_LIBDIR=$mx_home/lib
+           fi
+       fi
+    fi
+    dnl If anything MX-ish was set, go look for header.
+    if test -n "$MX_INCDIR$MX_LIBDIR" ; then
+       save_cppflags="$CPPFLAGS"
+       CPPFLAGS="$CPPFLAGS -I$MX_INCDIR -I$MX_INCDIR/mx"
+       AC_CHECK_HEADER(myriexpress.h,,
+                       AC_MSG_ERROR([Header myriexpress.h not found.]))
+       dnl Run test is not possible on a machine that does not have a MX NIC.
+       dnl Link test would work, but just check for existence.
+       if test ! -f $MX_LIBDIR/libmyriexpress.so ; then
+           if test ! -f $MX_LIBDIR/libmyriexpress.a ; then
+               AC_MSG_ERROR([Neither MX library libmyriexpress.so or 
libmyriexpress.a found.])
+           fi
+       fi
+       BUILD_MX=1
+       CPPFLAGS="$save_cppflags"
+    fi
+    AC_SUBST(BUILD_MX)
+    AC_SUBST(MX_INCDIR)
+    AC_SUBST(MX_LIBDIR)
+])
+
+dnl vim: set ft=config :
diff --git a/src/apps/admin/pvfs2-config.in b/src/apps/admin/pvfs2-config.in
index 2fdacc9..4975347 100755
--- a/src/apps/admin/pvfs2-config.in
+++ b/src/apps/admin/pvfs2-config.in
@@ -47,7 +47,7 @@ while test $# -gt 0; do
     --libs|--static-libs)
        libflags="[EMAIL PROTECTED]@ -lpvfs2 @LIBS@ @THREAD_LIB@" 
        if [ x"@BUILD_GM@" = x"1" ]; then
-               libflags="$libflags [EMAIL PROTECTED]@/lib -lgm"
+               libflags="$libflags [EMAIL PROTECTED]@ -lgm"
        fi
        if [ x"@BUILD_IB@" = x"1" ]; then
                libflags="$libflags [EMAIL PROTECTED]@ -lvapi -lmtl_common 
-lmosal -lmpga -lpthread -ldl"
@@ -56,7 +56,7 @@ while test $# -gt 0; do
                libflags="$libflags [EMAIL PROTECTED]@ -libverbs"
        fi
        if [ x"@BUILD_MX@" = x"1" ]; then
-               libflags="$libflags [EMAIL PROTECTED]@/lib -lmyriexpress"
+               libflags="$libflags [EMAIL PROTECTED]@ -lmyriexpress -lpthread"
        fi
        if [ x"@BUILD_PORTALS@" = x"1" ]; then
                libflags="$libflags @PORTALS_LIBS@"
@@ -70,7 +70,7 @@ while test $# -gt 0; do
                libflags="$libflags -lrt"
        fi
        if [ x"@BUILD_GM@" = x"1" ]; then
-               libflags="$libflags [EMAIL PROTECTED]@/lib -lgm"
+               libflags="$libflags [EMAIL PROTECTED]@ -lgm"
        fi
        if [ x"@BUILD_IB@" = x"1" ]; then
                libflags="$libflags [EMAIL PROTECTED]@ -lvapi -lmtl_common 
-lmosal -lmpga -lpthread -ldl"
@@ -79,7 +79,7 @@ while test $# -gt 0; do
                libflags="$libflags [EMAIL PROTECTED]@ -libverbs"
        fi
        if [ x"@BUILD_MX@" = x"1" ]; then
-               libflags="$libflags [EMAIL PROTECTED]@/lib -lmyriexpress"
+               libflags="$libflags [EMAIL PROTECTED]@ -lmyriexpress -lpthread"
        fi
        if [ x"@BUILD_PORTALS@" = x"1" ]; then
                libflags="$libflags @PORTALS_LIBS@"
diff --git a/src/io/bmi/bmi_gm/module.mk.in b/src/io/bmi/bmi_gm/module.mk.in
index fd8fb3f..2706976 100644
--- a/src/io/bmi/bmi_gm/module.mk.in
+++ b/src/io/bmi/bmi_gm/module.mk.in
@@ -1,14 +1,31 @@
-BUILD_GM = @BUILD_GM@
-
-# only build GM module if configure detected GM 
-ifdef BUILD_GM
-       DIR := src/io/bmi/bmi_gm
-       LIBSRC += \
-               $(DIR)/bmi-gm-addr-list.c \
-               $(DIR)/bmi-gm-bufferpool.c \
-               $(DIR)/bmi-gm.c
-       SERVERSRC += \
-               $(DIR)/bmi-gm-addr-list.c \
-               $(DIR)/bmi-gm-bufferpool.c \
-               $(DIR)/bmi-gm.c
-endif
+#
+# Makefile stub for bmi_gm.
+#
+# Copyright (C) 2008 Pete Wyckoff <[EMAIL PROTECTED]>
+#
+# See COPYING in top-level directory.
+#
+
+# only do any of this if configure decided to use GM
+ifneq (,$(BUILD_GM))
+
+#
+# Local definitions.
+#
+DIR := src/io/bmi/bmi_gm
+cfiles := bmi-gm-addr-list.c bmi-gm-bufferpool.c bmi-gm.c
+
+#
+# Export these to the top Makefile to tell it what to build.
+#
+src := $(patsubst %,$(DIR)/%,$(cfiles))
+LIBSRC    += $(src)
+SERVERSRC += $(src)
+
+#
+# Extra cflags for files in this directory.
+# TODO: later on we will want the ability to modify this at configure time
+#
+MODCFLAGS_$(DIR) := [EMAIL PROTECTED]@ [EMAIL PROTECTED]@/gm 
-DENABLE_GM_BUFPOOL
+
+endif  # BUILD_GM
diff --git a/src/io/bmi/bmi_mx/module.mk.in b/src/io/bmi/bmi_mx/module.mk.in
index 4f77838..6b7fd2d 100644
--- a/src/io/bmi/bmi_mx/module.mk.in
+++ b/src/io/bmi/bmi_mx/module.mk.in
@@ -1,10 +1,30 @@
-BUILD_MX = @BUILD_MX@
-
-# only build MX module if configure detected MX 
-ifdef BUILD_MX
-       DIR := src/io/bmi/bmi_mx
-       LIBSRC += \
-               $(DIR)/mx.c
-       SERVERSRC += \
-               $(DIR)/mx.c
-endif
+#
+# Makefile stub for bmi_mx.
+#
+# Copyright (C) 2008 Pete Wyckoff <[EMAIL PROTECTED]>
+#
+# See COPYING in top-level directory.
+#
+
+# only do any of this if configure decided to use MX
+ifneq (,$(BUILD_MX))
+
+#
+# Local definitions.
+#
+DIR := src/io/bmi/bmi_mx
+cfiles := mx.c
+
+#
+# Export these to the top Makefile to tell it what to build.
+#
+src := $(patsubst %,$(DIR)/%,$(cfiles))
+LIBSRC    += $(src)
+SERVERSRC += $(src)
+
+#
+# Extra cflags for files in this directory.
+#
+MODCFLAGS_$(DIR) := [EMAIL PROTECTED]@ 
+
+endif  # BUILD_MX
-- 
1.5.3.8

_______________________________________________
Pvfs2-users mailing list
[email protected]
http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users

Reply via email to