mirror of
https://github.com/ipmitool/ipmitool.git
synced 2025-05-10 18:47:22 +00:00
332 lines
10 KiB
Plaintext
332 lines
10 KiB
Plaintext
dnl
|
|
dnl autoconf for ipmitool
|
|
dnl
|
|
AC_INIT([src/ipmitool.c])
|
|
AC_CANONICAL_SYSTEM
|
|
AM_INIT_AUTOMAKE([ipmitool], [1.8.3])
|
|
AM_CONFIG_HEADER(config.h)
|
|
AC_CONFIG_SRCDIR([src/ipmitool.c])
|
|
AC_PREREQ(2.50)
|
|
AC_SUBST(ac_configure_args)
|
|
|
|
dnl check for requirements
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
AC_PROG_MAKE_SET
|
|
AC_CHECK_PROG([RPMBUILD], [rpmbuild], [rpmbuild], [rpm])
|
|
AC_CHECK_PROG([SED], [sed], [sed])
|
|
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS([stdlib.h string.h sys/ioctl.h sys/stat.h unistd.h])
|
|
AC_CHECK_HEADERS([arpa/inet.h fcntl.h netdb.h netinet/in.h sys/socket.h])
|
|
AC_CHECK_HEADERS([sys/byteorder.h byteswap.h])
|
|
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_C_BIGENDIAN
|
|
|
|
AC_FUNC_MALLOC
|
|
AC_FUNC_SELECT_ARGTYPES
|
|
AC_FUNC_STRTOD
|
|
AC_CHECK_FUNCS([alarm gethostbyname socket select])
|
|
AC_CHECK_FUNCS([memmove memset strchr strdup strerror])
|
|
AC_CHECK_FUNCS([getpassphrase])
|
|
|
|
CFLAGS="$CFLAGS -fno-strict-aliasing"
|
|
|
|
AM_PROG_LIBTOOL
|
|
LIBTOOL="$LIBTOOL --silent"
|
|
|
|
AC_SEARCH_LIBS([gethostbyname], [nsl])
|
|
AC_SEARCH_LIBS([socket], [socket], [],
|
|
[AC_CHECK_LIB([nsl], [socket],
|
|
[LIBS="$LIBS -lsocket -lnsl"], [], [-lsocket])])
|
|
|
|
if test "x$prefix" = "xNONE"; then
|
|
prefix="$ac_default_prefix"
|
|
fi
|
|
|
|
if test "x$exec_prefix" = "xNONE"; then
|
|
exec_prefix="$prefix"
|
|
fi
|
|
|
|
enable_all_options=yes
|
|
|
|
dnl set some things so we build with GNU tools on Solaris
|
|
case "$host_os" in
|
|
solaris*)
|
|
MAKE=gmake
|
|
STRIP=gstrip
|
|
LD=gld
|
|
AR=gar
|
|
# openssl libs are in /usr/sfw/lib on solaris 10
|
|
LIBS="$LIBS -R/usr/sfw/lib"
|
|
# disable the linux-specific interfaces
|
|
# and bmc on SPARC (there is no bmc driver for SPARC)
|
|
if [[ `mach -p` = sparc ]]; then
|
|
enable_intf_bmc=no
|
|
else
|
|
enable_intf_bmc=yes
|
|
fi
|
|
enable_intf_imb=no
|
|
enable_intf_open=no
|
|
enable_intf_lipmi=no
|
|
enable_ipmishell=no
|
|
enable_all_options=no
|
|
;;
|
|
*cygwin*)
|
|
# disable the linux and solaris-specific interfaces
|
|
enable_intf_imb=no
|
|
enable_intf_open=no
|
|
enable_intf_lipmi=no
|
|
enable_intf_bmc=no
|
|
enable_ipmishell=no
|
|
;;
|
|
*darwin*)
|
|
# disable the linux and solaris-specific interfaces
|
|
enable_intf_imb=no
|
|
enable_intf_open=no
|
|
enable_intf_lipmi=no
|
|
enable_intf_bmc=no
|
|
enable_ipmishell=no
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(ARCH, $host_cpu)
|
|
AC_SUBST(OS, $host_os)
|
|
AC_SUBST(PSTAMP, $host)
|
|
AC_SUBST(BASEDIR, $prefix)
|
|
|
|
dnl allow solaris builds to include all options
|
|
AC_ARG_ENABLE([solaris-opt],
|
|
[AC_HELP_STRING([--enable-solaris-opt],
|
|
[enable all options for Solaris [default=no]])],
|
|
[], [enable_solaris_opt=no])
|
|
if test "x$enable_all_options" = "xyes" || test "x$enable_solaris_opt" = "xyes"; then
|
|
AC_DEFINE(ENABLE_ALL_OPTIONS, [1], [Define to 1 to enable all command line options.])
|
|
fi
|
|
|
|
dnl check for OpenSSL functionality
|
|
AC_ARG_ENABLE([internal-md5],
|
|
[AC_HELP_STRING([--enable-internal-md5],
|
|
[enable internal MD5 library [default=no]])],
|
|
[], [enable_internal_md5=no])
|
|
|
|
AC_CHECK_LIB([crypto], [EVP_aes_128_cbc],
|
|
[if test "x$enable_internal_md5" != "xyes"; then
|
|
have_crypto=yes; LIBS="$LIBS -lcrypto"
|
|
fi], [have_crypto=no], [-lcrypto])
|
|
|
|
AC_CHECK_LIB([crypto], [MD5_Init],
|
|
[if test "x$enable_internal_md5" != "xyes"; then
|
|
if test "x$have_crypto" != "xyes"; then
|
|
LIBS="$LIBS -lcrypto"
|
|
have_md5=yes
|
|
fi
|
|
AC_DEFINE(HAVE_CRYPTO_MD5, [1], [Define to 1 if libcrypto supports MD5.])
|
|
fi], [], [-lcrypto])
|
|
|
|
AC_CHECK_LIB([crypto], [MD2_Init],
|
|
[if test "x$enable_internal_md5" != "xyes"; then
|
|
if test "x$have_crypto" != "xyes" && test "x$have_md5" != "xyes"; then
|
|
LIBS="$LIBS -lcrypto"
|
|
have_md2=yes
|
|
fi
|
|
AC_DEFINE(HAVE_CRYPTO_MD2, [1], [Define to 1 if libcrypto supports MD2.])
|
|
fi], [], [-lcrypto])
|
|
|
|
dnl enable IPMIv1.5 LAN interface
|
|
AC_ARG_ENABLE([intf-lan],
|
|
[AC_HELP_STRING([--enable-intf-lan],
|
|
[enable IPMIv1.5 LAN interface [default=yes]])],
|
|
[], [enable_intf_lan=yes])
|
|
if test "x$enable_intf_lan" = "xstatic" || test "x$enable_intf_lan" = "xplugin"; then
|
|
enable_intf_lan=yes
|
|
fi
|
|
if test "x$enable_intf_lan" = "xyes"; then
|
|
AC_DEFINE(IPMI_INTF_LAN, [1], [Define to 1 to enable LAN IPMIv1.5 interface.])
|
|
AC_SUBST(INTF_LAN, [lan])
|
|
AC_SUBST(INTF_LAN_LIB, [libintf_lan.la])
|
|
IPMITOOL_INTF_LIB="$IPMITOOL_INTF_LIB lan/libintf_lan.la"
|
|
fi
|
|
|
|
dnl enable IPMIv2.0 RMCP+ LAN interface
|
|
AC_ARG_ENABLE([intf-lanplus],
|
|
[AC_HELP_STRING([--enable-intf-lanplus],
|
|
[enable IPMIv2.0 RMCP+ LAN interface [default=auto]])],
|
|
[if test "x$enable_intf_lanplus" != "xno" && test "x$have_crypto" != "xyes"; then
|
|
echo "** The lanplus interface requires an SSL library with EVP_aes_128_cbc defined."
|
|
enable_intf_lanplus=no
|
|
fi],
|
|
[enable_intf_lanplus=$have_crypto])
|
|
if test "x$enable_intf_lanplus" = "xstatic" || test "x$enable_intf_lanplus" = "xplugin"; then
|
|
enable_intf_lanplus=yes
|
|
fi
|
|
if test "x$enable_intf_lanplus" = "xyes"; then
|
|
AC_DEFINE(IPMI_INTF_LANPLUS, [1], [Define to 1 to enable LAN+ IPMIv2 interface.])
|
|
AC_SUBST(INTF_LANPLUS, [lanplus])
|
|
AC_SUBST(INTF_LANPLUS_LIB, [libintf_lanplus.la])
|
|
IPMITOOL_INTF_LIB="$IPMITOOL_INTF_LIB lanplus/libintf_lanplus.la"
|
|
else
|
|
enable_intf_lanplus=no
|
|
fi
|
|
|
|
dnl look for OpenIPMI header files
|
|
AC_ARG_WITH([kerneldir],
|
|
[AC_HELP_STRING([--with-kerneldir=DIR],
|
|
[set kernel include path to DIR])],
|
|
[if test "x$with_kerneldir" = "xyes"; then
|
|
with_kerneldir="/lib/modules/`uname -r`/build"
|
|
fi
|
|
CFLAGS="$CFLAGS -I ${with_kerneldir}/include"
|
|
AC_SUBST(CFLAGS)
|
|
if test -s ${with_kerneldir}/include/linux/version.h ; then
|
|
kernelver=`grep UTS_RELEASE ${with_kerneldir}/include/linux/version.h | \
|
|
sed 's/^\#define UTS_RELEASE \"\(2\.[0-9]\)\..*/\1/'`
|
|
if test "x$kernelver" = "x2.6"; then
|
|
CPPFLAGS="$CPPFLAGS -D__user="
|
|
AC_SUBST(CPPFLAGS)
|
|
fi
|
|
fi])
|
|
AC_CHECK_HEADER([linux/ipmi.h],
|
|
[AC_DEFINE(HAVE_OPENIPMI_H, [1],
|
|
[Define to 1 if you have the <linux/ipmi.h> header file.])],
|
|
[echo "** Unable to find OpenIPMI header files. Using internal version."])
|
|
|
|
dnl set RPM distro tag for use in RPM name
|
|
AC_ARG_WITH([rpm-distro],
|
|
[AC_HELP_STRING([--with-rpm-distro=DISTRO],
|
|
[set Linux distribution tag for use in RPM version string])],
|
|
[AC_SUBST(DISTRO, $with_rpm_distro)])
|
|
|
|
dnl enable Linux OpenIPMI interface
|
|
AC_ARG_ENABLE([intf-open],
|
|
[AC_HELP_STRING([--enable-intf-open],
|
|
[enable Linux OpenIPMI interface [default=auto]])],
|
|
[], [enable_intf_open=yes])
|
|
if test "x$enable_intf_open" = "xstatic" || test "x$enable_intf_open" = "xplugin"; then
|
|
enable_intf_open=yes
|
|
fi
|
|
if test "x$enable_intf_open" = "xyes"; then
|
|
AC_DEFINE(IPMI_INTF_OPEN, [1], [Define to 1 to enable Linux OpenIPMI interface.])
|
|
AC_SUBST(INTF_OPEN, [open])
|
|
AC_SUBST(INTF_OPEN_LIB, [libintf_open.la])
|
|
IPMITOOL_INTF_LIB="$IPMITOOL_INTF_LIB open/libintf_open.la"
|
|
fi
|
|
|
|
dnl enable Intel IMB interface
|
|
AC_ARG_ENABLE([intf-imb],
|
|
[AC_HELP_STRING([--enable-intf-imb],
|
|
[enable Intel IMB driver interface [default=auto]])],
|
|
[], [enable_intf_imb=yes])
|
|
if test "x$enable_intf_imb" = "xstatic" || test "x$enable_intf_imb" = "xplugin"; then
|
|
enable_intf_imb=yes
|
|
fi
|
|
if test "x$enable_intf_imb" = "xyes"; then
|
|
AC_DEFINE(IPMI_INTF_IMB, [1], [Define to 1 to enable Intel IMB interface.])
|
|
AC_SUBST(INTF_IMB, [imb])
|
|
AC_SUBST(INTF_IMB_LIB, [libintf_imb.la])
|
|
IPMITOOL_INTF_LIB="$IPMITOOL_INTF_LIB imb/libintf_imb.la"
|
|
fi
|
|
|
|
dnl enable Solaris LIPMI interface
|
|
AC_CHECK_HEADER([sys/lipmi/lipmi_intf.h], [have_lipmi=yes], [have_lipmi=no])
|
|
AC_ARG_ENABLE([intf-lipmi],
|
|
[AC_HELP_STRING([--enable-intf-lipmi],
|
|
[enable Solaris 9 x86 IPMI interface [default=no]])],
|
|
[if test "x$enable_intf_lipmi" != "xno" && test "x$have_lipmi" != "xyes"; then
|
|
echo "** Unable to build Solaris 9 x86 IPMI interface support!"
|
|
enable_intf_lipmi=no
|
|
fi],
|
|
[enable_intf_lipmi=no])
|
|
if test "x$enable_intf_lipmi" = "xstatic" || test "x$enable_intf_lipmi" = "xplugin"; then
|
|
enable_intf_lipmi=yes
|
|
fi
|
|
if test "x$enable_intf_lipmi" = "xyes"; then
|
|
AC_DEFINE(IPMI_INTF_LIPMI, [1], [Define to 1 to enable Solaris 9 LIPMI interface.])
|
|
AC_SUBST(INTF_LIPMI, [lipmi])
|
|
AC_SUBST(INTF_LIPMI_LIB, [libintf_lipmi.la])
|
|
IPMITOOL_INTF_LIB="$IPMITOOL_INTF_LIB lipmi/libintf_lipmi.la"
|
|
fi
|
|
|
|
dnl enable Solaris BMC interface
|
|
AC_ARG_ENABLE([intf-bmc],
|
|
[AC_HELP_STRING([--enable-intf-bmc],
|
|
[enable Solaris 10 x86 IPMI interface [default=auto]])],,
|
|
[enable_intf_bmc=no])
|
|
if test "x$enable_intf_bmc" = "xstatic" || test "x$enable_intf_bmc" = "xplugin"; then
|
|
enable_intf_bmc=yes
|
|
fi
|
|
if test "x$enable_intf_bmc" = "xyes"; then
|
|
AC_DEFINE(IPMI_INTF_BMC, [1], [Define to 1 to enable Solaris 10 BMC interface.])
|
|
AC_SUBST(INTF_BMC, [bmc])
|
|
AC_SUBST(INTF_BMC_LIB, [libintf_bmc.la])
|
|
IPMITOOL_INTF_LIB="$IPMITOOL_INTF_LIB bmc/libintf_bmc.la"
|
|
fi
|
|
|
|
AC_SUBST(IPMITOOL_INTF_LIB)
|
|
|
|
dnl check for readline library to enable ipmi shell
|
|
AC_ARG_ENABLE([ipmishell],
|
|
[AC_HELP_STRING([--enable-ipmishell],
|
|
[enable IPMI shell interface [default=yes]])],
|
|
[], [enable_ipmishell=yes])
|
|
if test "x$enable_ipmishell" = "xyes"; then
|
|
AC_SEARCH_LIBS([tgetent], [readline ncurses curses termcap])
|
|
AC_SEARCH_LIBS([initscr], [curses ncurses], [have_curses=yes])
|
|
AC_SEARCH_LIBS([readline], [readline edit], [have_readline=yes])
|
|
if test "x$have_curses" = "xyes" && test "x$have_readline" = "xyes"; then
|
|
AC_DEFINE(HAVE_READLINE, [1], [Define to 1 if readline present.])
|
|
fi
|
|
fi
|
|
|
|
dnl Enable -Wall -Werror
|
|
AC_ARG_ENABLE([buildcheck],
|
|
[AC_HELP_STRING([--enable-buildcheck],
|
|
[enable -Wall -Werror for build testing [default=no]])],
|
|
[if test "x$enable_buildcheck" != "xno"; then
|
|
CFLAGS="$CFLAGS -Wall -Werror -Wpointer-arith -Wstrict-prototypes"
|
|
fi], [])
|
|
|
|
AC_SUBST(CFLAGS)
|
|
|
|
dnl Generate files for build
|
|
AC_CONFIG_FILES([Makefile
|
|
doc/Makefile
|
|
contrib/Makefile
|
|
control/Makefile
|
|
control/pkginfo
|
|
control/prototype
|
|
control/rpmmacros
|
|
control/ipmitool.spec
|
|
lib/Makefile
|
|
include/Makefile
|
|
include/ipmitool/Makefile
|
|
src/Makefile
|
|
src/plugins/Makefile
|
|
src/plugins/lan/Makefile
|
|
src/plugins/lanplus/Makefile
|
|
src/plugins/open/Makefile
|
|
src/plugins/imb/Makefile
|
|
src/plugins/bmc/Makefile
|
|
src/plugins/lipmi/Makefile])
|
|
|
|
AC_OUTPUT
|
|
|
|
AC_MSG_RESULT([])
|
|
AC_MSG_RESULT([ipmitool $VERSION])
|
|
AC_MSG_RESULT([])
|
|
AC_MSG_RESULT([Interfaces])
|
|
AC_MSG_RESULT([ lan : $enable_intf_lan])
|
|
AC_MSG_RESULT([ lanplus : $enable_intf_lanplus])
|
|
AC_MSG_RESULT([ open : $enable_intf_open])
|
|
AC_MSG_RESULT([ imb : $enable_intf_imb])
|
|
AC_MSG_RESULT([ bmc : $enable_intf_bmc])
|
|
AC_MSG_RESULT([ lipmi : $enable_intf_lipmi])
|
|
AC_MSG_RESULT([])
|
|
AC_MSG_RESULT([Extra tools])
|
|
AC_MSG_RESULT([ ipmievd : yes])
|
|
AC_MSG_RESULT([])
|
|
|