159 lines
4.7 KiB
Plaintext
159 lines
4.7 KiB
Plaintext
|
# ===========================================================================
|
||
|
# SYNOPSIS
|
||
|
#
|
||
|
# AX_NAGIOS_GET_DISTRIB_TYPE
|
||
|
#
|
||
|
# DESCRIPTION
|
||
|
#
|
||
|
# This macro determines the O/S distribution of the computer it is run on.
|
||
|
# $dist_type will be set and will be one of:
|
||
|
# unknown (could not be determined)
|
||
|
# freebsd, netbsd, openbsd, dragonfly, etc (The BSDs)
|
||
|
# suse, rh, debian, gentoo (and possibly their descendants)
|
||
|
# Other major Linux distributions (and possibly their descendants)
|
||
|
# The O/S name for the rest
|
||
|
#
|
||
|
# LICENSE
|
||
|
#
|
||
|
# Copyright (c) 2016 Nagios Core Development Team
|
||
|
#
|
||
|
# This program is free software; you can redistribute it and/or modify it
|
||
|
# under the terms of the GNU General Public License as published by the
|
||
|
# Free Software Foundation; either version 2 of the License, or (at your
|
||
|
# option) any later version.
|
||
|
#
|
||
|
# This program is distributed in the hope that it will be useful, but
|
||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||
|
# Public License for more details.
|
||
|
#
|
||
|
# You should have received a copy of the GNU General Public License along
|
||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||
|
#
|
||
|
# As a special exception, the respective Autoconf Macro's copyright owner
|
||
|
# gives unlimited permission to copy, distribute and modify the configure
|
||
|
# scripts that are the output of Autoconf when processing the Macro. You
|
||
|
# need not follow the terms of the GNU General Public License when using
|
||
|
# or distributing such scripts, even though portions of the text of the
|
||
|
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||
|
# all other use of the material that constitutes the Autoconf Macro.
|
||
|
#
|
||
|
# This special exception to the GPL applies to versions of the Autoconf
|
||
|
# Macro released by the Autoconf Archive. When you make and distribute a
|
||
|
# modified version of the Autoconf Macro, you may extend this special
|
||
|
# exception to the GPL to apply to your modified version as well.
|
||
|
# ===========================================================================
|
||
|
|
||
|
AU_ALIAS([AC_NAGIOS_GET_DISTRIB_TYPE], [AX_NAGIOS_GET_DISTRIB_TYPE])
|
||
|
AC_DEFUN([AX_NAGIOS_GET_DISTRIB_TYPE],
|
||
|
[
|
||
|
|
||
|
AC_SUBST(dist_type)
|
||
|
AC_SUBST(dist_ver)
|
||
|
|
||
|
#
|
||
|
# Get user hints for possible cross-compile
|
||
|
#
|
||
|
AC_MSG_CHECKING(what the distribution type is )
|
||
|
AC_ARG_WITH(dist-type, AC_HELP_STRING([--with-dist-type=type],
|
||
|
[specify distribution type (suse, rh, debian, etc.)]),
|
||
|
[
|
||
|
#
|
||
|
# Run this if --with was specified
|
||
|
#
|
||
|
if test "x$withval" = x -o x$withval = xno; then
|
||
|
dist_type_wanted=yes
|
||
|
else
|
||
|
dist_type_wanted=no
|
||
|
dist_type="$withval"
|
||
|
dist_ver="unknown"
|
||
|
AC_MSG_RESULT($dist_type)
|
||
|
fi
|
||
|
], [
|
||
|
#
|
||
|
# Run this if --with was not specified
|
||
|
#
|
||
|
dist_type_wanted=yes
|
||
|
])
|
||
|
|
||
|
if test x$dist_type = xno; then
|
||
|
dist_type_wanted=yes
|
||
|
elif test x$dist_type = xyes; then
|
||
|
AC_MSG_ERROR([you must enter a distribution type if '--with-dist-type' is specified])
|
||
|
fi
|
||
|
|
||
|
#
|
||
|
# Determine distribution type if it wasn't supplied
|
||
|
#
|
||
|
dist_ver="unknown"
|
||
|
|
||
|
if test $dist_type_wanted=yes; then
|
||
|
dist_type="unknown"
|
||
|
|
||
|
if test "$opsys" != "linux"; then
|
||
|
dist_type="$opsys"
|
||
|
AS_CASE([$opsys],
|
||
|
[bsd],
|
||
|
dist_type=`uname -s | tr ["[A-Z]" "[a-z]"]`
|
||
|
dist_ver=`uname -r`,
|
||
|
[aix|hp-ux],
|
||
|
dist_ver=$OSTYPE,
|
||
|
[solaris],
|
||
|
dist_ver=`echo $OSTYPE | cut -d'.' -f2`,
|
||
|
[*],
|
||
|
dist_ver=$OSTYPE
|
||
|
)
|
||
|
|
||
|
else
|
||
|
|
||
|
if test -r "/etc/gentoo-release"; then
|
||
|
dist_type="gentoo"
|
||
|
dist_ver=`cat /etc/gentoo-release`
|
||
|
|
||
|
elif test -r "/etc/os-release"; then
|
||
|
. /etc/os-release
|
||
|
if test x"$ID_LIKE" != x; then
|
||
|
dist_type=`echo $ID_LIKE | cut -d' ' -f1 | tr ["[A-Z]" "[a-z]"]`
|
||
|
elif test x"$ID" = xol; then
|
||
|
dist_type=rh
|
||
|
else
|
||
|
dist_type=`echo $ID | tr ["[A-Z]" "[a-z]"]`
|
||
|
fi
|
||
|
if test x"$dist_type" = sles; then
|
||
|
dist_type=suse
|
||
|
fi
|
||
|
if test x"$VERSION_ID" != x; then
|
||
|
dist_ver=$VERSION_ID
|
||
|
elif test x"$VERSION" != x; then
|
||
|
dist_ver=`echo $VERSION | cut -d'.' -f1 | tr -d [:alpha:][:blank:][:punct:]`
|
||
|
fi
|
||
|
|
||
|
elif test -r "/etc/redhat-release"; then
|
||
|
dist_type=rh
|
||
|
dist_ver=`cat /etc/redhat-release`
|
||
|
|
||
|
elif test -r "/etc/debian_version"; then
|
||
|
dist_type="debian"
|
||
|
if test -r "/etc/lsb-release"; then
|
||
|
. /etc/lsb-release
|
||
|
dist_ver=`echo "$DISTRIB_RELEASE"`
|
||
|
else
|
||
|
dist_ver=`cat /etc/debian_version`
|
||
|
fi
|
||
|
|
||
|
elif test -r "/etc/SuSE-release"; then
|
||
|
dist_type=suse
|
||
|
dist_ver=`grep VERSION /etc/SuSE-release`
|
||
|
|
||
|
fi
|
||
|
|
||
|
fi
|
||
|
|
||
|
if test "$dist_ver" != "unknown"; then
|
||
|
dist_ver=`echo "$dist_ver" | cut -d'.' -f1 | tr -d [:alpha:][:blank:][:punct:]`
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
AC_MSG_RESULT($dist_type)
|
||
|
])
|