Tizen 2.1 base
[external/device-mapper.git] / tools / Makefile.in
1 #
2 # Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
3 # Copyright (C) 2004-2010 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 = @srcdir@
16 top_srcdir = @top_srcdir@
17 top_builddir = @top_builddir@
18
19 SOURCES =\
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
65 SOURCES2 =\
66         dmsetup.c \
67         lvm.c \
68         lvm2cmd-static.c \
69         lvm2cmd.c \
70         lvmcmdlib.c
71
72 TARGETS =\
73         .commands \
74         liblvm2cmd.a \
75         lvm
76
77 TARGETS_DM = dmsetup
78
79 INSTALL_LVM_TARGETS = install_tools_dynamic
80 INSTALL_DMSETUP_TARGETS = install_dmsetup_dynamic
81 INSTALL_CMDLIB_TARGETS = install_cmdlib_dynamic install_cmdlib_include 
82
83 ifeq ("@STATIC_LINK@", "yes")
84   TARGETS += lvm.static
85   TARGETS_DM += dmsetup.static
86   INSTALL_LVM_TARGETS += install_tools_static
87   INSTALL_DMSETUP_TARGETS += install_dmsetup_static
88   INSTALL_CMDLIB_TARGETS += install_cmdlib_static
89 endif
90
91 LVMLIBS = $(LVMINTERNAL_LIBS)
92 LIB_VERSION = $(LIB_VERSION_LVM)
93
94 CLEAN_TARGETS = liblvm2cmd.$(LIB_SUFFIX) $(TARGETS_DM) \
95         liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION) lvm-static.o \
96         liblvm2cmd-static.a dmsetup.static lvm.static
97
98 ifeq ("@CMDLIB@", "yes")
99         TARGETS += liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION)
100         INSTALL_LVM_TARGETS += $(INSTALL_CMDLIB_TARGETS)
101 endif
102
103 ifeq ("@DMEVENTD@", "yes")
104         LVMLIBS += -ldevmapper-event
105 endif
106
107 LVMLIBS += -ldevmapper
108
109 EXPORTED_HEADER = $(srcdir)/lvm2cmd.h
110 EXPORTED_FN_PREFIX = lvm2
111
112 DEFS += -DLVM_SHARED_PATH=\"$(exec_prefix)/sbin/lvm\"
113
114 CFLOW_LIST = lvmcmdlib.c lvm2cmd.c
115 CFLOW_LIST_TARGET = liblvm2cmd.cflow
116 CFLOW_TARGET = lvm
117
118 include $(top_builddir)/make.tmpl
119
120 LIBS += $(UDEV_LIBS)
121
122 device-mapper: $(TARGETS_DM)
123
124 dmsetup: dmsetup.o $(top_builddir)/libdm/libdevmapper.$(LIB_SUFFIX)
125         $(CC) $(CFLAGS) $(LDFLAGS) -L$(top_builddir)/libdm \
126               -o $@ dmsetup.o -ldevmapper $(LIBS)
127
128 dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a
129         $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) \
130               -o $@ dmsetup.o -ldevmapper $(STATIC_LIBS) $(LIBS)
131
132 all: device-mapper
133
134 lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a
135         $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJECTS) lvm.o \
136                 $(LVMLIBS) $(READLINE_LIBS) $(LIBS) -rdynamic
137
138 lvm.static: $(OBJECTS) lvm-static.o $(top_builddir)/lib/liblvm-internal.a  $(interfacebuilddir)/libdevmapper.a
139         $(CC) $(CFLAGS) $(LDFLAGS) -static -L$(interfacebuilddir) -o $@ \
140               $(OBJECTS) lvm-static.o $(LVMLIBS) $(STATIC_LIBS) $(LIBS)
141
142 liblvm2cmd.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd.o
143         cat $(top_builddir)/lib/liblvm-internal.a > $@
144         $(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd.o
145
146 liblvm2cmd-static.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o
147         cat $(top_builddir)/lib/liblvm-internal.a > $@
148         $(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o
149
150 liblvm2cmd.$(LIB_SUFFIX): liblvm2cmd.a $(LDDEPS)
151         $(CC) -shared -Wl,-soname,$@.$(LIB_VERSION) \
152                 $(CFLAGS) $(CLDFLAGS) -o $@ \
153                 @CLDWHOLEARCHIVE@ liblvm2cmd.a @CLDNOWHOLEARCHIVE@ \
154                 $(LVMLIBS) $(LIBS)
155
156 liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION): liblvm2cmd.$(LIB_SUFFIX)
157         $(LN_S) -f $< $@
158
159 .commands: $(srcdir)/commands.h $(srcdir)/cmdnames.h Makefile
160         $(CC) -E -P $(srcdir)/cmdnames.h 2> /dev/null | \
161                 egrep -v '^ *(|#.*|dumpconfig|formats|help|pvdata|segtypes|version) *$$' > .commands
162
163 ifneq ("$(CFLOW_CMD)", "")
164 CFLOW_SOURCES = $(addprefix $(srcdir)/, $(SOURCES))
165 -include $(top_builddir)/libdm/libdevmapper.cflow
166 -include $(top_builddir)/lib/liblvm-internal.cflow
167 endif
168
169 .PHONY: install_cmdlib_dynamic install_cmdlib_static install_cmdlib_include \
170         install_tools_dynamic install_tools_static \
171         install_dmsetup_dynamic install_dmsetup_static
172
173 install_cmdlib_include: $(srcdir)/lvm2cmd.h
174         $(INSTALL_DATA) -D $< $(includedir)/$(<F)
175
176 install_cmdlib_dynamic: liblvm2cmd.$(LIB_SUFFIX)
177         $(INSTALL_PROGRAM) -D $< $(libdir)/$(<F).$(LIB_VERSION)
178         $(INSTALL_DIR) $(usrlibdir)
179         $(LN_S) -f $(USRLIB_RELPATH)$(<F).$(LIB_VERSION) $(usrlibdir)/$(<F)
180
181 install_cmdlib_static: liblvm2cmd-static.a
182         $(INSTALL_DATA) -D $< $(usrlibdir)/liblvm2cmd.a
183
184 install_tools_dynamic: lvm .commands
185         $(INSTALL_PROGRAM) -D lvm $(sbindir)/lvm
186         @echo Creating symbolic links for individual commands in $(sbindir)
187         @for v in `cat .commands`; do \
188                 echo "$(LN_S) -f lvm $(sbindir)/$$v"; \
189                 $(LN_S) -f lvm $(sbindir)/$$v; \
190         done;
191
192 install_tools_static: lvm.static
193         $(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F)
194
195 install_dmsetup_dynamic: dmsetup
196         $(INSTALL_PROGRAM) -D $< $(sbindir)/$(<F)
197
198 install_dmsetup_static: dmsetup.static
199         $(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F)
200
201 install_device-mapper: $(INSTALL_DMSETUP_TARGETS)
202
203 install_lvm2: $(INSTALL_LVM_TARGETS)
204
205 install: install_lvm2 install_device-mapper
206
207 DISTCLEAN_TARGETS += .exported_symbols_generated