| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- # ===========================================================================
- # 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],
- [
- #
- # 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)
- ])
|