mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
7a4badc07f
Static linking fails currently, as -lm and -lpthread are missing: gcc -O2 -fPIC -O2 -L../libdm -L../lib -L../libdaemon/client -static -L../libdm/ioctl \ -o dmsetup.static dmsetup.o -ldevmapper -lrt ../libdm/ioctl/libdevmapper.a(libdm-stats.o): In function `dm_stats_create_region': libdm-stats.c:(.text+0x2d69): undefined reference to `log10' libdm-stats.c:(.text+0x2d6e): undefined reference to `lround' ../libdm/ioctl/libdevmapper.a(pool.o): In function `dm_pool_create': pool.c:(.text+0x134): undefined reference to `pthread_mutex_lock' pool.c:(.text+0x14f): undefined reference to `pthread_mutex_unlock' Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
218 lines
5.9 KiB
Makefile
218 lines
5.9 KiB
Makefile
#
|
|
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
srcdir = @srcdir@
|
|
top_srcdir = @top_srcdir@
|
|
top_builddir = @top_builddir@
|
|
|
|
SOURCES =\
|
|
dumpconfig.c \
|
|
formats.c \
|
|
lvchange.c \
|
|
lvconvert.c \
|
|
lvconvert_poll.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 \
|
|
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 \
|
|
vgreduce.c \
|
|
vgremove.c \
|
|
vgrename.c \
|
|
vgscan.c \
|
|
vgsplit.c
|
|
|
|
SOURCES2 =\
|
|
dmsetup.c \
|
|
lvm.c \
|
|
lvm2cmd-static.c \
|
|
lvm2cmd.c \
|
|
lvmcmdlib.c
|
|
|
|
TARGETS =\
|
|
.commands \
|
|
liblvm2cmd.a \
|
|
lvm
|
|
|
|
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)
|
|
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
|
|
|
|
ifeq ("@CMDLIB@", "yes")
|
|
TARGETS += liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION)
|
|
INSTALL_LVM_TARGETS += $(INSTALL_CMDLIB_TARGETS)
|
|
endif
|
|
|
|
ifeq ("@DMEVENTD@", "yes")
|
|
LVMLIBS += -ldevmapper-event
|
|
endif
|
|
|
|
LVMLIBS += -ldevmapper
|
|
|
|
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)
|
|
$(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) -L$(top_builddir)/libdm \
|
|
-o $@ dmsetup.o -ldevmapper $(LIBS)
|
|
|
|
dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a
|
|
$(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)
|
|
CFLAGS_lvmcmdline.o += $(VALGRIND_CFLAGS)
|
|
|
|
lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a
|
|
$(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $(OBJECTS) lvm.o \
|
|
$(LVMLIBS) $(READLINE_LIBS) $(LIBS) -rdynamic
|
|
|
|
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
|
|
$(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
|
|
cat $(top_builddir)/lib/liblvm-internal.a > $@
|
|
$(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd.o
|
|
|
|
liblvm2cmd-static.a: $(top_builddir)/lib/liblvm-internal.a $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o
|
|
cat $(top_builddir)/lib/liblvm-internal.a > $@
|
|
$(AR) rs $@ $(OBJECTS) lvmcmdlib.o lvm2cmd-static.o
|
|
|
|
liblvm2cmd.$(LIB_SUFFIX): liblvm2cmd.a $(LDDEPS)
|
|
$(CC) -shared -Wl,-soname,$@.$(LIB_VERSION) \
|
|
$(CFLAGS) $(CLDFLAGS) -o $@ \
|
|
@CLDWHOLEARCHIVE@ liblvm2cmd.a @CLDNOWHOLEARCHIVE@ \
|
|
$(LVMLIBS) $(LIBS)
|
|
|
|
liblvm2cmd.$(LIB_SUFFIX).$(LIB_VERSION): liblvm2cmd.$(LIB_SUFFIX)
|
|
$(LN_S) -f $< $@
|
|
|
|
.commands: $(srcdir)/commands.h $(srcdir)/cmdnames.h Makefile
|
|
$(CC) -E -P $(srcdir)/cmdnames.h 2> /dev/null | \
|
|
egrep -v '^ *(|#.*|config|devtypes|dumpconfig|formats|help|lvpoll|pvdata|segtypes|systemid|tags|version) *$$' > .commands
|
|
|
|
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
|
|
$(INSTALL_DATA) -D $< $(includedir)/$(<F)
|
|
|
|
install_cmdlib_dynamic: liblvm2cmd.$(LIB_SUFFIX)
|
|
$(INSTALL_PROGRAM) -D $< $(libdir)/$(<F).$(LIB_VERSION)
|
|
$(INSTALL_DIR) $(usrlibdir)
|
|
$(LN_S) -f $(USRLIB_RELPATH)$(<F).$(LIB_VERSION) $(usrlibdir)/$(<F)
|
|
|
|
install_cmdlib_static: liblvm2cmd-static.a
|
|
$(INSTALL_DATA) -D $< $(usrlibdir)/liblvm2cmd.a
|
|
|
|
install_tools_dynamic: lvm .commands
|
|
$(INSTALL_PROGRAM) -D lvm $(sbindir)/lvm
|
|
@echo Creating symbolic links for individual commands in $(sbindir)
|
|
@for v in `cat .commands`; do \
|
|
echo "$(LN_S) -f lvm $(sbindir)/$$v"; \
|
|
$(LN_S) -f lvm $(sbindir)/$$v; \
|
|
done;
|
|
|
|
install_tools_static: lvm.static
|
|
$(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F)
|
|
|
|
install_dmsetup_dynamic: dmsetup
|
|
$(INSTALL_PROGRAM) -D $< $(sbindir)/$(<F)
|
|
$(LN_S) -f $(<F) $(sbindir)/dmstats
|
|
|
|
install_dmsetup_static: dmsetup.static
|
|
$(INSTALL_PROGRAM) -D $< $(staticdir)/$(<F)
|
|
$(LN_S) -f $(<F) $(sbindir)/dmstats
|
|
|
|
install_device-mapper: $(INSTALL_DMSETUP_TARGETS)
|
|
|
|
install_lvm2: $(INSTALL_LVM_TARGETS)
|
|
|
|
install: install_lvm2 install_device-mapper
|