From: Zdenek Kabelac Date: Mon, 29 Mar 2010 14:11:17 +0000 (+0000) Subject: Update cflow file generation - support build dir and use $(top_srcdir) X-Git-Tag: old-v2_02_63~128 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=1967fd242944e7bc2eb5ebc2daac7fff2ee0abcf;p=lvm2.git Update cflow file generation - support build dir and use $(top_srcdir) to obtain sources. Create make.tmpl target for simplier generation of cflow files with the help of CFLOW_LIST, CFLOW_LIST_TARGET, CFLOW_TARGET. Still cflow usage is not perfect. --- diff --git a/Makefile.in b/Makefile.in index 157d995cf..246a05ba2 100644 --- a/Makefile.in +++ b/Makefile.in @@ -65,9 +65,10 @@ po.pofile: tools.pofile daemons.pofile pofile: po.pofile endif -ifneq ("@CFLOW_CMD@", "") -tools.cflow: lib.cflow -cflow: tools.cflow +ifneq ("$(CFLOW_CMD)", "") +tools.cflow: libdm.cflow lib.cflow +daemons.cflow: tools.cflow +cflow: include.cflow endif ifneq ("@CSCOPE_CMD@", "") diff --git a/daemons/Makefile.in b/daemons/Makefile.in index 1b4bcbbd5..2f5837a83 100644 --- a/daemons/Makefile.in +++ b/daemons/Makefile.in @@ -1,5 +1,5 @@ # -# Copyright (C) 2004 Red Hat, Inc. All rights reserved. +# Copyright (C) 2004-2010 Red Hat, Inc. All rights reserved. # # This file is part of LVM2. # @@ -28,6 +28,9 @@ endif ifeq ("@BUILD_DMEVENTD@", "yes") SUBDIRS += dmeventd +ifneq ("$(CFLOW_CMD)", "") +daemons.cflow: dmeventd.cflow +endif endif ifeq ($(MAKECMDGOALS),distclean) diff --git a/daemons/dmeventd/Makefile.in b/daemons/dmeventd/Makefile.in index 948d90884..fa51bd530 100644 --- a/daemons/dmeventd/Makefile.in +++ b/daemons/dmeventd/Makefile.in @@ -1,5 +1,5 @@ # -# Copyright (C) 2005-2007 Red Hat, Inc. All rights reserved. +# Copyright (C) 2005-2010 Red Hat, Inc. All rights reserved. # # This file is part of the device-mapper userspace tools. # @@ -43,12 +43,16 @@ else VERSIONED_SHLIB = $(LIB_SHARED).$(LIB_VERSION) endif -CLEAN_TARGETS = dmeventd.o dmeventd.static dmeventd.gcda dmeventd.gcno +CLEAN_TARGETS = dmeventd.static $(LIB_NAME).a ifneq ($(MAKECMDGOALS),device-mapper) SUBDIRS+=plugins endif +CFLOW_LIST = $(SOURCES) +CFLOW_LIST_TARGET = $(LIB_NAME).cflow +CFLOW_TARGET = dmeventd + include $(top_builddir)/make.tmpl all: device-mapper @@ -72,6 +76,15 @@ ifeq ("@PKGCONFIG@", "yes") INSTALL_LIB_TARGETS += install_pkgconfig endif +ifneq ("$(CFLOW_CMD)", "") +CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES)) +-include $(top_builddir)/libdm/libdevmapper.cflow +-include $(top_builddir)/lib/liblvm-internal.cflow +-include $(top_builddir)/lib/liblvm2cmd.cflow +-include $(top_builddir)/daemons/dmeventd/$(LIB_NAME).cflow +-include $(top_builddir)/daemons/dmeventd/plugins/mirror/$(LIB_NAME)-lvm2mirror.cflow +endif + install_include: $(INSTALL) -D $(OWNER) $(GROUP) -m 444 $(srcdir)/libdevmapper-event.h \ $(includedir)/libdevmapper-event.h diff --git a/daemons/dmeventd/plugins/mirror/Makefile.in b/daemons/dmeventd/plugins/mirror/Makefile.in index bd85a6f7b..02c4e2496 100644 --- a/daemons/dmeventd/plugins/mirror/Makefile.in +++ b/daemons/dmeventd/plugins/mirror/Makefile.in @@ -22,19 +22,23 @@ CLDFLAGS += -L$(top_builddir)/tools -L$(top_builddir)/daemons/dmeventd/plugins/l SOURCES = dmeventd_mirror.c +LIB_NAME = libdevmapper-event-lvm2mirror ifeq ("@LIB_SUFFIX@","dylib") - LIB_SHARED = libdevmapper-event-lvm2mirror.dylib + LIB_SHARED = $(LIB_NAME).dylib else - LIB_SHARED = libdevmapper-event-lvm2mirror.so + LIB_SHARED = $(LIB_NAME).so endif LIB_VERSION = $(LIB_VERSION_LVM) +CFLOW_LIST = $(SOURCES) +CFLOW_LIST_TARGET = $(LIB_NAME).cflow + include $(top_builddir)/make.tmpl LIBS += @LVM2CMD_LIB@ -ldevmapper-event-lvm2 -ldevmapper $(PTHREAD_LIBS) -install_lvm2: libdevmapper-event-lvm2mirror.$(LIB_SUFFIX) +install_lvm2: $(LIB_NAME).$(LIB_SUFFIX) $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< \ $(libdir)/$< diff --git a/include/Makefile.in b/include/Makefile.in index 55add369e..3023d4a26 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -48,5 +48,4 @@ install_device-mapper: install_lvm2: -cflow: - +cflow: all diff --git a/lib/Makefile.in b/lib/Makefile.in index c83dc8946..349dedc30 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -150,8 +150,6 @@ endif LIB_NAME = liblvm-internal LIB_STATIC = $(LIB_NAME).a -CLEAN_TARGETS += $(LIB_NAME).cflow - ifeq ($(MAKECMDGOALS),distclean) SUBDIRS =\ format1 \ @@ -161,14 +159,9 @@ ifeq ($(MAKECMDGOALS),distclean) locking endif +CFLOW_LIST = $(SOURCES) +CFLOW_LIST_TARGET = $(LIB_NAME).cflow + include $(top_builddir)/make.tmpl $(SUBDIRS): $(LIB_STATIC) - -$(LIB_NAME).cflow: $(SOURCES) - set -e; (echo -n "SOURCES += "; \ - echo $(SOURCES) | \ - sed "s/^/ /;s/ / $(top_srcdir)\/lib\//g;s/$$//"; \ - ) > $@ - -cflow: $(LIB_NAME).cflow diff --git a/libdm/Makefile.in b/libdm/Makefile.in index 85e19ea74..c20a3bf14 100644 --- a/libdm/Makefile.in +++ b/libdm/Makefile.in @@ -47,6 +47,9 @@ endif VERSIONED_SHLIB = libdevmapper.$(LIB_SUFFIX).$(LIB_VERSION_DM) LIB_VERSION = $(LIB_VERSION_DM) +CFLOW_LIST = $(SOURCES) +CFLOW_LIST_TARGET = libdevmapper.cflow + include $(top_builddir)/make.tmpl DEFS += -DDM_DEVICE_UID=@DM_DEVICE_UID@ -DDM_DEVICE_GID=@DM_DEVICE_GID@ \ diff --git a/make.tmpl.in b/make.tmpl.in index 29cccb4ef..e91857c2f 100644 --- a/make.tmpl.in +++ b/make.tmpl.in @@ -168,6 +168,7 @@ install: all $(SUBDIRS.install) install_cluster: all $(SUBDIRS.install_cluster) install_device-mapper: $(SUBDIRS.install_device-mapper) install_lvm2: $(SUBDIRS.install_lvm2) +cflow: $(SUBDIRS.cflow) $(SUBDIRS): $(SUBDIRS.device-mapper) $(MAKE) -C $@ @@ -193,6 +194,9 @@ $(SUBDIRS.clean): $(SUBDIRS.distclean): -$(MAKE) -C $(@:.distclean=) distclean +$(SUBDIRS.cflow): + $(MAKE) -C $(@:.cflow=) cflow + ifeq ("@INTL@", "yes") pofile: $(SUBDIRS.pofile) $(POTFILES) @@ -200,11 +204,55 @@ $(SUBDIRS.pofile): $(MAKE) -C $(@:.pofile=) pofile endif -ifneq ("@CFLOW_CMD@", "") -cflow: $(SUBDIRS.cflow) +ifneq ("$(CFLOW_LIST_TARGET)", "") +CLEAN_CFLOW += $(CFLOW_LIST_TARGET) +$(CFLOW_LIST_TARGET): $(CFLOW_LIST) + echo "CFLOW_SOURCES += $(addprefix \ + \$$(top_srcdir)$(subst $(top_srcdir),,$(srcdir))/, $(CFLOW_LIST))" > $@ +cflow: $(CFLOW_LIST_TARGET) +endif -$(SUBDIRS.cflow): - $(MAKE) -C $(@:.cflow=) cflow +ifneq ("$(CFLOW_TARGET)", "") +CLEAN_CFLOW += \ + $(CFLOW_TARGET).cflow \ + $(CFLOW_TARGET).xref \ + $(CFLOW_TARGET).tree \ + $(CFLOW_TARGET).rtree \ + $(CFLOW_TARGET).rxref + +ifneq ("$(CFLOW_CMD)", "") +CFLOW_FLAGS +=\ + --cpp="$(CC) -E" \ + --symbol _ISbit:wrapper \ + --symbol __attribute__:wrapper \ + --symbol __const__:wrapper \ + --symbol __const:type \ + --symbol __restrict:type \ + --symbol __extension__:wrapper \ + --symbol __nonnull:wrapper \ + --symbol __nothrow__:wrapper \ + --symbol __pure__:wrapper \ + --symbol __REDIRECT:wrapper \ + --symbol __REDIRECT_NTH:wrapper \ + --symbol __wur:wrapper \ + -I$(top_srcdir)/libdm \ + -I$(top_srcdir)/libdm/ioctl \ + -I$(top_srcdir)/daemons/dmeventd/plugins/lvm2/ \ + $(INCLUDES) $(DEFS) + +$(CFLOW_TARGET).cflow: $(CFLOW_SOURCES) + $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) $(CFLOW_SOURCES) +$(CFLOW_TARGET).rxref: $(CFLOW_SOURCES) + $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) -r --omit-arguments $(CFLOW_SOURCES) +$(CFLOW_TARGET).tree: $(CFLOW_SOURCES) + $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) --omit-arguments -T -b $(CFLOW_SOURCES) +$(CFLOW_TARGET).xref: $(CFLOW_SOURCES) + $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) --omit-arguments -x $(CFLOW_SOURCES) +#$(CFLOW_TARGET).rtree: $(CFLOW_SOURCES) +# $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) -r --omit-arguments -T -b $(CFLOW_SOURCES) +cflow: $(CFLOW_TARGET).cflow $(CFLOW_TARGET).tree $(CFLOW_TARGET).rxref $(CFLOW_TARGET).xref +#$(CFLOW_TARGET).rtree +endif endif $(TARGETS): $(OBJECTS) @@ -255,7 +303,7 @@ $(LIB_STATIC): $(OBJECTS) clean: $(SUBDIRS.clean) $(RM) $(OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(SOURCES:%.c=%.d) \ $(SOURCES2:%.c=%.d) $(SOURCES:%.c=%.pot) $(SOURCES:%.c=%.gcno) \ - $(SOURCES:%.c=%.gcda) $(LDDEPS) + $(SOURCES:%.c=%.gcda) $(LDDEPS) $(CLEAN_CFLOW) distclean: clean $(SUBDIRS.distclean) $(RM) -rf $(DISTCLEAN_DIRS) @@ -269,6 +317,7 @@ distclean: clean $(SUBDIRS.distclean) sed "s/^/ /;s/$$/;/" < $<; \ echo " local:"; echo " *;"; echo "};") > $@ +ifneq ($(MAKECMDGOALS),cflow) ifneq ($(MAKECMDGOALS),clean) ifneq ($(MAKECMDGOALS),distclean) ifdef SOURCES @@ -279,4 +328,4 @@ ifneq ($(MAKECMDGOALS),clean) endif endif endif - +endif diff --git a/tools/Makefile.in b/tools/Makefile.in index 510632770..71e00efab 100644 --- a/tools/Makefile.in +++ b/tools/Makefile.in @@ -89,7 +89,6 @@ LIB_VERSION = $(LIB_VERSION_LVM) CLEAN_TARGETS = liblvm2cmd.$(LIB_SUFFIX) liblvm2cmd.a liblvm2cmd-static.a lvm lvm.o \ lvm2cmd.o lvm2cmd-static.o lvm2cmdlib.o lvm.static \ - lvm.cflow lvm.xref lvm.tree lvm.rxref lvm.rtree \ lvmcmdlib.o lvm-static.o dmsetup.o $(TARGETS_DM) ifeq ("@CMDLIB@", "yes") @@ -105,6 +104,10 @@ LVMLIBS += -ldevmapper DEFS += -DLVM_SHARED_PATH=\"$(exec_prefix)/sbin/lvm\" +CFLOW_LIST = lvmcmdlib.c lvm2cmd.c +CFLOW_LIST_TARGET = liblvm2cmd.cflow +CFLOW_TARGET = lvm + include $(top_builddir)/make.tmpl LIBS += $(UDEV_LIBS) @@ -147,20 +150,9 @@ liblvm2cmd.$(LIB_SUFFIX): liblvm2cmd.a $(LDDEPS) install_tools_dynamic install_tools_static ifneq ("$(CFLOW_CMD)", "") -CFLOW_FLAGS += --cpp="$(CC) -E" -.PHONY: lvm.cflow --include $(top_srcdir)/lib/liblvm-internal.cflow -lvm.cflow: $(SOURCES) - $(CFLOW_CMD) -o$@ $(CFLOW_FLAGS) $(INCLUDES) $(DEFS) $(SOURCES) -lvm.rxref: $(SOURCES) - $(CFLOW_CMD) -o$@ --cpp="$(CC) -E" -r --omit-arguments -x $(INCLUDES) $(DEFS) $(SOURCES) -lvm.xref: $(SOURCES) - $(CFLOW_CMD) -o$@ --cpp="$(CC) -E" --omit-arguments -x $(INCLUDES) $(DEFS) $(SOURCES) -lvm.rtree: $(SOURCES) - $(CFLOW_CMD) -o$@ --cpp="$(CC) -E" -r --omit-arguments -T -b $(INCLUDES) $(DEFS) $(SOURCES) -lvm.tree: $(SOURCES) - $(CFLOW_CMD) -o$@ --cpp="$(CC) -E" --omit-arguments -T -b $(INCLUDES) $(DEFS) $(SOURCES) -cflow: lvm.cflow lvm.xref lvm.tree lvm.rtree lvm.rxref +CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES)) +-include $(top_builddir)/libdm/libdevmapper.cflow +-include $(top_builddir)/lib/liblvm-internal.cflow endif install_cmdlib_dynamic: liblvm2cmd.$(LIB_SUFFIX)