[ovs-dev] [PATCH 2/2] Makefile: Compile Linux-specific files based on __linux__ macro.
Ben Pfaff
blp at nicira.com
Thu Jan 23 23:39:11 UTC 2014
We want to conditionally compile several files based on whether we're
building for a Linux host, so we need some Automake conditional for that.
Previously this was based on whether Netlink is available and we're not
on ESX (since ESX has Netlink but isn't Linux), but it's more
straightforward to just test for Linux directly.
CC: Luigi Rizzo <rizzo at iet.unipi.it>
Signed-off-by: Ben Pfaff <blp at nicira.com>
---
acinclude.m4 | 17 ++++++++++++++++-
configure.ac | 6 +-----
lib/automake.mk | 2 +-
utilities/automake.mk | 2 +-
4 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/acinclude.m4 b/acinclude.m4
index 8ff5828..830fd3f 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1,6 +1,6 @@
# -*- autoconf -*-
-# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013 Nicira, Inc.
+# Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
@@ -579,3 +579,18 @@ AC_DEFUN([OVS_CHECK_PTHREAD_SET_NAME],
;;
esac
fi])
+
+dnl OVS_CHECK_LINUX_HOST.
+dnl
+dnl Checks whether we're building for a Linux host, based on the presence of
+dnl the __linux__ preprocessor symbol, and sets up an Automake conditional
+dnl LINUX based on the result.
+AC_DEFUN([OVS_CHECK_LINUX_HOST],
+ [AC_CACHE_CHECK(
+ [whether __linux__ is defined],
+ [ovs_cv_linux],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([enum { LINUX = __linux__};], [])],
+ [ovs_cv_linux=true],
+ [ovs_cv_linux=false])])
+ AM_CONDITIONAL([LINUX], [$ovs_cv_linux])])
diff --git a/configure.ac b/configure.ac
index 19c095e..8ea68f8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -90,6 +90,7 @@ OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(4)
OVS_CHECK_ATOMIC_ALWAYS_LOCK_FREE(8)
OVS_CHECK_POSIX_AIO
OVS_CHECK_PTHREAD_SET_NAME
+OVS_CHECK_LINUX_HOST
OVS_CHECK_INCLUDE_NEXT([stdio.h string.h])
AC_CONFIG_FILES([lib/stdio.h lib/string.h])
@@ -132,11 +133,6 @@ AC_CONFIG_COMMANDS([include/openflow/openflow.h.stamp])
AC_CONFIG_COMMANDS([utilities/bugtool/dummy], [:])
-AM_CONDITIONAL([LINUX_DATAPATH], [test "$HAVE_NETLINK" = yes && test "$ESX" = no])
-if test "$HAVE_NETLINK" = yes && test "$ESX" = no; then
- AC_DEFINE([LINUX_DATAPATH], [1], [System uses the linux datapath module.])
-fi
-
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES])
AC_OUTPUT
diff --git a/lib/automake.mk b/lib/automake.mk
index 94ba060..27d57ae 100644
--- a/lib/automake.mk
+++ b/lib/automake.mk
@@ -268,7 +268,7 @@ if HAVE_WNO_UNUSED_PARAMETER
lib_libsflow_la_CFLAGS += -Wno-unused-parameter
endif
-if LINUX_DATAPATH
+if LINUX
lib_libopenvswitch_la_SOURCES += \
lib/dpif-linux.c \
lib/dpif-linux.h \
diff --git a/utilities/automake.mk b/utilities/automake.mk
index ffc48b1..e33c232 100644
--- a/utilities/automake.mk
+++ b/utilities/automake.mk
@@ -111,7 +111,7 @@ utilities_ovs_ofctl_LDADD = \
utilities_ovs_vsctl_SOURCES = utilities/ovs-vsctl.c
utilities_ovs_vsctl_LDADD = lib/libopenvswitch.la $(SSL_LIBS)
-if LINUX_DATAPATH
+if LINUX
sbin_PROGRAMS += utilities/ovs-vlan-bug-workaround
utilities_ovs_vlan_bug_workaround_SOURCES = utilities/ovs-vlan-bug-workaround.c
utilities_ovs_vlan_bug_workaround_LDADD = lib/libopenvswitch.la $(SSL_LIBS)
--
1.7.10.4
More information about the dev
mailing list