# # Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. # Copyright (C) 2004-2007 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA srcdir = @srcdir@ top_srcdir = @top_srcdir@ VPATH = @srcdir@ SOURCES =\ dumpconfig.c \ formats.c \ lvchange.c \ lvconvert.c \ lvcreate.c \ lvdisplay.c \ lvextend.c \ lvmchange.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 \ pvremove.c \ pvresize.c \ pvscan.c \ reporter.c \ segtypes.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 \ vgreduce.c \ vgremove.c \ vgrename.c \ vgscan.c \ vgsplit.c TARGETS =\ .commands \ lvm INSTALL_LVM_TARGETS = install_tools_dynamic INSTALL_DMSETUP_TARGETS = install_dmsetup_dynamic INSTALL_CMDLIB_TARGETS = install_cmdlib_dynamic ifeq ("@STATIC_LINK@", "yes") TARGETS += lvm.static dmsetup.static INSTALL_LVM_TARGETS += install_tools_static INSTALL_DMSETUP_TARGETS += install_dmsetup_static INSTALL_CMDLIB_TARGETS += install_cmdlib_static endif LVMLIBS = -llvm-internal 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 dmsetup ifeq ("@CMDLIB@", "yes") TARGETS += liblvm2cmd.$(LIB_SUFFIX) INSTALL_LVM_TARGETS += $(INSTALL_CMDLIB_TARGETS) endif ifeq ("@DMEVENTD@", "yes") LVMLIBS += -ldevmapper-event -lpthread endif LVMLIBS += -ldevmapper DEFS += -DLVM_SHARED_PATH=\"$(exec_prefix)/sbin/lvm\" include $(top_srcdir)/make.tmpl device-mapper: dmsetup dmsetup: dmsetup.o $(top_srcdir)/libdm/libdevmapper.$(LIB_SUFFIX) $(CC) -o $@ dmsetup.o $(CFLAGS) $(LDFLAGS) \ -L$(top_srcdir)/libdm -ldevmapper $(LIBS) dmsetup.static: dmsetup.o $(interfacedir)/libdevmapper.a $(CC) -o $@ dmsetup.o $(CFLAGS) $(LDFLAGS) -static \ -L$(interfacedir) -ldevmapper $(LIBS) \ $(LIB_PTHREAD) all: device-mapper lvm: $(OBJECTS) lvm.o $(top_srcdir)/lib/liblvm-internal.a $(CC) -o $@ $(CFLAGS) $(OBJECTS) lvm.o \ $(LDFLAGS) $(LVMLIBS) $(LIBS) -rdynamic LIB_PTHREAD = @LIB_PTHREAD@ lvm.static: $(OBJECTS) lvm-static.o $(top_srcdir)/lib/liblvm-internal.a $(interfacedir)/libdevmapper.a $(CC) -o $@ $(CFLAGS) $(OBJECTS) lvm-static.o -static \ -L$(interfacedir) $(LDFLAGS) $(LVMLIBS) $(LIBS) $(LIB_PTHREAD) -rdynamic liblvm2cmd.a: $(top_srcdir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o cat $(top_srcdir)/lib/liblvm-internal.a > $@ $(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd.o liblvm2cmd-static.a: $(top_srcdir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o cat $(top_srcdir)/lib/liblvm-internal.a > $@ $(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o liblvm2cmd.$(LIB_SUFFIX): liblvm2cmd.a $(LDDEPS) .commands: commands.h cmdnames.h Makefile $(CC) -E -P cmdnames.h 2> /dev/null | \ egrep -v '^ *(|#.*|dumpconfig|formats|help|pvdata|segtypes|version) *$$' > .commands .PHONY: install_cmdlib_dynamic install_cmdlib_static \ 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 endif install_cmdlib_dynamic: liblvm2cmd.$(LIB_SUFFIX) $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) liblvm2cmd.$(LIB_SUFFIX) \ $(libdir)/liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION_LVM) $(LN_S) -f liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION_LVM) $(libdir)/liblvm2cmd.$(LIB_SUFFIX) $(INSTALL) -D $(OWNER) $(GROUP) -m 444 lvm2cmd.h \ $(includedir)/lvm2cmd.h install_cmdlib_static: liblvm2cmd-static.a $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) liblvm2cmd-static.a \ $(libdir)/liblvm2cmd.a.$(LIB_VERSION_LVM) $(LN_S) -f liblvm2cmd.a.$(LIB_VERSION_LVM) $(libdir)/liblvm2cmd.a $(INSTALL) -D $(OWNER) $(GROUP) -m 444 lvm2cmd.h \ $(includedir)/lvm2cmd.h install_tools_dynamic: lvm .commands $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) lvm \ $(sbindir)/lvm @echo Creating symbolic links for individual commands in $(sbindir) @( \ for v in `cat .commands`; do \ cd $(sbindir); \ $(LN_S) -f lvm $$v; \ done; \ ) install_tools_static: lvm.static $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) lvm.static \ $(staticdir)/lvm.static install_dmsetup_dynamic: dmsetup $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< $(sbindir)/$< install_dmsetup_static: dmsetup.static $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< $(sbindir)/$< install_device-mapper: $(INSTALL_DMSETUP_TARGETS) install: $(INSTALL_LVM_TARGETS) install_device-mapper