Initial import of binutils 2.22 on the new vendor branch
[dragonfly.git] / contrib / lvm2 / dist / tools / Makefile
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
15 srcdir = .
16 top_srcdir = ..
17 top_builddir = ..
18
19
20 LIB_PTHREAD = 
21
22 SOURCES =\
23         dumpconfig.c \
24         formats.c \
25         lvchange.c \
26         lvconvert.c \
27         lvcreate.c \
28         lvdisplay.c \
29         lvextend.c \
30         lvmchange.c \
31         lvmcmdline.c \
32         lvmdiskscan.c \
33         lvreduce.c \
34         lvremove.c \
35         lvrename.c \
36         lvresize.c \
37         lvscan.c \
38         polldaemon.c \
39         pvchange.c \
40         pvck.c \
41         pvcreate.c \
42         pvdisplay.c \
43         pvmove.c \
44         pvremove.c \
45         pvresize.c \
46         pvscan.c \
47         reporter.c \
48         segtypes.c \
49         toollib.c \
50         vgcfgbackup.c \
51         vgcfgrestore.c \
52         vgchange.c \
53         vgck.c \
54         vgcreate.c \
55         vgconvert.c \
56         vgdisplay.c \
57         vgexport.c \
58         vgextend.c \
59         vgimport.c \
60         vgmerge.c \
61         vgmknodes.c \
62         vgreduce.c \
63         vgremove.c \
64         vgrename.c \
65         vgscan.c \
66         vgsplit.c
67
68 SOURCES2 =\
69         dmsetup.c
70
71 TARGETS =\
72         .commands \
73         lvm
74
75 TARGETS_DM = dmsetup
76
77 INSTALL_LVM_TARGETS = install_tools_dynamic
78 INSTALL_DMSETUP_TARGETS = install_dmsetup_dynamic
79 INSTALL_CMDLIB_TARGETS = install_cmdlib_dynamic
80
81 ifeq ("no", "yes")
82   TARGETS += lvm.static
83   TARGETS_DM += dmsetup.static
84   INSTALL_LVM_TARGETS += install_tools_static
85   INSTALL_DMSETUP_TARGETS += install_dmsetup_static
86   INSTALL_CMDLIB_TARGETS += install_cmdlib_static
87 endif
88
89 LVMLIBS = -llvm-internal
90 LIB_VERSION = $(LIB_VERSION_LVM)
91
92 CLEAN_TARGETS = liblvm2cmd.$(LIB_SUFFIX) liblvm2cmd.a liblvm2cmd-static.a lvm lvm.o \
93                 lvm2cmd.o lvm2cmd-static.o lvm2cmdlib.o lvm.static \
94                 lvm.cflow lvm.xref lvm.tree lvm.rxref lvm.rtree \
95                 lvmcmdlib.o lvm-static.o dmsetup.o $(TARGETS_DM)
96
97 ifeq ("no", "yes")
98         TARGETS += liblvm2cmd.$(LIB_SUFFIX)
99         INSTALL_LVM_TARGETS += $(INSTALL_CMDLIB_TARGETS)
100 endif
101
102 ifeq ("", "yes")
103         LVMLIBS += -ldevmapper-event -lpthread
104 endif
105
106 LVMLIBS += -ldevmapper
107
108 DEFS += -DLVM_SHARED_PATH=\"$(exec_prefix)/sbin/lvm\"
109
110 include ../make.tmpl
111
112 device-mapper: $(TARGETS_DM)
113
114 dmsetup: dmsetup.o $(top_builddir)/libdm/libdevmapper.$(LIB_SUFFIX)
115         $(CC) $(CFLAGS) $(LDFLAGS) -L$(top_builddir)/libdm \
116               -o $@ dmsetup.o -ldevmapper $(LIBS) $(LIB_PTHREAD)
117
118 dmsetup.static: dmsetup.o $(interfacedir)/libdevmapper.a
119         $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacedir) \
120               -o $@ dmsetup.o -ldevmapper $(LIBS) $(LIB_PTHREAD)
121
122 all: device-mapper
123
124 lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a
125         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJECTS) lvm.o \
126                 $(LVMLIBS) $(LIBS) $(LIB_PTHREAD) -rdynamic
127
128 lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a  $(interfacedir)/libdevmapper.a
129         $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacedir) -o $@ \
130               $(OBJECTS) lvm-static.o $(LVMLIBS) $(LIBS) $(LIB_PTHREAD) \
131               -rdynamic
132
133 liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o
134         cat $(top_builddir)/lib/liblvm-internal.a > $@
135         $(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd.o
136
137 liblvm2cmd-static.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o
138         cat $(top_builddir)/lib/liblvm-internal.a > $@
139         $(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o
140
141 liblvm2cmd.$(LIB_SUFFIX): liblvm2cmd.a $(LDDEPS)
142
143 .commands: commands.h cmdnames.h Makefile
144         $(CC) -E -P $(srcdir)/cmdnames.h 2> /dev/null | \
145                 egrep -v '^ *(|#.*|dumpconfig|formats|help|pvdata|segtypes|version) *$$' > .commands
146
147 .PHONY: install_cmdlib_dynamic install_cmdlib_static \
148         install_tools_dynamic install_tools_static
149
150 ifneq ("", "")
151 CFLOW_FLAGS += --cpp="$(CC) -E"
152 .PHONY: lvm.cflow
153 -include $(top_srcdir)/lib/liblvm-internal.cflow
154 lvm.cflow: $(SOURCES)
155          -o$@ $(CFLOW_FLAGS) $(INCLUDES) $(DEFS) $(SOURCES)
156 lvm.rxref: $(SOURCES)
157          -o$@ --cpp="$(CC) -E" -r --omit-arguments -x $(INCLUDES) $(DEFS) $(SOURCES)
158 lvm.xref: $(SOURCES)
159          -o$@ --cpp="$(CC) -E" --omit-arguments -x $(INCLUDES) $(DEFS) $(SOURCES)
160 lvm.rtree: $(SOURCES)
161          -o$@ --cpp="$(CC) -E" -r --omit-arguments -T -b $(INCLUDES) $(DEFS) $(SOURCES)
162 lvm.tree: $(SOURCES)
163          -o$@ --cpp="$(CC) -E" --omit-arguments -T -b $(INCLUDES) $(DEFS) $(SOURCES)
164 cflow: lvm.cflow lvm.xref lvm.tree lvm.rtree lvm.rxref
165 endif
166
167 install_cmdlib_dynamic: liblvm2cmd.$(LIB_SUFFIX)
168         $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< \
169                 $(libdir)/liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION)
170         $(LN_S) -f liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION) $(libdir)/liblvm2cmd.$(LIB_SUFFIX)
171         $(INSTALL) -D $(OWNER) $(GROUP) -m 444 $(srcdir)/lvm2cmd.h \
172                 $(includedir)/lvm2cmd.h
173
174 install_cmdlib_static: liblvm2cmd-static.a
175         $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< \
176                 $(libdir)/liblvm2cmd.a.$(LIB_VERSION)
177         $(LN_S) -f liblvm2cmd.a.$(LIB_VERSION) $(libdir)/liblvm2cmd.a
178         $(INSTALL) -D $(OWNER) $(GROUP) -m 444 $(srcdir)/lvm2cmd.h \
179                 $(includedir)/lvm2cmd.h
180
181 install_tools_dynamic: lvm .commands
182         $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) lvm \
183                 $(sbindir)/lvm
184         @echo Creating symbolic links for individual commands in $(sbindir)
185         @( \
186                 for v in `cat $(srcdir)/.commands`; do \
187                         cd $(sbindir); \
188                         $(LN_S) -f lvm $$v; \
189                 done; \
190         )
191
192 install_tools_static: lvm.static
193         $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< \
194                 $(staticdir)/lvm.static
195
196 install_dmsetup_dynamic: dmsetup
197         $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< $(sbindir)/$<
198
199 install_dmsetup_static: dmsetup.static
200         $(INSTALL) -D $(OWNER) $(GROUP) -m 555 $(STRIP) $< $(sbindir)/$<
201
202 install_device-mapper: $(INSTALL_DMSETUP_TARGETS)
203
204 install_lvm2: $(INSTALL_LVM_TARGETS)
205
206 install: install_lvm2 install_device-mapper