[ofa-general] [PATCH] opensm: configure scripts merge
Hal Rosenstock
hrosenstock at xsigo.com
Mon Sep 17 05:42:09 PDT 2007
Hi Sasha,
On Sat, 2007-09-15 at 21:35 +0300, Sasha Khapyorsky wrote:
> This merges all subdirectories configure.in scripts into one toplevel
> directory script. Separate configuring per subdirectory is not needed
> anymore.
How is the requirement for separate OpenSM libraries (complib,
libosmvendor, and libopensm) now met ? There are some tools (e.g.
ibutils and others) which require these libraries with OpenSM itself.
-- Hal
> Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
> ---
> opensm/Makefile.am | 4 +-
> opensm/autogen.sh | 34 +++------------------
> opensm/complib/Makefile.am | 2 +
> opensm/configure.in | 60 ++++++++++++++++++++++++++++++------
> opensm/libvendor/Makefile.am | 2 +
> opensm/opensm/Makefile.am | 2 +
> opensm/osmeventplugin/Makefile.am | 2 +
> 7 files changed, 65 insertions(+), 41 deletions(-)
>
> diff --git a/opensm/Makefile.am b/opensm/Makefile.am
> index f99e78b..9cbce3a 100644
> --- a/opensm/Makefile.am
> +++ b/opensm/Makefile.am
> @@ -1,12 +1,12 @@
>
> # note that order matters: make the libs first then use them
> -SUBDIRS = complib libvendor opensm osmtest include $(DEFAULT_EVENT_PLUGIN)
> +SUBDIRS = complib libvendor opensm osmtest include $(DEFAULT_EVENT_PLUGIN)
> DIST_SUBDIRS = complib libvendor opensm osmtest include osmeventplugin
>
> # this will control the update of the files in order
> MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure config-h.in
>
> -ACLOCAL = aclocal -I $(ac_aux_dir)
> +ACLOCAL = aclocal -I $(ac_aux_dir)
>
> # we should provide a hint for other apps about the build mode of this project
> install-exec-hook:
> diff --git a/opensm/autogen.sh b/opensm/autogen.sh
> index 3ae89b4..fee8800 100755
> --- a/opensm/autogen.sh
> +++ b/opensm/autogen.sh
> @@ -50,32 +50,8 @@ fi
> # cleanup
> find . \( -name Makefile.in -o -name aclocal.m4 -o -name autom4te.cache -o -name configure -o -name aclocal.m4 \) -exec \rm -rf {} \; -prune
>
> -# handle our own autoconf:
> -(aclocal -I config 2>&1 ) && \
> -(automake --add-missing --gnu --copy ) && \
> -(autoconf 2>&1 )
> -if test $? != 0; then
> - exit 1
> -fi
> -
> -
> -
> -# visit all sub directories with autogen.sh
> -anyErr=0
> -for a in include complib libvendor opensm osmtest osmeventplugin ; do
> - dir=`dirname $a`
> - test -d ${dir}/config || mkdir ${dir}/config
> - echo Visiting $a
> - ( cd $a && \
> - set -x && \
> - aclocal -I config -I ../config && \
> - libtoolize --force --copy && \
> - autoheader && \
> - automake --foreign --add-missing --copy && \
> - autoconf ) \
> - 2>&1 | sed 's/^/| /' | grep -v "arning: underquoted definition"
> - if test $? != 0; then
> - echo $a failed
> - anyErr=1
> - fi
> -done
> +aclocal -I config && \
> +libtoolize --force --copy && \
> +autoheader && \
> +automake --foreign --add-missing --copy && \
> +autoconf
> diff --git a/opensm/complib/Makefile.am b/opensm/complib/Makefile.am
> index fce797a..a77964e 100644
> --- a/opensm/complib/Makefile.am
> +++ b/opensm/complib/Makefile.am
> @@ -17,6 +17,8 @@ else
> libosmcomp_version_script =
> endif
>
> +complib_api_version=$(shell grep LIBVERSION= $(srcdir)/libosmcomp.ver | sed 's/LIBVERSION=//')
> +
> libosmcomp_la_SOURCES = cl_complib.c cl_dispatcher.c \
> cl_event.c cl_event_wheel.c \
> cl_list.c cl_log.c cl_map.c \
> diff --git a/opensm/configure.in b/opensm/configure.in
> index 2efd867..6c4db9f 100644
> --- a/opensm/configure.in
> +++ b/opensm/configure.in
> @@ -4,6 +4,7 @@ AC_PREREQ(2.57)
> AC_INIT(opensm, 3.1.1, general at lists.openfabrics.org)
> AC_CONFIG_SRCDIR([opensm/osm_opensm.c])
> AC_CONFIG_AUX_DIR(config)
> +AC_CONFIG_HEADERS(include/config.h)
> AM_INIT_AUTOMAKE(opensm, 3.1.1)
>
> dnl Defines the Language
> @@ -16,17 +17,50 @@ AM_MAINTAINER_MODE
>
> dnl Required for cases make defines a MAKE=make ??? Why
> AC_PROG_MAKE_SET
> +AC_PROG_CC
> +AC_PROG_LIBTOOL
> +AC_PROG_INSTALL
> +AC_PROG_LN_S
> +AC_PROG_MAKE_SET
> +AC_PROG_YACC
> +AC_PROG_LEX
> +
> +dnl Checks for libraries
> +AC_CHECK_LIB(pthread, pthread_mutex_init, [],
> + AC_MSG_ERROR([pthread_mutex_init() not found. libosmcomp requires libpthread.]))
> +
> +dnl Checks for typedefs, structures, and compiler characteristics.
> +AC_C_CONST
> +AC_C_INLINE
> +AC_TYPE_PID_T
> +AC_TYPE_SIZE_T
> +AC_HEADER_TIME
> +AC_STRUCT_TM
> +AC_C_VOLATILE
> +
> +dnl We use --version-script with ld if possible
> +AC_CACHE_CHECK(whether ld accepts --version-script, ac_cv_version_script,
> +if test -n "`$LD --help < /dev/null 2>/dev/null | grep version-script`"; then
> + ac_cv_version_script=yes
> +else
> + ac_cv_version_script=no
> +fi)
> +AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$ac_cv_version_script" = "yes")
>
> dnl Define an input config option to control debug compile
> -AC_ARG_ENABLE(debug,
> -[ --enable-debug Turn on debugging],
> +AC_ARG_ENABLE(debug, [ --enable-debug Turn on debugging],
> [case "${enableval}" in
> - yes) debug=true ;;
> - no) debug=false ;;
> - *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
> -esac],[debug=false])
> + yes) debug=true ;;
> + no) debug=false ;;
> + *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;;
> +esac],debug=false)
> AM_CONDITIONAL(DEBUG, test x$debug = xtrue)
>
> +AC_ARG_ENABLE(libcheck, [ --disable-libcheck do not test for presence of ib libraries],
> +[if test x$enableval = xno ; then
> + disable_libcheck=yes
> +fi])
> +
> dnl check if they want the socket console
> OPENIB_OSM_CONSOLE_SOCKET_SEL
>
> @@ -39,9 +73,15 @@ OPENIB_OSM_DEFAULT_EVENT_PLUGIN_SEL
> dnl Provide user option to select vendor
> OPENIB_APP_OSMV_SEL
>
> -dnl Configure the following subdirs
> -AC_CONFIG_SUBDIRS(complib libvendor opensm osmtest include osmeventplugin)
> +dnl Checks for headers and libraries
> +OPENIB_APP_OSMV_CHECK_HEADER
> +OPENIB_APP_OSMV_CHECK_LIB
> +
> +# we have to revive the env CFLAGS as some how they are being overwritten...
> +# see http://sources.redhat.com/automake/automake.html#Flag-Variables-Ordering
> +# for why they should NEVER be modified by the configure to allow for user
> +# overrides.
> +CFLAGS=$ac_env_CFLAGS_value
>
> dnl Create the following Makefiles
> -AC_OUTPUT(Makefile)
> -AC_OUTPUT(opensm.spec)
> +AC_OUTPUT([Makefile include/Makefile complib/Makefile libvendor/Makefile opensm/Makefile osmeventplugin/Makefile osmtest/Makefile opensm.spec])
> diff --git a/opensm/libvendor/Makefile.am b/opensm/libvendor/Makefile.am
> index 3b8c3af..cb8baaa 100644
> --- a/opensm/libvendor/Makefile.am
> +++ b/opensm/libvendor/Makefile.am
> @@ -23,6 +23,8 @@ else
> libosmvendor_version_script =
> endif
>
> +osmvendor_api_version=$(shell grep LIBVERSION= $(srcdir)/libosmvendor.ver | sed 's/LIBVERSION=//')
> +
> COMM_HDRS= $(srcdir)/../include/vendor/osm_vendor_api.h \
> $(srcdir)/../include/vendor/osm_vendor.h \
> $(srcdir)/../include/vendor/osm_vendor_select.h \
> diff --git a/opensm/opensm/Makefile.am b/opensm/opensm/Makefile.am
> index 5e4229d..8440b4a 100644
> --- a/opensm/opensm/Makefile.am
> +++ b/opensm/opensm/Makefile.am
> @@ -21,6 +21,8 @@ else
> libopensm_version_script =
> endif
>
> +opensm_api_version=$(shell grep LIBVERSION= $(srcdir)/libopensm.ver | sed 's/LIBVERSION=//')
> +
> libopensm_la_SOURCES = osm_log.c osm_mad_pool.c osm_helper.c
> libopensm_la_LDFLAGS = -version-info $(opensm_api_version) \
> -export-dynamic $(libopensm_version_script)
> diff --git a/opensm/osmeventplugin/Makefile.am b/opensm/osmeventplugin/Makefile.am
> index bbb012f..1b7dad0 100644
> --- a/opensm/osmeventplugin/Makefile.am
> +++ b/opensm/osmeventplugin/Makefile.am
> @@ -18,6 +18,8 @@ else
> libosmeventplugin_version_script =
> endif
>
> +osmeventplugin_api_version=$(shell grep LIBVERSION= $(srcdir)/libosmeventplugin.ver | sed 's/LIBVERSION=//')
> +
> libosmeventplugin_la_SOURCES = src/osmeventplugin.c
> libosmeventplugin_la_LDFLAGS = -version-info $(osmeventplugin_api_version) \
> -export-dynamic $(libosmeventplugin_version_script)
More information about the general
mailing list