2 # Copyright (C) 2013 Julius Schulz-Zander <julius@net.t-labs.tu-berlin.de>
3 # Copyright (C) 2014 OpenWrt.org
5 # This is free software, licensed under the GNU General Public License v2.
6 # See /LICENSE for more information.
10 include $(TOPDIR
)/rules.mk
16 PKG_RELEASE
=$(PKG_SOURCE_VERSION
)
17 PKG_LICENSE
:=Apache-2.0
18 PKG_LICENSE_FILE
:=COPYING
22 PKG_SOURCE_URL
:=https
://github.com
/openvswitch
/ovs
23 PKG_SOURCE_SUBDIR
:=$(PKG_NAME
)-$(PKG_VERSION
)
24 PKG_SOURCE_VERSION
:=2b70c4b929d18d1f36dcdeb71ea5c383cbb662e9
25 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
)-$(PKG_SOURCE_VERSION
).
tar.gz
27 include $(INCLUDE_DIR
)/package.mk
28 include $(INCLUDE_DIR
)/kernel.mk
32 define Package
/openvswitch
/Default
35 URL
:=http
://openvswitch.org
/
36 MAINTAINER
:=Alexandru Ardelean
<ardeleanalex@gmail.com
>
39 define Package
/openvswitch
/Default
/description
40 Open vSwitch is a production quality
, multilayer
, software-based
, Ethernet
41 virtual switch. It is designed to enable massive network automation through
42 programmatic extension
, while still supporting standard management interfaces
43 and protocols
(e.g. NetFlow
, sFlow
, SPAN
, RSPAN
, CLI
, LACP
, 802.1ag
). In
44 addition
, it is designed to support distribution across multiple physical
45 servers similar to VMware
's vNetwork distributed vswitch or Cisco's Nexus
49 define Package
/openvswitch
50 $(call Package
/openvswitch
/Default
)
51 TITLE
:=Open vSwitch Userspace Package
52 DEPENDS
:=+libpcap
+libopenssl
+librt
+libatomic
+kmod-openvswitch
55 define Package
/openvswitch
/description
56 Provides the main userspace components required for Open vSwitch to function.
59 define Package
/openvswitch-benchmark
60 $(call Package
/openvswitch
/Default
)
61 TITLE
:=Open vSwitch Userspace Package
62 DEPENDS
:=@PACKAGE_openvswitch
+PACKAGE_openvswitch
:openvswitch
65 define Package
/openvswitch-benchmark
/description
66 Utility for running OpenVSwitch benchmarking
69 define KernelPackage
/openvswitch
71 CATEGORY
:=Kernel modules
72 SUBMENU
:=Network Support
73 TITLE
:=Open vSwitch Kernel Package
74 KCONFIG
:=CONFIG_BRIDGE
75 DEPENDS
:=+kmod-stp
+kmod-ipv6
+kmod-gre
+kmod-lib-crc32c
77 $(PKG_BUILD_DIR
)/datapath
/linux
/openvswitch.
$(LINUX_KMOD_SUFFIX
)
78 AUTOLOAD
:=$(call AutoLoad
,21,openvswitch
)
81 define KernelPackage
/openvswitch
/description
82 This package contains the Open vSwitch kernel moodule and bridge compat
83 module. Furthermore
, it supports OpenFlow.
86 CONFIGURE_ARGS
+= --with-linux
=$(LINUX_DIR
) --with-rundir
=/var
/run
87 CONFIGURE_ARGS
+= --enable-ndebug
88 CONFIGURE_ARGS
+= --disable-ssl
89 CONFIGURE_ARGS
+= --enable-shared
91 TARGET_CFLAGS
+= -flto
93 define Build
/Configure
94 (cd
$(PKG_BUILD_DIR
); \
95 autoreconf
-v
--install --force || exit
1 \
97 $(call Build
/Configure
/Default
,$(CONFIGURE_ARGS
))
101 $(MAKE
) -C
$(PKG_BUILD_DIR
) \
102 $(TARGET_CONFIGURE_OPTS
) \
103 CFLAGS
="-I$(PKG_BUILD_DIR)/lib $(TARGET_CFLAGS) -std=gnu99" \
104 LDFLAGS
="-L$(PKG_BUILD_DIR)/lib $(TARGET_LDFLAGS)" \
105 LDFLAGS_MODULES
="$(TARGET_LDFLAGS) -L$(PKG_BUILD_DIR)/lib" \
106 STAGING_DIR
="$(STAGING_DIR)" \
107 DESTDIR
="$(PKG_INSTALL_DIR)/usr" \
108 CROSS_COMPILE
="$(TARGET_CROSS)" \
109 ARCH
="$(LINUX_KARCH)" \
110 SUBDIRS
="$(PKG_BUILD_DIR)/datapath/linux" \
111 PATH
="$(TARGET_PATH)" \
115 define Package
/openvswitch
/install
116 $(INSTALL_DIR
) $(1)/etc
/openvswitch
118 $(INSTALL_DIR
) $(1)/etc
/init.d
119 $(INSTALL_BIN
) .
/files
/etc
/init.d
/openvswitch.init
$(1)/etc
/init.d
/openvswitch
121 $(INSTALL_DIR
) $(1)/usr
/lib
/
122 $(CP
) $(PKG_BUILD_DIR
)/lib
/.libs
/libsflow-
$(PKG_VERSION
).so
$(1)/usr
/lib
/
123 $(CP
) $(PKG_BUILD_DIR
)/lib
/.libs
/libopenvswitch-
$(PKG_VERSION
).so
$(1)/usr
/lib
/
124 $(CP
) $(PKG_BUILD_DIR
)/ofproto
/.libs
/libofproto-
$(PKG_VERSION
).so
$(1)/usr
/lib
/
125 $(CP
) $(PKG_BUILD_DIR
)/ovsdb
/.libs
/libovsdb-
$(PKG_VERSION
).so
$(1)/usr
/lib
/
127 $(INSTALL_DIR
) $(1)/usr
/bin
/
128 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/utilities
/.libs
/ovs-appctl
$(1)/usr
/bin
/
129 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/utilities
/.libs
/ovs-ofctl
$(1)/usr
/bin
/
130 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/ovsdb
/.libs
/ovsdb-client
$(1)/usr
/bin
/
132 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/utilities
/.libs
/ovs-dpctl
$(1)/usr
/bin
/
133 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/utilities
/.libs
/ovs-vsctl
$(1)/usr
/bin
/
134 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/ovsdb
/.libs
/ovsdb-tool
$(1)/usr
/bin
/
136 $(INSTALL_DIR
) $(1)/usr
/sbin
/
137 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/vswitchd
/.libs
/ovs-vswitchd
$(1)/usr
/sbin
/
138 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/ovsdb
/.libs
/ovsdb-server
$(1)/usr
/sbin
/
140 $(INSTALL_DIR
) $(1)/usr
/share
/openvswitch
/
141 $(INSTALL_CONF
) $(PKG_BUILD_DIR
)/vswitchd
/vswitch.ovsschema
$(1)/usr
/share
/openvswitch
/
144 define Package
/openvswitch-benchmark
/install
145 $(INSTALL_DIR
) $(1)/usr
/bin
/
146 $(INSTALL_BIN
) $(PKG_BUILD_DIR
)/utilities
/.libs
/ovs-benchmark
$(1)/usr
/bin
/
149 define Package
/openvswitch
/postinst
151 [ -n
"$${IPKG_INSTROOT}" ] ||
/etc
/init.d
/openvswitch enable || true
154 $(eval
$(call BuildPackage
,openvswitch
))
155 $(eval
$(call BuildPackage
,openvswitch-benchmark
))
156 $(eval
$(call KernelPackage
,openvswitch
))