Skip to content
Snippets Groups Projects
Commit 30ed781c authored by jacob's avatar jacob
Browse files

b=5786

r=phil

create an awesome super macro for nicely handling --with-foo,
--with-foo-includes, and --with-foo-libs for some situations we
encounter.  make gm and cray portals use it.
parent ca43bda5
No related branches found
No related tags found
No related merge requests found
...@@ -57,6 +57,59 @@ AC_DEFUN([LB_CHECK_FILES], ...@@ -57,6 +57,59 @@ AC_DEFUN([LB_CHECK_FILES],
$2], $2],
[$3])])]) [$3])])])
#
# LB_ARG_LIBS_INCLUDES
#
# support for --with-foo, --with-foo-includes, and --with-foo-libs in
# a single magical macro
#
AC_DEFUN([LB_ARG_LIBS_INCLUDES],
[lb_pathvar="m4_bpatsubst([$2], -, _)"
AC_MSG_CHECKING([for $1])
AC_ARG_WITH([$2],
AC_HELP_STRING([--with-$2=path],
[path to $1]),
[],[withval=$4])
if test x$withval = xyes ; then
eval "$lb_pathvar='$3'"
else
eval "$lb_pathvar='$withval'"
fi
AC_MSG_RESULT([${!lb_pathvar:-no}])
if test x${!lb_pathvar} != x -a x${!lb_pathvar} != xno ; then
AC_MSG_CHECKING([for $1 includes])
AC_ARG_WITH([$2-includes],
AC_HELP_STRING([--with-$2-includes=path],
[path to $1 includes]),
[],[withval='yes'])
lb_includevar="${lb_pathvar}_includes"
if test x$withval = xyes ; then
eval "${lb_includevar}='${!lb_pathvar}/include'"
else
eval "${lb_includevar}='$withval'"
fi
AC_MSG_RESULT([${!lb_includevar}])
AC_MSG_CHECKING([for $1 libs])
AC_ARG_WITH([$2-libs],
AC_HELP_STRING([--with-$2-libs=path],
[path to $1 libs]),
[],[withval='yes'])
lb_libvar="${lb_pathvar}_libs"
if test x$withval = xyes ; then
eval "${lb_libvar}='${!lb_pathvar}/lib'"
else
eval "${lb_libvar}='$withval'"
fi
AC_MSG_RESULT([${!lb_libvar}])
fi
])
])
# #
# LB_PATH_LIBSYSIO # LB_PATH_LIBSYSIO
# #
...@@ -111,65 +164,30 @@ AC_CONFIG_SUBDIRS(libsysio) ...@@ -111,65 +164,30 @@ AC_CONFIG_SUBDIRS(libsysio)
# Support for external Cray portals # Support for external Cray portals
# #
AC_DEFUN([LB_PATH_CRAY_PORTALS], AC_DEFUN([LB_PATH_CRAY_PORTALS],
[AC_MSG_CHECKING([for Cray portals]) [LB_ARG_LIBS_INCLUDES([Cray Portals],[cray-portals])
AC_ARG_WITH([cray-portals],
AC_HELP_STRING([--with-cray-portals=path],
[path to cray portals]),
[
if test "$with_cray_portals" != no; then
CRAY_PORTALS_PATH=$with_cray_portals
CRAY_PORTALS_INCLUDES="$with_cray_portals/include"
CRAY_PORTALS_LIBS="$with_cray_portals"
fi
],[with_cray_portals=no])
AC_SUBST(CRAY_PORTALS_PATH)
AC_MSG_RESULT([$CRAY_PORTALS_PATH])
AC_MSG_CHECKING([for Cray portals includes])
AC_ARG_WITH([cray-portals-includes],
AC_HELP_STRING([--with-cray-portals-includes=path],
[path to cray portals includes]),
[
if test "$with_cray_portals_includes" != no; then
CRAY_PORTALS_INCLUDES="$with_cray_portals_includes"
fi
])
AC_SUBST(CRAY_PORTALS_INCLUDES)
AC_MSG_RESULT([$CRAY_PORTALS_INCLUDES])
AC_MSG_CHECKING([for Cray portals libs])
AC_ARG_WITH([cray-portals-libs],
AC_HELP_STRING([--with-cray-portals-libs=path],
[path to cray portals libs]),
[
if test "$with_cray_portals_libs" != no; then
CRAY_PORTALS_LIBS="$with_cray_portals_libs"
fi
])
AC_SUBST(CRAY_PORTALS_LIBS)
AC_MSG_RESULT([$CRAY_PORTALS_LIBS])
if test x$CRAY_PORTALS_INCLUDES != x ; then if test x$cray_portals_includes != x ; then
if test ! -r $CRAY_PORTALS_INCLUDES/portals/api.h ; then if test ! -r $cray_portals_includes/portals/api.h ; then
AC_MSG_ERROR([Cray portals headers were not found in $CRAY_PORTALS_INCLUDES. Please check the paths passed to --with-cray-portals or --with-cray-portals-includes.]) AC_MSG_ERROR([Cray portals headers were not found in $cray_portals_includes. Please check the paths passed to --with-cray-portals or --with-cray-portals-includes.])
fi fi
fi fi
if test x$CRAY_PORTALS_LIBS != x ; then if test x$cray_portals_libs != x ; then
if test ! -r $CRAY_PORTALS_LIBS/libportals.a ; then if test ! -r $cray_portals_libs/libportals.a ; then
AC_MSG_ERROR([Cray portals libraries were not found in $CRAY_PORTALS_LIBS. Please check the paths passed to --with-cray-portals or --with-cray-portals-libs.]) AC_MSG_ERROR([Cray portals libraries were not found in $cray_portals_libs. Please check the paths passed to --with-cray-portals or --with-cray-portals-libs.])
fi fi
fi fi
AC_MSG_CHECKING([whether to use Cray portals]) if test x$cray_portals_includes != x -a x$cray_portals_libs != x ; then
if test x$CRAY_PORTALS_INCLUDES != x -a x$CRAY_PORTALS_LIBS != x ; then cray_portals=yes
with_cray_portals=yes
AC_DEFINE(CRAY_PORTALS, 1, [Building with Cray Portals]) AC_DEFINE(CRAY_PORTALS, 1, [Building with Cray Portals])
CPPFLAGS="-I$CRAY_PORTALS_INCLUDES $CPPFLAGS" CPPFLAGS="-I$cray_portals_includes $CPPFLAGS"
EXTRA_KCFLAGS="-I$CRAY_PORTALS_INCLUDES $EXTRA_KCFLAGS" EXTRA_KCFLAGS="-I$cray_portals_includes $EXTRA_KCFLAGS"
# for liblustre + b_cray
CRAY_PORTALS_LIBS="$cray_portals_libs"
AC_SUBST(CRAY_PORTALS_LIBS)
else else
with_cray_portals=no cray_portals=no
fi fi
AC_MSG_RESULT([$with_cray_portals])
]) ])
# #
...@@ -218,7 +236,7 @@ AC_ARG_ENABLE([utils], ...@@ -218,7 +236,7 @@ AC_ARG_ENABLE([utils],
AC_HELP_STRING([--disable-utils], AC_HELP_STRING([--disable-utils],
[disable building of Lustre utility programs]), [disable building of Lustre utility programs]),
[],[enable_utils='yes']) [],[enable_utils='yes'])
if test x$with_cray_portals = xyes ; then if test x$cray_portals = xyes ; then
enable_utils='no' enable_utils='no'
fi fi
AC_MSG_RESULT([$enable_utils]) AC_MSG_RESULT([$enable_utils])
...@@ -238,7 +256,7 @@ AC_ARG_ENABLE([tests], ...@@ -238,7 +256,7 @@ AC_ARG_ENABLE([tests],
AC_HELP_STRING([--disable-tests], AC_HELP_STRING([--disable-tests],
[disable building of Lustre tests]), [disable building of Lustre tests]),
[],[enable_tests='yes']) [],[enable_tests='yes'])
if test x$with_cray_portals = xyes ; then if test x$cray_portals = xyes ; then
enable_tests='no' enable_tests='no'
fi fi
AC_MSG_RESULT([$enable_tests]) AC_MSG_RESULT([$enable_tests])
...@@ -408,7 +426,7 @@ AC_DEFUN([LB_CONDITIONALS], ...@@ -408,7 +426,7 @@ AC_DEFUN([LB_CONDITIONALS],
AM_CONDITIONAL(UTILS, test x$enable_utils = xyes) AM_CONDITIONAL(UTILS, test x$enable_utils = xyes)
AM_CONDITIONAL(TESTS, test x$enable_tests = xyes) AM_CONDITIONAL(TESTS, test x$enable_tests = xyes)
AM_CONDITIONAL(DOC, test x$ENABLE_DOC = x1) AM_CONDITIONAL(DOC, test x$ENABLE_DOC = x1)
AM_CONDITIONAL(CRAY_PORTALS, test x$with_cray_portals != xno) AM_CONDITIONAL(CRAY_PORTALS, test x$cray_portals != xno)
AM_CONDITIONAL(INIT_SCRIPTS, test x$ENABLE_INIT_SCRIPTS = "x1") AM_CONDITIONAL(INIT_SCRIPTS, test x$ENABLE_INIT_SCRIPTS = "x1")
AM_CONDITIONAL(LINUX, test x$lb_target_os = "xlinux") AM_CONDITIONAL(LINUX, test x$lb_target_os = "xlinux")
AM_CONDITIONAL(DARWIN, test x$lb_target_os = "xdarwin") AM_CONDITIONAL(DARWIN, test x$lb_target_os = "xdarwin")
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
%define linuxdir @LINUX@ %define linuxdir @LINUX@
%define enable_doc @ENABLE_DOC@ %define enable_doc @ENABLE_DOC@
%define enable_init_scripts @ENABLE_INIT_SCRIPTS@ %define enable_init_scripts @ENABLE_INIT_SCRIPTS@
%define enable_gm @ENABLE_GM@
Summary: Lustre Lite File System Summary: Lustre Lite File System
Name: lustre-lite Name: lustre-lite
...@@ -135,7 +136,9 @@ mkdir -p $RPM_BUILD_ROOT/var/lib/ldap/lustre ...@@ -135,7 +136,9 @@ mkdir -p $RPM_BUILD_ROOT/var/lib/ldap/lustre
%attr(-, root, root) /usr/sbin/wiretest %attr(-, root, root) /usr/sbin/wiretest
%attr(-, root, root) /usr/sbin/lactive %attr(-, root, root) /usr/sbin/lactive
%attr(-, root, root) /usr/sbin/llanalyze %attr(-, root, root) /usr/sbin/llanalyze
%if %{enable_gm}
%attr(-, root, root) /usr/sbin/gmnalnid %attr(-, root, root) /usr/sbin/gmnalnid
%endif
%attr(-, root, root) /usr/sbin/llstat.pl %attr(-, root, root) /usr/sbin/llstat.pl
%attr(-, root, root) /usr/sbin/llobdstat.pl %attr(-, root, root) /usr/sbin/llobdstat.pl
%attr(-, root, root) /usr/sbin/load_ldap.sh %attr(-, root, root) /usr/sbin/load_ldap.sh
......
...@@ -114,35 +114,27 @@ AC_SUBST(QSWNAL) ...@@ -114,35 +114,27 @@ AC_SUBST(QSWNAL)
# check if GM support is available # check if GM support is available
# #
AC_DEFUN([LP_CONFIG_GM], AC_DEFUN([LP_CONFIG_GM],
[AC_MSG_CHECKING([if gm support was requested]) [LB_ARG_LIBS_INCLUDES([Myrinet],[gm])
AC_ARG_WITH([gm], if test x$gm_includes != x ; then
AC_HELP_STRING([--with-gm=path], GMCPPFLAGS="-I$gm_includes"
[build gmnal against path]), if test -d "$gm/drivers" ; then
[ GMCPPFLAGS="$GMCPPFLAGS -I$gm/drivers -I$gm/drivers/linux/gm"
case $with_gm in fi
yes) fi
AC_MSG_RESULT([yes])
GMCPPFLAGS="-I/usr/local/gm/include"
GMNAL="gmnal"
;;
no)
AC_MSG_RESULT([no])
GMCPPFLAGS=""
GMNAL=""
;;
*)
AC_MSG_RESULT([yes])
GMCPPFLAGS="-I$with_gm/include -I$with_gm/drivers -I$with_gm/drivers/linux/gm"
GMNAL="gmnal"
;;
esac
],[
AC_MSG_RESULT([no])
GMCPPFLAGS=""
GMNAL=""
])
AC_SUBST(GMCPPFLAGS) AC_SUBST(GMCPPFLAGS)
if test x$gm_libs != x ; then
GMLIBS="-L$gm_libs"
fi
AC_SUBST(GMLIBS)
ENABLE_GM=0
if test x$gm != x ; then
GMNAL="gmnal"
ENABLE_GM=1
fi
AC_SUBST(GMNAL) AC_SUBST(GMNAL)
AC_SUBST(ENABLE_GM)
]) ])
# #
......
MODULES := kgmnal MODULES := kgmnal
kgmnal-objs := gmnal_api.o gmnal_cb.o gmnal_comm.o gmnal_utils.o gmnal_module.o kgmnal-objs := gmnal_api.o gmnal_cb.o gmnal_comm.o gmnal_utils.o gmnal_module.o
EXTRA_PRE_CFLAGS := @GMCPPFLAGS@ EXTRA_PRE_CFLAGS := @GMCPPFLAGS@ -DGM_KERNEL
@INCLUDE_RULES@ @INCLUDE_RULES@
...@@ -28,6 +28,13 @@ ...@@ -28,6 +28,13 @@
#ifndef __INCLUDE_GMNAL_H__ #ifndef __INCLUDE_GMNAL_H__
#define __INCLUDE_GMNAL_H__ #define __INCLUDE_GMNAL_H__
/* XXX Lustre as of V1.2.2 drop defines VERSION, which causes problems
* when including <GM>/include/gm_lanai.h which defines a structure field
* with the name VERSION XXX */
#ifdef VERSION
# undef VERSION
#endif
#ifndef EXPORT_SYMTAB #ifndef EXPORT_SYMTAB
# define EXPORT_SYMTAB # define EXPORT_SYMTAB
#endif #endif
......
...@@ -25,6 +25,9 @@ if UTILS ...@@ -25,6 +25,9 @@ if UTILS
if !CRAY_PORTALS if !CRAY_PORTALS
sbin_PROGRAMS += acceptor ptlctl routerstat wirecheck sbin_PROGRAMS += acceptor ptlctl routerstat wirecheck
endif endif
if BUILD_GMNAL
sbin_PROGRAMS += gmnalnid
endif
endif endif
acceptor_SOURCES = acceptor.c acceptor_SOURCES = acceptor.c
...@@ -33,6 +36,9 @@ acceptor_LDADD = $(LIBWRAP) ...@@ -33,6 +36,9 @@ acceptor_LDADD = $(LIBWRAP)
wirecheck_SOURCES = wirecheck.c wirecheck_SOURCES = wirecheck.c
gmnalnid_SOURCES = gmnalnid.c gmnalnid_SOURCES = gmnalnid.c
gmnalnid_CFLAGS = $(GMCPPFLAGS)
gmnalnid_LDFLAGS = -static
gmnalnid_LDADD = $(GMLIBS) -lgm
ptlctl_SOURCES = ptlctl.c ptlctl_SOURCES = ptlctl.c
ptlctl_LDADD = -L. -lptlctl $(LIBREADLINE) $(LIBEFENCE) ptlctl_LDADD = -L. -lptlctl $(LIBREADLINE) $(LIBEFENCE)
...@@ -43,4 +49,3 @@ routerstat_SOURCES = routerstat.c ...@@ -43,4 +49,3 @@ routerstat_SOURCES = routerstat.c
debugctl_SOURCES = debugctl.c debugctl_SOURCES = debugctl.c
debugctl_LDADD = -L. -lptlctl $(LIBREADLINE) $(LIBEFENCE) debugctl_LDADD = -L. -lptlctl $(LIBREADLINE) $(LIBEFENCE)
debugctl_DEPENDENCIES = libptlctl.a debugctl_DEPENDENCIES = libptlctl.a
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment