summaryrefslogtreecommitdiffstats
path: root/m4/os.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/os.m4')
-rw-r--r--m4/os.m453
1 files changed, 53 insertions, 0 deletions
diff --git a/m4/os.m4 b/m4/os.m4
new file mode 100644
index 0000000..21be3d8
--- /dev/null
+++ b/m4/os.m4
@@ -0,0 +1,53 @@
+#
+# lldp_CHECK_OS
+#
+# List of supported OS.
+#
+AC_DEFUN([lldp_DEFINE_OS], [dnl
+ case $host_os in
+ $1)
+ os="$2"
+ AC_DEFINE_UNQUOTED(HOST_OS_$3, 1, [Host operating system is $2])
+ ;;
+ esac
+ AM_CONDITIONAL(HOST_OS_$3, test x"$os" = x"$2")dnl
+])
+
+AC_DEFUN([lldp_CHECK_OS], [
+ AC_CANONICAL_HOST
+ AC_MSG_CHECKING([if host OS is supported])
+
+ lldp_DEFINE_OS(linux*, Linux, LINUX)
+ lldp_DEFINE_OS(freebsd*|kfreebsd*, FreeBSD, FREEBSD)
+ lldp_DEFINE_OS(dragonfly*, [DragonFly BSD], DRAGONFLY)
+ lldp_DEFINE_OS(openbsd*, OpenBSD, OPENBSD)
+ lldp_DEFINE_OS(netbsd*, NetBSD, NETBSD)
+ lldp_DEFINE_OS(darwin*, macOS, OSX)
+ lldp_DEFINE_OS(solaris*, Solaris, SOLARIS)
+
+ if test x"$os" = x; then
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR([*** unsupported OS $host_os])
+ fi
+ AC_MSG_RESULT([yes ($os)])
+])
+
+# Enable some additional CFLAGS depending on the OS
+AC_DEFUN([lldp_CFLAGS_OS], [
+ # Most of what we want can be enabled nowadays with _GNU_SOURCE
+ AX_CFLAGS_GCC_OPTION([-D_GNU_SOURCE], [LLDP_CPPFLAGS]) dnl GNU systems (asprintf, ...)
+
+ case $host_os in
+ solaris*)
+ AX_CFLAGS_GCC_OPTION([-D__EXTENSIONS__], [LLDP_CPPFLAGS]) dnl (CMSG_*)
+ AX_CFLAGS_GCC_OPTION([-D_XPG4_2], [LLDP_CPPFLAGS]) dnl (CMSG_*)
+ ;;
+ hpux*)
+ AX_CFLAGS_GCC_OPTION([-D_XOPEN_SOURCE=500], [LLDP_CPPFLAGS]) dnl HP-UX
+ AX_CFLAGS_GCC_OPTION([-D_XOPEN_SOURCE_EXTENDED], [LLDP_CPPFLAGS]) dnl HP-UX
+ ;;
+ netbsd*)
+ AX_CFLAGS_GCC_OPTION([-D_OPENBSD_SOURCE], [LLDP_CPPFLAGS]) dnl strtonum
+ ;;
+ esac
+])