CodingStyle \
DESIGN \
FAQ \
+ INSTALL \
+ INSTALL.Debian \
+ INSTALL.Fedora \
INSTALL.KVM \
INSTALL.Libvirt \
- INSTALL.Linux \
INSTALL.RHEL \
INSTALL.SSL \
INSTALL.XenServer \
- INSTALL.bridge \
INSTALL.userspace \
IntegrationGuide \
NOTICE \
+ OPENFLOW-1.1+ \
PORTING \
README-gcov \
REPORTING-BUGS \
sed \
-e 's,[@]PKIDIR[@],$(PKIDIR),g' \
-e 's,[@]LOGDIR[@],$(LOGDIR),g' \
+ -e 's,[@]DBDIR[@],$(DBDIR),g' \
-e 's,[@]PERL[@],$(PERL),g' \
-e 's,[@]PYTHON[@],$(PYTHON),g' \
-e 's,[@]RUNDIR[@],$(RUNDIR),g' \
# If we're checked out from a Git repository, make sure that every
# file that is in Git is distributed.
+#
+# We only enable this check when GNU make is in use because the
+# Makefile in datapath/linux, needed to get the list of files to
+# distribute, requires GNU make extensions.
+if GNU_MAKE
ALL_LOCAL += dist-hook-git
dist-hook-git: distfiles
@if test -e $(srcdir)/.git && (git --version) >/dev/null 2>&1; then \
exit 1; \
fi; \
fi
-.PHONY: dist-hook-git
CLEANFILES += all-distfiles all-gitfiles missing-distfiles
# The following is based on commands for the Automake "distdir" target.
distfiles: Makefile
sed -e "s|^$$srcdirstrip/||;t" \
-e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t" | sort -u > $@
CLEANFILES += distfiles
+endif
+.PHONY: dist-hook-git
+
+# Check that every .c file includes <config.h>.
+ALL_LOCAL += config-h-check
+config-h-check:
+ @cd $(srcdir); \
+ if test -e .git && (git --version) >/dev/null 2>&1 && \
+ git --no-pager grep -L '#include <config\.h>' `git ls-files | grep '\.c$$' | \
+ grep -vE '^datapath|^lib/sflow|^third-party'`; \
+ then \
+ echo "See above for list of violations of the rule that"; \
+ echo "every C source file must #include <config.h>."; \
+ exit 1; \
+ fi
+.PHONY: config-h-check
# Check that "struct vlog_ratelimit" is always declared "static".
ALL_LOCAL += rate-limit-check
fi
.PHONY: rate-limit-check
+# Check that assert.h is not used outside a whitelist of files.
+ALL_LOCAL += check-assert-h-usage
+check-assert-h-usage:
+ @if test -e $(srcdir)/.git && (git --version) >/dev/null 2>&1 && \
+ (cd $(srcdir) && git --no-pager grep -l -E '[<]assert.h[>]') | \
+ $(EGREP) -v '^lib/(sflow_receiver|vlog|worker).c$$|^tests/'; \
+ then \
+ echo "Files listed above unexpectedly #include <""assert.h"">."; \
+ echo "Please use ovs_assert (from util.h) instead of assert."; \
+ exit 1; \
+ fi
+.PHONY: check-assert-h-usage
+
if HAVE_GROFF
ALL_LOCAL += manpage-check
manpage-check: $(man_MANS) $(dist_man_MANS) $(noinst_man_MANS)
uninstall-local: $(UNINSTALL_LOCAL)
.PHONY: $(DIST_HOOKS) $(CLEAN_LOCAL) $(INSTALL_DATA_LOCAL) $(UNINSTALL_LOCAL)
+modules_install:
+if LINUX_ENABLED
+ cd datapath/linux && $(MAKE) modules_install
+endif
+
include lib/automake.mk
include ofproto/automake.mk
include utilities/automake.mk