1#
2# Copyright (C) 2006-2013 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8include $(TOPDIR)/rules.mk
9
10PKG_NAME:=libnl
11PKG_VERSION:=3.2.21
12PKG_RELEASE:=1
13
14PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15PKG_SOURCE_URL:=http://www.infradead.org/~tgr/libnl/files/
16PKG_MD5SUM:=6fe7136558a9071e70673dcda38545b3
17PKG_LICENSE:=LGPL-2.1
18
19include $(INCLUDE_DIR)/package.mk
20
21define Package/libnl/default
22  SECTION:=libs
23  CATEGORY:=Libraries
24  URL:=http://www.infradead.org/~tgr/libnl/
25endef
26
27define Package/libnl-core
28$(call Package/libnl/default)
29  TITLE:=Core Netlink Library
30  DEPENDS:=+libpthread
31endef
32
33define Package/libnl-genl
34$(call Package/libnl/default)
35  TITLE:=Generic Netlink Library
36  DEPENDS:=+libnl-core
37endef
38
39define Package/libnl-route
40$(call Package/libnl/default)
41  TITLE:=Routing Netlink Library
42  DEPENDS:=+libnl-core
43endef
44
45define Package/libnl-nf
46$(call Package/libnl/default)
47  TITLE:=Netfilter Netlink Library
48  DEPENDS:=+libnl-route
49endef
50
51define Package/libnl
52$(call Package/libnl/default)
53  TITLE:=Full Netlink Library
54  DEPENDS:=+libnl-genl +libnl-route +libnl-nf
55endef
56
57define Package/libnl-core/description
58 Common code for all netlink libraries
59endef
60
61define Package/libnl-genl/description
62 Generic Netlink Library Functions
63endef
64
65define Package/libnl-route/description
66 Routing Netlink Library Functions
67endef
68
69define Package/libnl-nf/description
70 Netfilter Netlink Library Functions
71endef
72
73define Package/libnl/description
74 Socket handling, connection management, sending and receiving of data,
75 message construction and parsing, object caching system, etc.
76endef
77
78TARGET_CFLAGS += -ffunction-sections $(FPIC)
79
80define Build/Compile
81	$(call Build/Compile/Default)
82	make -C $(PKG_BUILD_DIR) \
83		DESTDIR="$(PKG_INSTALL_DIR)" \
84		install
85endef
86
87define Build/InstallDev
88	$(INSTALL_DIR) $(1)/usr/include/libnl3 $(1)/usr/lib/pkgconfig
89	$(CP) $(PKG_INSTALL_DIR)/usr/include/libnl3/* $(1)/usr/include/libnl3/
90	$(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib
91	$(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig
92
93	# Copy symlinks
94	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-3.so $(1)/usr/lib/libnl.so
95	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-genl-3.so $(1)/usr/lib/libnl-genl.so
96	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-nf-3.so $(1)/usr/lib/libnl-nf.so
97	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-route-3.so $(1)/usr/lib/libnl-route.so
98endef
99
100define Package/libnl-core/install
101	$(INSTALL_DIR) $(1)/usr/lib
102	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-3.so* $(1)/usr/lib/
103	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-3.so $(1)/usr/lib/libnl.so
104endef
105
106define Package/libnl-genl/install
107	$(INSTALL_DIR) $(1)/usr/lib
108	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-genl-3.so* $(1)/usr/lib/
109	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-genl-3.so $(1)/usr/lib/libnl-genl.so
110endef
111
112define Package/libnl-route/install
113	$(INSTALL_DIR) $(1)/usr/lib
114	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-route-3.so* $(1)/usr/lib/
115	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-route-3.so $(1)/usr/lib/libnl-route.so
116endef
117
118define Package/libnl-nf/install
119	$(INSTALL_DIR) $(1)/usr/lib
120	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-nf-3.so* $(1)/usr/lib/
121	$(CP) $(PKG_INSTALL_DIR)/usr/lib/libnl-nf-3.so $(1)/usr/lib/libnl-nf.so
122endef
123
124define Package/libnl/install
125	:
126endef
127
128$(eval $(call BuildPackage,libnl-core))
129$(eval $(call BuildPackage,libnl-genl))
130$(eval $(call BuildPackage,libnl-route))
131$(eval $(call BuildPackage,libnl-nf))
132$(eval $(call BuildPackage,libnl))
133