mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
5451f79f55
For static builds dependency for SELinux libs is not handled by 'ar'. Till better solution is found, for static builds STATIC_LIBS is used. Patch updates SELinux detection to use 3rd & 4th parameter for Success/Fail. Also removes detection of pthread from this check as we know which version of libdevmapper we are going to link with lvm after merge. SELinux header check moved to the SELinux test code.
284 lines
7.5 KiB
Cheetah
284 lines
7.5 KiB
Cheetah
# @configure_input@
|
|
#
|
|
# Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
|
|
# Copyright (C) 2004-2009 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
|
|
|
|
SHELL = /bin/sh
|
|
|
|
@SET_MAKE@
|
|
|
|
CC = @CC@
|
|
RANLIB = @RANLIB@
|
|
SHELL = /bin/sh
|
|
INSTALL = @INSTALL@
|
|
MKDIR_P = @MKDIR_P@
|
|
MSGFMT = @MSGFMT@
|
|
LCOV = @LCOV@
|
|
GENHTML = @GENHTML@
|
|
LN_S = @LN_S@
|
|
SED = @SED@
|
|
CFLOW_CMD = @CFLOW_CMD@
|
|
|
|
LIBS = @LIBS@
|
|
# Extra libraries always linked with static binaries
|
|
STATIC_LIBS = $(SELINUX_LIBS)
|
|
DEFS += @DEFS@
|
|
CFLAGS += @CFLAGS@
|
|
CLDFLAGS += @CLDFLAGS@
|
|
LDDEPS += @LDDEPS@
|
|
LDFLAGS += @LDFLAGS@
|
|
LIB_SUFFIX = @LIB_SUFFIX@
|
|
LVMINTERNAL_LIBS = -llvm-internal
|
|
PTHREAD_LIBS = @PTHREAD_LIBS@
|
|
READLINE_LIBS = @READLINE_LIBS@
|
|
SELINUX_LIBS = @SELINUX_LIBS@
|
|
|
|
# Setup directory variables
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
udev_prefix = @udev_prefix@
|
|
bindir = $(DESTDIR)@bindir@
|
|
confdir = $(DESTDIR)@CONFDIR@/lvm
|
|
includedir = $(DESTDIR)@includedir@
|
|
libdir = $(DESTDIR)@libdir@
|
|
usrlibdir = $(DESTDIR)@usrlibdir@
|
|
sbindir = $(DESTDIR)@sbindir@
|
|
usrsbindir = $(DESTDIR)@usrsbindir@
|
|
datarootdir = $(DESTDIR)@datarootdir@
|
|
infodir = $(DESTDIR)@infodir@
|
|
mandir = $(DESTDIR)@mandir@
|
|
localedir = $(DESTDIR)@LOCALEDIR@
|
|
staticdir = $(DESTDIR)@STATICDIR@
|
|
udevdir = $(DESTDIR)@udevdir@
|
|
|
|
interface = @interface@
|
|
interfacebuilddir = $(top_builddir)/libdm/$(interface)
|
|
|
|
# setup misc variables
|
|
# define the ownership variables for the binaries and man pages
|
|
OWNER = @OWNER@
|
|
GROUP = @GROUP@
|
|
|
|
# The number of jobs to run, if blank, defaults to the make standard
|
|
ifndef MAKEFLAGS
|
|
MAKEFLAGS = @JOBS@
|
|
endif
|
|
|
|
.SUFFIXES: .c .d .o .so .a .po .pot .mo .dylib
|
|
|
|
CFLAGS += -fPIC -Wall -Wundef -Wshadow -Wcast-align -Wwrite-strings -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wmissing-noreturn -Wformat-security
|
|
|
|
#CFLAGS += -W -Wconversion -Wpointer-arith -Wredundant-decls -Wbad-function-cast -Wcast-qual
|
|
#CFLAGS += -pedantic -std=gnu99
|
|
|
|
CFLAGS += @COPTIMISE_FLAG@
|
|
|
|
ifeq ("@DEBUG@", "yes")
|
|
CFLAGS += -g -fno-omit-frame-pointer
|
|
DEFS += -DDEBUG
|
|
# memory debugging is not thread-safe yet
|
|
ifneq ("@DMEVENTD@", "yes")
|
|
DEFS += -DDEBUG_MEM
|
|
endif
|
|
endif
|
|
|
|
ifeq ("@INTL@", "yes")
|
|
DEFS += -DINTL_PACKAGE=\"@INTL_PACKAGE@\" -DLOCALEDIR=\"@LOCALEDIR@\"
|
|
endif
|
|
|
|
LDFLAGS += -L$(top_builddir)/libdm -L$(top_builddir)/lib
|
|
CLDFLAGS += -L$(top_builddir)/libdm -L$(top_builddir)/lib
|
|
|
|
ifeq ("@DMEVENTD@", "yes")
|
|
LDFLAGS += -L$(top_builddir)/daemons/dmeventd
|
|
CLDFLAGS += -L$(top_builddir)/daemons/dmeventd
|
|
endif
|
|
|
|
ifeq ("@DM_COMPAT@", "yes")
|
|
DEFS += -DDM_COMPAT
|
|
endif
|
|
|
|
ifeq ("@DM_IOCTLS@", "yes")
|
|
DEFS += -DDM_IOCTLS
|
|
endif
|
|
|
|
#DEFS += -DDEBUG_POOL
|
|
#DEFS += -DBOUNDS_CHECK
|
|
|
|
#CFLAGS += -pg
|
|
#LDFLAGS += -pg
|
|
|
|
STRIP=
|
|
#STRIP = -s
|
|
|
|
LVM_VERSION := $(shell cat $(top_srcdir)/VERSION)
|
|
|
|
LIB_VERSION_LVM := $(shell cat $(top_srcdir)/VERSION | \
|
|
awk -F '.' '{printf "%s.%s",$$1,$$2}')
|
|
|
|
LIB_VERSION_DM := $(shell cat $(top_srcdir)/VERSION_DM | \
|
|
awk -F '.' '{printf "%s.%s",$$1,$$2}')
|
|
|
|
LIB_VERSION_APP := $(shell cat $(top_srcdir)/VERSION | \
|
|
awk -F '[(). ]' '{printf "%s.%s",$$1,$$4}')
|
|
|
|
INCLUDES += -I. -I$(top_builddir)/include
|
|
|
|
INC_LNS = $(top_builddir)/include/.symlinks_created
|
|
|
|
DEPS = $(top_builddir)/make.tmpl $(top_srcdir)/VERSION \
|
|
$(top_builddir)/Makefile $(INC_LNS)
|
|
|
|
OBJECTS = $(SOURCES:%.c=%.o)
|
|
POTFILES = $(SOURCES:%.c=%.pot)
|
|
|
|
.PHONY: all install install_cluster pofile distclean clean cflow device-mapper
|
|
.PHONY: install_device-mapper install_lvm2
|
|
.PHONY: $(SUBDIRS) $(SUBDIRS.install) $(SUBDIRS.clean) $(SUBDIRS.distclean)
|
|
.PHONY: $(SUBDIRS.pofile) $(SUBDIRS.install_cluster) $(SUBDIRS.cflow)
|
|
.PHONY: $(SUBDIRS.device-mapper) $(SUBDIRS.install-device-mapper)
|
|
|
|
SUBDIRS.device-mapper := $(SUBDIRS:=.device-mapper)
|
|
SUBDIRS.install := $(SUBDIRS:=.install)
|
|
SUBDIRS.install_cluster := $(SUBDIRS:=.install_cluster)
|
|
SUBDIRS.install_device-mapper := $(SUBDIRS:=.install_device-mapper)
|
|
SUBDIRS.install_lvm2 := $(SUBDIRS:=.install_lvm2)
|
|
SUBDIRS.pofile := $(SUBDIRS:=.pofile)
|
|
SUBDIRS.cflow := $(SUBDIRS:=.cflow)
|
|
SUBDIRS.clean := $(SUBDIRS:=.clean)
|
|
SUBDIRS.distclean := $(SUBDIRS:=.distclean)
|
|
|
|
TARGETS += $(LIB_SHARED) $(LIB_STATIC) $(VERSIONED_SHLIB)
|
|
|
|
all: $(SUBDIRS) $(TARGETS)
|
|
|
|
install: all $(SUBDIRS.install)
|
|
install_cluster: all $(SUBDIRS.install_cluster)
|
|
install_device-mapper: $(SUBDIRS.install_device-mapper)
|
|
install_lvm2: $(SUBDIRS.install_lvm2)
|
|
|
|
$(SUBDIRS): $(SUBDIRS.device-mapper)
|
|
$(MAKE) -C $@
|
|
|
|
$(SUBDIRS.device-mapper):
|
|
$(MAKE) -C $(@:.device-mapper=) device-mapper
|
|
|
|
$(SUBDIRS.install): $(SUBDIRS)
|
|
$(MAKE) -C $(@:.install=) install
|
|
|
|
$(SUBDIRS.install_cluster): $(SUBDIRS)
|
|
$(MAKE) -C $(@:.install_cluster=) install_cluster
|
|
|
|
$(SUBDIRS.install_device-mapper): device-mapper
|
|
$(MAKE) -C $(@:.install_device-mapper=) install_device-mapper
|
|
|
|
$(SUBDIRS.install_lvm2): $(SUBDIRS)
|
|
$(MAKE) -C $(@:.install_lvm2=) install_lvm2
|
|
|
|
$(SUBDIRS.clean):
|
|
-$(MAKE) -C $(@:.clean=) clean
|
|
|
|
$(SUBDIRS.distclean):
|
|
-$(MAKE) -C $(@:.distclean=) distclean
|
|
|
|
ifeq ("@INTL@", "yes")
|
|
pofile: $(SUBDIRS.pofile) $(POTFILES)
|
|
|
|
$(SUBDIRS.pofile):
|
|
$(MAKE) -C $(@:.pofile=) pofile
|
|
endif
|
|
|
|
ifneq ("@CFLOW_CMD@", "")
|
|
cflow: $(SUBDIRS.cflow)
|
|
|
|
$(SUBDIRS.cflow):
|
|
$(MAKE) -C $(@:.cflow=) cflow
|
|
endif
|
|
|
|
$(TARGETS): $(OBJECTS)
|
|
|
|
%.o: %.c
|
|
$(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $< -o $@
|
|
|
|
%.pot: %.c Makefile
|
|
$(CC) -E $(INCLUDES) -include $(top_srcdir)/include/pogen.h \
|
|
$(DEFS) $(CFLAGS) $< > $@
|
|
|
|
%.so: %.o
|
|
$(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(CLDFLAGS) $< $(LIBS) -o $@
|
|
|
|
ifeq ("@LIB_SUFFIX@","so")
|
|
$(LIB_SHARED): $(OBJECTS) $(LDDEPS)
|
|
$(CC) -shared -Wl,-soname,$(notdir $@).$(LIB_VERSION) \
|
|
$(CFLAGS) $(CLDFLAGS) $(OBJECTS) $(LIBS) -o $@
|
|
endif
|
|
|
|
ifeq ("@LIB_SUFFIX@","dylib")
|
|
$(LIB_SHARED): $(OBJECTS) $(LDDEPS)
|
|
$(CC) -dynamiclib -dylib_current_version,$(LIB_VERSION) \
|
|
$(CFLAGS) $(CLDFLAGS) $(OBJECTS) $(LIBS) -o $@
|
|
endif
|
|
|
|
%.so: %.a
|
|
$(CC) -shared -Wl,-soname,$(notdir $@).$(LIB_VERSION) \
|
|
$(CFLAGS) $(CLDFLAGS) $(LIBS) -o $@ \
|
|
@CLDWHOLEARCHIVE@ $< @CLDNOWHOLEARCHIVE@
|
|
|
|
$(LIB_STATIC): $(OBJECTS)
|
|
$(RM) $@
|
|
$(AR) rs $@ $(OBJECTS)
|
|
|
|
%.d: %.c
|
|
$(MKDIR_P) $(dir $@); \
|
|
set -e; \
|
|
FILE=`echo $@ | sed 's/\\//\\\\\\//g;s/\\.d//g'`; \
|
|
DEPS=`echo $(DEPS) | sed -e 's/\\//\\\\\\//g'`; \
|
|
$(CC) -MM $(INCLUDES) $(DEFS) $(CFLAGS) -o $@ $<; \
|
|
sed -i "s/\(.*\)\.o[ :]*/$$FILE.o $$FILE.d $$FILE.pot: $$DEPS /g" $@; \
|
|
[ -s $@ ] || $(RM) $@
|
|
|
|
%.mo: %.po
|
|
$(MSGFMT) -o $@ $<
|
|
|
|
clean: $(SUBDIRS.clean)
|
|
$(RM) $(OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(SOURCES:%.c=%.d) \
|
|
$(SOURCES2:%.c=%.d) $(SOURCES:%.c=%.pot) $(SOURCES:%.c=%.gcno) \
|
|
$(SOURCES:%.c=%.gcda) $(LDDEPS)
|
|
|
|
distclean: $(SUBDIRS.distclean)
|
|
$(RM) -rf $(DISTCLEAN_DIRS)
|
|
$(RM) $(DISTCLEAN_TARGETS) \
|
|
$(OBJECTS) $(TARGETS) $(CLEAN_TARGETS) $(SOURCES:%.c=%.d) \
|
|
$(SOURCES2:%.c=%.d) $(SOURCES:%.c=%.pot) $(SOURCES:%.c=%.gcno) \
|
|
$(SOURCES:%.c=%.gcda) $(LDDEPS) \
|
|
config.cache config.log config.status \
|
|
Makefile make.tmpl core \
|
|
lvm-version.h
|
|
|
|
.export.sym: .exported_symbols
|
|
set -e; (echo "Base {"; echo " global:"; \
|
|
sed "s/^/ /;s/$$/;/" < $<; \
|
|
echo " local:"; echo " *;"; echo "};") > $@
|
|
|
|
ifneq ($(MAKECMDGOALS),clean)
|
|
ifneq ($(MAKECMDGOALS),distclean)
|
|
ifdef SOURCES
|
|
-include $(SOURCES:.c=.d)
|
|
endif
|
|
ifdef SOURCES2
|
|
-include $(SOURCES2:.c=.d)
|
|
endif
|
|
endif
|
|
endif
|
|
|