vlog: Generate vlog-modules.def automatically.
[sliver-openvswitch.git] / lib / automake.mk
index 4ebbb19..6555661 100644 (file)
@@ -17,6 +17,8 @@ lib_libopenvswitch_a_SOURCES = \
        lib/byte-order.h \
        lib/byteq.c \
        lib/byteq.h \
+       lib/cfm.c \
+       lib/cfm.h \
        lib/classifier.c \
        lib/classifier.h \
        lib/command-line.c \
@@ -29,6 +31,8 @@ lib_libopenvswitch_a_SOURCES = \
        lib/csum.h \
        lib/daemon.c \
        lib/daemon.h \
+       lib/dummy.c \
+       lib/dummy.h \
        lib/dhcp-client.c \
        lib/dhcp-client.h \
        lib/dhcp.c \
@@ -65,6 +69,7 @@ lib_libopenvswitch_a_SOURCES = \
        lib/lockfile.h \
        lib/mac-learning.c \
        lib/mac-learning.h \
+       lib/netdev-dummy.c \
        lib/netdev-provider.h \
        lib/netdev.c \
        lib/netdev.h \
@@ -151,7 +156,6 @@ lib_libopenvswitch_a_SOURCES = \
        lib/vconn-stream.c \
        lib/vconn.c \
        lib/vconn.h \
-       lib/vlog-modules.def \
        lib/vlog.c \
        lib/vlog.h
 nodist_lib_libopenvswitch_a_SOURCES = \
@@ -203,7 +207,8 @@ endif
 EXTRA_DIST += \
        lib/dh1024.pem \
        lib/dh2048.pem \
-       lib/dh4096.pem
+       lib/dh4096.pem \
+       lib/dirs.c.in
 
 EXTRA_DIST += \
        lib/common.man \
@@ -225,12 +230,14 @@ EXTRA_DIST += \
        lib/vlog-syn.man \
        lib/vlog.man
 
-lib/dirs.c: Makefile
-       ($(ro_c) && \
-        echo 'const char ovs_pkgdatadir[] = "$(pkgdatadir)";' && \
-        echo 'const char ovs_rundir[] = "@RUNDIR@";' && \
-        echo 'const char ovs_logdir[] = "@LOGDIR@";' && \
-        echo 'const char ovs_bindir[] = "$(bindir)";') > lib/dirs.c.tmp
+lib/dirs.c: lib/dirs.c.in Makefile
+       ($(ro_c) && sed < $(srcdir)/lib/dirs.c.in \
+               -e 's,[@]srcdir[@],$(srcdir),g' \
+               -e 's,[@]LOGDIR[@],"$(LOGDIR)",g' \
+               -e 's,[@]RUNDIR[@],"$(RUNDIR)",g' \
+               -e 's,[@]bindir[@],"$(bindir)",g' \
+               -e 's,[@]pkgdatadir[@],"$(pkgdatadir)",g') \
+            > lib/dirs.c.tmp
        mv lib/dirs.c.tmp lib/dirs.c
 
 install-data-local: lib-install-data-local
@@ -239,6 +246,17 @@ lib-install-data-local:
        $(MKDIR_P) $(DESTDIR)$(PKIDIR)
        $(MKDIR_P) $(DESTDIR)$(LOGDIR)
 
+# All distributed sources, with names adjust properly for referencing
+# from $(builddir).
+all_sources = \
+       `for file in $(DIST_SOURCES); do \
+               if test -f $$file; then \
+                       echo $$file; \
+               else \
+                       echo $(VPATH)/$$file; \
+               fi; \
+        done`
+
 # All the source files that have coverage counters.
 COVERAGE_FILES = \
        lib/dpif.c \
@@ -269,8 +287,9 @@ lib/coverage-counters.c: $(COVERAGE_FILES) lib/coverage-scan.pl
        mv $@.tmp $@
 EXTRA_DIST += lib/coverage-scan.pl
 
-ALL_LOCAL += check-vlog-modules
-check-vlog-modules:
-       cd $(srcdir) && build-aux/check-vlog-modules
-.PHONY: check-vlog-modules
-EXTRA_DIST += build-aux/check-vlog-modules
+if !USE_LINKER_SECTIONS
+lib/vlog.$(OBJEXT): lib/vlog-modules.def
+lib/vlog-modules.def: $(DIST_SOURCES)
+       sed -n 's|^VLOG_DEFINE_\(THIS_\)\{0,1\}MODULE(\([_a-zA-Z0-9]\{1,\}\)).*$$|VLOG_MODULE(\2)|p' $(all_sources) | LC_ALL=C sort -u > $@
+CLEANFILES += lib/vlog-modules.def
+endif