xref: /netbsd-src/external/gpl2/lvm2/dist/tools/Makefile.in (revision de4fa6c51a9708fc05f88b618fa6fad87c9508ec)
1#
2# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
3# Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved.
4#
5# This file is part of LVM2.
6#
7# This copyrighted material is made available to anyone wishing to use,
8# modify, copy, or redistribute it subject to the terms and conditions
9# of the GNU General Public License v.2.
10#
11# You should have received a copy of the GNU General Public License
12# along with this program; if not, write to the Free Software Foundation,
13# Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
14
15srcdir = @srcdir@
16top_srcdir = @top_srcdir@
17VPATH = @srcdir@
18
19SOURCES =\
20	dumpconfig.c \
21	formats.c \
22	lvchange.c \
23	lvconvert.c \
24	lvcreate.c \
25	lvdisplay.c \
26	lvextend.c \
27	lvmchange.c \
28	lvmcmdline.c \
29	lvmdiskscan.c \
30	lvreduce.c \
31	lvremove.c \
32	lvrename.c \
33	lvresize.c \
34	lvscan.c \
35	polldaemon.c \
36	pvchange.c \
37	pvck.c \
38	pvcreate.c \
39	pvdisplay.c \
40	pvmove.c \
41	pvremove.c \
42	pvresize.c \
43	pvscan.c \
44	reporter.c \
45	segtypes.c \
46	toollib.c \
47	vgcfgbackup.c \
48	vgcfgrestore.c \
49	vgchange.c \
50	vgck.c \
51	vgcreate.c \
52	vgconvert.c \
53	vgdisplay.c \
54	vgexport.c \
55	vgextend.c \
56	vgimport.c \
57	vgmerge.c \
58	vgmknodes.c \
59	vgreduce.c \
60	vgremove.c \
61	vgrename.c \
62	vgscan.c \
63	vgsplit.c
64
65TARGETS =\
66	.commands \
67	lvm
68
69INSTALL_LVM_TARGETS = install_tools_dynamic
70INSTALL_DMSETUP_TARGETS = install_dmsetup_dynamic
71INSTALL_CMDLIB_TARGETS = install_cmdlib_dynamic
72
73ifeq ("@STATIC_LINK@", "yes")
74  TARGETS += lvm.static
75  INSTALL_LVM_TARGETS += install_tools_static
76  INSTALL_DMSETUP_TARGETS += install_dmsetup_static
77  INSTALL_CMDLIB_TARGETS += install_cmdlib_static
78endif
79
80LVMLIBS = -llvm
81
82CLEAN_TARGETS = liblvm2cmd.$(LIB_SUFFIX) liblvm2cmd.a liblvm2cmd-static.a lvm lvm.o \
83		lvm2cmd.o lvm2cmd-static.o lvm2cmdlib.o lvm.static \
84		lvm.cflow lvm.xref lvm.tree lvm.rxref lvm.rtree \
85		lvmcmdlib.o lvm-static.o dmsetup.o
86
87ifeq ("@CMDLIB@", "yes")
88	TARGETS += liblvm2cmd.$(LIB_SUFFIX)
89	INSTALL_LVM_TARGETS += $(INSTALL_CMDLIB_TARGETS)
90endif
91
92ifeq ("@DMEVENTD@", "yes")
93	LVMLIBS += -ldevmapper-event -lpthread
94endif
95
96LVMLIBS += -ldevmapper
97
98DEFS += -DLVM_SHARED_PATH=\"$(exec_prefix)/sbin/lvm\"
99
100include $(top_srcdir)/make.tmpl
101
102device-mapper: dmsetup
103
104dmsetup: dmsetup.o $(top_srcdir)/libdm/libdevmapper.$(LIB_SUFFIX)
105	$(CC) -o $@ dmsetup.o $(CFLAGS) $(LDFLAGS) \
106	      -L$(top_srcdir)/libdm -L$(DESTDIR)/lib -ldevmapper $(LIBS)
107
108dmsetup.static: dmsetup.o $(interfacedir)/libdevmapper.a
109	$(CC) -o $@ dmsetup.o $(CFLAGS) $(LDFLAGS) -static \
110	      -L$(interfacedir) -L$(DESTDIR)/lib -ldevmapper $(LIBS) \
111	      $(LIB_PTHREAD)
112
113all: device-mapper
114
115lvm: $(OBJECTS) lvm.o $(top_srcdir)/lib/liblvm.a
116	$(CC) -o $@ $(CFLAGS) $(OBJECTS) lvm.o \
117		$(LDFLAGS) $(LVMLIBS) $(LIBS) -rdynamic
118
119LIB_PTHREAD = @LIB_PTHREAD@
120lvm.static: $(OBJECTS) lvm-static.o $(top_srcdir)/lib/liblvm.a
121	$(CC) -o $@ $(CFLAGS) $(OBJECTS) lvm-static.o -static \
122		-L$(interfacedir) $(LDFLAGS) $(LVMLIBS) $(LIBS) $(LIB_PTHREAD) -rdynamic
123
124liblvm2cmd.a: $(top_srcdir)/lib/liblvm.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o
125	cat $(top_srcdir)/lib/liblvm.a > $@
126	$(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd.o
127
128liblvm2cmd-static.a: $(top_srcdir)/lib/liblvm.a $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o
129	cat $(top_srcdir)/lib/liblvm.a > $@
130	$(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o
131
132liblvm2cmd.$(LIB_SUFFIX): liblvm2cmd.a $(LDDEPS)
133
134.commands: commands.h cmdnames.h Makefile
135	$(CC) -E -P cmdnames.h 2> /dev/null | \
136		egrep -v '^ *(|#.*|dumpconfig|formats|help|pvdata|segtypes|version) *$$' > .commands
137
138.PHONY: install_cmdlib_dynamic install_cmdlib_static \
139	install_tools_dynamic install_tools_static
140
141ifneq ("@CFLOW_CMD@", "")
142CFLOW_FLAGS += --cpp="$(CC) -E"
143.PHONY: lvm.cflow
144-include $(top_srcdir)/lib/liblvm.cflow
145lvm.cflow: $(SOURCES)
146	@CFLOW_CMD@ -o$@ $(CFLOW_FLAGS) $(INCLUDES) $(DEFS) $(SOURCES)
147lvm.rxref: $(SOURCES)
148	@CFLOW_CMD@ -o$@ --cpp="$(CC) -E" -r --omit-arguments -x $(INCLUDES) $(DEFS) $(SOURCES)
149lvm.xref: $(SOURCES)
150	@CFLOW_CMD@ -o$@ --cpp="$(CC) -E" --omit-arguments -x $(INCLUDES) $(DEFS) $(SOURCES)
151lvm.rtree: $(SOURCES)
152	@CFLOW_CMD@ -o$@ --cpp="$(CC) -E" -r --omit-arguments -T -b $(INCLUDES) $(DEFS) $(SOURCES)
153lvm.tree: $(SOURCES)
154	@CFLOW_CMD@ -o$@ --cpp="$(CC) -E" --omit-arguments -T -b $(INCLUDES) $(DEFS) $(SOURCES)
155cflow: lvm.cflow lvm.xref lvm.tree lvm.rtree lvm.rxref
156endif
157
158install_cmdlib_dynamic: liblvm2cmd.$(LIB_SUFFIX)
159	$(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) liblvm2cmd.$(LIB_SUFFIX) \
160		$(libdir)/liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION_LVM)
161	$(LN_S) -f liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION_LVM) $(libdir)/liblvm2cmd.$(LIB_SUFFIX)
162	$(INSTALL) -D $(OWNER) $(GROUP) -m 444 lvm2cmd.h \
163		$(includedir)/lvm2cmd.h
164
165install_cmdlib_static: liblvm2cmd-static.a
166	$(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) liblvm2cmd-static.a \
167		$(libdir)/liblvm2cmd.a.$(LIB_VERSION_LVM)
168	$(LN_S) -f liblvm2cmd.a.$(LIB_VERSION_LVM) $(libdir)/liblvm2cmd.a
169	$(INSTALL) -D $(OWNER) $(GROUP) -m 444 lvm2cmd.h \
170		$(includedir)/lvm2cmd.h
171
172install_tools_dynamic: lvm .commands
173	$(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) lvm \
174		$(sbindir)/lvm
175	@echo Creating symbolic links for individual commands in $(sbindir)
176	@( \
177		for v in `cat .commands`; do \
178			cd $(sbindir); \
179			$(LN_S) -f lvm $$v; \
180		done; \
181	)
182
183install_tools_static: lvm.static
184	$(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) lvm.static \
185		$(staticdir)/lvm.static
186
187install_dmsetup_dynamic: dmsetup
188	$(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< $(sbindir)/$<
189
190install_dmsetup_static: dmsetup.static
191	$(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< $(sbindir)/$<
192
193install_device-mapper: $(INSTALL_DMSETUP_TARGETS)
194
195install: $(INSTALL_LVM_TARGETS) install_device-mapper
196