[V4 PATCH 1/8] vlan library - Makefile system change

building system is changed to check libnl-devel-1.1. Also added Makefile in sub dir. In sub dir CFLAGS and LDFLAGS were overwritten, because they have other values set when configure was excuted. Libnetwork have -fPIC and -fvisibility=hidden -D DLL_BUILD flags set. Signed-off-by: Wenchao Xia <xiawenc@cn.ibm.com> --- Makefile.am | 2 +- acinclude.m4 | 9 +++++++++ configure.ac | 8 ++++++++ libnetwork/Makefile.am | 37 +++++++++++++++++++++++++++++++++++++ libvirt-cim.spec.in | 2 ++ 5 files changed, 57 insertions(+), 1 deletions(-) create mode 100644 libnetwork/Makefile.am diff --git a/Makefile.am b/Makefile.am index 94dc5f3..6689550 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ # Copyright IBM Corp. 2007 AUTOMAKE_OPTIONS=dist-bzip2 -SUBDIRS = libxkutil src doc base_schema +SUBDIRS = libnetwork libxkutil src doc base_schema MOFS = \ $(top_srcdir)/schema/ComputerSystem.mof \ diff --git a/acinclude.m4 b/acinclude.m4 index e0f76b6..3a2f76f 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -387,3 +387,12 @@ AC_DEFUN([SET_CSET], CFLAGS="$CFLAGS $cs $rv" ] ) + +AC_DEFUN([CHECK_LIBNL], + [ + PKG_CHECK_MODULES([LIBNL], [libnl-1 >= 1.1]) + AC_SUBST([LIBNL_CFLAGS]) + AC_SUBST([LIBNL_LIBS]) +# CPPFLAGS="$CPPFLAGS $LIBNL_CFLAGS" +# LDFLAGS="$LDFLAGS $LIBNL_LIBS" + ]) diff --git a/configure.ac b/configure.ac index 0f85baa..78a7438 100644 --- a/configure.ac +++ b/configure.ac @@ -50,6 +50,12 @@ 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) + # Configure command line options AC_ARG_VAR([CIMSERVER],[the target CIM server (pegasus|sfcb|openwbem|sniacimom). ]) @@ -141,6 +147,7 @@ AC_CONFIG_FILES([ base_schema/install_base_schema.sh base_schema/Makefile libxkutil/Makefile + libnetwork/Makefile src/Makefile doc/Makefile Makefile @@ -165,6 +172,7 @@ CHECK_LIBXML2 CHECK_LIBCU CHECK_LIBUUID CHECK_LIBCONFIG +CHECK_LIBNL CFLAGS_STRICT="-Werror" diff --git a/libnetwork/Makefile.am b/libnetwork/Makefile.am new file mode 100644 index 0000000..aaa33c0 --- /dev/null +++ b/libnetwork/Makefile.am @@ -0,0 +1,37 @@ +# Copyright IBM Corp. 2012 +# Auther: +# Wenchao Xia, <xiawenc@cn.ibm.com> +# +# Try build a dynamic library libnetwork.so, which +# include libnl-3 and libbridge binaries. Doing this is +# because there is no devel-libbridge.rpm, and there are +# many program still using libnl1.so, which conflicts with +# libnl-3. +# Exported symbols are strictly limited by Macro DLL_PUBLIC +# to reduce name space polution. +# It need libcmpiutil to use CU_DEBUG facility. +# A test program is generated named as libnetwork_test. + +LDFLAGS = $(LIBNETWORK_DEFINES) + +CFLAGS = $(CFLAGS_STRICT) \ + -DLIBVIRTCIM_CONF=\"@sysconfdir@/@PACKAGE@.conf\" \ + $(LIBNETWORK_CFLAGS) $(LIBNETWORK_DEFINES) \ + -I $(top_srcdir)/libnetwork/include + + +noinst_HEADERS = host_network_API.h host_network_basic.h host_network_helper.h host_network_error.h \ + host_network_implement_OSAPI.h host_network_implement_bridge.h dll_magic.h +noinst_HEADERS += include/netlink/route/link/vlan.h include/netlink/route/link/info-api.h + +lib_LTLIBRARIES = libnetwork.la + +libnetwork_la_SOURCES = host_network_API.c host_network_basic.c host_network_helper.c \ + host_network_implement_OSAPI.c host_network_implement_bridge.c +libnetwork_la_LDFLAGS = -version-info @VERSION_INFO@ -lcmpiutil $(LIBNL_LIBS) + +noinst_PROGRAMS = libnetwork_test + +libnetwork_test_SOURCES = libnetwork_test.c +libnetwork_test_LDFLAGS = -lcmpiutil +libnetwork_test_LDADD = libnetwork.la diff --git a/libvirt-cim.spec.in b/libvirt-cim.spec.in index d78eee7..5fac166 100644 --- a/libvirt-cim.spec.in +++ b/libvirt-cim.spec.in @@ -13,9 +13,11 @@ Requires: libxml2 >= 2.6.0 Requires: libvirt >= 0.9.0 Requires: unzip Requires: tog-pegasus +Requires: libnl >= 1.1 BuildRequires: libcmpiutil >= 0.5.4 BuildRequires: tog-pegasus-devel BuildRequires: libvirt-devel >= 0.9.0 +BuildRequires: libnl-devel >= 1.1 # In RHEL5 uuid-devel is provided by e2fsprogs %if 0%{?el5} -- 1.7.1
participants (1)
-
Wenchao Xia