autoconf/automake changes to support static interfaces

lots of ugly stuff because this isn't cleanly supported
This commit is contained in:
Duncan Laurie 2004-01-26 17:32:01 +00:00
parent 98035ca03d
commit 1cc46a898e
6 changed files with 84 additions and 33 deletions

View File

@ -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

View File

@ -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 =

View File

@ -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

View File

@ -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@

View File

@ -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

View File

@ -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