# # Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. # Copyright (C) 2004-2012 Red Hat, Inc. All rights reserved. # # This file is part of LVM2. # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions # of the GNU General Public License v.2. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA srcdir = @srcdir@ top_srcdir = @top_srcdir@ top_builddir = @top_builddir@ SOURCES =\ command.c \ dumpconfig.c \ formats.c \ lvchange.c \ lvconvert.c \ lvconvert_poll.c \ lvcreate.c \ lvdisplay.c \ lvextend.c \ lvmcmdline.c \ lvmdiskscan.c \ lvreduce.c \ lvremove.c \ lvrename.c \ lvresize.c \ lvscan.c \ polldaemon.c \ pvchange.c \ pvck.c \ pvcreate.c \ pvdisplay.c \ pvmove.c \ pvmove_poll.c \ pvremove.c \ pvresize.c \ pvscan.c \ reporter.c \ segtypes.c \ tags.c \ toollib.c \ vgcfgbackup.c \ vgcfgrestore.c \ vgchange.c \ vgck.c \ vgcreate.c \ vgconvert.c \ vgdisplay.c \ vgexport.c \ vgextend.c \ vgimport.c \ vgmerge.c \ vgmknodes.c \ lvpoll.c \ vgimportclone.c \ vgreduce.c \ vgremove.c \ vgrename.c \ vgscan.c \ vgsplit.c SOURCES2 =\ dmsetup.c \ lvm.c \ lvm2cmd-static.c \ lvm2cmd.c \ lvmcmdlib.c \ man-generator.c TARGETS =\ .commands \ liblvm2cmd.a \ lvm \ man-generator TARGETS_DM = dmsetup INSTALL_LVM_TARGETS = install_tools_dynamic INSTALL_DMSETUP_TARGETS = install_dmsetup_dynamic INSTALL_CMDLIB_TARGETS = install_cmdlib_dynamic install_cmdlib_include ifeq ("@STATIC_LINK@", "yes") TARGETS += lvm.static TARGETS_DM += dmsetup.static INSTALL_LVM_TARGETS += install_tools_static INSTALL_DMSETUP_TARGETS += install_dmsetup_static INSTALL_CMDLIB_TARGETS += install_cmdlib_static endif LVMLIBS = $(LVMINTERNAL_LIBS) -ldevmapper -laio LIB_VERSION = $(LIB_VERSION_LVM) CLEAN_TARGETS = liblvm2cmd.$(LIB_SUFFIX) $(TARGETS_DM) \ liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION) lvm-static.o \ liblvm2cmd-static.a dmsetup.static lvm.static \ $(LDDEPS) .exported_symbols_generated \ cmds.h command-lines-input.h command-count.h man-generator.c ifeq ("@CMDLIB@", "yes") TARGETS += liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION) INSTALL_LVM_TARGETS += $(INSTALL_CMDLIB_TARGETS) endif EXPORTED_HEADER = $(srcdir)/lvm2cmd.h EXPORTED_FN_PREFIX = lvm2 CFLOW_LIST = lvmcmdlib.c lvm2cmd.c CFLOW_LIST_TARGET = liblvm2cmd.cflow CFLOW_TARGET = lvm include $(top_builddir)/make.tmpl device-mapper: $(TARGETS_DM) CFLAGS_dmsetup.o += $(UDEV_CFLAGS) $(EXTRA_EXEC_CFLAGS) dmsetup: dmsetup.o $(top_builddir)/libdm/libdevmapper.$(LIB_SUFFIX) @echo " [CC] $@" $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) \ -o $@ dmsetup.o -ldevmapper $(LIBS) dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a @echo " [CC] $@" $(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) \ -o $@ dmsetup.o -ldevmapper $(M_LIBS) $(PTHREAD_LIBS) $(STATIC_LIBS) $(LIBS) all: device-mapper CFLAGS_lvm.o += $(EXTRA_EXEC_CFLAGS) INCLUDES += -I$(top_builddir)/tools lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a @echo " [CC] $@" $(Q) $(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $(OBJECTS) lvm.o \ $(LVMLIBS) $(READLINE_LIBS) $(LIBS) DEFS_man-generator.o += -DMAN_PAGE_GENERATOR man-generator.c: command.c @echo " [LN] $@" $(Q) $(LN_S) -f $< $@ man-generator: man-generator.o @echo " [CC] $@" $(CC) $(CFLAGS) -o $@ $< ifeq ("@BUILD_LVMETAD@", "yes") lvm: $(top_builddir)/libdaemon/client/libdaemonclient.a endif lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a $(interfacebuilddir)/libdevmapper.a @echo " [CC] $@" $(Q) $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \ $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS) liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o @echo " [AR] $@" $(Q) cat $(top_builddir)/lib/liblvm-internal.a > $@ $(Q) $(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd.o > /dev/null liblvm2cmd-static.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o @echo " [AR] $@" $(Q) cat $(top_builddir)/lib/liblvm-internal.a > $@ $(Q) $(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o > /dev/null liblvm2cmd.$(LIB_SUFFIX): liblvm2cmd.a $(LDDEPS) @echo " [CC] $@" $(Q) $(CC) -shared -Wl,-soname,$@.$(LIB_VERSION) \ $(CFLAGS) $(CLDFLAGS) -o $@ \ @CLDWHOLEARCHIVE@ liblvm2cmd.a @CLDNOWHOLEARCHIVE@ \ $(LVMLIBS) $(LIBS) liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION): liblvm2cmd.$(LIB_SUFFIX) @echo " [LN] $@" $(Q) $(LN_S) -f $< $@ .commands: $(srcdir)/commands.h $(srcdir)/cmdnames.h Makefile @echo " [CC] $<" $(Q) $(CC) -E -P $(srcdir)/cmdnames.h 2> /dev/null | \ $(EGREP) -v '^ *(|#.*|config|devtypes|dumpconfig|formats|fullreport|help|lastlog|lvmchange|lvpoll|pvdata|segtypes|systemid|tags|version) *$$' > .commands command-count.h: $(srcdir)/command-lines.in Makefile @echo " [GEN] $@" $(Q) set -o pipefail && \ ( cat $(top_srcdir)/tools/license.inc && \ echo "/* Do not edit. This file is generated by the Makefile. */" && \ echo -n "#define COMMAND_COUNT " && \ $(GREP) '^ID:' $(srcdir)/command-lines.in | $(WC) -l \ ) > $@ cmds.h: $(srcdir)/command-lines.in Makefile @echo " [GEN] $@" $(Q) set -o pipefail && \ ( cat $(top_srcdir)/tools/license.inc && \ echo "/* Do not edit. This file is generated by the Makefile. */" && \ echo "cmd(CMD_NONE, none)" && \ $(GREP) '^ID:' $(srcdir)/command-lines.in | $(SORT) -u | $(AWK) '{print "cmd(" $$2 "_CMD, " $$2 ")"}' && \ echo "cmd(CMD_COUNT, count)" \ ) > $@ command-lines-input.h: $(srcdir)/command-lines.in Makefile @echo " [GEN] $@" $(Q) set -o pipefail && \ ( cat $(top_srcdir)/tools/license.inc && \ echo "/* Do not edit. This file is generated by the Makefile. */" && \ echo -en "const char _command_input[] =\n\n\"" && \ $(EGREP) -v '^#|\-\-\-|^$$' $(srcdir)/command-lines.in | $(AWK) 'BEGIN {ORS = "\\n\"\n\""} //' && \ echo "\\n\";" \ ) > $@ $(SOURCES:%.c=%.d) $(SOURCES2:%.c=%.d): command-lines-input.h command-count.h cmds.h $(SOURCES:%.c=%.o) $(SOURCES2:%.c=%.o): command-lines-input.h command-count.h cmds.h ifneq ("$(CFLOW_CMD)", "") CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES)) -include $(top_builddir)/libdm/libdevmapper.cflow -include $(top_builddir)/lib/liblvm-internal.cflow endif .PHONY: install_cmdlib_dynamic install_cmdlib_static install_cmdlib_include \ install_tools_dynamic install_tools_static \ install_dmsetup_dynamic install_dmsetup_static install_cmdlib_include: $(srcdir)/lvm2cmd.h @echo " [INSTALL] $<" $(Q) $(INSTALL_DATA) -D $< $(includedir)/$(