Merge branch 'master' of ssh://git.onelab.eu/git/sliver-openvswitch
[sliver-openvswitch.git] / Makefile.am
index b15a9a4..4c58b93 100644 (file)
@@ -55,6 +55,7 @@ EXTRA_DIST = \
        NOTICE \
        OPENFLOW-1.1+ \
        PORTING \
+       README-OFTest \
        README-gcov \
        README-lisp \
        REPORTING-BUGS \
@@ -185,17 +186,17 @@ config-h-check:
        fi
 .PHONY: config-h-check
 
-# Check that "struct vlog_ratelimit" is always declared "static".
-ALL_LOCAL += rate-limit-check
-rate-limit-check:
+# Check that certain data structures are always declared "static".
+ALL_LOCAL += static-check
+static-check:
        @if test -e $(srcdir)/.git && (git --version) >/dev/null 2>&1 && \
-           git --no-pager grep -n -E '^[       ]+struct vlog_rate_limit.*=' $(srcdir); \
+           git --no-pager grep -n -E '^[       ]+(struct vlog_rate_limit|pthread_once_t|struct ovsthread_once).*=' $(srcdir); \
          then \
            echo "See above for list of violations of the rule that "; \
-           echo "'struct vlog_rate_limit' must always be 'static'"; \
+           echo "certain data structures must always be 'static'"; \
            exit 1; \
         fi
-.PHONY: rate-limit-check
+.PHONY: static-check
 
 # Check that assert.h is not used outside a whitelist of files.
 ALL_LOCAL += check-assert-h-usage
@@ -210,6 +211,20 @@ check-assert-h-usage:
         fi
 .PHONY: check-assert-h-usage
 
+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'` \
+              | $(EGREP) -v ':[        ]*/?\*'; \
+       then \
+           echo "See above for list of calls to functions that are"; \
+           echo "blacklisted due to thread safety issues"; \
+           exit 1; \
+       fi
+EXTRA_DIST += build-aux/thread-safety-blacklist
+
 if HAVE_GROFF
 ALL_LOCAL += manpage-check
 manpage-check: $(man_MANS) $(dist_man_MANS) $(noinst_man_MANS)