X-Git-Url: http://git.cascardo.eti.br/?p=cascardo%2Fovs.git;a=blobdiff_plain;f=Makefile.am;h=1c6e8fb58a82e85a65a884eec13362560e534f3c;hp=32775ccc04340e4424d9e3ea571ccebb026ddf4a;hb=ca7e7bee86b4ee821d61b58bf15c89a9d8a3cb30;hpb=be09aa10c5c244726f203eb7637fc86c87cc3841 diff --git a/Makefile.am b/Makefile.am index 32775ccc0..1c6e8fb58 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,4 +1,4 @@ -# Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 Nicira, Inc. +# Copyright (C) 2007-2016 Nicira, Inc. # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright @@ -10,17 +10,32 @@ ACLOCAL_AMFLAGS = -I m4 SUBDIRS = datapath AM_CPPFLAGS = $(SSL_CFLAGS) +AM_LDFLAGS = $(SSL_LDFLAGS) +AM_LDFLAGS += $(OVS_LDFLAGS) if WIN32 AM_CPPFLAGS += -I $(top_srcdir)/include/windows +AM_CPPFLAGS += -I $(top_srcdir)/datapath-windows/include +AM_CPPFLAGS += $(PTHREAD_INCLUDES) +AM_CPPFLAGS += $(MSVC_CFLAGS) +AM_LDFLAGS += $(PTHREAD_LDFLAGS) +AM_LDFLAGS += $(MSVC64_LDFLAGS) endif AM_CPPFLAGS += -I $(top_srcdir)/include +AM_CPPFLAGS += -I $(top_builddir)/include AM_CPPFLAGS += -I $(top_srcdir)/lib AM_CPPFLAGS += -I $(top_builddir)/lib +AM_CPPFLAGS += $(SSL_INCLUDES) + AM_CFLAGS = -Wstrict-prototypes AM_CFLAGS += $(WARNING_FLAGS) +AM_CFLAGS += $(OVS_CFLAGS) + +if DPDK_NETDEV +AM_CFLAGS += -D_FILE_OFFSET_BITS=64 +endif if NDEBUG AM_CPPFLAGS += -DNDEBUG @@ -37,13 +52,9 @@ endif # vSwitch, but it causes trouble if you switch from a version with # foo/__init__.py into an (older) version with plain foo.py, since # foo/__init__.pyc will cause Python to ignore foo.py. -if INCLUDE_PYTHON_COMPAT -run_python = PYTHONPATH=$(top_srcdir)/python$(psep)$(top_srcdir)/python/compat$(psep)$$PYTHONPATH -else -run_python = PYTHONPATH=$(top_srcdir)/python$(psep)$$PYTHONPATH -endif -run_python += PYTHONDONTWRITEBYTECODE=yes $(PYTHON) - +run_python = \ + PYTHONPATH=$(top_srcdir)/python$(psep)$$PYTHONPATH \ + PYTHONDONTWRITEBYTECODE=yes $(PYTHON) ALL_LOCAL = BUILT_SOURCES = @@ -51,37 +62,55 @@ CLEANFILES = CLEAN_LOCAL = DISTCLEANFILES = PYCOV_CLEAN_FILES = build-aux/check-structs,cover + +# A list of Markdown-formatted documentation that will automatically be +# included in the "make dist-docs" output. +docs = \ + CONTRIBUTING.md \ + CodingStyle.md \ + DESIGN.md \ + FAQ.md \ + INSTALL.md \ + INSTALL.Debian.md \ + INSTALL.Docker.md \ + INSTALL.DPDK.md \ + INSTALL.Fedora.md \ + INSTALL.KVM.md \ + INSTALL.Libvirt.md \ + INSTALL.NetBSD.md \ + INSTALL.RHEL.md \ + INSTALL.SSL.md \ + INSTALL.XenServer.md \ + INSTALL.userspace.md \ + INSTALL.Windows.md \ + IntegrationGuide.md \ + MAINTAINERS.md \ + OPENFLOW-1.1+.md \ + PORTING.md \ + README.md \ + README-lisp.md \ + README-native-tunneling.md \ + REPORTING-BUGS.md \ + SECURITY.md \ + TODO.md \ + WHY-OVS.md EXTRA_DIST = \ - BUILD.Windows \ - CodingStyle \ - DESIGN \ - FAQ \ - INSTALL \ - INSTALL.Debian \ - INSTALL.Fedora \ - INSTALL.KVM \ - INSTALL.Libvirt \ - INSTALL.NetBSD \ - INSTALL.RHEL \ - INSTALL.SSL \ - INSTALL.XenServer \ - INSTALL.userspace \ - IntegrationGuide \ + $(docs) \ NOTICE \ - OPENFLOW-1.1+ \ - PORTING \ - README-OFTest \ - README-gcov \ - README-lisp \ - REPORTING-BUGS \ - SubmittingPatches \ - WHY-OVS \ + .travis.yml \ + .travis/build.sh \ + .travis/prepare.sh \ + appveyor.yml \ boot.sh \ build-aux/cccl \ + build-aux/cksum-schema-check \ + build-aux/dist-docs \ build-aux/sodepends.pl \ build-aux/soexpand.pl \ + build-aux/xml2nroff \ $(MAN_FRAGMENTS) \ - $(MAN_ROOTS) + $(MAN_ROOTS) \ + Vagrantfile bin_PROGRAMS = sbin_PROGRAMS = bin_SCRIPTS = @@ -107,11 +136,17 @@ OVSIDL_BUILT = pkgdata_DATA = sbin_SCRIPTS = scripts_SCRIPTS = +completion_SCRIPTS = scripts_DATA = SUFFIXES = check_DATA = +check_SCRIPTS = +pkgconfig_DATA = +FLAKE8_PYFILES = scriptsdir = $(pkgdatadir)/scripts +completiondir = $(sysconfdir)/bash_completion.d +pkgconfigdir = $(libdir)/pkgconfig # This ensures that files added to EXTRA_DIST are always distributed, # even if they are inside an Automake if...endif conditional block that is @@ -124,7 +159,7 @@ ro_shell = printf '\043 Generated automatically -- do not modify! -*- buffer- SUFFIXES += .in .in: - $(PERL) $(srcdir)/build-aux/soexpand.pl -I$(srcdir) < $< | \ + $(AM_V_GEN)$(PERL) $(srcdir)/build-aux/soexpand.pl -I$(srcdir) < $< | \ sed \ -e 's,[@]PKIDIR[@],$(PKIDIR),g' \ -e 's,[@]LOGDIR[@],$(LOGDIR),g' \ @@ -138,12 +173,32 @@ SUFFIXES += .in -e 's,[@]sysconfdir[@],$(sysconfdir),g' \ -e 's,[@]bindir[@],$(bindir),g' \ -e 's,[@]sbindir[@],$(sbindir),g' \ + -e 's,[@]abs_builddir[@],$(abs_builddir),g' \ -e 's,[@]abs_top_srcdir[@],$(abs_top_srcdir),g' \ > $@.tmp @if head -n 1 $@.tmp | grep '#!' > /dev/null; then \ chmod +x $@.tmp; \ fi - $(AM_V_GEN) mv $@.tmp $@ + $(AM_V_at) mv $@.tmp $@ + +SUFFIXES += .xml +%: %.xml + $(AM_V_GEN)$(run_python) $(srcdir)/build-aux/xml2nroff $< > $@.tmp \ + -I $(srcdir) \ + --version=$(VERSION) \ + PKIDIR='$(PKIDIR)' \ + LOGDIR='$(LOGDIR)' \ + DBDIR='$(DBDIR)' \ + PERL='$(PERL)' \ + PYTHON='$(PYTHON)' \ + RUNDIR='$(RUNDIR)' \ + VERSION='$(VERSION)' \ + localstatedir='$(localstatedir)' \ + pkgdatadir='$(pkgdatadir)' \ + sysconfdir='$(sysconfdir)' \ + bindir='$(bindir)' \ + sbindir='$(sbindir)' + $(AM_v_at)mv $@.tmp $@ .PHONY: clean-pycov clean-pycov: @@ -167,7 +222,7 @@ dist-hook-git: distfiles LC_ALL=C sort -u > all-gitfiles; \ LC_ALL=C comm -1 -3 all-distfiles all-gitfiles > missing-distfiles; \ if test -s missing-distfiles; then \ - echo "The distribution is missing the following files:"; \ + echo "The following files are in git but not the distribution:"; \ cat missing-distfiles; \ exit 1; \ fi; \ @@ -192,7 +247,7 @@ config-h-check: @cd $(srcdir); \ if test -e .git && (git --version) >/dev/null 2>&1 && \ git --no-pager grep -L '#include ' `git ls-files | grep '\.c$$' | \ - grep -vE '^datapath|^lib/sflow|^third-party'`; \ + grep -vE '^datapath|^lib/sflow|^third-party|^datapath-windows'`; \ then \ echo "See above for list of violations of the rule that"; \ echo "every C source file must #include ."; \ @@ -203,12 +258,14 @@ config-h-check: # Check for printf() type modifiers that MSVC doesn't support. ALL_LOCAL += printf-check printf-check: - @if test -e $(srcdir)/.git && (git --version) >/dev/null 2>&1 && \ - git --no-pager grep -n -E -e '%[-+ #0-9.*]*([ztj]|hh)' --and --not -e 'ovs_scan' `git ls-files $(srcdir) | grep '\.[ch]$$'`; \ + @cd $(srcdir); \ + if test -e .git && (git --version) >/dev/null 2>&1 && \ + git --no-pager grep -n -E -e '%[-+ #0-9.*]*([ztj]|hh)' --and --not -e 'ovs_scan' `git ls-files | grep '\.[ch]$$' | \ + grep -vE '^datapath|^lib/sflow|^third-party'`; \ then \ echo "See above for list of violations of the rule that"; \ echo "'z', 't', 'j', 'hh' printf() type modifiers are"; \ - echo "forbidden. See CodingStyle for replacements."; \ + echo "forbidden. See CodingStyle.md for replacements."; \ exit 1; \ fi .PHONY: printf-check @@ -238,12 +295,30 @@ check-assert-h-usage: fi .PHONY: check-assert-h-usage +# Check that LITTLE_ENDIAN and BIG_ENDIAN are not used unless BYTE_ORDER is +# also mentioned. ( always defines the former two constants. They +# must be compared to BYTE_ORDER to get the machine's correct endianness. But +# it is better to use WORDS_BIGENDIAN.) +ALL_LOCAL += check-endian +check-endian: + @if test -e $(srcdir)/.git && (git --version) >/dev/null 2>&1 && \ + (cd $(srcdir) && git --no-pager grep -l -E \ + -e 'BIG_ENDIAN|LITTLE_ENDIAN' --and --not -e 'BYTE_ORDER' | \ + $(EGREP) -v '^datapath/'); \ + then \ + echo "See above for list of files that misuse LITTLE""_ENDIAN"; \ + echo "or BIG""_ENDIAN. Please use WORDS_BIGENDIAN instead."; \ + exit 1; \ + fi +.PHONY: check-endian + ALL_LOCAL += thread-safety-check thread-safety-check: - @if test -e '$(srcdir)'/.git && (git --version) >/dev/null 2>&1 && \ - grep -n -f '$(srcdir)'/build-aux/thread-safety-blacklist \ - `git ls-files '$(srcdir)' | grep '\.[ch]$$' \ - | $(EGREP) -v '^datapath|^lib/sflow|^third-party'` \ + @cd $(srcdir); \ + if test -e .git && (git --version) >/dev/null 2>&1 && \ + grep -n -f build-aux/thread-safety-blacklist \ + `git ls-files | grep '\.[ch]$$' \ + | $(EGREP) -v '^datapath|^lib/sflow|^third-party'` /dev/null \ | $(EGREP) -v ':[ ]*/?\*'; \ then \ echo "See above for list of calls to functions that are"; \ @@ -251,6 +326,7 @@ thread-safety-check: exit 1; \ fi EXTRA_DIST += build-aux/thread-safety-blacklist +.PHONY: thread-safety-check if HAVE_GROFF ALL_LOCAL += manpage-check @@ -266,6 +342,36 @@ manpage-check: $(man_MANS) $(dist_man_MANS) $(noinst_man_MANS) CLEANFILES += manpage-check endif +if HAVE_FLAKE8 +ALL_LOCAL += flake8-check +# http://flake8.readthedocs.org/en/latest/warnings.html +# All warnings explicitly selected or ignored should be listed below. +# +# E***, W*** -- warnings from pep8 +# E121 continuation line under-indented for hanging indent (only from flake8 v2.0) +# E123 closing bracket does not match indentation of opening bracket's line +# E125 continuation line with same indent as next logical line (only from flake8 v2.0) +# E126 continuation line over-indented for hanging indent +# E127 continuation line over-indented for visual indent +# E128 continuation line under-indented for visual indent +# E129 visually indented line with same indent as next logical line +# E131 continuation line unaligned for hanging indent +# W503 line break before binary operator +# F*** -- warnings native to flake8 +# F811 redefinition of unused from line (only from flake8 v2.0) +# D*** -- warnings from flake8-docstrings plugin +# H*** -- warnings from flake8 hacking plugin (custom style checks beyond PEP8) +# H231 Python 3.x incompatible 'except x,y:' construct +# H232 Python 3.x incompatible octal 077 should be written as 0o77 +# H233 Python 3.x incompatible use of print operator +# H238 old style class declaration, use new style (inherit from `object`) +flake8-check: $(FLAKE8_PYFILES) + $(AM_V_GEN) if flake8 $^ --select=H231,H232,H233,H238 ${FLAKE8_FLAGS} && \ + flake8 $^ --ignore=E121,E123,E125,E126,E127,E128,E129,E131,W503,F811,D,H ${FLAKE8_FLAGS}; then \ + touch $@; else exit 1; fi +endif +CLEANFILES += flake8-check + include $(srcdir)/manpages.mk $(srcdir)/manpages.mk: $(MAN_ROOTS) build-aux/sodepends.pl @$(PERL) $(srcdir)/build-aux/sodepends.pl -I. -I$(srcdir) $(MAN_ROOTS) >$(@F).tmp @@ -277,6 +383,19 @@ $(srcdir)/manpages.mk: $(MAN_ROOTS) build-aux/sodepends.pl fi CLEANFILES += manpage-dep-check +if VSTUDIO_DDK +ALL_LOCAL += ovsext +ovsext: datapath-windows/ovsext.sln $(srcdir)/datapath-windows/include/OvsDpInterface.h + MSBuild.exe //maxcpucount datapath-windows/ovsext.sln /target:Build /property:Configuration="Win8$(VSTUDIO_CONFIG)" + MSBuild.exe //maxcpucount datapath-windows/ovsext.sln /target:Build /property:Configuration="Win8.1$(VSTUDIO_CONFIG)" + +CLEAN_LOCAL += ovsext_clean +ovsext_clean: datapath-windows/ovsext.sln + MSBuild.exe //maxcpucount datapath-windows/ovsext.sln /target:Clean /property:Configuration="Win8$(VSTUDIO_CONFIG)" + MSBuild.exe //maxcpucount datapath-windows/ovsext.sln /target:Clean /property:Configuration="Win8.1$(VSTUDIO_CONFIG)" +endif +.PHONY: ovsext + dist-hook: $(DIST_HOOKS) all-local: $(ALL_LOCAL) clean-local: $(CLEAN_LOCAL) @@ -289,6 +408,11 @@ if LINUX_ENABLED cd datapath/linux && $(MAKE) modules_install endif +dist-docs: + VERSION=$(VERSION) MAKE='$(MAKE)' $(srcdir)/build-aux/dist-docs $(srcdir) $(docs) +.PHONY: dist-docs + +include Documentation/automake.mk include m4/automake.mk include lib/automake.mk include ofproto/automake.mk @@ -302,6 +426,9 @@ include ovsdb/automake.mk include rhel/automake.mk include xenserver/automake.mk include python/automake.mk -include python/compat/automake.mk include tutorial/automake.mk include vtep/automake.mk +include datapath-windows/automake.mk +include datapath-windows/include/automake.mk +include windows/automake.mk +include ovn/automake.mk