
As patch 1/10 says, this is the libtool making system for libnl3 and libbridge. Now it only compile core and route components of libnl3, but other source code were also put in the ./libnl3 in case using in the future. Note: Because in root directory the autoconfigure have modification of glabal variable CFLAGS and LDFLAGS containing information it have to drop, these Makefile now override these values, so ./configure CFLAGS would not take effect in these directories now. New Macro were introduced in configure.ac to set the compile and linking option for ./libnetwork directory. -fvisibility=hidden and -D DLL_BUILD were used to limit symbols exported. Signed-off-by: Wayne Xia <xiawenc@linux.vnet.ibm.com> --- configure.ac | 19 +++++- libnetwork/libbridge/Makefile.am | 20 ++++++ libnetwork/libnl3/Makefile.am | 8 ++ libnetwork/libnl3/include/Makefile.am | 122 +++++++++++++++++++++++++++++++++ libnetwork/libnl3/lib/Makefile.am | 99 ++++++++++++++++++++++++++ 5 files changed, 267 insertions(+), 1 deletions(-) create mode 100644 libnetwork/libbridge/Makefile.am create mode 100644 libnetwork/libnl3/Makefile.am create mode 100644 libnetwork/libnl3/include/Makefile.am create mode 100644 libnetwork/libnl3/lib/Makefile.am diff --git a/configure.ac b/configure.ac index 0250c73..bae3de0 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ AC_CONFIG_SRCDIR([src/Virt_ComputerSystem.c]) AC_CONFIG_HEADER([config.h]) # Use silent rules if possible -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([-Wall foreign subdir-objects]) m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) m4_define([lt_cur], m4_eval(libvirtcim_maj + libvirtcim_min)) @@ -50,6 +50,18 @@ CC_WARNINGS="\ CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_LARGEFILE64_SOURCE" +# following are for libnetwork +LIBNETWORK_CFLAGS="-fvisibility=hidden" +LIBNETWORK_DEFINES="-D DLL_BUILD" +AC_SUBST(LIBNETWORK_CFLAGS) +AC_SUBST(LIBNETWORK_DEFINES) + +AM_CONDITIONAL([LIBNL3_ENABLE_CLI], [test "$enable_cli" = "yes"]) + +# LEX and YACC is neccessary for libnl-3 +AM_PROG_LEX +AC_PROG_YACC + # Configure command line options AC_ARG_VAR([CIMSERVER],[the target CIM server (pegasus|sfcb|openwbem|sniacimom). ]) @@ -142,6 +154,11 @@ AC_CONFIG_FILES([ base_schema/Makefile libxkutil/Makefile libxkutil/tests/Makefile + libnetwork/Makefile + libnetwork/libbridge/Makefile + libnetwork/libnl3/Makefile + libnetwork/libnl3/lib/Makefile + libnetwork/libnl3/include/Makefile src/Makefile src/tests/Makefile doc/Makefile diff --git a/libnetwork/libbridge/Makefile.am b/libnetwork/libbridge/Makefile.am new file mode 100644 index 0000000..93646fb --- /dev/null +++ b/libnetwork/libbridge/Makefile.am @@ -0,0 +1,20 @@ +# Copyright IBM Corp. 2011 +# Auther: +# Wenchao Xia, <xiawenc@cn.ibm.com> +# +# These code is a taken from bridge-utils-1.5 + +CFLAGS = $(LIBNETWORK_CFLAGS) \ + $(LIBNETWORK_DEFINES) +CPPFLAGS = +LDFLAGS = $(LIBNETWORK_DEFINES) + +AM_CFLAGS = $(CFLAGS_STRICT) \ + -DLIBVIRTCIM_CONF=\"@sysconfdir@/@PACKAGE@.conf\" + +noinst_HEADERS = libbridge_private.h libbridge.h + +noinst_LTLIBRARIES = libbridge.la + +libbridge_la_SOURCES = libbridge_devif.c libbridge_if.c libbridge_init.c \ + libbridge_misc.c diff --git a/libnetwork/libnl3/Makefile.am b/libnetwork/libnl3/Makefile.am new file mode 100644 index 0000000..3fc7f0f --- /dev/null +++ b/libnetwork/libnl3/Makefile.am @@ -0,0 +1,8 @@ +# Copyright IBM Corp. 2011 +# Auther: +# Wenchao Xia, <xiawenc@cn.ibm.com> +# +# This is the root directory just as original +# libnl3 project. + +SUBDIRS = lib include diff --git a/libnetwork/libnl3/include/Makefile.am b/libnetwork/libnl3/include/Makefile.am new file mode 100644 index 0000000..65d7924 --- /dev/null +++ b/libnetwork/libnl3/include/Makefile.am @@ -0,0 +1,122 @@ +# Copyright IBM Corp. 2011 +# Auther: +# Wenchao Xia, <xiawenc@cn.ibm.com> +# +# These code is a taken from libnl3-3.2.3, +# it is modified to generate static library. + +noinst_HEADERS = \ + netlink/fib_lookup/lookup.h \ + netlink/fib_lookup/request.h \ + netlink/genl/ctrl.h \ + netlink/genl/family.h \ + netlink/genl/genl.h \ + netlink/genl/mngt.h \ + netlink/netfilter/ct.h \ + netlink/netfilter/log.h \ + netlink/netfilter/log_msg.h \ + netlink/netfilter/netfilter.h \ + netlink/netfilter/nfnl.h \ + netlink/netfilter/queue.h \ + netlink/netfilter/queue_msg.h \ + netlink/addr.h \ + netlink/attr.h \ + netlink/cache-api.h \ + netlink/cache.h \ + netlink/data.h \ + netlink/errno.h \ + netlink/handlers.h \ + netlink/list.h \ + netlink/msg.h \ + netlink/netlink-compat.h \ + netlink/netlink-kernel.h \ + netlink/netlink.h \ + netlink/object-api.h \ + netlink/object.h \ + netlink/route/cls/ematch/cmp.h \ + netlink/route/cls/ematch/meta.h \ + netlink/route/cls/ematch/nbyte.h \ + netlink/route/cls/ematch/text.h \ + netlink/route/cls/basic.h \ + netlink/route/cls/cgroup.h \ + netlink/route/cls/ematch.h \ + netlink/route/cls/fw.h \ + netlink/route/cls/police.h \ + netlink/route/cls/u32.h \ + netlink/route/link/api.h \ + netlink/route/link/bonding.h \ + netlink/route/link/info-api.h \ + netlink/route/link/inet.h \ + netlink/route/link/vlan.h \ + netlink/route/qdisc/cbq.h \ + netlink/route/qdisc/dsmark.h \ + netlink/route/qdisc/fifo.h \ + netlink/route/qdisc/htb.h \ + netlink/route/qdisc/netem.h \ + netlink/route/qdisc/prio.h \ + netlink/route/qdisc/red.h \ + netlink/route/qdisc/sfq.h \ + netlink/route/qdisc/tbf.h \ + netlink/route/addr.h \ + netlink/route/class.h \ + netlink/route/classifier.h \ + netlink/route/link.h \ + netlink/route/neighbour.h \ + netlink/route/neightbl.h \ + netlink/route/nexthop.h \ + netlink/route/pktloc.h \ + netlink/route/qdisc.h \ + netlink/route/route.h \ + netlink/route/rtnl.h \ + netlink/route/rule.h \ + netlink/route/tc.h \ + netlink/route/tc-api.h \ + netlink/socket.h \ + netlink/types.h \ + netlink/utils.h \ + netlink/version.h + +if LIBNL3_ENABLE_CLI +noinst_HEADERS += \ + netlink/cli/addr.h \ + netlink/cli/class.h \ + netlink/cli/cls.h \ + netlink/cli/ct.h \ + netlink/cli/link.h \ + netlink/cli/neigh.h \ + netlink/cli/qdisc.h \ + netlink/cli/route.h \ + netlink/cli/rule.h \ + netlink/cli/tc.h \ + netlink/cli/utils.h +endif + +noinst_HEADERS += \ + linux/fib_rules.h \ + linux/genetlink.h \ + linux/gen_stats.h \ + linux/if_addr.h \ + linux/if_arp.h \ + linux/if_ether.h \ + linux/if.h \ + linux/if_link.h \ + linux/if_vlan.h \ + linux/inetdevice.h \ + linux/ip_mp_alg.h \ + linux/ipv6.h \ + linux/neighbour.h \ + linux/netfilter.h \ + linux/netfilter/nfnetlink_conntrack.h \ + linux/netfilter/nfnetlink.h \ + linux/netfilter/nfnetlink_log.h \ + linux/netfilter/nfnetlink_queue.h \ + linux/netlink.h \ + linux/pkt_cls.h \ + linux/pkt_sched.h \ + linux/rtnetlink.h \ + linux/snmp.h \ + linux/tc_ematch/tc_em_meta.h \ + netlink-generic.h \ + netlink-local.h \ + netlink-tc.h \ + netlink-types.h diff --git a/libnetwork/libnl3/lib/Makefile.am b/libnetwork/libnl3/lib/Makefile.am new file mode 100644 index 0000000..945dca8 --- /dev/null +++ b/libnetwork/libnl3/lib/Makefile.am @@ -0,0 +1,99 @@ +# Copyright IBM Corp. 2011 +# Auther: +# Wenchao Xia, <xiawenc@cn.ibm.com> +# +# These code is a taken from libnl3-3.2.3, +# it is modified to generate static library. + +CFLAGS = $(LIBNETWORK_CFLAGS) \ + $(LIBNETWORK_DEFINES) +CPPFLAGS = +LDFLAGS = $(LIBNETWORK_DEFINES) + +AM_CFLAGS = $(CFLAGS_STRICT) \ + -DLIBVIRTCIM_CONF=\"@sysconfdir@/@PACKAGE@.conf\" + +AM_CPPFLAGS = \ + -Wall \ + -I$(top_srcdir)/libnetwork/libnl3/include \ + -I$(top_srcdir)/libnetwork/libnl3/include/netlink/route \ + -I$(top_srcdir)/libnetwork/libnl3/include/netlink/route/cls \ + -D_GNU_SOURCE \ + -DSYSCONFDIR=\"$(sysconfdir)/libnl\" + +#the code is from libnl-3.2.3 +AM_LDFLAGS = \ + -version-info 3:2:3 + +noinst_LTLIBRARIES = \ + libnl-3-4cim.la libnl-route-3-4cim.la + +libnl_3_4cim_la_SOURCES = \ + addr.c attr.c cache.c cache_mngr.c cache_mngt.c data.c \ + error.c handlers.c msg.c nl.c object.c socket.c utils.c + +CLEANFILES = \ + route/pktloc_grammar.c route/pktloc_grammar.h \ + route/pktloc_syntax.c route/pktloc_syntax.h \ + route/cls/ematch_grammar.c route/cls/ematch_grammar.h \ + route/cls/ematch_syntax.c route/cls/ematch_syntax.h + +# Hack to avoid using ylwrap. It does not function correctly in combination +# with --header-file= +route/pktloc_grammar.c: route/pktloc_grammar.l + $(AM_V_GEN) $(LEX) --header-file=route/pktloc_grammar.h $(LFLAGS) -o $@ $^ + +route/pktloc_syntax.c: route/pktloc_syntax.y + $(AM_V_GEN) $(YACC) -d $(YFLAGS) -o $@ $^ + +route/cls/ematch_grammar.c: route/cls/ematch_grammar.l + $(AM_V_GEN) $(LEX) --header-file=route/cls/ematch_grammar.h $(LFLAGS) -o $@ $^ + +route/cls/ematch_syntax.c: route/cls/ematch_syntax.y + $(AM_V_GEN) $(YACC) -d $(YFLAGS) -o $@ $^ + +libnl_route_3_4cim_la_LIBADD = libnl-3-4cim.la +libnl_route_3_4cim_la_SOURCES = \ + route/addr.c route/class.c route/cls.c route/link.c \ + route/neigh.c route/neightbl.c route/nexthop.c route/qdisc.c \ + route/route.c route/route_obj.c route/route_utils.c route/rtnl.c \ + route/rule.c route/tc.c route/classid.c \ + \ + route/cls/fw.c route/cls/police.c route/cls/u32.c route/cls/basic.c \ + route/cls/cgroup.c \ + \ + route/cls/ematch.c \ + route/cls/ematch/container.c route/cls/ematch/cmp.c \ + route/cls/ematch/nbyte.c route/cls/ematch/text.c \ + route/cls/ematch/meta.c \ + \ + route/link/api.c route/link/vlan.c route/link/dummy.c \ + route/link/bridge.c route/link/inet6.c route/link/inet.c \ + route/link/bonding.c \ + \ + route/qdisc/blackhole.c route/qdisc/cbq.c route/qdisc/dsmark.c \ + route/qdisc/fifo.c route/qdisc/htb.c route/qdisc/netem.c \ + route/qdisc/prio.c route/qdisc/red.c route/qdisc/sfq.c \ + route/qdisc/tbf.c \ + \ + fib_lookup/lookup.c fib_lookup/request.c \ + \ + route/pktloc.c + +nodist_libnl_route_3_4cim_la_SOURCES = \ + route/pktloc_syntax.c route/pktloc_syntax.h \ + route/pktloc_grammar.c route/pktloc_grammar.h \ + route/cls/ematch_syntax.c route/cls/ematch_syntax.h \ + route/cls/ematch_grammar.c route/cls/ematch_grammar.h + +BUILT_SOURCES = \ + route/cls/ematch_grammar.c \ + route/cls/ematch_syntax.c \ + route/pktloc_grammar.c \ + route/pktloc_syntax.c + +EXTRA_DIST = \ + route/pktloc_grammar.l \ + route/pktloc_syntax.y \ + route/cls/ematch_grammar.l \ + route/cls/ematch_syntax.y -- 1.7.6