diff --git a/ipmitool/configure.in b/ipmitool/configure.in index 47bb073..633af21 100644 --- a/ipmitool/configure.in +++ b/ipmitool/configure.in @@ -92,29 +92,70 @@ AC_ARG_WITH([plugin-path], AC_DEFINE_UNQUOTED(PLUGIN_PATH, "$pluginpath", "IPMI interface plugin path") AC_SUBST(pluginpath) +STATIC_INTF_LIST= +STATIC_INTF= +STATIC_INTF_EXT= +STATIC_INTF_LIB= + +PLUGIN_INTF_LAN= +STATIC_INTF_LAN= +LDFLAGS_INTF_LAN= AC_ARG_ENABLE([intf-lan], [[ --enable-intf-lan enable IPMI-over-LAN interface [default=yes]]], [if test "x$enableval" = "xyes"; then - PLUGINS="$PLUGINS lan" + AC_SUBST(INTF_LAN,lan) + PLUGIN_INTF_LAN="libintf_lan.la" + LDFLAGS_INTF_LAN="-rpath $pluginpath -avoid-version" + DYNAMIC_INTF_LIST="$DYNAMIC_INTF_LIST lan" + elif test "x$enableval" = "xstatic"; then + AC_SUBST(INTF_LAN,lan) + STATIC_INTF_LAN="libintf_lan.la" + STATIC_INTF_LIST="$STATIC_INTF_LIST lan" fi], - [PLUGINS="$PLUGINS lan"]) + [AC_SUBST(INTF_LAN,lan) + PLUGIN_INTF_LAN="libintf_lan.la" + LDFLAGS_INTF_LAN="-rpath $pluginpath -avoid-version" + ]) +AC_SUBST(PLUGIN_INTF_LAN) +AC_SUBST(STATIC_INTF_LAN) +AC_SUBST(LDFLAGS_INTF_LAN) +PLUGIN_INTF_OPEN= +STATIC_INTF_OPEN= +LDFLAGS_INTF_OPEN= AC_ARG_ENABLE([intf-open], [[ --enable-intf-open enable OpenIPMI device interface [default=no]]], [if test "x$enableval" = "xyes"; then if test "x$have_openipmi" = "xyes"; then - PLUGINS="$PLUGINS open" + AC_SUBST(INTF_OPEN,open) + PLUGIN_INTF_OPEN="libintf_open.la" + LDFLAGS_INTF_OPEN="-rpath $pluginpath -avoid-version" + DYNAMIC_INTF_LIST="$DYNAMIC_INTF_LIST open" else echo "** Unable to build OpenIPMI interface support!" exit 1 fi + elif test "x$enableval" = "xstatic"; then + AC_SUBST(INTF_OPEN,open) + STATIC_INTF_OPEN="libintf_open.la" + STATIC_INTF_LIST="$STATIC_INTF_LIST open" fi]) +AC_SUBST(PLUGIN_INTF_OPEN) +AC_SUBST(STATIC_INTF_OPEN) +AC_SUBST(LDFLAGS_INTF_OPEN) -AC_SUBST(PLUGINS) +for name in $STATIC_INTF_LIST; do + STATIC_INTF="$STATIC_INTF { \"intf_${name}\", ${name}_intf_setup },"; + STATIC_INTF_EXT="$STATIC_INTF_EXT extern int ${name}_intf_setup(struct ipmi_intf ** intf);"; + STATIC_INTF_LIB="$STATIC_INTF_LIB \$(top_builddir)/src/plugins/${name}/libintf_${name}.la"; +done + +AC_SUBST(STATIC_INTF) +AC_SUBST(STATIC_INTF_EXT) +AC_SUBST(STATIC_INTF_LIB) AC_ARG_ENABLE([ipmievd], [[ --enable-ipmievd enable IPMI event daemon [default=no]]],,) - AM_CONDITIONAL(IPMIEVD, test "x$enable_ipmievd" = "xyes") AC_CONFIG_FILES([ipmitool.spec @@ -125,6 +166,7 @@ AC_CONFIG_FILES([ipmitool.spec include/Makefile include/ipmitool/Makefile src/Makefile + src/plugins/ipmi_intf_static.c src/plugins/Makefile src/plugins/lan/Makefile src/plugins/open/Makefile]) @@ -132,6 +174,11 @@ AC_CONFIG_FILES([ipmitool.spec AC_OUTPUT echo -echo Building $PACKAGE version $VERSION with interface plugins: $PLUGINS -echo Plugin Path: $pluginpath +echo $PACKAGE $VERSION echo +echo Interface Path........ : $pluginpath +echo Static Interfaces..... : $STATIC_INTF_LIST +echo Dynamic Interfaces.... : $DYNAMIC_INTF_LIST +echo Build ipmievd......... : $enable_ipmievd +echo + diff --git a/ipmitool/lib/Makefile.am b/ipmitool/lib/Makefile.am index 31ae171..d8174d9 100644 --- a/ipmitool/lib/Makefile.am +++ b/ipmitool/lib/Makefile.am @@ -37,8 +37,8 @@ MAINTAINERCLEANFILES = Makefile.in noinst_LTLIBRARIES = libipmitool.la libipmitool_la_SOURCES = helper.c ipmi_sdr.c ipmi_sel.c ipmi_sol.c ipmi_lanp.c \ - ipmi_fru.c ipmi_chassis.c ipmi_bmc.c ipmi_intf.c dimm_spd.c \ - ipmi_sensor.c + ipmi_fru.c ipmi_chassis.c ipmi_bmc.c dimm_spd.c ipmi_sensor.c libipmitool_la_LDFLAGS = -export-dynamic -libipmitool_la_LIBADD = -lm $(LIBLTDL) -libipmitool_la_DEPENDENCIES = $(LIBLTDL) +libipmitool_la_LIBADD = -lm +libipmitool_la_DEPENDENCIES = + diff --git a/ipmitool/src/Makefile.am b/ipmitool/src/Makefile.am index c08bf91..aeee5df 100644 --- a/ipmitool/src/Makefile.am +++ b/ipmitool/src/Makefile.am @@ -38,23 +38,17 @@ SUBDIRS = plugins MAINTAINERCLEANFILES = Makefile.in if IPMIEVD - EXTRA_DIST = bmcautoconf.sh bin_PROGRAMS = ipmievd ipmitool ipmievd_SOURCES = ipmievd.c -ipmievd_LDADD = $(top_srcdir)/lib/libipmitool.la -ipmievd_LDFLAGS = - +ipmievd_LDADD = $(top_srcdir)/lib/libipmitool.la $(top_srcdir)/src/plugins/libintf.la else - EXTRA_DIST = bmcautoconf.sh ipmievd.c bin_PROGRAMS = ipmitool - endif ipmitool_SOURCES = ipmitool.c -ipmitool_LDADD = $(top_srcdir)/lib/libipmitool.la -ipmitool_LDFLAGS = +ipmitool_LDADD = $(top_srcdir)/lib/libipmitool.la $(top_srcdir)/src/plugins/libintf.la bin_SCRIPTS = bmcautoconf.sh diff --git a/ipmitool/src/plugins/Makefile.am b/ipmitool/src/plugins/Makefile.am index c208d49..fe9f16a 100644 --- a/ipmitool/src/plugins/Makefile.am +++ b/ipmitool/src/plugins/Makefile.am @@ -32,10 +32,18 @@ # in the design, construction, operation or maintenance of any nuclear # facility. -MAINTAINERCLEANFILES = Makefile.in +plugindir = $(pluginpath) -plugindir = $(pluginpath) +INCLUDES = -I$(top_srcdir)/include +MAINTAINERCLEANFILES = Makefile.in ipmi_intf_static.c +EXTRA_DIST = ipmi_intf_static.c.in -SUBDIRS = @PLUGINS@ -DIST_SUBDIRS = lan open +SUBDIRS = @INTF_LAN@ @INTF_OPEN@ +DIST_SUBDIRS = lan open + +noinst_LTLIBRARIES = libintf.la +libintf_la_SOURCES = ipmi_intf.c ipmi_intf_static.c +libintf_la_LDFLAGS = -export-dynamic +libintf_la_LIBADD = $(LIBLTDL) @STATIC_INTF_LIB@ +libintf_la_DEPENDENCIES = $(LIBLTDL) @STATIC_INTF_LIB@ diff --git a/ipmitool/src/plugins/lan/Makefile.am b/ipmitool/src/plugins/lan/Makefile.am index 5523647..d24c39d 100644 --- a/ipmitool/src/plugins/lan/Makefile.am +++ b/ipmitool/src/plugins/lan/Makefile.am @@ -38,9 +38,10 @@ plugindir = $(pluginpath) INCLUDES = -I$(top_srcdir)/include -intf_lan_la_LDFLAGS = -module -avoid-version -intf_lan_la_LIBADD = $(top_srcdir)/lib/libipmitool.la -intf_lan_la_SOURCES = lan.c lan.h asf.h rmcp.h md5.c md5.h - -plugin_LTLIBRARIES = intf_lan.la +EXTRA_LTLIBRARIES = libintf_lan.la +plugin_LTLIBRARIES = @PLUGIN_INTF_LAN@ +noinst_LTLIBRARIES = @STATIC_INTF_LAN@ +libintf_lan_la_LDFLAGS = @LDFLAGS@ @LDFLAGS_INTF_LAN@ +libintf_lan_la_LIBADD = $(top_srcdir)/lib/libipmitool.la +libintf_lan_la_SOURCES = lan.c lan.h asf.h rmcp.h md5.c md5.h diff --git a/ipmitool/src/plugins/open/Makefile.am b/ipmitool/src/plugins/open/Makefile.am index 59dd297..248299e 100644 --- a/ipmitool/src/plugins/open/Makefile.am +++ b/ipmitool/src/plugins/open/Makefile.am @@ -38,9 +38,10 @@ plugindir = $(pluginpath) INCLUDES = -I$(top_srcdir)/include -intf_open_la_LDFLAGS = -module -avoid-version -intf_open_la_LIBADD = $(top_srcdir)/lib/libipmitool.la -intf_open_la_SOURCES = open.c open.h - -plugin_LTLIBRARIES = intf_open.la +EXTRA_LTLIBRARIES = libintf_open.la +plugin_LTLIBRARIES = @PLUGIN_INTF_OPEN@ +noinst_LTLIBRARIES = @STATIC_INTF_OPEN@ +libintf_open_la_LDFLAGS = @LDFLAGS@ @LDFLAGS_INTF_OPEN@ +libintf_open_la_LIBADD = $(top_srcdir)/lib/libipmitool.la +libintf_open_la_SOURCES = open.c open.h